  /* ════════════════════════════════════════════════════════════
     RESET
  ════════════════════════════════════════════════════════════ */
  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
  html {
    width: 100%;
    overflow-x: hidden;
    font-size: 62.5%;
    line-height: 1.15;
    -webkit-text-size-adjust: 100%;
  }
  body {
    font-family: 'Noto Sans JP', '游ゴシック体', YuGothic, 'Yu Gothic', 'Hiragino Kaku Gothic ProN', sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    color: #2D2820;
    background: #FFFFFF;
    width: 100%;
    overflow-x: hidden;
  }
  a { text-decoration: none; color: inherit; cursor: pointer; }
  ul, ol { list-style: none; }

  /* ════════════════════════════════════════════════════════════
     TOKENS
  ════════════════════════════════════════════════════════════ */
  :root {
    --amber:        #D4914A;
    --amber-deep:   #B47030;
    --amber-bright: #E8A050;
    --dark:         #2D2820;
    --mid:          #6A6057;
    --bg:           #FFFFFF;
    --bg-warm:      #FAF6EE;
    --line-green:   #06C755;

    --pad-x-page:   clamp(20px, 4vw, 60px);
    --pad-y-hdr:    clamp(10px, 1.2vw, 18px);
  }

  /* ════════════════════════════════════════════════════════════
     SUB-PAGE HEADER
  ════════════════════════════════════════════════════════════ */
  .sub-hdr {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: saturate(140%) blur(8px);
    -webkit-backdrop-filter: saturate(140%) blur(8px);
    border-bottom: 1px solid rgba(45, 40, 32, 0.08);
  }
  .sub-hdr__inner {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: var(--pad-y-hdr) var(--pad-x-page);
    max-width: 1280px;
    margin: 0 auto;
  }
  .sub-hdr__logo {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
  }
  .sub-hdr__logo svg {
    width: clamp(36px, 3.4vw, 46px);
    height: clamp(36px, 3.4vw, 46px);
    color: var(--amber);
  }
  .sub-hdr__logo-text {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
  }
  .sub-hdr__logo-brand {
    font-family: 'Ubuntu', sans-serif;
    font-size: clamp(16px, 1.6vw, 20px);
    font-weight: 500;
    letter-spacing: 0.3em;
    color: var(--dark);
    padding-left: 0.3em;
  }
  .sub-hdr__logo-sub {
    margin-top: 3px;
    font-size: 9px;
    letter-spacing: 0.25em;
    color: var(--mid);
    font-weight: 400;
  }
  .sub-hdr__home {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.08em;
    color: var(--mid);
    padding: 8px 0;
    transition: color 0.2s;
  }
  .sub-hdr__home:hover { color: var(--amber); }
  .sub-hdr__home svg { width: 12px; height: 12px; }

  @media (max-width: 479px) {
    .sub-hdr__logo-sub { display: none; }
  }

  /* ════════════════════════════════════════════════════════════
     PAGE HEAD
  ════════════════════════════════════════════════════════════ */
  .page-head {
    position: relative;
    padding: clamp(56px, 8vw, 112px) var(--pad-x-page) clamp(40px, 5vw, 64px);
    text-align: center;
    background: var(--bg-warm);
    overflow: hidden;
    isolation: isolate;
  }
  .page-head > * {
    position: relative;
    z-index: 2;
  }
  /* ── Paw scatter (decorative background) ── */
  .page-head__paws {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
  }
  .page-head__paw {
    position: absolute;
    color: var(--amber);
    width: clamp(40px, 7vw, 96px);
    height: auto;
  }
  .page-head__paw--a { top: 14%;  left: 6%;   transform: rotate(-18deg); opacity: 0.10; width: clamp(56px, 9vw, 120px); }
  .page-head__paw--b { top: 8%;   right: 9%;  transform: rotate(22deg);  opacity: 0.08; width: clamp(36px, 5.5vw, 70px); }
  .page-head__paw--c { bottom: 12%; left: 14%; transform: rotate(8deg);  opacity: 0.07; width: clamp(28px, 4.5vw, 58px); }
  .page-head__paw--d { bottom: 18%; right: 6%; transform: rotate(-26deg); opacity: 0.11; width: clamp(48px, 7.5vw, 96px); }
  .page-head__paw--e { top: 48%;  left: 2%;   transform: rotate(40deg);  opacity: 0.06; width: clamp(24px, 3.5vw, 48px); }
  .page-head__paw--f { top: 52%;  right: 3%;  transform: rotate(-10deg); opacity: 0.06; width: clamp(22px, 3.2vw, 44px); }

  /* ── Subtle dot pattern overlay ── */
  .page-head::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    background-image: radial-gradient(rgba(212, 145, 74, 0.16) 1px, transparent 1px);
    background-size: 22px 22px;
    background-position: 0 0;
    mask-image: radial-gradient(ellipse at center, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0.18) 45%, transparent 75%);
    -webkit-mask-image: radial-gradient(ellipse at center, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0.18) 45%, transparent 75%);
    pointer-events: none;
  }

  @media (max-width: 599px) {
    .page-head__paw--c,
    .page-head__paw--e,
    .page-head__paw--f { display: none; }
  }

  .page-head__eyebrow {
    font-family: 'Ubuntu', sans-serif;
    display: inline-block;
    font-size: 11px;
    letter-spacing: 0.32em;
    color: var(--amber);
    font-weight: 700;
    margin-bottom: 14px;
  }
  .page-head__eyebrow::after {
    content: '';
    display: block;
    width: 24px;
    height: 1px;
    background: var(--amber);
    margin: 8px auto 0;
  }
  .page-head__title {
    font-family: 'Noto Serif JP', 'Hiragino Mincho ProN', 'Yu Mincho', serif;
    font-size: clamp(22px, 3vw, 34px);
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--dark);
    line-height: 1.55;
  }
  .page-head__lead {
    margin-top: clamp(16px, 2vw, 24px);
    font-size: clamp(12px, 1vw, 14px);
    line-height: 2;
    letter-spacing: 0.06em;
    color: var(--mid);
    max-width: 680px;
    margin-left: auto;
    margin-right: auto;
  }

  /* ════════════════════════════════════════════════════════════
     POLICY BODY
  ════════════════════════════════════════════════════════════ */
  .policy {
    padding: clamp(48px, 7vw, 96px) var(--pad-x-page);
    max-width: 880px;
    margin: 0 auto;
  }
  .policy__intro {
    font-size: clamp(13px, 1.05vw, 15px);
    line-height: 2.1;
    letter-spacing: 0.06em;
    color: var(--dark);
    margin-bottom: clamp(28px, 3.5vw, 44px);
  }

  .policy__article {
    padding: clamp(28px, 3.6vw, 44px) 0;
    border-top: 1px solid rgba(45, 40, 32, 0.14);
  }
  .policy__article:last-child {
    border-bottom: 1px solid rgba(45, 40, 32, 0.14);
  }
  .policy__art-head {
    display: grid;
    grid-template-columns: clamp(56px, 7vw, 88px) 1fr;
    gap: clamp(14px, 2vw, 28px);
    align-items: baseline;
    margin-bottom: clamp(14px, 1.6vw, 20px);
  }
  .policy__art-num {
    font-family: 'Ubuntu', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.32em;
    color: var(--amber);
    line-height: 1;
    padding-top: 6px;
  }
  .policy__art-title {
    font-family: 'Noto Serif JP', 'Hiragino Mincho ProN', 'Yu Mincho', serif;
    font-size: clamp(16px, 1.6vw, 20px);
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--dark);
    line-height: 1.55;
  }
  .policy__art-body {
    grid-column: 2 / -1;
    font-size: clamp(13px, 1.05vw, 15px);
    line-height: 2.1;
    letter-spacing: 0.05em;
    color: var(--dark);
  }
  .policy__art-body p + p,
  .policy__art-body p + ul,
  .policy__art-body ul + p {
    margin-top: clamp(10px, 1.2vw, 14px);
  }
  .policy__list {
    display: flex;
    flex-direction: column;
    gap: clamp(6px, 0.8vw, 10px);
    margin-top: clamp(8px, 1vw, 12px);
  }
  .policy__list li {
    position: relative;
    padding-left: 1.3em;
    font-size: clamp(13px, 1.05vw, 15px);
    line-height: 2;
    letter-spacing: 0.05em;
    color: var(--dark);
  }
  .policy__list li::before {
    content: '';
    position: absolute;
    left: 0.2em;
    top: 0.95em;
    width: 6px;
    height: 1px;
    background: var(--amber);
  }
  .policy__art-body em {
    font-style: normal;
    font-size: 0.92em;
    color: var(--mid);
    letter-spacing: 0.04em;
  }

  @media (max-width: 599px) {
    .policy__art-head {
      grid-template-columns: 1fr;
      gap: 6px;
    }
    .policy__art-num {
      padding-top: 0;
      letter-spacing: 0.28em;
    }
    .policy__art-body {
      grid-column: 1 / -1;
    }
  }

  /* ── Contact card (Article 7) ── */
  .policy__contact {
    margin-top: clamp(12px, 1.6vw, 18px);
    padding-top: clamp(12px, 1.6vw, 18px);
    border-top: 1px dashed rgba(212, 145, 74, 0.32);
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: clamp(13px, 1.05vw, 15px);
    line-height: 1.9;
    letter-spacing: 0.05em;
  }
  .policy__contact-name {
    font-weight: 700;
    color: var(--dark);
  }
  .policy__contact a {
    color: var(--amber-deep);
    border-bottom: 1px solid rgba(180, 112, 48, 0.32);
    transition: color 0.2s, border-color 0.2s;
  }
  .policy__contact a:hover {
    color: var(--amber);
    border-bottom-color: var(--amber);
  }

  .policy__tbd {
    display: inline-block;
    font-family: 'Ubuntu', sans-serif;
    font-size: 0.9em;
    color: var(--amber-deep);
    font-weight: 500;
    letter-spacing: 0.04em;
    opacity: 0.85;
  }

  /* ════════════════════════════════════════════════════════════
     META FOOT (制定日 / 最終更新日)
  ════════════════════════════════════════════════════════════ */
  .policy-meta {
    padding: clamp(16px, 2vw, 24px) var(--pad-x-page) clamp(56px, 8vw, 96px);
    max-width: 880px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: clamp(16px, 3vw, 36px);
    font-family: 'Ubuntu', sans-serif;
    font-size: 11px;
    letter-spacing: 0.22em;
    color: var(--mid);
    text-transform: uppercase;
  }
  .policy-meta__item {
    display: inline-flex;
    align-items: baseline;
    gap: 8px;
  }
  .policy-meta__label {
    color: var(--amber);
    font-weight: 700;
  }

  /* ════════════════════════════════════════════════════════════
     SITE FOOTER (shared with index/tokutei)
  ════════════════════════════════════════════════════════════ */
  .site-foot {
    background: var(--bg-warm);
    padding: clamp(48px, 6vw, 72px) var(--pad-x-page) clamp(28px, 3vw, 40px);
  }
  .site-foot__inner {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: clamp(28px, 3.5vw, 40px);
  }
  .site-foot__top {
    display: flex;
    flex-wrap: wrap;
    gap: clamp(24px, 4vw, 48px);
    align-items: flex-start;
    justify-content: space-between;
  }
  .site-foot__brand {
    display: flex;
    align-items: center;
    gap: 14px;
  }
  .site-foot__brand svg {
    width: clamp(40px, 4vw, 52px);
    height: clamp(40px, 4vw, 52px);
    color: var(--amber);
    flex-shrink: 0;
  }
  .site-foot__brand-text { display: flex; flex-direction: column; line-height: 1.15; }
  .site-foot__brand-name {
    font-family: 'Ubuntu', sans-serif;
    font-size: clamp(18px, 1.8vw, 22px);
    font-weight: 500;
    letter-spacing: 0.32em;
    color: var(--dark);
    padding-left: 0.32em;
  }
  .site-foot__brand-sub {
    margin-top: 4px;
    font-size: 10px;
    letter-spacing: 0.24em;
    color: var(--mid);
    font-weight: 400;
  }
  .site-foot__legal {
    display: flex;
    flex-wrap: wrap;
    gap: clamp(18px, 2.4vw, 32px);
    align-items: center;
  }
  .site-foot__legal a {
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.08em;
    color: var(--dark);
    padding: 4px 0;
    border-bottom: 1px solid transparent;
    transition: color 0.2s, border-color 0.2s;
  }
  .site-foot__legal a:hover {
    color: var(--amber);
    border-bottom-color: var(--amber);
  }
  .site-foot__bottom {
    padding-top: clamp(20px, 2.4vw, 28px);
    border-top: 1px solid rgba(45, 40, 32, 0.1);
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: space-between;
    align-items: center;
  }
  .site-foot__copy {
    font-family: 'Ubuntu', sans-serif;
    font-size: 10px;
    letter-spacing: 0.22em;
    color: var(--mid);
    text-transform: uppercase;
  }
  .site-foot__addr {
    font-size: 11px;
    letter-spacing: 0.06em;
    color: var(--mid);
    line-height: 1.7;
  }
  @media (max-width: 599px) {
    .site-foot__top { flex-direction: column; align-items: flex-start; }
    .site-foot__bottom { flex-direction: column; align-items: flex-start; }
  }
