
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    :root {
      --cream: #fff8f4;
      --white: #ffffff;
      --pink: #ff6b9d;
      --pink-light: #ffd6e8;
      --pink-pale: #fff0f7;
      --coral: #ff8c69;
      --orange: #ffb347;
      --yellow: #ffe66d;
      --mint: #7edebd;
      --lavender: #c4b5fd;
      --purple: #a78bfa;
      --text: #2d2235;
      --text-mid: #6b5b7a;
      --text-light: #9d8aaa;
      --border: #f0e6ee;
      --shadow: 0 8px 32px rgba(255,107,157,0.12);
      --shadow-card: 0 4px 20px rgba(45,34,53,0.08);
      --radius: 24px;
      --radius-sm: 14px;
    }

    html { scroll-behavior: smooth; }

    body {
      font-family: 'Noto Sans JP', sans-serif;
      background: var(--cream);
      color: var(--text);
      line-height: 1.7;
      overflow-x: hidden;
    }

    /* ── Utility ── */
    .pink-text { color: var(--pink); }

    .grad {
      background: linear-gradient(135deg, #ff6b9d, #ffb347);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }

    .container {
      max-width: 1080px;
      margin: 0 auto;
      padding: 0 32px;
    }

    /* ── Header ── */
    header {
      position: fixed;
      top: 0; left: 0; right: 0;
      z-index: 100;
      height: 68px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 0 40px;
      background: rgba(255,248,244,0.88);
      backdrop-filter: blur(20px);
      -webkit-backdrop-filter: blur(20px);
      border-bottom: 1.5px solid var(--border);
    }

    .logo {
      font-family: 'Poppins', sans-serif;
      font-weight: 900;
      font-size: 1.15rem;
      letter-spacing: 0.01em;
      text-decoration: none;
      color: var(--text);
    }

    .logo span {
      background: linear-gradient(135deg, #ff6b9d, #ffb347);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }

    nav {
      display: flex;
      align-items: center;
      gap: 32px;
    }

    nav a {
      font-size: 0.85rem;
      font-weight: 500;
      color: var(--text-mid);
      text-decoration: none;
      transition: color 0.2s;
    }

    nav a:hover { color: var(--pink); }

    .nav-cta {
      background: linear-gradient(135deg, #ff6b9d, #ffb347);
      color: white !important;
      padding: 10px 24px;
      border-radius: 100px;
      font-weight: 700 !important;
      font-size: 0.82rem !important;
      box-shadow: 0 4px 16px rgba(255,107,157,0.35);
      transition: transform 0.2s, box-shadow 0.2s !important;
    }

    .nav-cta:hover {
      transform: translateY(-2px) !important;
      box-shadow: 0 8px 24px rgba(255,107,157,0.45) !important;
    }

    .hamburger {
      display: none;
      flex-direction: column;
      gap: 5px;
      cursor: pointer;
    }
    .hamburger span {
      display: block;
      width: 24px;
      height: 2.5px;
      background: var(--pink);
      border-radius: 4px;
      transition: 0.3s;
    }

    .mobile-nav {
      display: none;
      position: fixed;
      top: 68px; left: 0; right: 0;
      z-index: 99;
      background: rgba(255,248,244,0.97);
      backdrop-filter: blur(20px);
      padding: 20px 32px 28px;
      border-bottom: 1.5px solid var(--border);
      flex-direction: column;
      gap: 4px;
    }
    .mobile-nav.open { display: flex; }
    .mobile-nav a {
      color: var(--text-mid);
      text-decoration: none;
      font-size: 0.95rem;
      font-weight: 500;
      padding: 12px 0;
      border-bottom: 1px solid var(--border);
    }
    .mobile-nav a:last-child { border: none; }

    /* ── Section ── */
    section { padding: 96px 0; }

    .section-tag {
      display: inline-block;
      background: var(--pink-pale);
      color: var(--pink);
      font-family: 'Poppins', sans-serif;
      font-size: 0.7rem;
      font-weight: 700;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      padding: 5px 14px;
      border-radius: 100px;
      margin-bottom: 16px;
      border: 1.5px solid var(--pink-light);
    }

    .section-title {
      font-size: clamp(1.9rem, 3.5vw, 2.8rem);
      font-weight: 900;
      line-height: 1.25;
      letter-spacing: -0.02em;
      margin-bottom: 16px;
    }

    .section-sub {
      font-size: 1rem;
      color: var(--text-mid);
      line-height: 1.85;
      max-width: 520px;
    }

    /* ── Fade-up ── */
    .fade-up {
      opacity: 0;
      transform: translateY(32px);
      transition: opacity 0.65s ease, transform 0.65s ease;
    }
    .fade-up.visible { opacity: 1; transform: translateY(0); }
    .fade-up.d1 { transition-delay: 0.1s; }
    .fade-up.d2 { transition-delay: 0.2s; }
    .fade-up.d3 { transition-delay: 0.3s; }
    .fade-up.d4 { transition-delay: 0.4s; }

    /* ── Buttons ── */
    .btn {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 14px 32px;
      border-radius: 100px;
      font-weight: 700;
      font-size: 0.93rem;
      text-decoration: none;
      cursor: pointer;
      border: none;
      transition: transform 0.2s, box-shadow 0.2s;
      letter-spacing: 0.01em;
    }
    .btn:hover { transform: translateY(-3px); }

    .btn-pink {
      background: linear-gradient(135deg, #ff6b9d, #ff8c69);
      color: white;
      box-shadow: 0 6px 20px rgba(255,107,157,0.4);
    }
    .btn-pink:hover { box-shadow: 0 10px 28px rgba(255,107,157,0.5); }

    .btn-outline {
      background: white;
      color: var(--pink);
      border: 2px solid var(--pink-light);
      box-shadow: var(--shadow-card);
    }
    .btn-outline:hover { border-color: var(--pink); }

    footer {
      background: var(--cream);
      border-top: 1.5px solid var(--border);
      padding: 44px 0 32px;
    }

    .footer-inner {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      flex-wrap: wrap;
      gap: 28px;
      margin-bottom: 28px;
    }

    .footer-logo {
      font-family: 'Poppins', sans-serif;
      font-weight: 900;
      font-size: 1.1rem;
      color: var(--text);
      text-decoration: none;
    }

    .footer-logo span {
      background: linear-gradient(135deg, #ff6b9d, #ffb347);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }

    .footer-tagline {
      font-size: 0.78rem;
      color: var(--text-light);
      margin-top: 4px;
    }

    .footer-links {
      display: flex;
      flex-wrap: wrap;
      gap: 8px 24px;
    }

    .footer-links a {
      font-size: 0.82rem;
      color: var(--text-mid);
      text-decoration: none;
      transition: color 0.2s;
    }

    .footer-links a:hover { color: var(--pink); }

    .footer-copy {
      text-align: center;
      font-size: 0.75rem;
      color: var(--text-light);
      padding-top: 20px;
      border-top: 1.5px solid var(--border);
    }


/* Content pages: retain the homepage palette, typography and shared chrome. */
header { position: sticky; gap: 20px; }
header nav { flex-wrap: wrap; gap: 12px 24px; }
main { max-width: 960px; margin: auto; padding: 28px 32px 64px; }
.breadcrumb { display: block; font-size: .78rem; margin-bottom: 24px; }
.breadcrumb ol { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; }
.breadcrumb li + li::before { content: '/'; margin-right: 8px; color: var(--text-mid); }
a { color: #934361; text-underline-offset: 4px; }
a:focus-visible { outline: 3px solid #934361; outline-offset: 5px; }
.skip-link { position: absolute; left: 16px; top: -100px; z-index: 200; padding: 12px; background: white; }
.skip-link:focus { top: 8px; }
.page-hero { padding: 36px 0 40px; }
h1 { font-size: clamp(1.85rem, 4vw, 3rem); line-height: 1.45; letter-spacing: -.025em; margin: 8px 0 24px; }
.lead { color: var(--text-mid); font-size: 1.02rem; }
.lead span { display: block; margin-top: 8px; }
section.content-section { padding: 32px; margin: 0 0 24px; background: var(--white); border: 1.5px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-card); }
h2 { font-size: clamp(1.3rem, 2.5vw, 1.65rem); margin-bottom: 18px; line-height: 1.5; }
h3 { font-size: 1rem; margin-bottom: 8px; }
p + p { margin-top: 14px; }
ul, ol { padding-left: 1.5em; }
li + li { margin-top: 10px; }
.breadcrumb li + li { margin-top: 0; }
table { border-collapse: collapse; width: 100%; margin: 20px 0; font-size: .92rem; }
caption { text-align: left; font-size: .85rem; color: var(--text-mid); margin-bottom: 10px; }
th, td { text-align: left; padding: 14px 12px; border-bottom: 1px solid var(--border); }
thead { background: var(--pink-pale); }
.model-links, .related-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; list-style: none; padding: 0; }
.model-links li, .related-links li { margin: 0; }
.model-links a, .related-links a { display: block; padding: 16px; border: 1px solid var(--pink-light); border-radius: var(--radius-sm); background: var(--pink-pale); height: 100%; text-decoration: none; }
.faq-item + .faq-item { border-top: 1px solid var(--border); margin-top: 24px; padding-top: 24px; }
.cta { text-align: center; background: linear-gradient(135deg, var(--pink-pale), var(--cream)) !important; }
.cta .btn { margin-top: 20px; color: var(--text); background: linear-gradient(135deg, var(--pink-light), var(--orange)); }
.footer-tagline, .footer-copy { color: var(--text-mid); }
.footer-info { font-size: .8rem; color: var(--text-mid); margin-bottom: 24px; }
@media (max-width: 700px) {
 header { height: auto; min-height: 68px; padding: 14px 20px; flex-wrap: wrap; }
 header nav { width: 100%; gap: 8px 16px; }
 header nav a { font-size: .78rem; }
 .nav-cta { padding: 8px 14px; }
 main { padding: 24px 20px 40px; }
 .container { padding: 0 20px; }
 section.content-section { padding: 24px 20px; }
 .page-hero { padding-top: 16px; }
 .model-links, .related-links { grid-template-columns: 1fr; }
 th, td { padding: 12px 6px; font-size: .8rem; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }

/* 画像（用途ページ） */
.page-figure{margin:0 0 28px;}
.page-figure img{display:block;width:100%;height:auto;border-radius:20px;box-shadow:0 10px 30px rgba(45,34,53,.08);}
.page-figure figcaption{margin-top:8px;font-size:12px;color:var(--text-mid,#6b5b7a);text-align:right;}
.page-figure--hero{margin-top:8px;}
@media (max-width:640px){.page-figure img{border-radius:14px;}}
