      /* ════════════════════════════════════════
         DESIGN TOKENS
      ════════════════════════════════════════ */
      :root {
        --ink:        #000;
        --ink-mid:    #444;
        --ink-lite:   #333;
        --parchment:  #f8f4ee;
        --cream:      #fdfcf9;
        --pale-green: #ebf2e8;
        --pale-warm:  #f3ede5;
        --stone:      #d6d1c7;
        --forest:     #1e4823;
        --forest-mid: #2f6435;
        --sage:       #4a7a50;
        --terracotta: #9b4e2c;
        --gold:       #a67c2f;

        --font-display: 'Playfair Display', Georgia, serif;
        --font-en:      'Cormorant Garamond', Georgia, serif;
        --font-jp:      'Noto Serif JP', serif;
        --font-ui:      'Noto Sans JP', sans-serif;

        --gap-sm: 1.5rem;
        --gap-md: 2.5rem;
        --gap-lg: 3.5rem;
        --gap-xl: 6rem;

        --pad-x:  7vw;
        --nav-h:  68px;
      }

      /* ════════════════════════════════════════
         RESET
      ════════════════════════════════════════ */
      *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
      html { scroll-behavior: smooth; }
      body {
        background: var(--parchment);
        color: var(--ink);
        font-family: var(--font-jp);
        font-weight: 300;
        line-height: 1.9;
        font-size: 15px;
        -webkit-font-smoothing: antialiased;
      }
      img { display: block; width: 100%; height: 100%; object-fit: cover; }
      a { color: inherit; text-decoration: none; }
      ul { list-style: none; }

      /* ════════════════════════════════════════
         NAV
      ════════════════════════════════════════ */
      nav.js-header {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        z-index: 200;
        height: var(--nav-h);
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 0 var(--pad-x);
        background: rgba(248, 244, 238, 0.93);
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
        border-bottom: 1px solid rgba(214, 209, 199, 0.55);
        border-top: 3px solid var(--forest);
        transition: box-shadow 0.3s, background 0.5s, border-color 0.5s;
      }
      nav.scrolled { box-shadow: 0 2px 24px rgba(0,0,0,0.07); }
      nav.is-nav-open {
        background: transparent !important;
        border-bottom-color: transparent !important;
        border-top-color: transparent !important;
        backdrop-filter: none !important;
        box-shadow: none !important;
      }
      nav.is-nav-open .nav-logo-text strong,
      nav.is-nav-open .nav-logo-text small { color: rgba(253,252,249,0.8); }
      nav.is-nav-open .nav-logo-icon svg { color: var(--cream); }
      .nav-logo {
        display: flex;
        align-items: center;
        gap: 0.7rem;
        flex-shrink: 0;
        text-decoration: none;
      }
      .nav-logo-icon {
        width: 36px;
        height: 36px;
        border: 1px solid var(--stone);
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
      }
      .nav-logo-icon svg {
        width: 22px;
        height: 22px;
        color: var(--forest);
      }
      .nav-logo-text {
        line-height: 1.25;
      }
      .nav-logo-text strong {
        display: block;
        font-family: var(--font-en);
        font-weight: 400;
        font-size: 0.82rem;
        letter-spacing: 0.12em;
        color: var(--ink);
      }
      .nav-logo-text small {
        display: block;
        font-family: var(--font-ui);
        font-size: 0.5rem;
        font-weight: 300;
        letter-spacing: 0.35em;
        color: var(--ink-lite);
        margin-top: 1px;
      }
      .nav-links {
        display: flex;
        gap: 2rem;
        list-style: none;
      }
      .nav-links a {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 2px;
        white-space: nowrap;
        transition: color 0.2s;
        color: var(--ink);
      }
      .nav-links a:hover { color: var(--forest); }
      .nav-link-en {
        font-family: var(--font-ui);
        font-size: 0.83rem;
        font-weight: 400;
        letter-spacing: 0.1em;
      }
      .nav-link-jp {
        font-family: var(--font-ui);
        font-size: 0.78rem;
        font-weight: 400;
        letter-spacing: 0.06em;
        color: var(--ink-mid);
      }
      .nav-links a:hover .nav-link-jp { color: var(--forest); }

      /* =========================================
         Nav Links — サブメニュー（園について配下）
         ========================================= */
      .nav-has-sub { position: relative; }
      .nav-sub {
        position: absolute;
        top: 100%;
        left: 50%;
        transform: translate(-50%, 8px);
        min-width: 200px;
        list-style: none;
        margin: 0;
        padding: 0.6rem 0;
        background: var(--cream);
        border: 1px solid rgba(214, 209, 199, 0.7);
        box-shadow: 0 12px 28px rgba(0,0,0,0.08);
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s;
        z-index: 50;
      }
      .nav-has-sub:hover .nav-sub,
      .nav-has-sub:focus-within .nav-sub {
        opacity: 1;
        visibility: visible;
        transform: translate(-50%, 0);
      }
      .nav-sub li { padding: 0; }
      .nav-sub a {
        display: block;
        padding: 0.7rem 1.2rem;
        font-family: var(--font-jp);
        font-size: 0.82rem;
        font-weight: 400;
        color: var(--ink);
        letter-spacing: 0.06em;
        white-space: nowrap;
        transition: background 0.2s, color 0.2s;
      }
      .nav-sub a:hover { background: var(--pale-green); color: var(--forest); }

      .nav-btn {
        font-family: var(--font-ui);
        font-size: 0.6rem;
        letter-spacing: 0.14em;
        background: var(--forest);
        color: var(--cream);
        padding: 0.55rem 1.3rem;
        border-radius: 2rem;
        flex-shrink: 0;
        transition: opacity 0.2s;
        display: inline-flex;
        align-items: center;
        gap: 0.5rem;
        white-space: nowrap;
        text-decoration: none;
      }
      .nav-btn:hover { opacity: 0.82; }

      /* ── Hamburger button ── */
      .nav-hamburger {
        display: none;
        align-items: center;
        gap: 0.8rem;
        background: none;
        border: none;
        cursor: pointer;
        padding: 0.4rem 0;
        position: relative;
        z-index: 201;
      }
      .hamburger__label {
        font-family: var(--font-ui);
        font-size: 0.6rem;
        letter-spacing: 0.3em;
        color: var(--ink-mid);
        transition: color 0.4s;
        white-space: nowrap;
        user-select: none;
      }
      nav.is-nav-open .hamburger__label { color: rgba(253,252,249,0.7) !important; }
      .hamburger__lines {
        display: flex;
        flex-direction: column;
        gap: 7px;
        width: 28px;
      }
      .hamburger__line {
        display: block;
        height: 1px;
        background: var(--ink);
        transition: width 0.5s ease, transform 0.5s ease, background 0.4s, margin 0.5s ease;
        transform-origin: left center;
      }
      nav.is-nav-open .hamburger__line { background: var(--cream) !important; }
      .hamburger__line--top { width: 28px; }
      .hamburger__line--bot { width: 18px; margin-left: auto; }
      .nav-hamburger.is-active .hamburger__line--top {
        width: 24px;
        transform: translateY(4px) rotate(45deg);
      }
      .nav-hamburger.is-active .hamburger__line--bot {
        width: 24px;
        margin-left: 0;
        transform: translateY(-4px) rotate(-45deg);
      }

      /* ── Nav overlay (circle expand) ── */
      .nav-overlay {
        position: fixed;
        inset: 0;
        z-index: 150;
        background: var(--forest);
        clip-path: circle(0% at calc(100% - var(--pad-x) - 14px) 34px);
        transition: clip-path 0.85s cubic-bezier(0.76, 0, 0.24, 1);
        pointer-events: none;
        overflow-x: hidden;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        padding: 5.5rem var(--pad-x) 3rem;
      }
      .nav-overlay.is-open {
        clip-path: circle(150% at calc(100% - var(--pad-x) - 14px) 34px);
        pointer-events: auto;
      }
      .nav-overlay__main {
        display: flex;
        flex-direction: column;
      }
      .nav-overlay__item {
        display: flex;
        flex-direction: column;
        padding: 1.2rem 0;
        border-bottom: 1px solid rgba(253,252,249,0.07);
        position: relative;
        overflow: hidden;
        text-decoration: none;
        opacity: 0;
        transform: translateX(-24px);
        transition: opacity 0.55s ease, transform 0.55s ease;
      }
      .nav-overlay__item:first-of-type { border-top: 1px solid rgba(253,252,249,0.07); }
      .nav-overlay.is-open .nav-overlay__item:nth-of-type(1) { opacity: 1; transform: none; transition-delay: 0.22s; }
      .nav-overlay.is-open .nav-overlay__item:nth-of-type(2) { opacity: 1; transform: none; transition-delay: 0.30s; }
      .nav-overlay.is-open .nav-overlay__item:nth-of-type(3) { opacity: 1; transform: none; transition-delay: 0.38s; }
      .nav-overlay.is-open .nav-overlay__item:nth-of-type(4) { opacity: 1; transform: none; transition-delay: 0.46s; }
      .nav-overlay.is-open .nav-overlay__item:nth-of-type(5) { opacity: 1; transform: none; transition-delay: 0.54s; }
      .nav-overlay.is-open .nav-overlay__item:nth-of-type(6) { opacity: 1; transform: none; transition-delay: 0.62s; }
      .nav-overlay.is-open .nav-overlay__item:nth-of-type(7) { opacity: 1; transform: none; transition-delay: 0.70s; }
      .nav-overlay:not(.is-open) .nav-overlay__item { opacity: 0; transform: translateX(-24px); transition-delay: 0s !important; }

      /* =========================================
         Nav Overlay — サブメニュー（園について配下）
         ========================================= */
      .nav-overlay__sub {
        list-style: none;
        padding: 0.3rem 0 1rem;
        margin: 0;
        border-bottom: 1px solid rgba(253,252,249,0.07);
        opacity: 0;
        transform: translateX(-24px);
        transition: opacity 0.55s ease 0.28s, transform 0.55s ease 0.28s;
      }
      .nav-overlay.is-open .nav-overlay__sub { opacity: 1; transform: none; }
      .nav-overlay__sub li { margin-top: 0.3rem; }
      .nav-overlay__sub li:first-child { margin-top: 0; }
      .nav-overlay__sub a {
        display: block;
        font-family: var(--font-jp);
        font-size: clamp(0.9rem, 2.2vw, 1.1rem);
        color: rgba(253,252,249,0.6);
        letter-spacing: 0.08em;
        padding: 0.4rem 0 0.4rem 1.4rem;
        position: relative;
        transition: color 0.3s, transform 0.3s ease;
      }
      .nav-overlay__sub a::before {
        content: '—';
        position: absolute;
        left: 0;
        top: 0.4rem;
        color: rgba(253,252,249,0.3);
      }
      .nav-overlay__sub a:hover { color: var(--cream); transform: translateX(4px); }
      .nav-overlay__num {
        font-family: var(--font-en);
        font-style: italic;
        font-size: 0.7rem;
        letter-spacing: 0.35em;
        color: rgba(253,252,249,0.35);
        margin-bottom: 0.25rem;
        transition: color 0.3s, transform 0.3s ease;
      }
      .nav-overlay__text {
        font-family: var(--font-jp);
        font-size: clamp(1.3rem, 5vw, 2.4rem);
        font-weight: 400;
        color: rgba(253,252,249,0.72);
        letter-spacing: 0.08em;
        line-height: 1.1;
        transition: color 0.3s, transform 0.3s ease;
      }
      .nav-overlay__item:hover .nav-overlay__num { color: var(--sage); transform: translateX(6px); }
      .nav-overlay__item:hover .nav-overlay__text { color: var(--cream); transform: translateX(3px); }
      .nav-overlay__item::after {
        content: '';
        position: absolute;
        bottom: -1px; left: 0;
        width: 0; height: 1px;
        background: var(--sage);
        transition: width 0.45s ease;
      }
      .nav-overlay__item:hover::after { width: 100%; }
      .nav-overlay__foot {
        display: flex;
        gap: 1.2rem 2rem;
        flex-wrap: wrap;
        margin-top: 2rem;
        padding-top: 1.4rem;
        opacity: 0;
        transition: opacity 0.5s ease 0.7s;
      }
      .nav-overlay.is-open .nav-overlay__foot { opacity: 1; }
      .nav-overlay__foot a {
        font-family: var(--font-ui);
        font-size: 0.68rem;
        font-weight: 300;
        letter-spacing: 0.2em;
        color: rgba(253,252,249,0.45);
        text-decoration: none;
        transition: color 0.3s;
      }
      .nav-overlay__foot a:hover { color: rgba(253,252,249,0.85); }

      /* ════════════════════════════════════════
         HERO
      ════════════════════════════════════════ */
      .hero {
        height: 100svh;
        min-height: 640px;
        position: relative;
        overflow: hidden;
        padding-top: var(--nav-h);
      }
      .hero-bg {
        position: absolute;
        inset: 0;
      }
      .hero-bg img {
        filter: brightness(0.96);
        transform: scale(1.05);
        transition: transform 9s cubic-bezier(0.25, 0.46, 0.45, 0.94);
      }
      .hero.loaded .hero-bg img { transform: scale(1); }
      .hero-grad {
        position: absolute;
        inset: 0;
        background: linear-gradient(to right, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 1.1) 3%, rgba(255, 256, 255, 1.2) 13%, rgba(255, 255, 255, 1.3) 9%, transparent 100%);
      }
      .hero-body {
        position: absolute;
        top: 50%;
        transform: translateY(-62%);
        left: var(--pad-x);
        color: var(--ink);
        max-width: 580px;
        padding: 0;
        background: none;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        border: none;
      }
      .hero-tag {
        font-family: var(--font-ui);
        font-size: 0.56rem;
        letter-spacing: 0.38em;
        color: var(--ink-lite);
        margin-bottom: 1.8rem;
        text-transform: uppercase;
      }
      .hero-h1 {
        font-family: var(--font-jp);
        font-size: clamp(2rem, 4vw, 3.4rem);
        font-weight: 200;
        line-height: 1.6;
        letter-spacing: 0.22em;
        color:var(--forest);
        margin-bottom: 1rem;
      }
      .hero-en {
        font-family: var(--font-display);
        font-size: clamp(0.82rem, 1.3vw, 1rem);
        font-weight: 400;
        font-style: italic;
        letter-spacing: 0.04em;
        color: var(--ink-mid);
        line-height: 1.7;
        margin-bottom: 2.8rem;
      }
      .hero-cta {
        display: inline-flex;
        align-items: center;
        gap: 0.9rem;
        font-family: var(--font-ui);
        font-size: 0.68rem;
        letter-spacing: 0.14em;
        color: var(--ink);
        transition: gap 0.22s;
      }
      .hero-cta:hover { gap: 1.3rem; }
      .hero-cta-circle {
        width: 36px;
        height: 36px;
        border: 1px solid var(--ink-mid);
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 0.9rem;
        flex-shrink: 0;
        transition: background 0.2s, color 0.2s;
      }
      .hero-cta:hover .hero-cta-circle {
        background: var(--forest);
        border-color: var(--forest);
        color: var(--cream);
      }

      /* Values — floating on image, lower-left */
      .hero-values {
        position: absolute;
        bottom: 15vh;
        left: var(--pad-x);
        display: flex;
        gap: 2.4rem;
        align-items: flex-start;
      }
      .hero-value {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0.45rem;
      }
      .hero-value-icon {
        width: 26px;
        height: 26px;
        color: var(--ink);
        opacity: 0.75;
      }
      .hero-value-jp {
        font-family: var(--font-ui);
        font-size: 0.78rem;
        font-weight: 300;
        letter-spacing: 0.1em;
        color: var(--ink);
        white-space: nowrap;
      }
      .hero-value-en {
        font-family: var(--font-en);
        font-size: 0.52rem;
        letter-spacing: 0.18em;
        color: var(--ink-mid);
        text-transform: uppercase;
        white-space: nowrap;
      }

      /* Slide nav bottom-right */
      .hero-slidenav {
        position: absolute;
        bottom: 7.5rem;
        right: var(--pad-x);
        display: flex;
        align-items: center;
        gap: 1.2rem;
      }
      .hero-slide-counter {
        display: flex;
        align-items: center;
        gap: 0.7rem;
        font-family: var(--font-en);
        font-size: 0.62rem;
        letter-spacing: 0.12em;
        color: var(--ink-mid);
      }
      .hero-slide-line {
        width: 40px;
        height: 1px;
        background: var(--ink-mid);
        opacity: 0.45;
      }
      .hero-slide-btn {
        width: 32px;
        height: 32px;
        border: 1px solid rgba(27,25,23,0.28);
        border-radius: 50%;
        background: none;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        color: var(--ink-mid);
        font-size: 0.75rem;
        transition: background 0.2s, border-color 0.2s;
      }
      .hero-slide-btn:hover {
        background: var(--forest);
        border-color: var(--forest);
        color: var(--cream);
      }

      @keyframes scrollBob {
        0%, 100% { transform: translateY(0); }
        50% { transform: translateY(9px); }
      }

      /* ════════════════════════════════════════
         SHARED COMPONENTS
      ════════════════════════════════════════ */
      .label {
        font-family: var(--font-en);
        font-size: 0.78rem;
        letter-spacing: 0.52em;
        color: var(--ink-lite);
        display: flex;
        align-items: center;
        gap: 1rem;
        margin-bottom: 1.6rem;
        text-transform: uppercase;
      }
      .label::before {
        content: '';
        display: block;
        width: 22px;
        height: 1.5px;
        background: var(--forest);
        flex-shrink: 0;
      }
      .label--light { color: rgba(250,248,243,0.38); }
      .label--light::before { background: rgba(250,248,243,0.35); }

      h2.en {
        font-family: var(--font-jp);
        font-weight: 200;
        font-size: clamp(1.8rem, 3.6vw, 3rem);
        line-height: 1.55;
        letter-spacing: 0.18em;
        color: var(--ink);
      }
      h2.jp {
        font-family: var(--font-jp);
        font-size: clamp(0.82rem, 1.5vw, 1rem);
        font-weight: 200;
        letter-spacing: 0.22em;
        color: var(--ink-lite);
        margin-top: 0.4rem;
        margin-bottom: 2.5rem;
      }

      /* Section label / heading (used in philosophy, daily, activities) */
      .section-label {
        font-family: var(--font-en);
        font-size: 0.78rem;
        letter-spacing: 0.52em;
        color: var(--ink-lite);
        display: flex;
        align-items: center;
        gap: 1rem;
        margin-bottom: 1.6rem;
        text-transform: uppercase;
      }
      .section-label::before {
        content: '';
        display: block;
        width: 22px;
        height: 1.5px;
        background: var(--forest);
        flex-shrink: 0;
      }
      .section-heading {
        font-family: var(--font-jp);
        font-weight: 200;
        font-size: clamp(1.8rem, 3.6vw, 3rem);
        line-height: 1.55;
        letter-spacing: 0.18em;
        color: var(--ink);
      }
      .section-heading-jp {
        font-family: var(--font-jp);
        font-size: clamp(0.82rem, 1.5vw, 1rem);
        font-weight: 200;
        letter-spacing: 0.22em;
        color: var(--ink-lite);
        margin-top: 0.4rem;
        margin-bottom: 2.5rem;
      }
      .lead {
        font-size: 0.85rem;
        color: var(--ink-mid);
        line-height: 2.1;
        max-width: 520px;
      }
      .body-text {
        font-size: 0.85rem;
        color: var(--ink-mid);
        line-height: 2.1;
        max-width: 520px;
      }

      .arrow-link, .link-arrow {
        display: inline-flex;
        align-items: center;
        gap: 0.7rem;
        font-family: var(--font-en);
        font-size: 0.68rem;
        letter-spacing: 0.28em;
        color: var(--forest);
        border-bottom: 1px solid currentColor;
        padding-bottom: 2px;
        transition: gap 0.22s, opacity 0.2s;
      }
      .arrow-link:hover, .link-arrow:hover { gap: 1.1rem; opacity: 0.68; }
      .arrow-link--light {
        color: rgba(250,248,243,0.62);
        border-color: rgba(250,248,243,0.38);
      }

      /* ════════════════════════════════════════
         PHILOSOPHY
      ════════════════════════════════════════ */
      .philosophy {
        background: var(--cream);
        padding: 7rem var(--pad-x) 9rem;
      }
      .philosophy-inner {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: var(--gap-xl);
        align-items: start;
      }
      .philosophy-right {
        padding-top: 4rem;
      }
      .philosophy-img-wrap {
        position: relative;
        padding-bottom: 3.5rem;
        padding-right: 3.5rem;
      }
      .philosophy-img-main {
        height: 520px;
        overflow: hidden;
      }
      .philosophy-img-main img { transition: transform 0.8s ease; }
      .philosophy-img-main:hover img { transform: scale(1.04); }
      .philosophy-img-sub {
        position: absolute;
        bottom: 0;
        right: 0;
        width: 200px;
        height: 200px;
        border: 5px solid var(--cream);
        overflow: hidden;
        box-shadow: 0 8px 32px rgba(0,0,0,0.12);
      }

      .pillars {
        display: grid;
        gap: var(--gap-lg);
        margin-top: var(--gap-lg);
      }
      .pillar {
        display: grid;
        grid-template-columns: 48px 1fr;
        gap: var(--gap-sm);
        align-items: start;
      }
      .pillar-num {
        font-family: var(--font-en);
        font-size: 2.8rem;
        font-weight: 300;
        color: var(--stone);
        line-height: 1;
        padding-top: 4px;
      }
      .pillar-content h3 {
        font-family: var(--font-jp);
        font-size: 0.95rem;
        font-weight: 500;
        letter-spacing: 0.12em;
        margin-bottom: 0.5rem;
        color: var(--ink);
      }
      .pillar-content p {
        font-size: 0.82rem;
        color: var(--ink-mid);
        line-height: 1.95;
      }

      /* ════════════════════════════════════════
         FACTS — Two-column layout
      ════════════════════════════════════════ */
      .facts {
        background: var(--cream);
        padding: 6rem var(--pad-x) 5rem;
        border-top: 3px solid var(--forest);
      }
      .facts-heading {
        font-family: var(--font-en);
        font-size: 0.98rem;
        font-weight: 300;
        letter-spacing: 0.55em;
        text-transform: uppercase;
        color: var(--ink-lite);
        margin-bottom: 3rem;
      }
      .facts-inner {
        display: grid;
        grid-template-columns: 5fr 7fr;
        gap: 5rem;
        align-items: start;
      }
      .facts-left {
        display: flex;
        flex-direction: column;
        gap: 1.8rem;
      }
      .facts-title-en {
        font-family: var(--font-en);
        font-size: clamp(2.4rem, 4vw, 3.6rem);
        font-weight: 300;
        font-style: italic;
        color: var(--ink);
        line-height: 1.1;
        margin-bottom: 0.4rem;
      }
      .facts-header-sub {
        font-family: var(--font-ui);
        font-size: 0.87rem;
        font-weight: 200;
        color: var(--ink-lite);
        letter-spacing: 0.03em;
        line-height: 1.7;
      }
      .facts-left-img {
        width: 100%;
        aspect-ratio: 4/5;
        overflow: hidden;
      }
      .facts-left-img img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
      }
      .facts-right {
        display: flex;
        flex-direction: column;
      }
      .strength-row {
        display: grid;
        grid-template-columns: 52px 32px 1fr 88px;
        gap: 0 1.4rem;
        align-items: center;
        padding: 1.6rem 0;
        border-bottom: 1px solid var(--stone);
      }
      .strength-row:first-child { border-top: 1px solid var(--stone); }
      .strength-row-num {
        font-family: var(--font-en);
        font-size: clamp(1.8rem, 3vw, 2.6rem);
        font-weight: 300;
        font-style: italic;
        color: rgba(0,0,0,0.6);
        line-height: 1;
        letter-spacing: -0.03em;
      }
      .strength-row-icon {
        display: flex;
        align-items: center;
        justify-content: center;
        color: var(--ink-lite);
        opacity: 0.6;
      }
      .strength-row-icon svg {
        width: 20px;
        height: 20px;
        stroke: currentColor;
        fill: none;
        stroke-width: 1.2;
        stroke-linecap: round;
        stroke-linejoin: round;
      }
      .strength-row-title {
        font-family: var(--font-jp);
        font-size: 0.86rem;
        font-weight: 500;
        color: var(--ink);
        letter-spacing: 0.04em;
        margin-bottom: 0.35rem;
      }
      .strength-row-desc {
        font-family: var(--font-ui);
        font-size: 0.83rem;
        font-weight: 200;
        line-height: 1.9;
        color: #000;
      }
      .strength-row-img {
        width: 88px;
        height: 78px;
        overflow: hidden;
        flex-shrink: 0;
      }
      .strength-row-img img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
      }

      /* ════════════════════════════════════════
         ENVIRONMENT
      ════════════════════════════════════════ */
      .environment {
        padding: 7rem 0;
        overflow: hidden;
        background: var(--parchment);
      }
      .env-header {
        padding: 0 var(--pad-x);
        margin-bottom: 4rem;
      }
      .env-scroll-track {
        overflow-x: scroll;
        scrollbar-width: none;
        padding: 0 var(--pad-x);
        cursor: grab;
      }
      .env-scroll-track:active { cursor: grabbing; }
      .env-scroll-track::-webkit-scrollbar { display: none; }
      .env-track-inner {
        display: flex;
        gap: 3px;
      }
      .env-footer {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 2rem var(--pad-x) 0;
      }
      .env-nav { display: flex; gap: 0.5rem; }
      .env-nav-btn {
        width: 40px;
        height: 40px;
        border: 1px solid var(--stone);
        background: transparent;
        cursor: pointer;
        font-size: 1rem;
        display: flex;
        align-items: center;
        justify-content: center;
        color: var(--ink);
        transition: background 0.2s, border-color 0.2s;
        user-select: none;
      }
      .env-nav-btn:hover { background: var(--pale-green); border-color: var(--forest); }
      .env-card {
        flex-shrink: 0;
        width: 320px;
        scroll-snap-align: start;
        position: relative;
        overflow: hidden;
      }
      .env-card-img {
        height: 420px;
        overflow: hidden;
      }
      .env-card-img img { transition: transform 0.6s ease; }
      .env-card:hover .env-card-img img { transform: scale(1.06); }
      .env-card-caption {
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        background: linear-gradient(to top, rgba(30,72,35,0.9) 0%, transparent 100%);
        padding: 3rem 1.6rem 1.4rem;
        color: var(--cream);
        transition: background 0.3s;
      }
      .env-card:hover .env-card-caption {
        background: linear-gradient(to top, rgba(30,72,35,0.96) 0%, transparent 100%);
      }
      .env-card-tag {
        font-family: var(--font-en);
        font-size: 0.56rem;
        letter-spacing: 0.38em;
        color: rgba(250,248,243,0.52);
        margin-bottom: 0.5rem;
      }
      .env-card-title {
        font-family: var(--font-jp);
        font-size: 0.92rem;
        font-weight: 300;
        letter-spacing: 0.12em;
        margin-bottom: 0.3rem;
      }
      .env-card-body {
        font-family: var(--font-ui);
        font-size: 0.66rem;
        font-weight: 200;
        color: rgba(250,248,243,0.62);
        line-height: 1.82;
      }
      .env-footer { padding: 2rem var(--pad-x) 0; }

      /* ════════════════════════════════════════
         KOTOBA
      ════════════════════════════════════════ */
      .kotoba {
        background: var(--cream);
        padding: 7rem var(--pad-x);
      }
      .kotoba-inner {
        display: grid;
        grid-template-columns: 5fr 4fr;
        gap: 6rem;
        align-items: start;
      }
      .kotoba-divider {
        display: flex;
        align-items: center;
        gap: 1rem;
        font-family: var(--font-en);
        font-size: 0.7rem;
        letter-spacing: 0.12em;
        color: var(--ink-mid);
        margin: 1.2rem 0 1.5rem;
      }
      .kotoba-divider::before {
        content: '';
        display: block;
        width: 2rem;
        height: 1px;
        background: currentColor;
      }
      .kotoba-approach {
        font-family: var(--font-en);
        font-size: 0.68rem;
        letter-spacing: 0.15em;
        color: var(--ink-mid);
        margin-bottom: 1rem;
        display: flex;
        align-items: center;
        gap: 0.8rem;
      }
      .kotoba-approach::after {
        content: '';
        display: block;
        width: 2rem;
        height: 1px;
        background: currentColor;
      }
      .kotoba-facts {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 3px;
        margin: 0 0 2.5rem;
      }
      .kf {
        background: var(--pale-green);
        padding: 1.2rem 1rem;
        transition: background 0.22s;
      }
      .kf:hover { background: #ddf0d9; }
      .kf-num {
        font-family: var(--font-en);
        font-size: 2rem;
        font-weight: 300;
        font-style: italic;
        color: var(--forest);
        line-height: 1;
        margin-bottom: 0.4rem;
      }
      .kf-title {
        font-family: var(--font-jp);
        font-size: 0.78rem;
        font-weight: 400;
        margin-bottom: 0.3rem;
        color: var(--ink);
      }
      .kf-desc {
        font-family: var(--font-ui);
        font-size: 0.8rem;
        font-weight: 200;
        color: var(--ink);
        line-height: 1.85;
      }
      .kotoba-img-stack {
        position: sticky;
        top: calc(var(--nav-h) + 1.5rem);
        display: grid;
        gap: 3px;
      }
      .ki-main { height: 340px; overflow: hidden; }
      .ki-main img { transition: transform 0.7s ease; }
      .ki-main:hover img { transform: scale(1.05); }
      .ki-sub-row { display: grid; grid-template-columns: 1fr 1fr; gap: 3px; }
      .ki-sub { height: 180px; overflow: hidden; }
      .ki-sub img { transition: transform 0.7s ease; }
      .ki-sub:hover img { transform: scale(1.06); }
      .kotoba-quote {
        margin: 2rem 0;
        padding: 1.5rem 2rem;
        background: var(--pale-green);
        font-family: var(--font-display);
        font-size: 0.88rem;
        font-style: italic;
        font-weight: 400;
        color: var(--forest-mid);
        line-height: 2;
      }
      .kq-mark {
        font-family: var(--font-en);
        font-size: 2.8rem;
        font-style: normal;
        font-weight: 700;
        color: var(--forest);
        line-height: 0;
        vertical-align: -0.25em;
        margin-right: 0.15rem;
      }
      .kq-attr {
        display: block;
        text-align: right;
        font-style: normal;
        font-size: 0.83rem;
        color: var(--ink-mid);
        margin-top: 0.5rem;
        letter-spacing: 0.05em;
      }

      /* ════════════════════════════════════════
         DAILY LIFE
      ════════════════════════════════════════ */
      .daily {
        background: var(--parchment);
        padding: 7rem var(--pad-x);
      }
      .daily-inner {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 2rem;
        align-items: start;
      }
      .daily-img {
        height: 600px;
        overflow: hidden;
        position: sticky;
        top: calc(var(--nav-h) + 1.5rem);
      }
      .daily-img img { transition: transform 0.8s ease; }
      .daily-img:hover img { transform: scale(1.04); }
      .timeline {
        display: grid;
        gap: 0;
        margin-top: var(--gap-md);
      }
      .tl-item {
        display: grid;
        grid-template-columns: 72px 1fr;
        gap: 1.5rem;
        padding: 1.2rem 0;
        border-top: 1px solid var(--stone);
        align-items: baseline;
        transition: padding-left 0.2s, background 0.2s;
        cursor: default;
      }
      .tl-item:last-child { border-bottom: 1px solid var(--stone); }
      .tl-item:hover { padding-left: 0.6rem; }
      .tl-time {
        font-family: var(--font-en);
        font-size: 0.76rem;
        font-weight: 300;
        letter-spacing: 0.08em;
        color: var(--forest);
        flex-shrink: 0;
      }
      .tl-text {
        font-family: var(--font-ui);
        font-size: 0.78rem;
        font-weight: 200;
        color: var(--ink-mid);
        line-height: 1.75;
      }
      .tl-text strong {
        font-weight: 400;
        color: var(--ink);
        display: block;
        margin-bottom: 0.1rem;
      }

      /* ════════════════════════════════════════
         SAFETY — Pale warm (light)
      ════════════════════════════════════════ */
      .safety {
        background: var(--pale-warm);
        color: var(--ink);
        padding: 7rem var(--pad-x);
        border-top: 3px solid var(--gold);
      }
      .safety-inner {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 4rem;
        align-items: start;
      }
      .safety h2.en { color: var(--ink); }
      .safety h2.jp { color: var(--ink-lite); }
      .safety-list {
        display: grid;
        gap: 0;
        margin-top: 2.5rem;
      }
      .safety-item {
        display: grid;
        grid-template-columns: 48px 1fr;
        gap: 1rem;
        padding: 1.5rem 0;
        border-top: 1px solid rgba(0,0,0,0.08);
        align-items: start;
        transition: padding-left 0.22s;
      }
      .safety-item:last-child { border-bottom: 1px solid rgba(0,0,0,0.08); }
      .safety-item:hover { padding-left: 0.6rem; }
      .safety-icon {
        font-family: var(--font-en);
        font-size: 1.4rem;
        font-style: italic;
        font-weight: 300;
        color: var(--gold);
        line-height: 1;
        padding-top: 4px;
      }
      .safety-item-title {
        font-family: var(--font-jp);
        font-size: 0.9rem;
        font-weight: 400;
        margin-bottom: 0.3rem;
        color: var(--ink);
      }
      .safety-item-body {
        font-family: var(--font-ui);
        font-size: 0.83rem;
        font-weight: 200;
        color: var(--ink);
        line-height: 1.85;
      }
      .safety-img-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 3px;
        position: sticky;
        top: calc(var(--nav-h) + 1.5rem);
      }
      .sig-main {
        grid-column: 1 / 3;
        height: 260px;
        overflow: hidden;
      }
      .sig-main img { transition: transform 0.7s ease; }
      .sig-main:hover img { transform: scale(1.04); }
      .sig-sub { height: 180px; overflow: hidden; }
      .sig-sub img { transition: transform 0.7s ease; }
      .sig-sub:hover img { transform: scale(1.06); }

      /* ════════════════════════════════════════
         INCLUSIVE
      ════════════════════════════════════════ */
      .inclusive {
        background: var(--parchment);
        padding: 7rem var(--pad-x);
      }
      .inclusive-inner {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 6rem;
        align-items: center;
      }
      .inclusive-img {
        height: 580px;
        overflow: hidden;
      }
      .inclusive-img img { transition: transform 0.8s ease; }
      .inclusive-img:hover img { transform: scale(1.04); }
      .inclusive-tags {
        display: flex;
        flex-wrap: wrap;
        gap: 0.6rem;
        margin: 2rem 0;
      }
      .tag {
        font-family: var(--font-ui);
        font-size: 0.63rem;
        letter-spacing: 0.1em;
        font-weight: 300;
        border: 1px solid var(--stone);
        color: var(--ink-mid);
        padding: 0.28rem 0.85rem;
        transition: border-color 0.2s, color 0.2s;
        cursor: default;
      }
      .tag:hover { border-color: var(--forest); color: var(--forest); }
      .tag--active {
        background: var(--forest);
        border-color: var(--forest);
        color: var(--cream);
      }
      .tag--active:hover { color: var(--cream); }

      /* ════════════════════════════════════════
         PRESCHOOL
      ════════════════════════════════════════ */
      .preschool {
        background:var(--parchment);
        padding: 7rem var(--pad-x);
      }
      .preschool-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: var(--gap-md);
        margin-top: 3rem;
      }
      .pc-card {
        background: var(--cream);
        overflow: hidden;
        transition: transform 0.3s ease, box-shadow 0.3s ease;
      }
      .pc-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 14px 44px rgba(30,72,35,0.12);
      }
      .pc-img {
        height: 220px;
        overflow: hidden;
      }
      .pc-img img { transition: transform 0.7s ease; }
      .pc-card:hover .pc-img img { transform: scale(1.06); }
      .pc-body { padding: 1.8rem 1.8rem 2rem; }
      .pc-tag {
        font-family: var(--font-en);
        font-size: 0.56rem;
        letter-spacing: 0.42em;
        color: var(--forest);
        margin-bottom: 0.8rem;
      }
      .pc-body h3 {
        font-family: var(--font-jp);
        font-size: 1rem;
        font-weight: 400;
        margin-bottom: 0.2rem;
        color: var(--ink);
      }
      .pc-body .pc-sub {
        font-family: var(--font-display);
        font-style: italic;
        font-size: 0.68rem;
        color: var(--ink-lite);
        margin-bottom: 0.8rem;
      }
      .pc-body p {
        font-family: var(--font-ui);
        font-size: 0.83rem;
        font-weight: 200;
        color: var(--ink);
        line-height: 1.9;
      }
      .pc-meta {
        margin-top: 1rem;
        padding-top: 1rem;
        border-top: 1px solid var(--stone);
        font-family: var(--font-ui);
        font-size: 0.62rem;
        color: var(--ink-lite);
        display: flex;
        gap: 0.5rem;
        flex-wrap: wrap;
      }
      .pc-meta span {
        background: var(--pale-green);
        padding: 0.2rem 0.6rem;
      }

      /* ════════════════════════════════════════
         ACTIVITIES
      ════════════════════════════════════════ */
      .activities {
        background: var(--cream);
        padding: 7rem var(--pad-x);
      }
      .activities-intro {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 3rem;
        align-items: end;
        margin-bottom: 4rem;
      }
      .activities-intro-right {
        font-family: var(--font-ui);
        font-size: 0.78rem;
        font-weight: 200;
        color: var(--ink-mid);
        line-height: 2.1;
      }
      .activities-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: var(--gap-md);
      }
      .activity-card {
        overflow: hidden;
        background: var(--parchment);
        transition: transform 0.3s ease, box-shadow 0.3s ease;
      }
      .activity-card:hover {
        transform: translateY(-4px);
        box-shadow: 0 12px 40px rgba(0,0,0,0.09);
      }
      .activity-img {
        height: 220px;
        overflow: hidden;
      }
      .activity-img img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform 0.7s ease;
      }
      .activity-card:hover .activity-img img { transform: scale(1.06); }
      .activity-body { padding: 1.8rem 1.8rem 2.2rem; }
      .activity-num-row {
        display: flex;
        align-items: flex-end;
        gap: 0.8rem;
        margin-bottom: 0.6rem;
      }
      .activity-num {
        font-family: var(--font-en);
        font-size: 2.4rem;
        font-weight: 300;
        color: var(--ink);
        line-height: 1;
        letter-spacing: -0.02em;
      }
      .activity-tag {
        font-family: var(--font-en);
        font-size: 0.5rem;
        letter-spacing: 0.38em;
        color: var(--forest);
        padding-bottom: 0.3rem;
      }
      .activity-body h3 {
        font-family: var(--font-jp);
        font-size: 1.05rem;
        font-weight: 400;
        margin-bottom: 0.8rem;
        color: var(--ink);
        letter-spacing: 0.08em;
      }
      .activity-body p {
        font-family: var(--font-ui);
        font-size: 0.83rem;
        font-weight: 200;
        color: var(--ink-mid);
        line-height: 1.9;
      }
      .activity-link {
        display: inline-flex;
        align-items: center;
        gap: 0.4rem;
        font-family: var(--font-ui);
        font-size: 0.65rem;
        font-weight: 300;
        letter-spacing: 0.15em;
        color: var(--ink);
        margin-top: 1.4rem;
        border-bottom: 1px solid var(--ink);
        padding-bottom: 0.2rem;
        text-decoration: none;
        transition: opacity 0.2s;
      }
      .activity-link:hover { opacity: 0.5; }

      /* ════════════════════════════════════════
         PARENTS
      ════════════════════════════════════════ */
      .parents {
        position: relative;
        background-image: url('images/undojo_1.jpg');
        background-size: cover;
        background-position: right center;
      }
      .parents-content {
        padding: 7rem var(--pad-x);
        display: flex;
        flex-direction: column;
        justify-content: center;
        max-width: 54%;
      }
      .parents-label {
        display: flex;
        align-items: center;
        gap: 1rem;
        font-family: var(--font-en);
        font-size: 0.52rem;
        letter-spacing: 0.38em;
        color: var(--ink-mid);
        margin-bottom: 2.8rem;
      }
      .parents-label::before {
        content: '';
        display: block;
        width: 2rem;
        height: 1px;
        background: var(--ink-mid);
        flex-shrink: 0;
      }
      .parents-content h2 {
        font-family: var(--font-jp);
        font-size: clamp(1.5rem, 2.4vw, 2rem);
        font-weight: 400;
        letter-spacing: 0.28em;
        color: var(--ink);
        margin-bottom: 1.8rem;
        line-height: 1.5;
      }
      .parents-content p {
        font-family: var(--font-ui);
        font-size: 0.75rem;
        font-weight: 200;
        color: var(--ink-mid);
        line-height: 2.1;
        margin-bottom: 2rem;
      }
      .parents-divider {
        width: 2rem;
        height: 1px;
        background: var(--ink-mid);
        margin-bottom: 2.8rem;
      }
      .parents-btn {
        display: inline-flex;
        align-items: center;
        justify-content: space-between;
        font-family: var(--font-ui);
        font-size: 0.7rem;
        font-weight: 300;
        letter-spacing: 0.2em;
        background: var(--forest);
        color: var(--cream);
        padding: 1.1rem 2rem;
        width: 240px;
        transition: opacity 0.2s;
        text-decoration: none;
      }
      .parents-btn:hover { opacity: 0.8; }

      /* ════════════════════════════════════════
         NEWS
      ════════════════════════════════════════ */
      .news {
        background: var(--parchment);
        padding: 7rem var(--pad-x);
      }
      .news-inner {
        display: grid;
        grid-template-columns: 260px 1fr;
        gap: 6rem;
        align-items: start;
      }
      .news-list { list-style: none; }
      .news-item {
        position: relative;
        display: grid;
        grid-template-columns: 100px auto 1fr;
        gap: 1.2rem;
        padding: 1.2rem 0.8rem;
        border-top: 1px solid var(--stone);
        align-items: baseline;
        margin: 0 -0.8rem;
        transition: background 0.2s, padding-left 0.2s;
        cursor: pointer;
      }
      .news-item:last-child { border-bottom: 1px solid var(--stone); }
      .news-item:hover { background: var(--pale-green); padding-left: 1.2rem; }
      .news-date {
        font-family: var(--font-en);
        font-size: 0.68rem;
        letter-spacing: 0.08em;
        color: var(--ink-lite);
      }
      .news-cat {
        font-family: var(--font-ui);
        font-size: 0.56rem;
        letter-spacing: 0.12em;
        color: var(--cream);
        background: var(--forest);
        padding: 0.15rem 0.6rem;
        white-space: nowrap;
      }
      .news-title {
        font-size: 0.83rem;
        color: var(--ink);
        transition: color 0.2s;
      }
      .news-item:hover .news-title { color: var(--forest); }
      /* タイトルを本物のリンクにし、擬似要素で行全体をクリック可能にする */
      .news-link { color: inherit; text-decoration: none; }
      .news-link::after { content: ""; position: absolute; inset: 0; }

      /* ════════════════════════════════════════
         FOOTER
      ════════════════════════════════════════ */
      footer {
        background: #182b1a;
        color: #fff;
        padding: 3rem var(--pad-x) 2rem;
      }
      .foot-grid {
        display: grid;
        grid-template-columns: 1.5fr 1fr 1fr;
        gap: 4rem;
        padding-bottom: 2rem;
        border-bottom: 1px solid rgba(250,248,243,0.07);
        margin-bottom: 1.5rem;
      }
      .foot-brand h2 {
        font-family: var(--font-display);
        font-weight: 400;
        font-size: 1rem;
        letter-spacing: 0.1em;
        color: #fff;
        margin-bottom: 0.2rem;
      }
      .foot-brand .jp {
        font-family: var(--font-jp);
        font-size: 0.9rem;
        letter-spacing: 0.2em;
        color: #fff;
        margin-bottom: 1rem;
      }
      .foot-brand address {
        font-style: normal;
        font-size: 0.9rem;
        line-height: 1.9;
      }
      .foot-nav h3 {
        font-family: var(--font-en);
        font-size: 0.54rem;
        letter-spacing: 0.45em;
        text-transform: uppercase;
        color: #fff;
        margin-bottom: 0.8rem;
      }
      .foot-nav ul { list-style: none; }
      .foot-nav li { margin-bottom: 0.45rem; }
      .foot-nav a {
        font-size: 0.9rem;
        color: rgba(255,255,255,1);
        transition: color 0.2s;
      }
      .foot-nav a:hover { color: #fff; }
      .foot-bottom {
        display: flex;
        justify-content: space-between;
        font-size: 0.6rem;
        letter-spacing: 0.1em;
      }

      /* ════════════════════════════════════════
         SCROLL REVEAL
      ════════════════════════════════════════ */
      .reveal {
        opacity: 0;
        transform: translateY(22px);
        transition: opacity 0.65s ease, transform 0.65s ease;
      }
      .reveal.visible { opacity: 1; transform: translateY(0); }
      .reveal-d1 { transition-delay: 0.1s; }
      .reveal-d2 { transition-delay: 0.2s; }

      /* ════════════════════════════════════════
         RESPONSIVE — Tablet ≤1080px
      ════════════════════════════════════════ */
      @media (max-width: 1080px) {
        :root { --pad-x: 5vw; --gap-xl: 4rem; }
        .nav-links { gap: 1.8rem; }
        .nav-links a { font-size: 0.62rem; }

        .philosophy-inner { gap: 4rem; }
        .facts-inner { grid-template-columns: 1fr; gap: 3rem; }
        .facts-left-img { aspect-ratio: 16/7; }
        .facts-title-en { font-size: 2rem; }
        .kotoba-inner { grid-template-columns: 1fr 1fr; gap: 2rem; }
        .foot-grid { grid-template-columns: 1.5fr 1fr 1fr; gap: 2.5rem; }
      }

      /* ════════════════════════════════════════
         RESPONSIVE — Mobile ≤768px
      ════════════════════════════════════════ */
      @media (max-width: 768px) {
        :root { --pad-x: 5vw; }

        .nav-links, .nav-btn { display: none; }
        .nav-hamburger { display: flex; }

        .hero-body {
          top: 50%;
          transform: translateY(-50%);
          left: var(--pad-x);
          right: var(--pad-x);
          max-width: none;
        }
        .hero-values { display: none; }
        .hero-slidenav { display: none; }

        .philosophy-inner,
        .kotoba-inner,
        .daily-inner,
        .safety-inner,
        .inclusive-inner {
          grid-template-columns: 1fr;
          gap: 3rem;
        }
        .philosophy-right { padding-top: 0; order: -1; }
        .philosophy-img-wrap { padding-bottom: 3rem; padding-right: 2.5rem; }
        .philosophy-img-main { height: 280px; }
        .philosophy-img-sub { width: 130px; height: 130px; }

        .fact-row {
          grid-template-columns: 1fr;
          gap: 0.8rem;
          margin: 0;
          padding: 1.8rem 0;
        }
        .fact-divider { display: none; }
        .fact-compare { display: none; }
        .fact-index { font-size: 3rem; }

        .env-card { width: 260px; }
        .env-card-img { height: 340px; }

        .kotoba-img-stack { position: static; order: -1; }
        .ki-main { height: 240px; }
        .ki-sub { height: 140px; }

        .daily-img { position: static; height: 260px; order: -1; }

        .safety-img-grid { position: static; }
        .sig-main { height: 220px; }
        .sig-sub { height: 150px; }

        .inclusive-img { height: 300px; }

        .preschool-grid,
        .activities-grid { grid-template-columns: 1fr; gap: 1.5rem; }
        .activities-intro { grid-template-columns: 1fr; gap: 1.5rem; }

        .parents-content { max-width: 100%; }
        .parents-btn { width: 100%; text-align: center; justify-content: center; }

        .news-inner { grid-template-columns: 1fr; gap: 3rem; }
        .news-item { grid-template-columns: auto auto 1fr; gap: 0.8rem; }

        .foot-grid { grid-template-columns: 1fr; gap: 3rem; }
        .foot-brand { grid-column: 1; }
        .foot-bottom { flex-direction: column; gap: 0.4rem; text-align: center; }

        .vs-block { flex-direction: column; }
        .vs-arrow { justify-content: center; padding: 0.2rem 0; }
      }

      /* ════════════════════════════════════════
         RESPONSIVE — Small ≤480px
      ════════════════════════════════════════ */
      @media (max-width: 480px) {
        :root { --pad-x: 1.2rem; }
        h2.en, .section-heading { font-size: 1.75rem; }
        .hero-h1 { font-size: 1.5rem; }
        .kotoba-facts, .preschool-grid, .activities-grid { grid-template-columns: 1fr; }
        .strength-row { grid-template-columns: 40px 28px 1fr 70px; gap: 0 0.8rem; }
        .strength-row-img { width: 70px; height: 62px; }
        .facts-title-en { font-size: 1.7rem; }
        .pillar { grid-template-columns: 36px 1fr; }
        .pillar-num { font-size: 2rem; }

        /* ── Nav overlay (スマホ用さらに圧縮) ── */
        .nav-overlay { padding: 4.8rem var(--pad-x) 2rem; }
        .nav-overlay__item { padding: 0.9rem 0; }
        .nav-overlay__text { font-size: 1.35rem; }
        .nav-overlay__num { font-size: 0.62rem; margin-bottom: 0.15rem; }
        .nav-overlay__sub { padding: 0.2rem 0 0.8rem; }
        .nav-overlay__sub a { font-size: 0.92rem; padding: 0.3rem 0 0.3rem 1.2rem; }
        .nav-overlay__sub a::before { top: 0.3rem; }
        .nav-overlay__foot { margin-top: 1.4rem; gap: 0.8rem 1.6rem; }
      }

      /* ════════════════════════════════════════
         SUB-PAGE (philosophy.html など)
         シンプルで静かな下層ページレイアウト
      ════════════════════════════════════════ */
      .sub-head {
        padding: calc(var(--nav-h) + 1.6rem) var(--pad-x) 1.4rem;
        background: var(--parchment);
        text-align: center;
        border-bottom: 1px solid rgba(214, 209, 199, 0.6);
      }
      .sub-head-tag {
        font-family: var(--font-en);
        font-size: 0.78rem;
        letter-spacing: 0.28em;
        color: var(--forest);
        text-transform: uppercase;
        margin-bottom: 0.7rem;
      }
      .sub-head-title {
        font-family: var(--font-jp);
        font-weight: 400;
        font-size: clamp(1.6rem, 3.2vw, 2.2rem);
        letter-spacing: 0.08em;
        color: var(--ink);
        margin-bottom: 0;
      }
      .sub-head-en {
        font-family: var(--font-display);
        font-style: italic;
        font-weight: 400;
        font-size: 1rem;
        letter-spacing: 0.06em;
        color: var(--ink-mid);
      }
      .sub-crumbs {
        font-family: var(--font-en);
        font-size: 0.72rem;
        letter-spacing: 0.18em;
        color: var(--ink-mid);
        text-transform: uppercase;
        margin-top: 1rem;
      }
      .sub-crumbs a { color: var(--forest); }
      .sub-crumbs a:hover { color: var(--terracotta); }
      .sub-crumbs span { margin: 0 0.5rem; opacity: 0.6; }

      .sub-body {
        padding: 5rem var(--pad-x);
      }
      .sub-body-inner {
        max-width: 780px;
        margin: 0 auto;
      }
      .sub-lead {
        font-family: var(--font-jp);
        font-weight: 300;
        font-size: 1rem;
        line-height: 2.1;
        color: var(--ink-lite);
        text-align: center;
        margin-bottom: 4rem;
      }
      .sub-lead p + p { margin-top: 1.2rem; }

      .sub-section {
        padding: 4rem 0;
        border-top: 1px solid rgba(214, 209, 199, 0.6);
      }
      .sub-section:first-of-type { border-top: none; padding-top: 0; }
      .sub-section-num {
        font-family: var(--font-en);
        font-style: italic;
        font-size: 0.8rem;
        letter-spacing: 0.22em;
        color: var(--terracotta);
        text-transform: uppercase;
        margin-bottom: 1.2rem;
      }
      .sub-section-title {
        font-family: var(--font-jp);
        font-weight: 500;
        font-size: clamp(1.2rem, 2.2vw, 1.5rem);
        line-height: 1.6;
        color: var(--ink);
        margin-bottom: 2rem;
        letter-spacing: 0.04em;
      }
      .sub-section-img {
        margin: 0 0 2.4rem;
        height: 320px;
        overflow: hidden;
      }
      .sub-section p {
        font-family: var(--font-jp);
        font-weight: 300;
        font-size: 0.95rem;
        line-height: 2.1;
        color: var(--ink-lite);
      }
      .sub-section p + p { margin-top: 1.2rem; }

      .sub-list {
        margin-top: 2rem;
        padding-top: 2rem;
        border-top: 1px dashed rgba(214, 209, 199, 0.8);
      }
      .sub-list dl {
        display: grid;
        grid-template-columns: auto 1fr;
        gap: 0.6rem 1.6rem;
      }
      .sub-list dt {
        font-family: var(--font-en);
        font-style: italic;
        font-size: 0.85rem;
        color: var(--gold);
        letter-spacing: 0.06em;
        padding-top: 0.1rem;
      }
      .sub-list dd {
        font-family: var(--font-jp);
        font-weight: 300;
        font-size: 0.92rem;
        line-height: 1.85;
        color: var(--ink-mid);
        margin: 0 0 0.8rem;
      }
      .sub-list dd:last-of-type { margin-bottom: 0; }

      .sub-footer {
        padding: 4rem var(--pad-x) 5rem;
        text-align: center;
        background: var(--cream);
        border-top: 1px solid rgba(214, 209, 199, 0.6);
      }
      .sub-footer-text {
        font-family: var(--font-jp);
        font-weight: 300;
        font-size: 0.95rem;
        line-height: 2;
        color: var(--ink-mid);
        margin-bottom: 2rem;
      }
      .sub-link {
        display: inline-flex;
        align-items: center;
        gap: 0.6rem;
        font-family: var(--font-jp);
        font-size: 0.92rem;
        color: var(--forest);
        border-bottom: 1px solid var(--forest);
        padding-bottom: 0.3rem;
        transition: color 0.3s, border-color 0.3s;
      }
      .sub-link:hover { color: var(--terracotta); border-color: var(--terracotta); }
      .sub-link + .sub-link { margin-left: 2rem; }

      @media (max-width: 720px) {
        .sub-head { padding: calc(var(--nav-h) + 1.2rem) var(--pad-x) 1.2rem; }
        .sub-body { padding: 3.5rem var(--pad-x); }
        .sub-section { padding: 3rem 0; }
        .sub-section-img { height: 220px; }
        .sub-list dl { grid-template-columns: 1fr; gap: 0.2rem; }
        .sub-list dt { margin-top: 0.6rem; }
        .sub-link + .sub-link { margin-left: 0; margin-top: 1rem; display: inline-flex; }
      }

/* ════════════════════════════════════════
   SUB PAGES（下層ページ共通追加スタイル）
   news / legal / contact / parents 系
   ════════════════════════════════════════ */

/* =========================================
   News List（お知らせ一覧）
   ========================================= */
.news-list-wrap { max-width: 760px; margin: 0 auto; }

.news-filter { display: flex; flex-wrap: wrap; gap: 0.5rem 0.7rem; justify-content: center; margin-bottom: 2rem; padding-bottom: 1.6rem; border-bottom: 1px dashed rgba(214, 209, 199, 0.8); }

.news-filter__btn { font-family: var(--font-en); letter-spacing: 0.14em; font-size: 0.66rem; text-transform: uppercase; padding: 0.42rem 0.9rem; border: 1px solid rgba(0,0,0,0.18); color: var(--ink-mid); background: transparent; cursor: pointer; transition: color 0.25s, border-color 0.25s, background 0.25s; }
.news-filter__btn:hover { color: var(--forest); border-color: var(--forest); }
.news-filter__btn.is-active { background: var(--forest); color: var(--cream); border-color: var(--forest); }

.news-archive { list-style: none; padding: 0; margin: 0; }
.news-archive__item { position: relative; display: grid; grid-template-columns: 92px 84px 1fr auto; align-items: center; gap: 1.1rem; padding: 1rem 0.4rem; border-bottom: 1px solid rgba(214, 209, 199, 0.7); transition: background 0.3s; }
.news-archive__item:hover { background: rgba(235, 242, 232, 0.4); }
.news-archive__date { font-family: var(--font-en); font-style: italic; font-size: 0.85rem; color: var(--ink-mid); letter-spacing: 0.04em; }
.news-archive__cat { font-family: var(--font-en); font-size: 0.62rem; letter-spacing: 0.16em; text-transform: uppercase; text-align: center; padding: 0.28rem 0.6rem; border: 1px solid var(--forest); color: var(--forest); }
.news-archive__cat--event { border-color: var(--terracotta); color: var(--terracotta); }
.news-archive__cat--safety { border-color: var(--gold); color: var(--gold); }
.news-archive__cat--admission { border-color: var(--sage); color: var(--sage); }
.news-archive__title { font-family: var(--font-jp); font-size: 0.9rem; color: var(--ink); font-weight: 400; line-height: 1.6; }
.news-archive__arrow { font-family: var(--font-en); color: var(--ink-mid); transition: color 0.25s, transform 0.25s; }
.news-archive__item:hover .news-archive__arrow { color: var(--terracotta); transform: translateX(4px); }
/* タイトルを本物のリンクにし、擬似要素で行全体をクリック可能にする */
.news-archive__link { color: inherit; text-decoration: none; }
.news-archive__link::after { content: ""; position: absolute; inset: 0; }

.news-pager { display: flex; justify-content: center; gap: 0.3rem; margin-top: 2.2rem; }
.news-pager__btn { font-family: var(--font-en); font-size: 0.78rem; min-width: 34px; padding: 0.42rem 0.7rem; border: 1px solid rgba(0,0,0,0.18); color: var(--ink-mid); background: transparent; cursor: pointer; transition: color 0.25s, border-color 0.25s, background 0.25s; }
.news-pager__btn:hover { color: var(--forest); border-color: var(--forest); }
.news-pager__btn.is-active { background: var(--forest); color: var(--cream); border-color: var(--forest); }

/* =========================================
   News Detail（お知らせ詳細）
   ========================================= */
.news-detail-body { padding-top: calc(var(--nav-h) + 3rem); }
.news-detail__crumbs { font-family: var(--font-en); font-size: 0.7rem; letter-spacing: 0.18em; color: var(--ink-mid); text-transform: uppercase; margin-bottom: 2.2rem; }
.news-detail__crumbs a { color: var(--forest); }
.news-detail__crumbs a:hover { color: var(--terracotta); }
.news-detail__crumbs span { margin: 0 0.5rem; opacity: 0.6; }

.news-detail__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.8rem 1.4rem; margin-bottom: 2.2rem; padding-bottom: 2rem; border-bottom: 1px solid rgba(214, 209, 199, 0.6); }
.news-detail__date { font-family: var(--font-en); font-style: italic; font-size: 1rem; color: var(--ink-mid); letter-spacing: 0.04em; }
.news-detail__cat { font-family: var(--font-en); font-size: 0.7rem; letter-spacing: 0.18em; text-transform: uppercase; padding: 0.35rem 0.9rem; border: 1px solid var(--forest); color: var(--forest); }
.news-detail__title { font-family: var(--font-jp); font-weight: 500; font-size: clamp(1.3rem, 2.6vw, 1.7rem); line-height: 1.7; color: var(--ink); letter-spacing: 0.04em; margin-bottom: 2.6rem; }
.news-detail__body p { font-family: var(--font-jp); font-weight: 300; font-size: 0.95rem; line-height: 2.1; color: var(--ink-lite); }
.news-detail__body p + p { margin-top: 1.2rem; }
.news-detail__body h3 { font-family: var(--font-jp); font-weight: 500; font-size: 1.1rem; color: var(--ink); margin: 2.4rem 0 1rem; padding-left: 0.9rem; border-left: 3px solid var(--forest); letter-spacing: 0.04em; }
.news-detail__body ul { list-style: none; padding: 0; margin: 1.2rem 0; }
.news-detail__body ul li { font-family: var(--font-jp); font-weight: 300; font-size: 0.95rem; line-height: 2; color: var(--ink-lite); padding-left: 1.4rem; position: relative; }
.news-detail__body ul li::before { content: ""; position: absolute; left: 0; top: 0.85rem; width: 6px; height: 6px; background: var(--terracotta); border-radius: 50%; }
.news-detail__img { margin: 2.4rem 0; height: 360px; overflow: hidden; }

.news-detail__info { margin: 2.8rem 0; padding: 2rem 2.2rem; background: var(--cream); border-left: 3px solid var(--forest); }
.news-detail__info dl { display: grid; grid-template-columns: 110px 1fr; gap: 0.6rem 1.4rem; }
.news-detail__info dt { font-family: var(--font-en); font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--forest); padding-top: 0.2rem; }
.news-detail__info dd { font-family: var(--font-jp); font-weight: 300; font-size: 0.95rem; line-height: 1.9; color: var(--ink-lite); }

.news-nav { display: grid; grid-template-columns: 1fr auto 1fr; gap: 1rem; align-items: center; margin-top: 4rem; padding-top: 2.2rem; border-top: 1px solid rgba(214, 209, 199, 0.6); }
.news-nav__link { font-family: var(--font-jp); font-size: 0.9rem; color: var(--forest); transition: color 0.25s; }
.news-nav__link:hover { color: var(--terracotta); }
.news-nav__link--prev { text-align: left; }
.news-nav__link--next { text-align: right; }
.news-nav__back { font-family: var(--font-en); font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ink-mid); padding: 0.5rem 1.2rem; border: 1px solid var(--ink-mid); transition: color 0.25s, border-color 0.25s; }
.news-nav__back:hover { color: var(--terracotta); border-color: var(--terracotta); }

/* =========================================
   Legal（法務ページ）
   ========================================= */
.legal-toc { margin: 0 0 4rem; padding: 2rem 2.4rem; background: var(--cream); border: 1px solid rgba(214, 209, 199, 0.7); }
.legal-toc__label { font-family: var(--font-en); font-size: 0.72rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--forest); margin-bottom: 1rem; }
.legal-toc__list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0.6rem 1.4rem; }
.legal-toc__list li { font-family: var(--font-jp); font-size: 0.92rem; }
.legal-toc__list a { display: inline-flex; align-items: center; gap: 0.6rem; color: var(--ink-mid); border-bottom: 1px solid transparent; padding-bottom: 0.2rem; transition: color 0.25s, border-color 0.25s; }
.legal-toc__list a::before { content: "→"; font-family: var(--font-en); color: var(--terracotta); }
.legal-toc__list a:hover { color: var(--forest); border-color: var(--forest); }

.legal-section h3 { font-family: var(--font-jp); font-weight: 500; font-size: 1.02rem; color: var(--ink); margin: 2rem 0 0.8rem; letter-spacing: 0.04em; }
.legal-section p { font-family: var(--font-jp); font-weight: 300; font-size: 0.92rem; line-height: 2.05; color: var(--ink-lite); }
.legal-section p + p { margin-top: 0.9rem; }
.legal-section ol, .legal-section ul { padding-left: 1.2rem; margin: 0.8rem 0; }
.legal-section ol li, .legal-section ul li { font-family: var(--font-jp); font-weight: 300; font-size: 0.92rem; line-height: 2; color: var(--ink-lite); margin-bottom: 0.3rem; }
.legal-meta { margin-top: 3rem; padding-top: 1.6rem; border-top: 1px dashed rgba(214, 209, 199, 0.8); font-family: var(--font-en); font-style: italic; font-size: 0.8rem; color: var(--ink-mid); letter-spacing: 0.04em; }

/* =========================================
   Contact Form（お問い合わせ）
   ========================================= */
.contact-intro { max-width: 720px; margin: 0 auto 3.5rem; text-align: center; font-family: var(--font-jp); font-weight: 300; font-size: 0.96rem; line-height: 2.05; color: var(--ink-lite); }

.contact-info { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.4rem; max-width: 880px; margin: 0 auto 4rem; }
.contact-info__card { padding: 1.8rem 1.6rem; background: var(--cream); border: 1px solid rgba(214, 209, 199, 0.7); text-align: center; }
.contact-info__label { font-family: var(--font-en); font-size: 0.7rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--forest); margin-bottom: 0.8rem; }
.contact-info__value { font-family: var(--font-display); font-size: 1.25rem; color: var(--ink); margin-bottom: 0.4rem; letter-spacing: 0.04em; }
.contact-info__sub { font-family: var(--font-jp); font-size: 0.8rem; color: var(--ink-mid); }

.contact-form { max-width: 720px; margin: 0 auto; }
.contact-form__row { margin-bottom: 1.8rem; }
.contact-form__label { display: flex; align-items: center; gap: 0.6rem; font-family: var(--font-jp); font-weight: 400; font-size: 0.88rem; color: var(--ink); margin-bottom: 0.6rem; letter-spacing: 0.04em; }
.contact-form__required { font-family: var(--font-en); font-size: 0.62rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--cream); background: var(--terracotta); padding: 0.15rem 0.5rem; }
.contact-form__optional { font-family: var(--font-en); font-size: 0.62rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink-mid); border: 1px solid var(--ink-mid); padding: 0.1rem 0.5rem; }

.contact-form__input, .contact-form__textarea, .contact-form__select { width: 100%; font-family: var(--font-jp); font-weight: 300; font-size: 0.95rem; padding: 0.9rem 1rem; border: 1px solid rgba(0, 0, 0, 0.18); background: var(--cream); color: var(--ink); transition: border-color 0.25s, background 0.25s; }
.contact-form__input:focus, .contact-form__textarea:focus, .contact-form__select:focus { outline: none; border-color: var(--forest); background: #fff; }
.contact-form__textarea { min-height: 180px; resize: vertical; line-height: 1.85; }
.contact-form__select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%231e4823' stroke-width='1.4'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1rem center; padding-right: 2.4rem; }

.contact-form__check { display: flex; align-items: flex-start; gap: 0.7rem; font-family: var(--font-jp); font-weight: 300; font-size: 0.9rem; color: var(--ink-lite); line-height: 1.8; cursor: pointer; }
.contact-form__check input { margin-top: 0.35rem; accent-color: var(--forest); }
.contact-form__check a { color: var(--forest); border-bottom: 1px solid var(--forest); }

.contact-form__submit-wrap { margin-top: 2.6rem; text-align: center; }
.contact-form__submit { display: inline-flex; align-items: center; gap: 0.9rem; font-family: var(--font-jp); font-size: 0.95rem; color: var(--cream); background: var(--forest); padding: 1rem 3.2rem; border: none; cursor: pointer; letter-spacing: 0.1em; transition: background 0.3s, transform 0.3s; }
.contact-form__submit:hover { background: var(--terracotta); transform: translateY(-2px); }
.contact-form__submit::after { content: "→"; font-family: var(--font-en); }
.contact-form__note { margin-top: 1.2rem; font-family: var(--font-jp); font-size: 0.78rem; color: var(--ink-mid); }

/* -----------------------------------------
   Contact Form 7 が付ける入れ物の調整
   プラグインは input を span で包み、エラー文や送信結果の枠を
   独自のclassで足す。その分だけ見た目を合わせる。
   ----------------------------------------- */
.contact-form .wpcf7-form-control-wrap { display: block; }
.contact-form .wpcf7-not-valid { border-color: var(--terracotta); background: #fff; }
.contact-form .wpcf7-not-valid-tip { display: block; margin-top: 0.5rem; font-family: var(--font-jp); font-weight: 300; font-size: 0.8rem; color: var(--terracotta); }

.contact-form__row--agree .wpcf7-list-item { display: block; margin: 0; }
.contact-form__row--agree label { display: flex; align-items: flex-start; gap: 0.7rem; font-family: var(--font-jp); font-weight: 300; font-size: 0.9rem; color: var(--ink-lite); line-height: 1.8; cursor: pointer; }
.contact-form__row--agree input[type="checkbox"] { flex: 0 0 auto; margin-top: 0.35rem; accent-color: var(--forest); }
.contact-form__row--agree a { color: var(--forest); border-bottom: 1px solid var(--forest); }

.contact-form .wpcf7-spinner { display: block; margin: 1.2rem auto 0; }
.contact-form .wpcf7-response-output { max-width: 720px; margin: 2rem auto 0; padding: 1rem 1.3rem; border: 1px solid rgba(214, 209, 199, 0.9); background: var(--cream); font-family: var(--font-jp); font-weight: 300; font-size: 0.9rem; line-height: 1.9; color: var(--ink-lite); }
.contact-form[data-status="sent"] .wpcf7-response-output { border-color: var(--forest); color: var(--forest); }
.contact-form[data-status="invalid"] .wpcf7-response-output, .contact-form[data-status="unaccepted"] .wpcf7-response-output, .contact-form[data-status="failed"] .wpcf7-response-output, .contact-form[data-status="aborted"] .wpcf7-response-output, .contact-form[data-status="spam"] .wpcf7-response-output { border-color: var(--terracotta); color: var(--terracotta); }

/* いたずら送信対策の罠の入力欄。人には見せず、画面外へ追い出す（display:none だと機械に見抜かれる） */
.contact-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* フォームを表示できないときの代わりの案内 */
.contact-form__fallback { max-width: 720px; margin: 0 auto; padding: 2.6rem 1.8rem; background: var(--cream); border: 1px solid rgba(214, 209, 199, 0.7); text-align: center; }
.contact-form__fallback p { font-family: var(--font-jp); font-weight: 300; font-size: 0.95rem; line-height: 2; color: var(--ink-lite); }
.contact-form__fallback-tel { margin-top: 1.2rem; font-family: var(--font-display); font-size: 1.6rem; letter-spacing: 0.04em; color: var(--ink); }
.contact-form__fallback-note { margin-top: 0.4rem; font-family: var(--font-jp); font-size: 0.8rem; color: var(--ink-mid); }

/* =========================================
   Parents Login（保護者ログイン）
   ========================================= */
.login-wrap { min-height: calc(100vh - var(--nav-h)); display: flex; align-items: stretch; }
.login-body { flex: 1; display: flex; align-items: center; justify-content: center; padding: calc(var(--nav-h) + 4rem) var(--pad-x) 5rem; background: var(--parchment); }
.login-card { width: 100%; max-width: 420px; }
.login-card__tag { font-family: var(--font-en); font-size: 0.72rem; letter-spacing: 0.28em; text-transform: uppercase; color: var(--forest); margin-bottom: 1.4rem; }
.login-card__title { font-family: var(--font-jp); font-weight: 500; font-size: 1.5rem; color: var(--ink); letter-spacing: 0.08em; margin-bottom: 0.6rem; }
.login-card__sub { font-family: var(--font-jp); font-weight: 300; font-size: 0.88rem; color: var(--ink-mid); margin-bottom: 2.6rem; line-height: 1.9; }
.login-card__error { font-family: var(--font-jp); font-size: 0.85rem; color: var(--terracotta); background: rgba(192, 108, 79, 0.08); border: 1px solid rgba(192, 108, 79, 0.4); padding: 0.8rem 1rem; margin-bottom: 1.8rem; line-height: 1.7; }
.login-card__note { font-family: var(--font-jp); font-size: 0.85rem; color: var(--forest); background: rgba(74, 103, 65, 0.08); border: 1px solid rgba(74, 103, 65, 0.35); padding: 0.8rem 1rem; margin-bottom: 1.8rem; line-height: 1.7; }
.login-card .contact-form__row { margin-bottom: 1.4rem; }
.login-card__options { display: flex; justify-content: space-between; align-items: center; margin-top: -0.4rem; margin-bottom: 1.8rem; }
.login-card__remember { font-family: var(--font-jp); font-size: 0.82rem; color: var(--ink-mid); display: inline-flex; align-items: center; gap: 0.5rem; cursor: pointer; }
.login-card__remember input { accent-color: var(--forest); }
.login-card__forgot { font-family: var(--font-jp); font-size: 0.82rem; color: var(--forest); border-bottom: 1px solid var(--forest); padding-bottom: 0.15rem; }
.login-card__forgot:hover { color: var(--terracotta); border-color: var(--terracotta); }
.login-card__submit { width: 100%; display: inline-flex; justify-content: center; align-items: center; gap: 0.7rem; font-family: var(--font-jp); font-size: 0.95rem; color: var(--cream); background: var(--forest); padding: 1rem; border: none; cursor: pointer; letter-spacing: 0.1em; transition: background 0.3s; }
.login-card__submit:hover { background: var(--terracotta); }
.login-card__submit::after { content: "→"; font-family: var(--font-en); }
.login-card__divider { margin: 2.4rem 0; text-align: center; font-family: var(--font-en); font-size: 0.7rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ink-mid); position: relative; }
.login-card__divider::before, .login-card__divider::after { content: ""; position: absolute; top: 50%; width: 38%; height: 1px; background: rgba(214, 209, 199, 0.8); }
.login-card__divider::before { left: 0; }
.login-card__divider::after { right: 0; }
.login-card__help { font-family: var(--font-jp); font-size: 0.85rem; color: var(--ink-mid); line-height: 1.9; text-align: center; }
.login-card__help a { color: var(--forest); border-bottom: 1px solid var(--forest); padding-bottom: 0.1rem; }

/* =========================================
   Parents Dashboard（保護者専用ページ）
   ========================================= */
.parents-hero { padding: calc(var(--nav-h) + 4rem) var(--pad-x) 3rem; background: var(--cream); border-bottom: 1px solid rgba(214, 209, 199, 0.6); }
.parents-hero__inner { max-width: 1080px; margin: 0 auto; display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 1.6rem; }
.parents-hero__tag { font-family: var(--font-en); font-size: 0.74rem; letter-spacing: 0.26em; text-transform: uppercase; color: var(--forest); margin-bottom: 1.2rem; }
.parents-hero__title { font-family: var(--font-jp); font-weight: 500; font-size: clamp(1.6rem, 3vw, 2rem); letter-spacing: 0.08em; color: var(--ink); margin-bottom: 0.6rem; }
.parents-hero__sub { font-family: var(--font-display); font-style: italic; font-size: 1rem; color: var(--ink-mid); }
.parents-hero__user { text-align: right; }
.parents-hero__greet { font-family: var(--font-jp); font-size: 0.88rem; color: var(--ink-mid); margin-bottom: 0.4rem; }
.parents-hero__name { font-family: var(--font-jp); font-weight: 500; font-size: 1.05rem; color: var(--ink); margin-bottom: 0.6rem; }
.parents-hero__logout { font-family: var(--font-en); font-size: 0.7rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--terracotta); border-bottom: 1px solid var(--terracotta); padding-bottom: 0.15rem; }

.parents-body { padding: 4.5rem var(--pad-x) 5rem; }
.parents-body__inner { max-width: 1080px; margin: 0 auto; }

.parents-quick { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; margin-bottom: 4rem; }
.parents-quick__card { display: flex; align-items: center; gap: 1rem; padding: 1.4rem 1.6rem; background: var(--cream); border: 1px solid rgba(214, 209, 199, 0.7); transition: transform 0.3s, border-color 0.3s; cursor: pointer; }
.parents-quick__card:hover { transform: translateY(-3px); border-color: var(--forest); }
.parents-quick__icon { width: 42px; height: 42px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; border: 1px solid var(--forest); color: var(--forest); }
.parents-quick__icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.4; }
.parents-quick__label { font-family: var(--font-en); font-size: 0.66rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ink-mid); margin-bottom: 0.25rem; }
.parents-quick__title { font-family: var(--font-jp); font-size: 0.94rem; color: var(--ink); font-weight: 500; }

.parents-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 2.4rem; margin-bottom: 4rem; }
.parents-block { background: var(--cream); padding: 2.2rem 2rem; border: 1px solid rgba(214, 209, 199, 0.7); }
.parents-block__head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 1.8rem; padding-bottom: 1rem; border-bottom: 1px solid rgba(214, 209, 199, 0.7); }
.parents-block__title { font-family: var(--font-jp); font-weight: 500; font-size: 1.05rem; color: var(--ink); letter-spacing: 0.06em; }
.parents-block__more { font-family: var(--font-en); font-size: 0.7rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--forest); border-bottom: 1px solid var(--forest); padding-bottom: 0.1rem; }
.parents-block__more:hover { color: var(--terracotta); border-color: var(--terracotta); }

.parents-notice { list-style: none; padding: 0; margin: 0; }
.parents-notice li { display: grid; grid-template-columns: 90px 78px 1fr; gap: 1rem; align-items: center; padding: 0.9rem 0; border-bottom: 1px dashed rgba(214, 209, 199, 0.8); font-family: var(--font-jp); font-size: 0.9rem; }
.parents-notice li:last-child { border-bottom: none; }
.parents-notice__date { font-family: var(--font-en); font-style: italic; font-size: 0.85rem; color: var(--ink-mid); }
.parents-notice__cat { font-family: var(--font-en); font-size: 0.62rem; letter-spacing: 0.18em; text-transform: uppercase; text-align: center; padding: 0.25rem 0.4rem; border: 1px solid var(--forest); color: var(--forest); }
.parents-notice__cat--urgent { border-color: var(--terracotta); color: var(--terracotta); }
.parents-notice__title { color: var(--ink); }

.parents-menu { display: grid; gap: 1rem; }
.parents-menu__item { display: grid; grid-template-columns: 90px 1fr; gap: 0.8rem; padding: 1rem 0; border-bottom: 1px dashed rgba(214, 209, 199, 0.8); }
.parents-menu__item:last-child { border-bottom: none; }
.parents-menu__day { font-family: var(--font-en); font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--forest); padding-top: 0.2rem; }
.parents-menu__body { font-family: var(--font-jp); font-size: 0.88rem; color: var(--ink-lite); line-height: 1.85; }
.parents-menu__body strong { display: block; font-weight: 500; color: var(--ink); margin-bottom: 0.2rem; font-size: 0.92rem; }

.parents-gallery { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 220px 220px; gap: 6px; margin-bottom: 4rem; }
.parents-gallery__item { overflow: hidden; position: relative; }
.parents-gallery__item:first-child { grid-row: span 2; }
.parents-gallery__item img { transition: transform 0.6s; }
.parents-gallery__item:hover img { transform: scale(1.04); }
.parents-gallery__caption { position: absolute; left: 1rem; bottom: 0.8rem; right: 1rem; color: var(--cream); font-family: var(--font-jp); font-size: 0.85rem; text-shadow: 0 1px 4px rgba(0,0,0,0.6); }

.parents-docs { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; }
.parents-docs__item { display: flex; align-items: center; gap: 1rem; padding: 1.2rem 1.4rem; background: var(--cream); border: 1px solid rgba(214, 209, 199, 0.7); transition: border-color 0.3s, background 0.3s; }
.parents-docs__item:hover { border-color: var(--forest); background: var(--pale-green); }
.parents-docs__icon { width: 40px; height: 40px; flex-shrink: 0; border: 1px solid var(--terracotta); color: var(--terracotta); display: flex; align-items: center; justify-content: center; font-family: var(--font-en); font-size: 0.7rem; letter-spacing: 0.08em; }
.parents-docs__title { font-family: var(--font-jp); font-size: 0.92rem; color: var(--ink); margin-bottom: 0.2rem; font-weight: 500; }
.parents-docs__meta { font-family: var(--font-en); font-style: italic; font-size: 0.74rem; color: var(--ink-mid); letter-spacing: 0.04em; }

/* =========================================
   Parents Sub Pages（保護者専用 下層共通）
   ========================================= */
.parents-sub__inner { max-width: 1080px; margin: 0 auto; }
.parents-sub__back { display: inline-flex; align-items: center; gap: 0.5rem; font-family: var(--font-en); font-size: 0.7rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ink-mid); margin-bottom: 2rem; transition: color 0.25s; }
.parents-sub__back:hover { color: var(--terracotta); }

.parents-sub-filter { display: flex; flex-wrap: wrap; gap: 0.5rem 0.7rem; margin-bottom: 2.4rem; padding-bottom: 1.6rem; border-bottom: 1px dashed rgba(214, 209, 199, 0.8); }
.parents-sub-filter__btn { font-family: var(--font-en); letter-spacing: 0.14em; font-size: 0.66rem; text-transform: uppercase; padding: 0.42rem 0.9rem; border: 1px solid rgba(0,0,0,0.18); color: var(--ink-mid); background: transparent; cursor: pointer; transition: color 0.25s, border-color 0.25s, background 0.25s; }
.parents-sub-filter__btn:hover { color: var(--forest); border-color: var(--forest); }
.parents-sub-filter__btn.is-active { background: var(--forest); color: var(--cream); border-color: var(--forest); }

/* お知らせ一覧（parents-notice.html） */
.parents-notice-list { list-style: none; padding: 0; margin: 0; }
.parents-notice-list__item { display: grid; grid-template-columns: 92px 84px 1fr auto; align-items: center; gap: 1.1rem; padding: 1.1rem 0.4rem; border-bottom: 1px solid rgba(214, 209, 199, 0.7); transition: background 0.3s; }
.parents-notice-list__item:hover { background: rgba(235, 242, 232, 0.4); }
.parents-notice-list__date { font-family: var(--font-en); font-style: italic; font-size: 0.85rem; color: var(--ink-mid); letter-spacing: 0.04em; }
.parents-notice-list__cat { font-family: var(--font-en); font-size: 0.62rem; letter-spacing: 0.16em; text-transform: uppercase; text-align: center; padding: 0.28rem 0.6rem; border: 1px solid var(--forest); color: var(--forest); }
.parents-notice-list__cat--urgent { border-color: var(--terracotta); color: var(--terracotta); }
.parents-notice-list__cat--health { border-color: var(--gold); color: var(--gold); }
.parents-notice-list__cat--menu { border-color: var(--sage); color: var(--sage); }
.parents-notice-list__title { font-family: var(--font-jp); font-size: 0.9rem; color: var(--ink); font-weight: 400; line-height: 1.6; }
.parents-notice-list__arrow { font-family: var(--font-en); color: var(--ink-mid); transition: color 0.25s, transform 0.25s; }
.parents-notice-list__item:hover .parents-notice-list__arrow { color: var(--terracotta); transform: translateX(4px); }

/* 給食献立（parents-menu.html） */
.menu-month-switch { display: flex; align-items: center; justify-content: center; gap: 2rem; margin-bottom: 2.6rem; padding: 1.2rem 0; border-top: 1px solid rgba(214, 209, 199, 0.7); border-bottom: 1px solid rgba(214, 209, 199, 0.7); }
.menu-month-switch__btn { font-family: var(--font-en); font-size: 0.75rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink-mid); background: transparent; border: none; cursor: pointer; padding: 0.3rem 0.6rem; transition: color 0.25s; }
.menu-month-switch__btn:hover { color: var(--terracotta); }
.menu-month-switch__current { font-family: var(--font-display); font-style: italic; font-size: 1.3rem; color: var(--ink); letter-spacing: 0.04em; }
.menu-calendar { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.2rem; margin-bottom: 3rem; }
.menu-day { background: var(--cream); padding: 1.4rem 1.4rem 1.2rem; border-left: 3px solid var(--forest); border-bottom: 1px solid rgba(214, 209, 199, 0.7); }
.menu-day--off { border-left-color: var(--stone); opacity: 0.85; }
.menu-day--special { border-left-color: var(--terracotta); }
.menu-day__head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 0.8rem; padding-bottom: 0.6rem; border-bottom: 1px dashed rgba(214, 209, 199, 0.8); }
.menu-day__date { font-family: var(--font-en); font-style: italic; font-size: 0.95rem; color: var(--ink); letter-spacing: 0.04em; }
.menu-day__day { font-family: var(--font-jp); font-size: 0.78rem; color: var(--ink-mid); }
.menu-day__main { font-family: var(--font-jp); font-weight: 500; font-size: 0.96rem; color: var(--ink); margin-bottom: 0.4rem; line-height: 1.6; }
.menu-day__sub { font-family: var(--font-jp); font-weight: 300; font-size: 0.85rem; color: var(--ink-lite); line-height: 1.85; }
.menu-day__photo { margin-top: 1rem; aspect-ratio: 4 / 3; background: #f3efe7; border: 1px dashed rgba(214, 209, 199, 0.9); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.menu-day__photo-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.menu-day__photo-empty { font-family: var(--font-jp); font-weight: 300; font-size: 0.78rem; color: var(--ink-mid); letter-spacing: 0.04em; text-align: center; line-height: 1.7; padding: 0.6rem; }
.menu-day__photo-empty::before { content: "📷"; display: block; font-size: 1.4rem; margin-bottom: 0.3rem; opacity: 0.55; }
.menu-day--has-photo .menu-day__photo { border-style: solid; border-color: rgba(214, 209, 199, 0.7); padding: 0; }
.menu-note { padding: 1.6rem 1.8rem; background: var(--cream); border-left: 3px solid var(--gold); margin-bottom: 2rem; }
.menu-note__title { font-family: var(--font-jp); font-weight: 500; font-size: 0.95rem; color: var(--ink); margin-bottom: 0.5rem; }
.menu-note__body { font-family: var(--font-jp); font-weight: 300; font-size: 0.88rem; line-height: 1.95; color: var(--ink-lite); }

/* クラスの様子（parents-gallery.html） */
.gallery-class-tabs { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-bottom: 2rem; }
.gallery-class-tabs__btn { font-family: var(--font-jp); font-size: 0.88rem; padding: 0.6rem 1.4rem; border: 1px solid rgba(0,0,0,0.18); color: var(--ink-mid); background: transparent; cursor: pointer; transition: color 0.25s, border-color 0.25s, background 0.25s; }
.gallery-class-tabs__btn:hover { color: var(--forest); border-color: var(--forest); }
.gallery-class-tabs__btn.is-active { background: var(--forest); color: var(--cream); border-color: var(--forest); }
.gallery-album { margin-bottom: 3.5rem; }
.gallery-album__head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 1rem; padding-bottom: 0.8rem; border-bottom: 1px solid rgba(214, 209, 199, 0.7); }
.gallery-album__date { font-family: var(--font-en); font-style: italic; font-size: 0.85rem; color: var(--terracotta); letter-spacing: 0.08em; }
.gallery-album__title { font-family: var(--font-jp); font-weight: 500; font-size: 1.05rem; color: var(--ink); letter-spacing: 0.04em; }
.gallery-album__count { font-family: var(--font-en); font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink-mid); }
.gallery-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.gallery-grid__item { aspect-ratio: 1 / 1; overflow: hidden; cursor: pointer; }
.gallery-grid__item img { transition: transform 0.6s; }
.gallery-grid__item:hover img { transform: scale(1.06); }

/* お便り・書類（parents-docs.html） */
.docs-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.docs-list__item { display: flex; align-items: center; gap: 1.2rem; padding: 1.2rem 1.4rem; background: var(--cream); border: 1px solid rgba(214, 209, 199, 0.7); transition: border-color 0.3s, background 0.3s, transform 0.3s; }
.docs-list__item:hover { border-color: var(--forest); background: var(--pale-green); transform: translateY(-2px); }
.docs-list__icon { width: 46px; height: 56px; flex-shrink: 0; border: 1px solid var(--terracotta); color: var(--terracotta); display: flex; align-items: center; justify-content: center; font-family: var(--font-en); font-size: 0.7rem; letter-spacing: 0.08em; }
.docs-list__icon--doc { border-color: var(--forest); color: var(--forest); }
.docs-list__body { flex: 1; min-width: 0; }
.docs-list__title { font-family: var(--font-jp); font-size: 0.94rem; color: var(--ink); margin-bottom: 0.3rem; font-weight: 500; line-height: 1.5; }
.docs-list__meta { font-family: var(--font-en); font-style: italic; font-size: 0.72rem; color: var(--ink-mid); letter-spacing: 0.04em; }
.docs-list__action { font-family: var(--font-en); font-size: 0.7rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--forest); padding: 0.5rem 0.9rem; border: 1px solid var(--forest); transition: color 0.25s, border-color 0.25s, background 0.25s; white-space: nowrap; }
.docs-list__item:hover .docs-list__action { background: var(--forest); color: var(--cream); }

/* 行事カレンダー（parents-calendar.html） */
.calendar-month { margin-bottom: 3.2rem; }
.calendar-month__head { display: flex; align-items: baseline; gap: 1.2rem; margin-bottom: 1.4rem; padding-bottom: 0.8rem; border-bottom: 1px solid rgba(214, 209, 199, 0.7); }
.calendar-month__num { font-family: var(--font-display); font-style: italic; font-size: 2.2rem; color: var(--terracotta); line-height: 1; }
.calendar-month__label { font-family: var(--font-jp); font-weight: 500; font-size: 1.05rem; color: var(--ink); letter-spacing: 0.06em; }
.calendar-month__count { font-family: var(--font-en); font-size: 0.7rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink-mid); margin-left: auto; }
.calendar-events { list-style: none; padding: 0; margin: 0; }
.calendar-events__item { display: grid; grid-template-columns: 90px 90px 1fr; gap: 1.2rem; padding: 1.1rem 0.4rem; border-bottom: 1px dashed rgba(214, 209, 199, 0.8); align-items: baseline; }
.calendar-events__date { font-family: var(--font-en); font-style: italic; font-size: 0.95rem; color: var(--ink); letter-spacing: 0.04em; }
.calendar-events__tag { font-family: var(--font-en); font-size: 0.62rem; letter-spacing: 0.16em; text-transform: uppercase; text-align: center; padding: 0.28rem 0.5rem; border: 1px solid var(--forest); color: var(--forest); align-self: center; }
.calendar-events__tag--event { border-color: var(--terracotta); color: var(--terracotta); }
.calendar-events__tag--safety { border-color: var(--gold); color: var(--gold); }
.calendar-events__tag--holiday { border-color: var(--sage); color: var(--sage); }
.calendar-events__body { font-family: var(--font-jp); font-weight: 300; font-size: 0.92rem; color: var(--ink-lite); line-height: 1.85; }
.calendar-events__body strong { display: block; font-weight: 500; color: var(--ink); margin-bottom: 0.2rem; font-size: 0.96rem; }

/* =========================================
   Responsive: Mobile（下層ページ）
   ========================================= */
@media (max-width: 880px) {
  .login-wrap { min-height: auto; }
  .login-body { padding: calc(var(--nav-h) + 2.4rem) var(--pad-x) 3rem; }
  .parents-grid { grid-template-columns: 1fr; gap: 1.6rem; }
  .parents-gallery { grid-template-columns: 1fr 1fr; grid-template-rows: 180px 180px 180px; }
  .parents-gallery__item:first-child { grid-row: span 1; grid-column: span 2; }
  .menu-calendar { grid-template-columns: 1fr; gap: 0.8rem; }
  .docs-list { grid-template-columns: 1fr; }
  .gallery-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 720px) {
  .news-archive__item { grid-template-columns: auto auto 1fr; grid-template-areas: "date cat arrow" "title title title"; gap: 0.3rem 0.7rem; padding: 0.85rem 0; align-items: center; }
  .news-archive__date { grid-area: date; font-size: 0.78rem; }
  .news-archive__cat { grid-area: cat; justify-self: start; font-size: 0.58rem; padding: 0.2rem 0.5rem; }
  .news-archive__title { grid-area: title; font-size: 0.88rem; line-height: 1.55; }
  .news-archive__arrow { grid-area: arrow; justify-self: end; align-self: center; font-size: 0.85rem; }
  .news-detail__info dl { grid-template-columns: 1fr; gap: 0.2rem 0; }
  .news-detail__info dt { margin-top: 0.6rem; }
  .news-detail__img { height: 220px; }
  .news-nav { grid-template-columns: 1fr; text-align: center; }
  .news-nav__link--prev, .news-nav__link--next { text-align: center; }
  .contact-form__submit { padding: 1rem 2rem; width: 100%; }
  .parents-hero__inner { flex-direction: column; align-items: flex-start; }
  .parents-hero__user { text-align: left; }
  .parents-notice li { grid-template-columns: 1fr; gap: 0.3rem; }
  .parents-notice__cat { justify-self: start; }
  .parents-quick__card { padding: 1.1rem 1.2rem; }
  .login-card__title { font-size: 1.3rem; }
  .parents-notice-list__item { grid-template-columns: auto auto 1fr; grid-template-areas: "date cat arrow" "title title title"; gap: 0.3rem 0.7rem; padding: 0.85rem 0; }
  .parents-notice-list__date { grid-area: date; }
  .parents-notice-list__cat { grid-area: cat; justify-self: start; }
  .parents-notice-list__title { grid-area: title; }
  .parents-notice-list__arrow { grid-area: arrow; justify-self: end; }
  .gallery-grid { grid-template-columns: repeat(2, 1fr); }
  .calendar-events__item { grid-template-columns: auto auto; grid-template-areas: "date tag" "body body"; gap: 0.3rem 0.8rem; padding: 1rem 0; }
  .calendar-events__date { grid-area: date; }
  .calendar-events__tag { grid-area: tag; justify-self: start; }
  .calendar-events__body { grid-area: body; }
  .calendar-month__num { font-size: 1.8rem; }
  .docs-list__item { padding: 1rem 1.1rem; gap: 0.9rem; }
  .docs-list__action { display: none; }
}

/* ════════════════════════════════════════
   FEATURE STORY（こだわり個別ページ共通）
   philosophy-environment / philosophy-kotoba / philosophy-play
   ════════════════════════════════════════ */
.feature-body { padding: 3.5rem var(--pad-x) 4rem; max-width: 1080px; margin: 0 auto; }

/* 見出しブロック */
.feature-story__head { display: grid; grid-template-columns: 180px 1fr; gap: 1rem 2rem; align-items: end; margin-bottom: 2.4rem; padding-bottom: 1.6rem; border-bottom: 1px solid rgba(214, 209, 199, 0.7); }
.feature-story__num { font-family: var(--font-display); font-style: italic; font-weight: 400; font-size: clamp(4.5rem, 9vw, 7rem); line-height: 0.85; color: var(--forest); letter-spacing: 0.02em; margin: 0; }
.feature-story__head-right { padding-bottom: 0.4rem; }
.feature-story__en { font-family: var(--font-en); font-size: 0.74rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--terracotta); margin-bottom: 0.8rem; }
.feature-story__title { font-family: var(--font-jp); font-weight: 500; font-size: clamp(1.25rem, 2.4vw, 1.6rem); line-height: 1.6; color: var(--ink); letter-spacing: 0.06em; margin: 0; }

/* ヒーロー写真 */
.feature-story__hero { margin-bottom: 2.6rem; overflow: hidden; }
.feature-story__hero img { width: 100%; height: clamp(280px, 42vw, 480px); object-fit: cover; display: block; }

/* 引用 ※左端を画像・本文・ギャラリーと揃えるため、padding 分のネガティブマージンで左シフト */
.feature-story__quote { font-family: var(--font-jp); font-weight: 400; font-size: clamp(1.05rem, 1.8vw, 1.25rem); line-height: 1.95; color: var(--ink); letter-spacing: 0.08em; margin: 0 0 2.6rem 0; padding: 0 0 0 2rem; border-left: 3px solid var(--forest); position: relative; }
.feature-story__quote::before { content: "“"; position: absolute; left: 0.2rem; top: -0.4rem; font-family: var(--font-display); font-size: 2.6rem; color: var(--forest); line-height: 1; }

/* 本文 */
.feature-story__body { margin: 0 0 3rem; }
.feature-story__body p { font-family: var(--font-jp); font-weight: 300; font-size: 0.95rem; line-height: 2.1; color: var(--ink-lite); }
.feature-story__body p + p { margin-top: 1rem; }
.feature-story__body h3 { font-family: var(--font-jp); font-weight: 500; font-size: 1.05rem; color: var(--ink); margin: 2.4rem 0 0.9rem; padding-left: 0.9rem; border-left: 3px solid var(--forest); letter-spacing: 0.04em; line-height: 1.6; }

/* 小写真ギャラリー */
.feature-story__gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.8rem; margin-bottom: 3rem; }
.feature-story__gallery img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; display: block; transition: transform 0.5s ease; }
.feature-story__gallery a { overflow: hidden; display: block; }
.feature-story__gallery a:hover img { transform: scale(1.06); }

/* 特徴リスト ※リスト形式が必要になった場合のために残置 */
.feature-story__list { list-style: none; padding: 0; margin: 0; counter-reset: feat; }
.feature-story__list li { position: relative; padding: 1rem 0 1rem 4.2rem; border-top: 1px solid rgba(214, 209, 199, 0.7); font-family: var(--font-jp); font-weight: 300; font-size: 0.92rem; line-height: 1.95; color: var(--ink-lite); counter-increment: feat; }
.feature-story__list li:last-child { border-bottom: 1px solid rgba(214, 209, 199, 0.7); }
.feature-story__list li::before { content: counter(feat, decimal-leading-zero); position: absolute; left: 0; top: 1.05rem; font-family: var(--font-en); font-style: italic; font-size: 0.95rem; color: var(--forest); letter-spacing: 0.04em; }

/* ページ間ナビゲーション */
.feature-pager { display: grid; grid-template-columns: 1fr auto 1fr; gap: 1rem; align-items: center; margin-top: 4rem; padding-top: 2rem; border-top: 1px solid rgba(214, 209, 199, 0.6); }
.feature-pager__link { font-family: var(--font-jp); font-size: 0.92rem; color: var(--forest); transition: color 0.25s; }
.feature-pager__link:hover { color: var(--terracotta); }
.feature-pager__link--prev { text-align: left; }
.feature-pager__link--next { text-align: right; }
.feature-pager__sub { display: block; font-family: var(--font-en); font-size: 0.66rem; letter-spacing: 0.2em; color: var(--ink-mid); margin-bottom: 0.2rem; text-transform: uppercase; }
.feature-pager__back { font-family: var(--font-en); font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ink-mid); padding: 0.5rem 1.2rem; border: 1px solid var(--ink-mid); transition: color 0.25s, border-color 0.25s; }
.feature-pager__back:hover { color: var(--terracotta); border-color: var(--terracotta); }

/* =========================================
   Responsive: Tablet（Feature Story）
   ========================================= */
@media (max-width: 960px) {
  .feature-story__head { grid-template-columns: 130px 1fr; gap: 0.8rem 1.4rem; }
}

/* =========================================
   Responsive: Mobile（Feature Story）
   ========================================= */
@media (max-width: 640px) {
  .feature-body { padding: 2.5rem var(--pad-x) 3rem; }
  .feature-story__head { grid-template-columns: 1fr; gap: 0.4rem; align-items: start; padding-bottom: 1.2rem; margin-bottom: 1.8rem; }
  .feature-story__num { line-height: 1; }
  .feature-story__hero img { height: 240px; }
  .feature-story__quote { padding-left: 1.4rem; margin: 0 0 0 2rem; }
  .feature-story__gallery { grid-template-columns: repeat(3, 1fr); gap: 0.4rem; }
  .feature-story__list li { padding-left: 3rem; }
  .feature-pager { grid-template-columns: 1fr; gap: 1.2rem; text-align: center; }
  .feature-pager__link--prev, .feature-pager__link--next { text-align: center; }
}

/* ════════════════════════════════════════
   PHILOSOPHY INDEX（3つのこだわり 目次ページ）
   ════════════════════════════════════════ */
.philosophy-body { padding: 4rem var(--pad-x) 5rem; max-width: 1180px; margin: 0 auto; }
.philosophy-lead { max-width: 720px; margin: 0 auto 4rem; font-family: var(--font-jp); font-weight: 300; font-size: 1rem; line-height: 2.1; color: var(--ink-lite); text-align: center; letter-spacing: 0.04em; }
.philosophy-lead em { font-family: var(--font-display); font-style: italic; color: var(--forest); font-weight: 400; }

.feature-index { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; }
.feature-index__card { position: relative; display: block; overflow: hidden; background: var(--cream); border: 1px solid rgba(214, 209, 199, 0.7); transition: transform 0.35s ease, border-color 0.35s; }
.feature-index__card:hover { transform: translateY(-4px); border-color: var(--forest); }
.feature-index__img { aspect-ratio: 4 / 3; overflow: hidden; }
.feature-index__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
.feature-index__card:hover .feature-index__img img { transform: scale(1.05); }
.feature-index__body { padding: 1.6rem 1.6rem 1.8rem; }
.feature-index__num { font-family: var(--font-display); font-style: italic; font-size: 1.7rem; color: var(--forest); margin-bottom: 0.3rem; letter-spacing: 0.04em; }
.feature-index__en { font-family: var(--font-en); font-size: 0.72rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ink-mid); margin-bottom: 0.6rem; }
.feature-index__jp { font-family: var(--font-jp); font-weight: 500; font-size: 1.1rem; color: var(--ink); letter-spacing: 0.06em; margin-bottom: 0.9rem; }
.feature-index__desc { font-family: var(--font-jp); font-weight: 300; font-size: 0.88rem; line-height: 1.85; color: var(--ink-lite); margin-bottom: 1.2rem; }
.feature-index__arrow { font-family: var(--font-en); font-size: 0.78rem; color: var(--terracotta); letter-spacing: 0.16em; }

.philosophy-cta { padding: 5rem var(--pad-x); background: var(--cream); text-align: center; border-top: 1px solid rgba(214, 209, 199, 0.6); }
.philosophy-cta__label { font-family: var(--font-en); font-size: 0.74rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--forest); margin-bottom: 1rem; }
.philosophy-cta__title { font-family: var(--font-display); font-style: italic; font-size: clamp(1.6rem, 3vw, 2.2rem); color: var(--ink); margin-bottom: 1.2rem; letter-spacing: 0.04em; }
.philosophy-cta__text { font-family: var(--font-jp); font-weight: 300; font-size: 0.95rem; line-height: 2.05; color: var(--ink-lite); max-width: 560px; margin: 0 auto 2.4rem; }
.philosophy-cta__btns { display: inline-flex; gap: 1.2rem; flex-wrap: wrap; justify-content: center; }
.philosophy-cta__btn { font-family: var(--font-en); font-size: 0.78rem; letter-spacing: 0.2em; text-transform: uppercase; padding: 0.9rem 1.8rem; border: 1px solid var(--forest); color: var(--forest); transition: background 0.3s, color 0.3s; }
.philosophy-cta__btn:hover { background: var(--forest); color: var(--cream); }
.philosophy-cta__btn--primary { background: var(--forest); color: var(--cream); }
.philosophy-cta__btn--primary:hover { background: var(--ink); border-color: var(--ink); }

@media (max-width: 960px) {
  .feature-index { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
  .philosophy-body { padding: 3rem var(--pad-x) 3.5rem; }
  .philosophy-lead { margin-bottom: 2.8rem; font-size: 0.93rem; }
  .feature-index { grid-template-columns: 1fr; gap: 1rem; }
  .philosophy-cta { padding: 3.5rem var(--pad-x); }
}

/* ════════════════════════════════════════
   ADMISSION（入園案内ページ専用）
   ════════════════════════════════════════ */

/* 募集要項テーブル */
.adm-table { width: 100%; border-collapse: collapse; margin: 1.2rem 0 2rem; }
.adm-table th, .adm-table td { font-family: var(--font-jp); font-weight: 300; font-size: 0.92rem; line-height: 1.9; color: var(--ink-lite); text-align: left; padding: 1rem 1.2rem; border-bottom: 1px solid rgba(214, 209, 199, 0.7); vertical-align: top; }
.adm-table th { width: 200px; font-weight: 400; color: var(--ink); background: var(--cream); border-bottom: 1px solid rgba(214, 209, 199, 0.7); letter-spacing: 0.04em; }

/* 入園の流れ STEP */
.adm-steps { list-style: none; padding: 0; margin: 1.6rem 0 2rem; counter-reset: step; }
.adm-step { position: relative; padding: 1.6rem 1.6rem 1.6rem 5rem; margin-bottom: 1rem; background: var(--cream); border-left: 3px solid var(--forest); counter-increment: step; }
.adm-step::before { content: "STEP " counter(step, decimal-leading-zero); position: absolute; left: 1.4rem; top: 1.6rem; font-family: var(--font-en); font-size: 0.72rem; letter-spacing: 0.18em; color: var(--forest); }
.adm-step__title { font-family: var(--font-jp); font-weight: 500; font-size: 1rem; color: var(--ink); margin: 0 0 0.4rem; letter-spacing: 0.04em; }
.adm-step__desc { font-family: var(--font-jp); font-weight: 300; font-size: 0.9rem; line-height: 1.95; color: var(--ink-lite); margin: 0; }

/* 1日の流れ */
.adm-schedule { list-style: none; padding: 0; margin: 1.4rem 0 2rem; }
.adm-schedule__item { display: grid; grid-template-columns: 110px 1fr; gap: 1rem 1.4rem; padding: 0.9rem 0.4rem; border-bottom: 1px solid rgba(214, 209, 199, 0.7); }
.adm-schedule__time { font-family: var(--font-en); font-style: italic; font-size: 0.95rem; color: var(--forest); letter-spacing: 0.04em; }
.adm-schedule__text { font-family: var(--font-jp); font-weight: 300; font-size: 0.92rem; line-height: 1.85; color: var(--ink-lite); }

/* 未就園児プログラム カード */
.adm-programs { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.4rem; margin: 1.4rem 0 2rem; }
.adm-program { padding: 1.6rem 1.5rem; background: var(--cream); border: 1px solid rgba(214, 209, 199, 0.7); transition: border-color 0.25s, transform 0.25s; }
.adm-program:hover { border-color: var(--forest); transform: translateY(-2px); }
.adm-program__tag { font-family: var(--font-en); font-size: 0.66rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--terracotta); margin-bottom: 0.6rem; }
.adm-program__title { font-family: var(--font-jp); font-weight: 500; font-size: 1.05rem; color: var(--ink); margin: 0 0 0.2rem; letter-spacing: 0.04em; }
.adm-program__sub { font-family: var(--font-en); font-style: italic; font-size: 0.82rem; color: var(--ink-mid); margin-bottom: 0.8rem; }
.adm-program__desc { font-family: var(--font-jp); font-weight: 300; font-size: 0.88rem; line-height: 1.9; color: var(--ink-lite); margin-bottom: 1rem; }
.adm-program__meta { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.adm-program__meta span { font-family: var(--font-en); font-size: 0.66rem; letter-spacing: 0.14em; text-transform: uppercase; padding: 0.3rem 0.6rem; border: 1px solid rgba(0,0,0,0.18); color: var(--ink-mid); }

/* 注意書き */
.adm-note { margin-top: 1rem; padding: 1rem 1.2rem; background: rgba(235, 242, 232, 0.45); border-left: 3px solid var(--sage); font-family: var(--font-jp); font-weight: 300; font-size: 0.88rem; line-height: 1.95; color: var(--ink-lite); }

/* お電話お問い合わせ（tel:リンク） */
.adm-tel { display: inline-flex; align-items: center; gap: 1rem; margin-top: 1.4rem; padding: 1.1rem 1.6rem; background: var(--cream); border: 1px solid var(--forest); color: var(--forest); transition: background 0.3s, color 0.3s; text-decoration: none; }
.adm-tel:hover { background: var(--forest); color: var(--cream); }
.adm-tel__icon { display: inline-flex; width: 28px; height: 28px; flex-shrink: 0; }
.adm-tel__icon svg { width: 100%; height: 100%; }
.adm-tel__body { display: inline-flex; flex-direction: column; line-height: 1.4; }
.adm-tel__label { font-family: var(--font-en); font-size: 0.66rem; letter-spacing: 0.18em; text-transform: uppercase; opacity: 0.85; }
.adm-tel__num { font-family: var(--font-display); font-size: 1.45rem; letter-spacing: 0.06em; margin-top: 0.15rem; }
.adm-tel__hours { font-family: var(--font-jp); font-size: 0.78rem; font-weight: 300; margin-top: 0.2rem; opacity: 0.85; }

@media (max-width: 768px) {
  .adm-table th, .adm-table td { display: block; width: 100%; padding: 0.7rem 0.9rem; }
  .adm-table th { border-bottom: none; }
  .adm-step { padding: 1.4rem 1.3rem 1.4rem 1.3rem; }
  .adm-step::before { position: static; display: block; margin-bottom: 0.5rem; }
  .adm-schedule__item { grid-template-columns: 90px 1fr; gap: 0.6rem 1rem; }
  .adm-tel { display: flex; width: 100%; padding: 1rem 1.2rem; }
  .adm-tel__num { font-size: 1.25rem; }
}

/* ════════════════════════════════════════
   EVENTS（年間行事 events.html）
   ════════════════════════════════════════ */
.events-body { padding: 4rem var(--pad-x) 5rem; max-width: 980px; margin: 0 auto; }
.events-lead { max-width: 720px; margin: 0 auto 3.6rem; font-family: var(--font-jp); font-weight: 300; font-size: 1rem; line-height: 2.1; color: var(--ink-lite); text-align: center; letter-spacing: 0.04em; }
.events-lead em { font-family: var(--font-display); font-style: italic; color: var(--forest); font-weight: 400; }

/* 学期セクション見出し */
.events-term { margin-bottom: 4.2rem; }
.events-term__head { display: flex; align-items: baseline; gap: 1.4rem; margin-bottom: 2.2rem; padding-bottom: 1rem; border-bottom: 2px solid var(--forest); }
.events-term__num { font-family: var(--font-display); font-style: italic; font-size: 2rem; color: var(--forest); line-height: 1; }
.events-term__en { font-family: var(--font-en); font-size: 0.72rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ink-mid); }
.events-term__jp { font-family: var(--font-jp); font-weight: 500; font-size: 1.2rem; color: var(--ink); letter-spacing: 0.08em; margin-left: auto; }

/* 毎月の定例行事ボックス */
.events-monthly { margin-top: 4.5rem; padding: 2.4rem 2rem; background: var(--cream); border: 1px solid rgba(214, 209, 199, 0.7); }
.events-monthly__label { font-family: var(--font-en); font-size: 0.72rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--forest); margin-bottom: 0.6rem; }
.events-monthly__title { font-family: var(--font-jp); font-weight: 500; font-size: 1.15rem; color: var(--ink); margin-bottom: 1.2rem; letter-spacing: 0.06em; }
.events-monthly__list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.9rem 1.4rem; }
.events-monthly__list li { font-family: var(--font-jp); font-weight: 300; font-size: 0.92rem; color: var(--ink-lite); line-height: 1.7; padding-left: 1rem; position: relative; }
.events-monthly__list li::before { content: "—"; position: absolute; left: 0; color: var(--terracotta); }
.events-monthly__note { margin-top: 1.4rem; font-family: var(--font-jp); font-weight: 300; font-size: 0.84rem; color: var(--ink-mid); line-height: 1.85; }

/* CTA Bridge */
.events-cta { padding: 5rem var(--pad-x); background: var(--cream); text-align: center; border-top: 1px solid rgba(214, 209, 199, 0.6); }
.events-cta__label { font-family: var(--font-en); font-size: 0.74rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--forest); margin-bottom: 1rem; }
.events-cta__title { font-family: var(--font-display); font-style: italic; font-size: clamp(1.6rem, 3vw, 2.2rem); color: var(--ink); margin-bottom: 1.2rem; letter-spacing: 0.04em; }
.events-cta__text { font-family: var(--font-jp); font-weight: 300; font-size: 0.95rem; line-height: 2.05; color: var(--ink-lite); max-width: 560px; margin: 0 auto 2.4rem; }
.events-cta__btns { display: inline-flex; gap: 1.2rem; flex-wrap: wrap; justify-content: center; }
.events-cta__btn { font-family: var(--font-en); font-size: 0.78rem; letter-spacing: 0.2em; text-transform: uppercase; padding: 0.9rem 1.8rem; border: 1px solid var(--forest); color: var(--forest); transition: background 0.3s, color 0.3s; }
.events-cta__btn:hover { background: var(--forest); color: var(--cream); }
.events-cta__btn--primary { background: var(--forest); color: var(--cream); }
.events-cta__btn--primary:hover { background: var(--ink); border-color: var(--ink); }

@media (max-width: 720px) {
  .events-body { padding: 3rem var(--pad-x) 3.5rem; }
  .events-lead { margin-bottom: 2.6rem; font-size: 0.93rem; }
  .events-term__head { flex-wrap: wrap; gap: 0.6rem 1rem; }
  .events-term__jp { margin-left: 0; width: 100%; font-size: 1.05rem; }
  .events-monthly { padding: 1.8rem 1.4rem; }
  .events-monthly__list { grid-template-columns: 1fr; gap: 0.6rem; }
  .events-cta { padding: 3.5rem var(--pad-x); }
}

/* ════════════════════════════════════════
   404 PAGE
   ════════════════════════════════════════ */
.notfound-main { padding-top: calc(var(--nav-h) + 6rem); }
.notfound { text-align: center; padding: 2rem 0 1rem; }
.notfound__code { font-family: var(--font-display); font-size: clamp(6rem, 18vw, 12rem); line-height: 1; letter-spacing: 0.04em; color: var(--forest); font-style: italic; font-weight: 400; margin: 0 0 1.4rem; }
.notfound__lead { font-family: var(--font-jp); font-weight: 400; font-size: clamp(1.05rem, 2vw, 1.25rem); color: var(--ink); letter-spacing: 0.06em; margin-bottom: 1.4rem; }
.notfound__desc { font-family: var(--font-jp); font-weight: 300; font-size: 0.92rem; line-height: 2.05; color: var(--ink-lite); max-width: 560px; margin: 0 auto 3rem; }
.notfound__divider { width: 60px; height: 1px; background: rgba(214, 209, 199, 0.9); margin: 0 auto 3rem; }
.notfound__links { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.2rem; max-width: 720px; margin: 0 auto; }
.notfound__card { display: block; padding: 1.6rem 1.4rem; background: var(--cream); border: 1px solid rgba(214, 209, 199, 0.7); text-align: left; transition: background 0.25s, border-color 0.25s, transform 0.25s; }
.notfound__card:hover { background: rgba(235, 242, 232, 0.5); border-color: var(--forest); transform: translateY(-2px); }
.notfound__card-label { font-family: var(--font-en); font-size: 0.68rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--forest); margin-bottom: 0.5rem; }
.notfound__card-text { font-family: var(--font-jp); font-weight: 400; font-size: 0.95rem; color: var(--ink); letter-spacing: 0.04em; }
.notfound__card-arrow { font-family: var(--font-en); color: var(--terracotta); margin-left: 0.4rem; }

@media (max-width: 768px) {
  .notfound { padding: 1rem 0; }
  .notfound__links { grid-template-columns: 1fr; gap: 0.8rem; }
  .notfound__card { padding: 1.3rem 1.2rem; }
}
