@font-face {
        font-family: "Utsukushi Mincho";
        src: url("./utsukushi-mincho.woff2") format("woff2");
        font-weight: 400 700;
        font-style: normal;
        font-display: swap;
      }
      html { scroll-behavior: smooth; }
      :root {
        --ink: #594552;
        --muted: #8a7380;
        --pink: #f8bfd5;
        --rose: #df4b8d;
        --sky: #90d7f4;
        --yellow: #f7df70;
        --cream: #fff8e9;
        --paper: #fff7fb;
        font-family: "Noto Sans JP", "Yu Gothic", system-ui, sans-serif;
      }
      * { box-sizing: border-box; }
      body { margin: 0; color: var(--ink); background: var(--paper); }
      a { color: inherit; text-decoration: none; }
      .brand { transition: opacity .2s ease; }
      .brand:hover { opacity: .86; }
      .floating-nav {
        position: fixed; top: 18px; left: 50%; transform: translateX(-50%); z-index: 10;
        display: flex; gap: 8px; align-items: center; width: fit-content; max-width: min(1120px, calc(100% - 28px)); padding: 14px 20px; overflow-x: auto; scrollbar-width: none;
        border-radius: 999px; background: rgba(255,255,255,.82); box-shadow: 0 16px 48px rgba(117,75,105,.15); backdrop-filter: blur(16px);
      }
      .floating-nav::-webkit-scrollbar { display: none; }
      .floating-nav img { width: 78px; }
      .floating-nav a { flex: 0 0 auto; padding: 10px 13px; border-radius: 999px; font-size: .78rem; font-weight: 800; white-space: nowrap; }
      .floating-nav .cta { color: white; background: linear-gradient(135deg, var(--rose), var(--sky)); }

      .site-header {
        position: sticky;
        top: 0;
        z-index: 20;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 20px;
        padding: 14px clamp(18px, 4vw, 42px);
        background: rgba(255, 247, 251, .94);
        border-bottom: 1px solid #f0d8e4;
        box-shadow: 0 16px 48px rgba(117, 75, 105, .12);
        backdrop-filter: blur(16px);
      }
      .brand { display: inline-flex; align-items: center; flex: 0 0 auto; }
      .brand img { display: block; width: clamp(66px, 6vw, 80px); height: auto; }
      .site-header nav { display: flex; align-items: center; justify-content: flex-end; gap: 8px; font-size: .92rem; font-weight: 800; }
      .site-header nav a { padding: 10px 12px; border-radius: 999px; white-space: nowrap; }
      .site-header nav a:hover { background: rgba(248, 191, 213, .26); }
      .nav-toggle {
        display: none;
        width: 44px;
        height: 44px;
        padding: 0;
        border: 0;
        background: transparent;
        cursor: pointer;
      }
      .nav-toggle span {
        display: block;
        width: 28px;
        height: 3px;
        margin: 5px auto;
        border-radius: 999px;
        background: var(--ink);
        transition: transform .25s ease, opacity .25s ease;
      }
      .footer-brand {
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
      }
      .footer-logo-link { display: inline-flex; transition: opacity .2s ease; }
      .footer-logo-link:hover { opacity: .86; }
      .footer-logo { display: block; width: min(210px, 62vw); height: auto; }
      .footer-nav {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, auto));
        grid-template-rows: repeat(4, auto);
        grid-auto-flow: column;
        gap: 12px 40px;
        font-size: .92rem;
      }
      .footer-nav a { color: #f5dfea; font-weight: 700; white-space: nowrap; }
      .footer-nav a:hover { color: #fff; }
      footer {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        gap: 40px;
        padding: 36px clamp(18px, 4vw, 56px);
        color: white;
        background: #594552;
      }
      footer p { color: #f5dfea; margin: 8px 0 0; font-family: "Utsukushi Mincho", "游明朝体", "Yu Mincho", "Hiragino Mincho ProN", serif; }
      @media (max-width: 1024px) {
        .nav-toggle { display: block; }
        .site-header nav {
          position: absolute;
          top: 100%;
          left: 0;
          right: 0;
          flex-direction: column;
          align-items: stretch;
          gap: 0;
          padding: 0;
          background: rgba(255, 247, 251, .98);
          border-bottom: 1px solid #f0d8e4;
          box-shadow: 0 18px 40px rgba(117, 75, 105, .14);
          max-height: 0;
          overflow: hidden;
          transition: max-height .3s ease;
        }
        .site-header.open nav { max-height: 78vh; overflow-y: auto; }
        .site-header nav a { padding: 14px 22px; border-radius: 0; border-bottom: 1px solid rgba(240, 216, 228, .72); }
        .site-header nav a:last-child { border-bottom: 0; }
        .site-header.open .nav-toggle span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
        .site-header.open .nav-toggle span:nth-child(2) { opacity: 0; }
        .site-header.open .nav-toggle span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
        footer { display: grid; grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 28px; }
        .footer-nav { display: none; }
      }
      .hero {
        min-height: auto; display: grid; place-items: start center; padding: clamp(20px, 3vw, 36px) 20px 56px; position: relative; overflow: hidden;
        background:
          radial-gradient(circle at 15% 25%, rgba(247,223,112,.55), transparent 16%),
          radial-gradient(circle at 85% 20%, rgba(144,215,244,.48), transparent 22%),
          radial-gradient(circle at 55% 78%, rgba(248,191,213,.58), transparent 28%),
          linear-gradient(180deg, #fff9fb, #fff6ec);
      }
      .hero-card {
        width: min(100%, 980px); padding: clamp(32px, 7vw, 78px); text-align: center; position: relative;
        border-radius: 52px; background: rgba(255,255,255,.72); box-shadow: 0 30px 100px rgba(149,94,128,.18);
      }
      .hero-card img { width: min(100%, 480px); margin-bottom: 24px; }
      .kicker { margin: 0 0 12px; color: var(--rose); font-weight: 900; }
      h1 { margin: 0; font-family: "Utsukushi Mincho", "游明朝体", "Yu Mincho", "Hiragino Mincho ProN", serif; font-weight: 600; font-size: clamp(2.1rem, 6vw, 5rem); line-height: 1.12; }
      .lead { margin: 22px auto 0; max-width: 560px; color: var(--muted); font-size: 1.16rem; line-height: 1.9; }
      .actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-top: 30px; }
      .button { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 22px; border-radius: 999px; font-weight: 900; transition: transform .2s ease, box-shadow .2s ease, filter .2s ease; }
      .primary { color: white; background: linear-gradient(135deg, var(--rose), var(--sky)); box-shadow: 0 18px 40px rgba(223,75,141,.25); }
      .button.primary:hover { transform: translateY(-2px); filter: brightness(1.04); box-shadow: 0 22px 46px rgba(223,75,141,.3); }
      .secondary { background: white; border: 1px solid #f0d8e4; }
      section { padding: clamp(58px, 8vw, 100px) 20px; }
      .inner { max-width: 1120px; margin: 0 auto; }
      .story { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: stretch; }
      .story-card { padding: clamp(28px, 5vw, 48px); border-radius: 36px; background: white; box-shadow: 0 18px 70px rgba(149,94,128,.12); }
      .label { color: var(--rose); font-weight: 900; margin: 0 0 10px; }
      h2 { margin: 0 0 14px; font-family: "Utsukushi Mincho", "游明朝体", "Yu Mincho", "Hiragino Mincho ProN", serif; font-weight: 600; font-size: clamp(1.4rem, 2.6vw, 2.1rem); line-height: 1.3; }
      .nb { white-space: nowrap; }
      h3 { margin: 0 0 10px; font-size: 1.28rem; }
      p { color: var(--muted); line-height: 1.9; }
      .points-wrap { background: linear-gradient(135deg, #ffe8f1, #eefaff); }
      .points-lead { padding: clamp(28px, 5vw, 48px); border-radius: 34px; background: rgba(255,255,255,.74); box-shadow: 0 18px 70px rgba(149,94,128,.12); }
      .points { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; margin-top: clamp(30px, 4vw, 48px); }
      .point { min-height: 220px; padding: 30px; border-radius: 34px; background: white; }
      .num { display: inline-grid; place-items: center; width: 54px; height: 54px; border-radius: 50%; color: white; background: linear-gradient(135deg, var(--pink), var(--sky)); font-weight: 900; margin-bottom: 18px; }
      .point-label { display: block; margin-bottom: 10px; color: var(--rose); font-weight: 900; font-size: 1.4rem; line-height: 1.3; }
      .program { display: grid; gap: 20px; }
      .work { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, .8fr); gap: 24px; align-items: stretch; padding: 28px; border-radius: 30px; background: white; border: 1px solid #f1dce8; position: relative; overflow: hidden; }
      .work::after { content: ""; position: absolute; width: 150px; height: 150px; left: -48px; bottom: -52px; border-radius: 50%; background: rgba(144,215,244,.25); z-index: 0; }
      .work > * { position: relative; z-index: 1; }
      .work-number { color: var(--rose); font-size: 2.5rem; line-height: 1; font-weight: 900; }
      .work-photo { width: 100%; min-height: 220px; height: 100%; object-fit: cover; border-radius: 22px; display: block; }
      .work-photo-stack { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; height: 100%; }
      .work-photo-stack .work-photo { min-height: 0; height: 100%; }
      .work-photo-stack .work-photo:first-child { grid-row: span 2; }
      .album { display: grid; grid-template-columns: 1.2fr .8fr; gap: 18px; }
      .album img { width: 100%; height: 260px; object-fit: cover; display: block; border: 10px solid white; border-radius: 34px; box-shadow: 0 18px 60px rgba(149,94,128,.14); }
      .album img:first-child { height: 540px; grid-row: span 2; }
      #access { background: linear-gradient(135deg, #fff8ec, #f1fbff); }
      .access { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; align-items: start; }
      .access-appeal { grid-column: 1 / -1; padding: 28px 32px; border-radius: 32px; background: rgba(255,255,255,.78); box-shadow: 0 18px 70px rgba(149,94,128,.1); text-align: center; }
      .access-appeal p { margin: 0; color: var(--rose); font-family: "Utsukushi Mincho", "游明朝体", "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(1.45rem, 3vw, 2.4rem); line-height: 1.35; }
      .points + .access-appeal { margin-top: clamp(24px, 4vw, 42px); }
      .access-card { padding: 32px; border-radius: 32px; background: white; box-shadow: 0 18px 70px rgba(149,94,128,.1); }
      .station-note { margin: -4px 0 0; color: var(--muted); font-weight: 700; }
      .map-card { overflow: hidden; min-height: 280px; margin-top: 24px; border-radius: 24px; background: white; }
      .map-card iframe { display: block; width: 100%; height: 280px; border: 0; }
      .contact { display: grid; gap: 10px; }
      .design-2-home .access { grid-template-columns: minmax(280px, .85fr) minmax(320px, 1.15fr); gap: 52px; align-items: stretch; }
      .design-2-home .map-card { min-height: 360px; margin-top: 0; box-shadow: 0 18px 70px rgba(149,94,128,.1); }
      .design-2-home .map-card iframe { height: 100%; min-height: 360px; }
      .design-2-home .contact { margin-top: 24px; }
      .contact > * { display: block; padding: 15px 18px; border-radius: 999px; background: #fff1f7; font-weight: 900; }
      .contact a:hover { background: linear-gradient(135deg, rgba(248,191,213,.55), rgba(144,215,244,.42)); }
      .social-links { display: flex; justify-content: center; gap: 14px; padding: clamp(42px, 6vw, 64px) 20px 0; }
      .social-button { min-width: 132px; padding: 14px 22px; border-radius: 999px; color: white; font-weight: 900; text-align: center; box-shadow: 0 16px 34px rgba(149,94,128,.14); }
      .social-twitter { background: linear-gradient(135deg, #7bc8ee, #6c98d9); }
      .social-instagram { background: linear-gradient(135deg, #e94f99, #f2bdcf); }
      .social-button:hover { filter: brightness(1.04); }
      .wam-link { display: flex; align-items: center; justify-content: center; gap: 14px; max-width: 1120px; margin: 0 auto; padding: 30px 20px 42px; color: var(--muted); }
      .wam-link p { margin: 0; font-weight: 700; }
      .wam-link span { color: var(--rose); font-size: 1.25rem; font-weight: 900; }
      .wam-link a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 18px; border-radius: 999px; background: white; border: 1px solid #f0d8e4; color: var(--ink); font-weight: 900; box-shadow: 0 14px 32px rgba(149,94,128,.1); }
      .wam-link a:hover { background: linear-gradient(135deg, rgba(248,191,213,.35), rgba(144,215,244,.3)); }
      footer { padding: 26px 20px; text-align: center; color: white; background: #594552; }
      footer img { width: min(210px, 62vw); }
      footer p { color: #f5dfea; margin: 8px 0 0; font-family: "Utsukushi Mincho", "游明朝体", "Yu Mincho", "Hiragino Mincho ProN", serif; }
      @media (max-width: 780px) {
        .story, .access { grid-template-columns: 1fr; }
        .points { grid-template-columns: 1fr; }
        .work { grid-template-columns: 1fr; }
        .work-photo { height: 240px; }
        .work-photo-stack { grid-template-columns: 1fr; }
        .work-photo-stack .work-photo:first-child { grid-row: auto; }
        .album { grid-template-columns: 1fr; }
        .album img, .album img:first-child { height: 250px; }
      }
      @media (max-width: 520px) {
        .floating-nav { width: calc(100% - 28px); }
        .floating-nav img { width: 106px; }
        .brand img { width: 104px; }
        h1 { font-size: 2.35rem; }
        .hero { min-height: auto; padding: 18px 12px 28px; }
        .hero-card { padding: 30px 20px; border-radius: 34px; }
        .button { width: 100%; }
        .social-links { flex-direction: column; }
        .wam-link { flex-wrap: wrap; }
      }

      .design-2-home {
        --home-section-edge: clamp(34px, 5vw, 58px);
      }
      .design-2-home .hero,
      .design-2-home main > section:not(.wam-link) {
        padding-top: var(--home-section-edge);
        padding-bottom: var(--home-section-edge);
      }
      .design-2-home .hero {
        place-items: start center;
      }
      @media (max-width: 520px) {
        .design-2-home {
          --home-section-edge: 28px;
        }
        .design-2-home .hero,
        .design-2-home main > section:not(.wam-link) {
          padding-top: var(--home-section-edge);
          padding-bottom: var(--home-section-edge);
        }
      }

      footer {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        gap: 40px;
        padding: 36px clamp(18px, 4vw, 56px);
        color: white;
        background: #594552;
        text-align: left;
      }
      footer img.footer-logo { width: min(210px, 62vw); }
      .footer-nav {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, auto));
        grid-template-rows: repeat(4, auto);
        grid-auto-flow: column;
        gap: 12px 40px;
      }
      @media (max-width: 1024px) {
        footer { display: grid; grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 28px; }
        .footer-nav { display: none; }
      }

      .design-2-subpage {
        background:
          radial-gradient(circle at 14% 12%, rgba(247, 223, 112, .18), transparent 26%),
          radial-gradient(circle at 86% 8%, rgba(144, 215, 244, .18), transparent 30%),
          var(--paper);
      }

      .design-2-subpage .subpage-hero {
        background:
          radial-gradient(circle at 18% 26%, rgba(247, 223, 112, .28), transparent 28%),
          radial-gradient(circle at 84% 18%, rgba(144, 215, 244, .3), transparent 32%),
          linear-gradient(135deg, #fff9fb, #f2fbff);
      }

      .design-2-subpage .subpage-panel,
      .design-2-subpage .news-intro,
      .design-2-subpage .news-logo-card,
      .design-2-subpage .philosophy-card,
      .design-2-subpage .greeting-card {
        border-radius: 32px;
        background-color: rgba(255, 255, 255, .78);
        box-shadow: 0 18px 70px rgba(149, 94, 128, .12);
      }

      .design-2-subpage .staff-photo-section {
        display: flex;
        justify-content: center;
      }

      .design-2-subpage .staff-photo-section img {
        display: block;
        width: min(100%, clamp(520px, 58vw, 760px));
        height: auto;
        border-radius: 32px;
        box-shadow: 0 18px 70px rgba(149, 94, 128, .12);
      }

      .design-2-subpage .subpage-panel h2,
      .design-2-subpage .subpage-panel h3 {
        color: var(--rose);
      }

      .design-2-subpage .subpage-hero h1 {
        color: var(--ink);
      }

      .design-2-subpage .subpage-content {
        padding-top: clamp(24px, 4vw, 46px);
      }

      .design-2-subpage.page-faq .faq-contact {
        padding: 0;
        margin: clamp(46px, 5vw, 58px) 0;
      }

      .design-2-subpage .footer-logo-link {
        display: inline-block;
      }
