
    :root {
      --cream: #F7F2E8;
      --beige: #EDE5D0;
      --light-beige: #FAF7F0;
      --brown: #7A5C3A;
      --dark-brown: #4A3520;
      --green: #6B8E6B;
      --light-green: #9DB89D;
      --pale-green: #E8EFE3;
      --orange: #C87941;
      --text: #3A2E20;
      --text-light: #7A6A54;
      --max-w: 1060px;
    }

    *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      font-family: 'Noto Sans JP', sans-serif;
      background-color: var(--cream);
      color: var(--text);
      line-height: 1.8;
      font-size: 17px;
    }

    /* ===== INTRO ===== */
    #intro-overlay {
      position: fixed; inset: 0; z-index: 9999;
      background-color: var(--dark-brown);
      display: flex; flex-direction: column;
      align-items: center; justify-content: center;
      pointer-events: none;
      transition: opacity 1s ease;
    }
    #intro-overlay.fade-out { opacity: 0; }
    #intro-overlay.hidden { display: none; }

    /* ---- イントロ本棚 ---- */
    .intro-bookshelf {
      margin-bottom: 2.5rem;
      opacity: 0;
      animation: introFadeIn 1s ease 0.3s forwards;
    }
    @keyframes introFadeIn {
      to { opacity: 1; }
    }

    .intro-tamatan {
      margin-bottom: 1.8rem; opacity: 0;
      transform: translateY(8px);
      transition: opacity 0.8s ease 0.3s, transform 0.8s ease 0.3s;
    }
    .intro-tamatan.show { opacity: 1; transform: translateY(0); }
    .intro-tamatan-img {
      width: 120px; height: auto;
      border-radius: 50%;
    }

    .intro-line1, .intro-line2 {
      font-family: 'Shippori Mincho', serif;
      color: var(--cream); text-align: center;
      letter-spacing: 0.18em; overflow: hidden;
      white-space: nowrap; width: 0; opacity: 0;
    }
    .intro-line1 { font-size: clamp(1.1rem, 3.5vw, 1.6rem); font-weight: 600; margin-bottom: 1rem; }
    .intro-line2 { font-size: clamp(0.85rem, 2.5vw, 1.1rem); color: rgba(247,242,232,0.7); }
    .intro-line1.reveal { animation: typeReveal 1.4s cubic-bezier(0.4,0,0.2,1) forwards; }
    .intro-line2.reveal { animation: typeReveal 1.6s cubic-bezier(0.4,0,0.2,1) forwards; }

    @keyframes typeReveal {
      0%   { width: 0; opacity: 0; }
      5%   { opacity: 1; }
      100% { width: 100%; opacity: 1; }
    }

    .intro-bar {
      width: 0; height: 2px;
      background: rgba(157,184,157,0.6);
      margin: 2rem auto 0; border-radius: 2px;
      transition: width 2.2s ease;
    }
    .intro-bar.grow { width: 120px; }

    /* ===== NAV ===== */
    #site-nav {
      position: sticky; top: 0; z-index: 100;
      background: rgba(247,242,232,0.94);
      backdrop-filter: blur(14px);
      -webkit-backdrop-filter: blur(14px);
      border-bottom: 1px solid rgba(122,92,58,0.1);
      transition: box-shadow 0.3s;
    }
    #site-nav.scrolled { box-shadow: 0 2px 20px rgba(74,53,32,0.1); }

    .nav-inner {
      max-width: var(--max-w); margin: 0 auto;
      padding: 0 2rem;
      display: flex; align-items: center; justify-content: space-between;
      height: 60px;
    }
    .nav-logo {
      font-family: 'Shippori Mincho', serif;
      font-size: 0.98rem; font-weight: 600;
      color: var(--dark-brown); letter-spacing: 0.12em;
      text-decoration: none;
    }
    .nav-links { display: flex; align-items: center; }
    .nav-links a {
      font-size: 0.75rem; color: var(--text-light);
      text-decoration: none; letter-spacing: 0.08em;
      padding: 0.45rem 0.75rem; border-radius: 4px;
      transition: color 0.2s, background 0.2s;
    }
    .nav-links a:hover { color: var(--dark-brown); background: rgba(122,92,58,0.07); }

    /* 募集中バッジ（テキスト真横・インライン） */
    .nav-recruiting { position: relative; }
    .nav-badge {
      display: inline-block;
      background: #E8624A;
      color: #fff;
      font-size: 0.55rem;
      font-weight: 700;
      letter-spacing: 0.08em;
      padding: 0.1rem 0.42rem;
      border-radius: 20px;
      margin-left: 0.3rem;
      vertical-align: middle;
      white-space: nowrap;
      box-shadow: 0 2px 5px rgba(232,98,74,0.3);
      animation: badgePulse 2s ease-in-out infinite;
    }
    .nav-badge::before { display: none; }
    @keyframes badgePulse {
      0%, 100% { opacity: 1; transform: translateY(-1px) scale(1); }
      50%       { opacity: 0.82; transform: translateY(-1px) scale(0.96); }
    }

    .nav-hamburger {
      display: none; flex-direction: column; gap: 5px;
      background: none; border: none; cursor: pointer; padding: 6px;
    }
    .nav-hamburger span {
      display: block; width: 22px; height: 2px;
      background: var(--dark-brown); border-radius: 2px;
      transition: transform 0.3s, opacity 0.3s;
    }

    /* ===== SECTION BASE ===== */
    .lp-section { padding: 6rem 2rem; }
    .section-inner { max-width: var(--max-w); margin: 0 auto; }

    .section-eyebrow {
      font-size: 0.63rem; letter-spacing: 0.32em; color: var(--green);
      font-weight: 500; text-transform: uppercase; margin-bottom: 0.55rem;
      display: flex; align-items: center; gap: 0.7rem;
    }
    .section-eyebrow::before {
      content: ''; width: 22px; height: 1.5px; background: var(--light-green); flex-shrink: 0;
    }
    .section-title {
      font-family: 'Shippori Mincho', serif;
      font-size: clamp(1.6rem, 3.5vw, 2.3rem);
      font-weight: 700; color: var(--dark-brown);
      letter-spacing: 0.1em; line-height: 1.4; margin-bottom: 0.9rem;
    }
    .section-lead {
      font-size: 0.95rem; color: var(--text-light);
      line-height: 2.1; margin-bottom: 2.5rem; max-width: 620px;
    }

    /* ===== HERO ===== */
    #hero {
      min-height: 90vh; display: flex; align-items: center; justify-content: center;
      background: var(--cream); position: relative; overflow: hidden;
      border-bottom: 1px solid rgba(122,92,58,0.1);
    }
    .hero-lines-bg {
      position: absolute; inset: 0; pointer-events: none;
    }
    .hero-content {
      max-width: var(--max-w); width: 100%;
      padding: 5rem 2rem 4.5rem;
      display: flex; flex-direction: column;
      align-items: center; text-align: center;
      position: relative; z-index: 1;
    }
    .hero-bookshelf-wrap { width: 100%; max-width: 520px; margin-bottom: 1.8rem; }
    .hero-event-label {
      font-size: 0.64rem; letter-spacing: 0.36em; color: var(--green);
      text-transform: uppercase; font-weight: 500; margin-bottom: 0.8rem;
    }
    .hero-location {
      font-family: 'Shippori Mincho', serif;
      font-size: clamp(0.72rem, 1.2vw, 0.85rem);
      color: var(--text-light); letter-spacing: 0.3em;
      margin-bottom: 0.3rem;
    }
    .hero-title {
      font-family: 'Shippori Mincho', serif;
      font-size: clamp(3rem, 7.5vw, 5.5rem);
      font-weight: 700; color: var(--dark-brown);
      letter-spacing: 0.22em; line-height: 1.15; margin-bottom: 1.6rem;
    }
    .hero-vol {
      display: block;
      font-size: 0.52em;
      font-weight: 400;
      letter-spacing: 0.32em;
      color: var(--text-light);
      margin-bottom: 0.3em;
      line-height: 1;
    }
    .hero-date-badge {
      display: inline-flex; align-items: center; gap: 1.2rem;
      background: var(--dark-brown); color: var(--cream);
      padding: 0.85rem 2.4rem; border-radius: 40px;
      font-family: 'Shippori Mincho', serif;
      font-size: clamp(0.8rem, 1.8vw, 1rem);
      letter-spacing: 0.08em; margin-bottom: 1.9rem;
    }
    .hero-date-sep { opacity: 0.3; }
    .hero-tagline {
      font-family: 'Shippori Mincho', serif;
      font-size: clamp(0.9rem, 2vw, 1.06rem);
      color: var(--text-light); letter-spacing: 0.08em;
      line-height: 2.3; margin-bottom: 2.8rem;
    }
    .hero-subtitle {
      font-family: 'Shippori Mincho', serif;
      font-size: clamp(0.78rem, 1.5vw, 0.95rem);
      color: var(--text-light); letter-spacing: 0.2em;
      margin-top: -0.8rem; margin-bottom: 1.6rem;
      border: 1px solid rgba(122,92,58,0.2);
      padding: 0.3rem 1.1rem; border-radius: 20px;
      display: inline-block;
    }


    /* ===== テーマステートメント ===== */
    .theme-statement {
      background: var(--dark-brown);
      padding: 7rem 2rem 7rem;
      text-align: center;
    }
    .theme-statement-inner {
      max-width: 760px; margin: 0 auto;
    }
    .theme-label {
      font-family: 'Shippori Mincho', serif;
      font-size: clamp(0.68rem, 1.4vw, 0.82rem);
      color: var(--light-green); letter-spacing: 0.45em;
      margin-bottom: 2.4rem;
      display: inline-flex; align-items: center; gap: 1.2rem;
    }
    .theme-label::before,
    .theme-label::after {
      content: ''; display: inline-block;
      width: 32px; height: 1px; background: rgba(157,184,157,0.4);
    }
    .theme-copy {
      font-family: 'Shippori Mincho', serif;
      font-size: clamp(2.4rem, 5.5vw, 4.4rem);
      font-weight: 700; color: var(--cream);
      letter-spacing: 0.22em; line-height: 1.75;
      margin-bottom: 0;
    }

    /* ===== 会場写真 ===== */
    .venue-section { background: var(--dark-brown); }

    .venue-photo-wrap {
      position: relative; width: 100%; max-height: 520px; overflow: hidden;
    }
    .venue-photo-img {
      width: 100%; height: 520px; object-fit: cover; object-position: center 30%;
      display: block; filter: brightness(0.88);
    }
    .venue-photo-overlay {
      position: absolute; inset: 0;
      background: linear-gradient(to top, rgba(74,53,32,0.75) 0%, rgba(74,53,32,0.1) 60%, transparent 100%);
      display: flex; align-items: flex-end;
    }
    .venue-overlay-inner {
      max-width: var(--max-w); width: 100%; margin: 0 auto;
      padding: 2.5rem 2.5rem;
    }
    .venue-overlay-label {
      font-size: 0.62rem; letter-spacing: 0.35em; color: var(--light-green);
      text-transform: uppercase; margin-bottom: 0.6rem;
    }
    .venue-overlay-designation {
      display: inline-block;
      font-family: 'Shippori Mincho', serif;
      font-size: 0.8rem;
      font-weight: 600;
      letter-spacing: 0.25em;
      color: #4A3520;
      background: rgba(247,242,232,0.95);
      padding: 0.35rem 1.1rem;
      margin-bottom: 1rem;
    }
    .venue-overlay-title {
      font-family: 'Shippori Mincho', serif;
      font-size: clamp(1.6rem, 4vw, 2.8rem); font-weight: 700;
      color: var(--cream); letter-spacing: 0.15em; margin-bottom: 0.45rem;
    }
    .venue-overlay-sub {
      font-size: 0.8rem; color: rgba(247,242,232,0.7); letter-spacing: 0.1em;
    }

    .venue-desc-bar {
      background: var(--dark-brown); padding: 1.4rem 2rem;
      border-top: 1px solid rgba(247,242,232,0.08);
    }
    .venue-desc-inner {
      max-width: var(--max-w); margin: 0 auto;
      display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap;
      font-size: 0.85rem; color: rgba(247,242,232,0.65);
      line-height: 1.9; letter-spacing: 0.04em;
    }
    /* 公開情報テーブル */
    .venue-hours {
      width: 100%;
      background: rgba(247,242,232,0.06);
      border: 1px solid rgba(247,242,232,0.12);
      border-radius: 6px;
      padding: 1.1rem 1.4rem;
      margin: 1rem 0;
    }
    .venue-hours-title {
      font-size: 0.68rem; letter-spacing: 0.18em;
      color: var(--light-green); margin-bottom: 0.7rem;
    }
    .venue-hours-list {
      display: grid; grid-template-columns: auto 1fr;
      gap: 0.3rem 1rem;
      font-size: 0.8rem; color: rgba(247,242,232,0.75);
      line-height: 1.8;
    }
    .venue-hours-list dt {
      color: rgba(247,242,232,0.45); letter-spacing: 0.08em;
      white-space: nowrap; padding-top: 0.05rem;
    }
    .venue-hours-note-inline {
      font-size: 0.75rem; color: rgba(247,242,232,0.5);
    }
    .venue-hours-caution {
      font-size: 0.72rem; color: rgba(247,242,232,0.45);
      margin-top: 0.7rem; letter-spacing: 0.04em; line-height: 1.7;
    }
    .venue-hours-contact {
      font-size: 0.72rem; color: rgba(247,242,232,0.55);
      margin-top: 1rem; letter-spacing: 0.04em; line-height: 1.9;
      border-top: 1px solid rgba(247,242,232,0.12);
      padding-top: 0.9rem;
    }
    .venue-hours-tel {
      color: rgba(247,242,232,0.75);
      text-decoration: none;
      letter-spacing: 0.08em;
    }
    .venue-hours-tel:hover { text-decoration: underline; }

    /* 確定出展者：重田家住宅見学注記 */

    .venue-desc-link {
      flex-shrink: 0;
      font-size: 0.75rem; letter-spacing: 0.1em;
      color: var(--light-green); text-decoration: none;
      border-bottom: 1px solid rgba(157,184,157,0.4);
      padding-bottom: 1px; white-space: nowrap;
      transition: color 0.2s, border-color 0.2s;
    }
    .venue-desc-link:hover { color: #fff; border-color: rgba(255,255,255,0.5); }

    @media (max-width: 768px) {
      .venue-photo-img { height: 300px; }
      .venue-overlay-inner { padding: 1.5rem 1.4rem; }
    }

    /* ===== BOOK BANNER ===== */
    .book-banner {
      background: var(--dark-brown);
      padding: 1.6rem 2rem;
    }
    .book-banner-inner {
      max-width: var(--max-w); margin: 0 auto;
      display: flex; align-items: center; justify-content: space-between;
      gap: 2rem; flex-wrap: wrap;
    }
    .book-banner-text {
      display: flex; align-items: center; gap: 0.9rem;
      font-family: 'Shippori Mincho', serif;
      font-size: clamp(0.95rem, 2vw, 1.12rem);
      color: var(--cream); letter-spacing: 0.1em;
    }
    .book-banner-tags {
      display: flex; flex-wrap: wrap; gap: 0.5rem;
    }
    .book-banner-tags span {
      font-size: 0.72rem; letter-spacing: 0.12em;
      color: var(--light-green);
      border: 1px solid rgba(157,184,157,0.35);
      border-radius: 20px; padding: 0.25rem 0.8rem;
    }

    .hero-scroll {
      display: flex; flex-direction: column; align-items: center; gap: 0.6rem;
      font-size: 0.58rem; letter-spacing: 0.3em; color: var(--text-light); text-transform: uppercase;
    }
    .hero-scroll-line { width: 1px; height: 40px; background: linear-gradient(to bottom, var(--light-green), transparent); }

    /* ===== ABOUT ===== */
    #about { background: var(--cream); }
    .about-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 4.5rem; align-items: start; }

    .about-highlight {
      background: var(--pale-green); border-left: 4px solid var(--green);
      padding: 1.5rem 1.8rem; border-radius: 0 10px 10px 0;
      font-family: 'Shippori Mincho', serif;
      font-size: 0.96rem; color: var(--dark-brown); line-height: 2.1;
      margin-bottom: 1.8rem; position: relative;
    }
    .about-highlight::before {
      content: ''; position: absolute; top: -2px; right: 1.4rem;
      width: 16px; height: 26px; background: var(--orange);
      clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 82%, 0 100%);
    }
    .about-lead { font-size: 0.95rem; color: var(--text); line-height: 2.3; }

    .about-info-stack { display: flex; flex-direction: column; gap: 0.9rem; }
    .info-card {
      background: var(--beige); border-radius: 10px; padding: 1.1rem 1.5rem;
      display: flex; flex-direction: column; gap: 0.15rem;
      border-left: 3px solid var(--green);
    }
    .info-card:nth-child(2) { border-left-color: var(--orange); }
    .info-card:nth-child(3) { border-left-color: var(--brown); }
    .info-card:nth-child(4) { border-left-color: var(--light-green); }
    .info-label { font-size: 0.59rem; letter-spacing: 0.25em; color: var(--green); font-weight: 500; text-transform: uppercase; }
    .info-value { font-family: 'Shippori Mincho', serif; font-size: 0.97rem; color: var(--dark-brown); font-weight: 600; }
    .info-sub { font-size: 0.75rem; color: var(--text-light); }

    /* ===== VENDORS ===== */
    #vendors { background: var(--light-beige); }
    .vendors-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }

    .vendor-card {
      background: var(--cream); border-radius: 14px;
      border: 1px solid rgba(122,92,58,0.1); overflow: hidden;
      transition: transform 0.3s, box-shadow 0.3s;
      display: flex; flex-direction: column;
    }
    .vendor-card:hover { transform: translateY(-5px); box-shadow: 0 14px 36px rgba(74,53,32,0.1); }

    .vendor-photo {
      height: 220px; overflow: hidden; flex-shrink: 0;
      border-bottom: 1px solid rgba(122,92,58,0.08);
    }
    .vendor-photo img {
      width: 100%; height: 100%;
      object-fit: cover; object-position: center;
      display: block;
      transition: transform 0.5s ease;
    }
    .vendor-card:hover .vendor-photo img {
      transform: scale(1.04);
    }

    /* ===== カルーセル ===== */
    .vendor-carousel { position: relative; }
    .carousel-track { width: 100%; height: 100%; position: relative; }
    .carousel-track img {
      position: absolute; inset: 0;
      width: 100%; height: 100%;
      object-fit: cover; object-position: center;
      opacity: 0;
      transition: opacity 0.7s ease;
    }
    .carousel-track img.active { opacity: 1; }
    /* ホバー時のズームはカルーセルには不要なので除外 */
    .vendor-carousel:hover .carousel-track img.active { transform: none; }

    .carousel-prev, .carousel-next {
      position: absolute; top: 50%; transform: translateY(-50%);
      background: rgba(247,242,232,0.85);
      border: none; border-radius: 50%;
      width: 30px; height: 30px;
      font-size: 1.2rem; line-height: 1;
      color: var(--dark-brown);
      cursor: pointer; z-index: 2;
      display: flex; align-items: center; justify-content: center;
      transition: background 0.2s;
    }
    .carousel-prev:hover, .carousel-next:hover { background: #fff; }
    .carousel-prev { left: 8px; }
    .carousel-next { right: 8px; }

    .carousel-dots {
      position: absolute; bottom: 8px; left: 50%;
      transform: translateX(-50%);
      display: flex; gap: 5px; z-index: 2;
    }
    .carousel-dot {
      width: 6px; height: 6px; border-radius: 50%;
      background: rgba(247,242,232,0.5);
      cursor: pointer;
      transition: background 0.3s, transform 0.3s;
    }
    .carousel-dot.active {
      background: #fff;
      transform: scale(1.3);
    }

    .vendor-body {
      padding: 1.4rem 1.6rem;
      display: flex; flex-direction: column; flex: 1;
    }
    .vendor-tag {
      font-size: 0.59rem; letter-spacing: 0.22em; color: var(--green);
      text-transform: uppercase; margin-bottom: 0.45rem; font-weight: 500;
    }
    .vendor-name {
      font-family: 'Shippori Mincho', serif;
      font-size: 1.1rem; font-weight: 700; color: var(--dark-brown);
      letter-spacing: 0.05em; margin-bottom: 0.75rem; line-height: 1.5;
    }
    .vendor-desc { font-size: 0.88rem; color: var(--text-light); line-height: 1.95; margin-bottom: 1.1rem; }
    .vendor-link {
      margin-top: auto;
      display: inline-flex; align-items: center; gap: 0.4rem;
      font-size: 0.73rem; color: var(--brown); text-decoration: none;
      border: 1px solid rgba(122,92,58,0.25); border-radius: 30px;
      padding: 0.38rem 0.95rem;
      transition: background 0.2s, color 0.2s, border-color 0.2s;
      letter-spacing: 0.06em;
      align-self: flex-start;
    }
    .vendor-link:hover { background: var(--dark-brown); color: var(--cream); border-color: var(--dark-brown); }

    /* ===== BOOTH ===== */
    #booth { background: var(--beige); }
    .booth-note {
      font-size: 0.76rem; color: var(--text-light);
      letter-spacing: 0.06em; margin-bottom: 0.3rem;
      margin-top: -1.4rem;
    }
    .booth-note + .booth-note {
      margin-top: 0;
      margin-bottom: 2.2rem;
    }
    .booth-note-small {
      font-size: 0.7rem; color: rgba(122,92,58,0.5);
      letter-spacing: 0.04em; margin-bottom: 2.4rem;
      margin-top: 0;
    }
    .booth-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }

    .booth-card {
      background: #fff; border-radius: 12px; padding: 1.3rem 1.4rem;
      border: 1px solid rgba(122,92,58,0.12);
      transition: transform 0.25s, box-shadow 0.25s;
      position: relative;
    }
    .booth-card:hover { transform: translateY(-3px); box-shadow: 0 8px 24px rgba(74,53,32,0.1); }

    /* ブースカード 募集中バッジ */
    .booth-recruiting-badge {
      position: absolute;
      top: -10px; right: 14px;
      background: #E8624A;
      color: #fff;
      font-size: 0.62rem;
      font-weight: 700;
      letter-spacing: 0.1em;
      padding: 0.18rem 0.65rem;
      border-radius: 20px;
      box-shadow: 0 2px 6px rgba(232,98,74,0.35);
      animation: badgePulse 2s ease-in-out infinite;
    }
    /* 吹き出しの下向き三角 */
    .booth-recruiting-badge::after {
      content: '';
      position: absolute;
      bottom: -5px; left: 50%;
      transform: translateX(-50%);
      border-left: 5px solid transparent;
      border-right: 5px solid transparent;
      border-top: 6px solid #E8624A;
    }
    .booth-header { display: flex; align-items: center; gap: 0.6rem; margin-bottom: 0.7rem; }
    .booth-icon { width: 28px; height: 28px; flex-shrink: 0; }
    .booth-title { font-family: 'Shippori Mincho', serif; font-size: 0.93rem; font-weight: 600; color: var(--dark-brown); letter-spacing: 0.04em; line-height: 1.5; }
    .booth-desc { font-size: 0.86rem; color: var(--text-light); line-height: 1.85; margin-bottom: 0.8rem; }
    .booth-link {
      display: inline-block; font-size: 0.76rem; color: var(--green);
      text-decoration: none; letter-spacing: 0.08em;
      border-bottom: 1px solid rgba(107,142,107,0.35);
      padding-bottom: 1px; transition: color 0.2s, border-color 0.2s;
    }
    .booth-link:hover { color: var(--dark-brown); border-color: var(--dark-brown); }

    /* ===== RECRUIT ===== */
    .recruit-deadline {
      display: inline-flex; align-items: center; gap: 1rem; flex-wrap: wrap;
      background: #fff;
      border: 1.5px solid #6B8E6B;
      border-radius: 10px;
      padding: 0.9rem 1.6rem;
      margin-bottom: 2.2rem;
    }
    .recruit-deadline-label {
      font-size: 0.68rem; letter-spacing: 0.22em; color: #4A7A4A;
      font-weight: 600; text-transform: uppercase;
    }
    .recruit-deadline-date {
      font-family: 'Shippori Mincho', serif;
      font-size: 1.45rem; font-weight: 700; color: var(--dark-brown);
      letter-spacing: 0.08em; line-height: 1;
    }
    .recruit-deadline-note {
      font-size: 0.75rem; color: var(--text-light);
      letter-spacing: 0.06em; padding-left: 0.8rem;
      border-left: 1px solid rgba(107,142,107,0.3);
    }

    #recruit {
      background: #EBF2E7;
      border-top: 3px solid #6B8E6B;
    }
    #recruit .section-eyebrow { color: #4A7A4A; }
    #recruit .section-eyebrow::before { background: #6B8E6B; }
    #recruit .section-title { color: var(--dark-brown); }
    #recruit .section-lead { color: #3A3028; }

    /* ===== 遠方出展者特典バナー ===== */
    .recruit-special { margin-bottom: 2.5rem; }
    .recruit-special-inner {
      display: flex; align-items: flex-start; gap: 1.5rem;
      background: #4A7A4A;
      border-radius: 14px; padding: 1.8rem 2rem;
      box-shadow: 0 4px 20px rgba(74,122,74,0.25);
    }
    .recruit-special-icon {
      flex-shrink: 0; width: 52px; height: 52px;
      background: rgba(255,255,255,0.18);
      border-radius: 50%; border: 1.5px solid rgba(255,255,255,0.35);
      display: flex; align-items: center; justify-content: center;
      margin-top: 0.1rem;
    }
    .recruit-special-icon svg path { stroke: #fff; }
    .recruit-special-body { flex: 1; }
    .recruit-special-label {
      display: flex; align-items: center; gap: 0.7rem;
      flex-wrap: wrap; margin-bottom: 0.75rem;
    }
    .recruit-special-badge {
      font-size: 0.63rem; letter-spacing: 0.2em; font-weight: 700;
      color: #4A7A4A; background: #fff;
      padding: 0.25rem 0.85rem; border-radius: 20px;
    }
    .recruit-special-limit {
      font-size: 0.66rem; letter-spacing: 0.15em; font-weight: 600;
      color: #fff; border: 1.5px solid rgba(255,255,255,0.6);
      padding: 0.2rem 0.8rem; border-radius: 20px;
    }
    .recruit-special-text {
      font-family: 'Shippori Mincho', serif;
      font-size: 1.05rem; color: #fff;
      line-height: 1.85; letter-spacing: 0.04em; margin-bottom: 0.55rem;
    }
    .recruit-special-text strong {
      color: #D4F0D4; font-weight: 700;
      text-decoration: underline; text-decoration-color: rgba(255,255,255,0.4);
      text-underline-offset: 3px;
    }
    .recruit-special-note {
      font-size: 0.85rem; color: rgba(255,255,255,0.88);
      letter-spacing: 0.03em; line-height: 1.85;
    }

    .recruit-cta { margin-bottom: 3rem; }
    .btn-primary {
      display: inline-flex; align-items: center; gap: 0.6rem;
      background: var(--dark-brown); color: var(--cream);
      text-decoration: none; padding: 1rem 2.4rem; border-radius: 40px;
      font-family: 'Shippori Mincho', serif; font-size: 0.95rem; font-weight: 600;
      letter-spacing: 0.1em; transition: background 0.25s, transform 0.2s;
      box-shadow: 0 4px 18px rgba(74,53,32,0.3);
    }
    .btn-primary:hover { background: #3A2818; transform: translateY(-2px); }

    .recruit-rules { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem; margin-bottom: 2.5rem; }
    .rule-card {
      background: #fff;
      border: 1px solid rgba(107,142,107,0.25);
      border-top: 3px solid #6B8E6B;
      border-radius: 12px; padding: 1.6rem 1.8rem;
      box-shadow: 0 2px 10px rgba(74,53,32,0.07);
      transition: box-shadow 0.2s, transform 0.2s;
    }
    .rule-card:hover { box-shadow: 0 4px 18px rgba(74,53,32,0.12); transform: translateY(-2px); }
    .rule-title {
      font-family: 'Shippori Mincho', serif; font-size: 0.82rem; font-weight: 600;
      color: #4A7A4A; letter-spacing: 0.15em; margin-bottom: 1rem;
    }
    .rule-list { list-style: none; display: flex; flex-direction: column; gap: 0.6rem; }
    .rule-list li {
      font-size: 0.89rem; color: #3A3028;
      line-height: 1.9; padding-left: 1.2em; position: relative;
    }
    .rule-list li::before { content: '・'; position: absolute; left: 0; color: #6B8E6B; }

    .recruit-notes {
      background: #fff; border-radius: 12px;
      border: 1px solid rgba(107,142,107,0.2);
      padding: 1.6rem 1.8rem; margin-top: 0;
    }
    .recruit-notes-title {
      font-family: 'Shippori Mincho', serif; font-size: 0.75rem; letter-spacing: 0.22em;
      color: #4A7A4A; margin-bottom: 1.1rem;
    }
    .recruit-notes ul {
      list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 0.45rem 2.5rem;
    }
    .recruit-notes li {
      font-size: 0.87rem; color: #4A4038;
      padding-left: 1.2em; position: relative; line-height: 1.9;
    }
    .recruit-notes li::before { content: '※'; position: absolute; left: 0; color: #6B8E6B; font-size: 0.6rem; top: 0.35em; }

    /* ===== BLIND BOOKS ===== */
    #blind-books { background: var(--cream); }
    .blind-steps { display: flex; flex-direction: column; gap: 4.5rem; margin-bottom: 3rem; }

    .blind-step { display: grid; grid-template-columns: 1fr 1fr; gap: 3.5rem; align-items: center; }
    .blind-step.reverse { direction: rtl; }
    .blind-step.reverse > * { direction: ltr; }

    .step-heading {
      display: flex;
      align-items: flex-end;   /* 数字の底辺にタイトルを揃える */
      gap: 0.5rem;
      margin-bottom: 1rem;
    }
    .step-num {
      font-family: 'Shippori Mincho', serif;
      font-size: 3.5rem; font-weight: 700; color: rgba(122,92,58,0.12);
      line-height: 1; flex-shrink: 0;
      margin-bottom: 0;
    }
    .step-title {
      font-family: 'Shippori Mincho', serif;
      font-size: 1.15rem; font-weight: 600; color: var(--dark-brown);
      letter-spacing: 0.08em;
      margin-bottom: 0.3rem;   /* flex-end 揃えなので下に少し余白 */
      line-height: 1.4;
    }
    .step-body { font-size: 0.93rem; color: var(--text-light); line-height: 2.2; }

    .step-photo {
      width: 100%;
      display: flex; flex-direction: column;
    }
    .step-photo img {
      width: 100%; aspect-ratio: 4/3;
      object-fit: cover; display: block;
      border-radius: 14px;
    }
    .step-photo-caption {
      font-size: 0.78rem; color: var(--text-light);
      text-align: center; margin-top: 0.6rem;
      letter-spacing: 0.04em; line-height: 1.6;
    }

    /* 募集中バナー */
    /* 展示イメージ */
    .blind-display-wrap {
      margin-bottom: 3.5rem;
      text-align: center;
    }
    .blind-display-img {
      width: 80%;
      max-width: 540px;
      height: auto;
      border-radius: 0;
      display: block;
      margin: 0 auto 0.85rem;
      box-shadow: none;
    }
    .blind-display-caption {
      font-size: 0.78rem;
      color: var(--text-light);
      letter-spacing: 0.08em;
    }
    .blind-flyer-wrap {
      margin-top: 2.5rem;
      text-align: center;
    }
    .blind-flyer-img {
      width: 100%;
      max-width: 760px;
      height: auto;
      display: block;
      margin: 0 auto;
      border-radius: 12px;
      box-shadow: 0 4px 20px rgba(122,92,58,0.12);
    }

    .blind-recruiting-banner {
      background: var(--cream);
      border: 2px solid var(--green);
      border-radius: 14px;
      padding: 1.8rem 2rem;
      text-align: center;
      margin-bottom: 1.6rem;
    }
    .blind-recruiting-badge {
      display: inline-block;
      background: var(--green);
      color: #fff;
      font-size: 0.7rem;
      font-weight: 700;
      letter-spacing: 0.18em;
      padding: 0.22rem 0.9rem;
      border-radius: 20px;
      margin-bottom: 0.9rem;
    }
    .blind-recruiting-headline {
      font-family: 'Shippori Mincho', serif;
      font-size: clamp(1rem, 3vw, 1.15rem);
      font-weight: 600;
      color: var(--dark-brown);
      letter-spacing: 0.06em;
      margin-bottom: 0.5rem;
      line-height: 1.7;
    }
    .blind-recruiting-sub {
      font-size: 0.82rem;
      color: var(--text-light);
      letter-spacing: 0.04em;
      line-height: 1.7;
    }
    .blind-recruiting-deadline {
      display: inline-block;
      font-size: 0.78rem;
      font-weight: 600;
      color: var(--dark-brown);
      letter-spacing: 0.08em;
      background: rgba(122,92,58,0.08);
      border: 1px solid rgba(122,92,58,0.2);
      border-radius: 20px;
      padding: 0.25rem 1rem;
      margin-top: 0.6rem;
    }

    /* 持ち帰り自由ノート */
    .blind-free-note {
      display: flex;
      align-items: flex-start;
      gap: 0.6rem;
      background: rgba(200,121,65,0.08);
      border-left: 3px solid var(--orange);
      border-radius: 0 8px 8px 0;
      padding: 0.9rem 1.2rem;
      margin-bottom: 2.8rem;
      color: var(--dark-brown);
    }
    .blind-free-note svg {
      flex-shrink: 0;
      margin-top: 2px;
      color: var(--orange);
    }
    .blind-free-note p {
      font-size: 0.88rem;
      line-height: 1.8;
      letter-spacing: 0.04em;
    }

    .blind-conditions {
      background: var(--beige); border-radius: 14px;
      padding: 1.9rem 2.2rem; border-left: 4px solid var(--orange);
    }
    .blind-cond-title {
      font-family: 'Shippori Mincho', serif; font-size: 0.9rem; font-weight: 600;
      color: var(--dark-brown); letter-spacing: 0.1em; margin-bottom: 0.9rem;
    }
    .blind-cond-list { list-style: none; display: flex; flex-direction: column; gap: 0.35rem; }
    .blind-cond-list li {
      font-size: 0.9rem; color: var(--text-light); line-height: 1.85;
      padding-left: 1.2em; position: relative;
    }
    .blind-cond-list li::before { content: '・'; position: absolute; left: 0; color: var(--orange); }
    .blind-cond-genre-label {
      font-size: 0.75rem; font-weight: 600; letter-spacing: 0.12em;
      color: var(--green); text-transform: uppercase;
      margin-bottom: 0.4rem; margin-top: 0;
    }
    .blind-cond-out-label {
      font-size: 0.75rem; font-weight: 600; letter-spacing: 0.1em;
      color: #A07030; margin-top: 1.4rem; margin-bottom: 0.4rem;
    }
    .blind-cond-out li::before { color: #A07030; }

    .blind-cond-ng-label {
      font-size: 0.75rem; font-weight: 600; letter-spacing: 0.1em;
      color: #B04040; margin-top: 1.4rem; margin-bottom: 0.4rem;
    }
    .blind-cond-ng li::before { color: #B04040; }

    /* ===== ACCESS ===== */
    #access { background: var(--beige); }
    .access-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 3.5rem; align-items: start; margin-bottom: 3rem; }
    .access-stack { display: flex; flex-direction: column; gap: 1.3rem; }
    .access-item { display: flex; flex-direction: column; gap: 0.2rem; }
    .access-label { font-size: 0.59rem; letter-spacing: 0.25em; color: var(--green); font-weight: 500; text-transform: uppercase; }
    .access-value { font-family: 'Shippori Mincho', serif; font-size: 0.96rem; color: var(--dark-brown); font-weight: 600; }
    .access-sub { font-size: 0.76rem; color: var(--text-light); }

    .map-area {
      width: 100%; aspect-ratio: 4/3;
      border-radius: 14px; overflow: hidden;
      box-shadow: 0 4px 20px rgba(74,53,32,0.12);
    }
    .map-area iframe {
      display: block; width: 100%; height: 100%; border: 0;
    }
    .map-embed {
      width: 100%; aspect-ratio: 4/3;
      border-radius: 14px; overflow: hidden;
      box-shadow: 0 4px 20px rgba(74,53,32,0.1);
    }
    .map-embed iframe { display: block; width: 100%; height: 100%; }
    .map-btn {
      display: inline-flex; align-items: center; gap: 0.4rem;
      margin-top: 0.7rem; background: var(--brown); color: white;
      padding: 0.52rem 1.3rem; border-radius: 30px; font-size: 0.77rem;
      text-decoration: none; transition: background 0.3s; letter-spacing: 0.08em;
    }
    .map-btn:hover { background: var(--dark-brown); }

    /* 会場マップ */
    .venue-map-wrap {
      margin-top: 3rem;
      border-top: 1px solid rgba(122,92,58,0.15);
      padding-top: 2.5rem;
    }
    .venue-map-header {
      display: flex; align-items: baseline; gap: 1.2rem;
      flex-wrap: wrap; margin-bottom: 1.2rem;
    }
    .venue-map-label {
      font-family: 'Shippori Mincho', serif;
      font-size: 1rem; font-weight: 600;
      color: var(--dark-brown); letter-spacing: 0.12em;
    }
    .venue-map-note {
      font-size: 0.73rem; color: var(--text-light); letter-spacing: 0.06em;
    }
    .venue-map-img-wrap {
      max-width: 680px;
      border-radius: 10px; overflow: hidden;
      border: 1px solid rgba(122,92,58,0.12);
      box-shadow: 0 3px 14px rgba(74,53,32,0.08);
    }
    .venue-map-img {
      width: 100%; height: auto; display: block;
    }

    /* ===== ACCORDION ===== */
    .accordion { display: flex; flex-direction: column; gap: 0.6rem; }
    .acc-item { background: var(--light-beige); border-radius: 10px; border: 1px solid rgba(122,92,58,0.1); overflow: hidden; }
    .acc-header {
      padding: 1rem 1.4rem; cursor: pointer;
      display: flex; justify-content: space-between; align-items: center;
      font-family: 'Shippori Mincho', serif; font-size: 0.92rem;
      color: var(--dark-brown); font-weight: 600; letter-spacing: 0.05em; user-select: none;
    }
    .acc-header:hover { background: rgba(107,142,107,0.05); }
    .acc-icon { font-size: 1.2rem; color: var(--green); transition: transform 0.3s; line-height: 1; }
    .acc-item.open .acc-icon { transform: rotate(45deg); }
    .acc-body { padding: 0 1.4rem; max-height: 0; overflow: hidden; transition: max-height 0.4s ease, padding 0.3s; }
    .acc-item.open .acc-body { max-height: 600px; padding: 0 1.4rem 1.2rem; }
    .acc-body ul { list-style: none; display: flex; flex-direction: column; gap: 0.25rem; }
    .acc-body li { font-size: 0.82rem; color: var(--text-light); line-height: 1.9; }
    .acc-body li::before { content: '・'; color: var(--green); margin-right: 0.2rem; }

    /* ===== お問い合わせ ===== */
    .contact-section { background: var(--cream); }
    .contact-card {
      max-width: 560px; margin: 0 auto;
      text-align: center;
    }
    .contact-title {
      font-family: 'Shippori Mincho', serif;
      font-size: clamp(1.4rem, 3vw, 1.9rem);
      font-weight: 700; color: var(--dark-brown);
      letter-spacing: 0.12em; margin-bottom: 0.7rem;
    }
    .contact-lead {
      font-size: 0.88rem; color: var(--text-light);
      line-height: 1.9; margin-bottom: 2rem;
    }
    .contact-info {
      background: var(--cream); border-radius: 14px;
      padding: 2rem 2.5rem;
      border: 1px solid rgba(122,92,58,0.1);
      display: flex; flex-direction: column; align-items: center; gap: 1rem;
    }
    .contact-name {
      font-family: 'Shippori Mincho', serif;
      font-size: 1rem; color: var(--dark-brown);
      letter-spacing: 0.1em; font-weight: 600;
    }
    .contact-email {
      display: inline-flex; align-items: center; gap: 0.55rem;
      font-size: 0.95rem; color: var(--brown);
      text-decoration: none; letter-spacing: 0.04em;
      border-bottom: 1px solid rgba(122,92,58,0.25);
      padding-bottom: 2px;
      transition: color 0.2s, border-color 0.2s;
    }
    .contact-email:hover { color: var(--dark-brown); border-color: var(--dark-brown); }

    /* ===== FOOTER ===== */
    footer { background: var(--dark-brown); padding: 3.5rem 2rem; text-align: center; }
    .footer-inner { max-width: var(--max-w); margin: 0 auto; }
    .footer-logo {
      font-family: 'Shippori Mincho', serif;
      font-size: 1.3rem; font-weight: 600; color: var(--cream);
      letter-spacing: 0.15em; margin-bottom: 0.4rem;
    }
    .footer-meta { font-size: 0.72rem; color: rgba(247,242,232,0.5); letter-spacing: 0.1em; margin-bottom: 1.5rem; }
    .footer-note {
      display: inline-flex; align-items: center; gap: 0.5rem;
      color: var(--light-green); text-decoration: none;
      font-size: 0.75rem; letter-spacing: 0.1em;
      border: 1px solid rgba(157,184,157,0.25); border-radius: 30px;
      padding: 0.42rem 1.2rem; transition: background 0.2s; margin-bottom: 2rem;
    }
    .footer-note:hover { background: rgba(157,184,157,0.1); }
    .footer-admin {
      font-size: 0.65rem; color: rgba(247,242,232,0.6);
      letter-spacing: 0.06em; line-height: 1.8;
      border-top: 1px solid rgba(247,242,232,0.15);
      padding-top: 1.4rem; margin-bottom: 0.8rem;
    }
    .footer-admin-tel {
      color: rgba(247,242,232,0.6);
      text-decoration: none; letter-spacing: 0.08em;
    }
    .footer-admin-tel:hover { color: rgba(247,242,232,0.85); }
    .footer-copy { font-size: 0.65rem; color: rgba(247,242,232,0.35); letter-spacing: 0.08em; }

    /* ===== SCROLL REVEAL ===== */
    .reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.65s ease, transform 0.65s ease; }
    .reveal.visible { opacity: 1; transform: translateY(0); }
    .reveal-delay-1 { transition-delay: 0.1s; }
    .reveal-delay-2 { transition-delay: 0.2s; }
    .reveal-delay-3 { transition-delay: 0.3s; }

    /* ===== RESPONSIVE ===== */
    @media (max-width: 900px) {
      .vendors-grid { grid-template-columns: 1fr 1fr; }
      .booth-grid { grid-template-columns: 1fr 1fr; }
      .recruit-rules { grid-template-columns: 1fr; }
      .recruit-special-inner { flex-direction: column; gap: 1rem; }
      .recruit-special-icon { width: 44px; height: 44px; }
    }
    @media (max-width: 768px) {
      .book-banner-inner { flex-direction: column; gap: 1rem; }
      .book-banner-text { font-size: 0.9rem; }
      .lp-section { padding: 4rem 1.4rem; }
      .about-layout { grid-template-columns: 1fr; gap: 2.5rem; }
      .access-layout { grid-template-columns: 1fr; gap: 2rem; }
      .blind-step, .blind-step.reverse { grid-template-columns: 1fr; direction: ltr; }
      .recruit-notes ul { grid-template-columns: 1fr; }
      .nav-links {
        position: fixed; top: 60px; left: 0; right: 0;
        background: var(--cream); flex-direction: column; align-items: stretch;
        padding: 0.5rem 1rem 1rem; gap: 0; display: none;
        border-top: 1px solid rgba(122,92,58,0.1);
        box-shadow: 0 8px 20px rgba(74,53,32,0.1);
      }
      .nav-links.open { display: flex; }
      .nav-links a { padding: 0.9rem 1rem; font-size: 0.88rem; border-bottom: 1px solid rgba(122,92,58,0.07); }
      .nav-hamburger { display: flex; }
    }
    @media (max-width: 560px) {
      .vendors-grid { grid-template-columns: 1fr; }
      .booth-grid { grid-template-columns: 1fr; }

      /* ヒーロータイトル：スマホで1行に収まるサイズに */
      .hero-title {
        font-size: clamp(2rem, 11vw, 3rem);
        letter-spacing: 0.08em;
        line-height: 1.2;
      }

      /* 日付バッジ：縦並びに変更して折り返しを防ぐ */
      .hero-date-badge {
        flex-direction: column;
        gap: 0.5rem;
        padding: 1rem 2rem;
        text-align: center;
      }
      .hero-date-sep { display: none; }
      .hero-date-badge span { white-space: nowrap; }

      /* お問合せ：名前・メールの折り返し対策 */
      .contact-info { padding: 1.4rem 1.2rem; }
      .contact-name {
        font-size: 0.88rem;
        text-align: center;
        line-height: 1.8;
      }
      .contact-email {
        font-size: 0.82rem;
        word-break: break-all;
      }
    }
