@charset "UTF-8";
  * { margin:0; padding:0; box-sizing:border-box; }

  :root {
    --bg: #f6f3ec;
    --paper: rgba(255, 255, 255, 0.86);
    --paper-strong: #ffffff;
    --line: rgba(83, 112, 89, 0.16);
    --text: #243126;
    --muted: #607066;
    --green: #30523d;
    --green-soft: #e8efe7;
    --green-deep: #203728;
    --accent: #a8733b;
    --shadow: 0 20px 60px rgba(36, 49, 38, 0.08);
    --content-width: 960px;
    --text-width: 82ch;
  }

  html{
    scroll-behavior: smooth;
  }
  body {
    font-family: 'Noto Sans JP', sans-serif;
    /*background: #BDB5A4;*/
    padding: 24px;
    background:
          radial-gradient(circle at top left, rgba(222, 234, 222, 0.9), transparent 30%),
          linear-gradient(180deg, #faf8f3 0%, #f5f1e8 100%);
  }
  img {
        display: block;
        width: 100%;
        height: auto;
      }
  .intro-wrap{
    max-width: 1130px;
    padding: 0 15px;
    margin: 0 auto;
    width: 100%;
  }
      span[style*='font-size: 18px'] {
        font-size: inherit !important;
      }
      
      h1,
      h2,
      h3,
      h4,
      .serif {
        font-family: 'Noto Serif JP', serif;
        color: var(--green);
      }
      .nav {
        position: sticky;
        top: 14px;
        z-index: 10;
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        gap: 12px;
        margin: 0 0 28px;
        padding: 14px;
        background: rgba(255, 255, 255, 0.72);
        backdrop-filter: blur(14px);
        border: 1px solid rgba(255, 255, 255, 0.7);
        border-radius: 999px;
        box-shadow: 0 10px 30px rgba(36, 49, 38, 0.08);
      }
      a {
        color: var(--green);
        text-decoration: none;
        transition:
          color 0.2s ease,
          background-color 0.2s ease,
          border-color 0.2s ease;
      }

      a:hover {
        color: var(--green-deep);
      }

      .nav a {
        padding: 8px 14px;
        border-radius: 999px;
        font-size: 0.95rem;
        font-weight: 600;
        color: var(--muted);
      }

      .nav a:hover {
        background: var(--green-soft);
        color: var(--green);
      }

      section {
        margin-bottom: 28px;
        scroll-margin-top: 96px;
      }

      .panel {
        background: var(--paper);
        border: 1px solid rgba(255, 255, 255, 0.7);
        border-radius: 28px;
        padding: 34px;
        box-shadow: var(--shadow);
      }

      .panel-soft {
        background: linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(247, 248, 244, 0.92));
      }

      .section-label {
        display: inline-block;
        margin-bottom: 12px;
        padding: 6px 12px;
        border-radius: 999px;
        background: rgba(48, 82, 61, 0.08);
        color: var(--green);
        font-size: 0.82rem;
        font-weight: 700;
        letter-spacing: 0.08em;
        text-transform: uppercase;
      }

      .section-heading {
        margin: 0 auto 26px;
        max-width: var(--content-width);
        text-align: center;
      }

      .section-heading h2 {
        margin: 0 0 10px;
        font-size: clamp(1.3rem, 3.8vw, 2.6rem);
        line-height: 1.35;
      }

      .section-heading p,
      .reason-intro {
        margin: 0 auto;
        max-width: var(--text-width);
        color: var(--muted);
        font-size: 1.02rem;
        line-height: 1.9;
      }

      .main-hero {
        overflow: hidden;
        background:
          linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(233, 239, 231, 0.92)),
          linear-gradient(180deg, #ffffff 0%, #eef2ec 100%);
      }

      .hero-grid {
        display: grid;
        grid-template-columns: 1fr;
        gap: 22px;
      }

      .hero-grid > div:first-child {
        max-width: var(--content-width);
        margin: 0 auto;
        text-align: center;
      }

      .hero-label {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        margin-bottom: 18px;
        color: var(--green);
        font-size: 0.92rem;
        font-weight: 700;
        letter-spacing: 0.12em;
      }

      .hero-label::before {
        content: '';
        width: 36px;
        height: 1px;
        background: rgba(48, 82, 61, 0.4);
      }

      .main-title {
        margin: 0 0 18px;
        font-size: clamp(2.5rem, 3.86vw, 3.7rem);
        line-height: 1.2;
      }

      .hero-lead {
        margin: 0 0 22px;
        font-size: clamp(1.16rem, 2.1vw, 1.45rem);
        line-height: 1.75;
        color: #445246;
      }

      .hero-body {
        max-width: var(--text-width);
        margin: 0 auto;
        color: #425045;
        font-size: 1.02rem;
        line-height: 1.8;
      }

      .hero-body p {
        margin: 0 0 14px;
      }

      .hero-points {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 12px;
        margin: 26px 0 0;
      }

      .hero-point {
        padding: 14px 16px;
        border-radius: 18px;
        background: rgba(255, 255, 255, 0.76);
        border: 1px solid rgba(48, 82, 61, 0.1);
        text-align: center;
      }

      .hero-point strong {
        display: block;
        margin-bottom: 4px;
        color: var(--green);
        font-size: 0.95rem;
      }

      .hero-point span {
        display: block;
        color: var(--muted);
        font-size: 0.86rem;
        line-height: 1.6;
      }

      .hero-supplement {
        max-width: var(--text-width);
        margin: 18px auto 0;
        padding: 18px 20px;
        border-left: 4px solid var(--accent);
        border-radius: 0 18px 18px 0;
        background: rgba(255, 255, 255, 0.74);
        color: #334137;
        font-size: 0.96rem;
        font-weight: 600;
        text-align: left;
      }

      /*.hero-visual {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 12px;
        width: 100%;
        max-width: var(--content-width);
        margin: 10px auto 0;
        align-items: stretch;
      }*/
      .hero-visual{
        display: flex;
        justify-content: space-between;
      }
      .hero-visual figure{
        width: 32%;
        aspect-ratio: 1.28 / 1;
      }
      .media-card {
        position: relative;
        margin: 0;
        overflow: hidden;
        border-radius: 24px;
        background: var(--paper-strong);
        box-shadow: 0 16px 40px rgba(36, 49, 38, 0.12);
      }

      .media-card img {
        height: 100%;
        object-fit: cover;
      }

      .hero-main {
        aspect-ratio: 1.28 / 1;
        min-height: 0;
      }

      .hero-stack {
        display: contents;
      }

      .hero-stack .media-card {
        min-height: 0;
        aspect-ratio: 1.28 / 1;
      }

      .photo-caption {
        position: absolute;
        left: 12px;
        right: 12px;
        bottom: 12px;
        padding: 8px 10px;
        border-radius: 12px;
        background: linear-gradient(180deg, rgba(20, 28, 22, 0.04), rgba(20, 28, 22, 0.68));
        color: #fff;
        font-size: 0.76rem;
        line-height: 1.45;
      }

      .grid-3 {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 18px;
        max-width: var(--content-width);
        margin: 0 auto;
      }

      .value-grid {
        align-items: stretch;
        gap: 18px;
      }

      .value-card {
        padding: 0;
      }

      .value-card .card-image {
        position: relative;
        aspect-ratio: 1.25 / 1;
        overflow: hidden;
      }

      .value-card .card-body {
        padding: 22px 22px 24px;
        text-align: center;
      }

      .value-card .card-index {
        position: absolute;
        top: 14px;
        left: 14px;
        z-index: 2;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 52px;
        height: 52px;
        border-radius: 999px;
        background: rgba(255, 255, 255, 0.9);
        color: var(--green);
        font-family: 'Noto Serif JP', serif;
        font-size: 1.2rem;
        font-weight: 700;
        box-shadow: 0 8px 24px rgba(36, 49, 38, 0.1);
      }

      .value-card h3 {
        margin: 0 0 10px;
        font-size: 1.22rem;
        line-height: 1.5;
      }

      .value-card p {
        margin: 0;
        color: var(--muted);
        font-size: 1rem;
      }

      .value-card,
      .reason-card,
      .target-item {
        background: rgba(255, 255, 255, 0.9);
        border: 1px solid var(--line);
        border-radius: 22px;
        overflow: hidden;
        box-shadow: 0 12px 30px rgba(36, 49, 38, 0.06);
        transition:
          transform 0.28s ease,
          box-shadow 0.28s ease,
          border-color 0.28s ease;
      }

      .value-card:hover,
      .reason-card:hover,
      .target-item:hover {
        transform: translateY(-4px);
        box-shadow: 0 16px 34px rgba(36, 49, 38, 0.11);
        border-color: rgba(48, 82, 61, 0.24);
      }

      .card-image {
        aspect-ratio: 1.3 / 1;
        overflow: hidden;
      }

      .card-image img,
      .story-main img,
      .story-side img,
      .reason-photo img,
      .target-gallery img {
        width: 100%;
        height: 100%;
        object-fit: cover;
      }

      .card-body {
        padding: 20px 20px 22px;
        text-align: center;
      }

      .card-index {
        display: inline-block;
        margin-bottom: 12px;
        color: var(--accent);
        font-size: 0.8rem;
        font-weight: 700;
        letter-spacing: 0.08em;
      }

      .card-body h3 {
        margin: 0 0 10px;
        font-size: 1.24rem;
        line-height: 1.45;
      }

      .card-body p {
        margin: 0;
        color: var(--muted);
        font-size: 1rem;
      }

      .story-layout {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(300px, 0.9fr);
        gap: 24px;
        max-width: var(--content-width);
        margin: 28px auto 0;
        align-items: start;
      }

      .content-block {
        margin-top: 0;
        padding: 28px;
        border-radius: 24px;
        background: rgba(255, 255, 255, 0.58);
        border: 1px solid rgba(48, 82, 61, 0.08);
        text-align: center;
      }

      .content-block + .content-block {
        margin-top: 16px;
      }

      .content-block h2 {
        margin: 0 0 10px;
        font-size: 1.7rem;
        line-height: 1.42;
      }

      .content-block h3 {
        margin: 0 0 14px;
        font-size: 1.24rem;
        color: #4d6b56;
      }

      .content-block p {
        margin: 0;
        color: #425045;
        font-size: 1.03rem;
        line-height: 1.8;
        text-align: left;
      }

      .story-media {
        display: grid;
        grid-template-columns: 1fr;
        gap: 14px;
      }

      .story-main {
        aspect-ratio: 1.08 / 1;
        border-radius: 24px;
        overflow: hidden;
      }

      .story-side {
        display: grid;
        grid-template-columns: 1fr;
        gap: 14px;
      }

      .story-side .media-card {
        aspect-ratio: 1.1 / 1;
      }

      .reason-grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 18px;
        max-width: var(--content-width);
        margin: 26px auto 0;
      }

      .reason-card {
        padding: 0;
      }

      .reason-photo {
        position: relative;
        aspect-ratio: 1.25 / 1;
        overflow: hidden;
      }

      .reason-number {
        position: absolute;
        top: 14px;
        left: 14px;
        z-index: 2;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 52px;
        height: 52px;
        border-radius: 999px;
        background: rgba(255, 255, 255, 0.9);
        color: var(--green);
        font-family: 'Noto Serif JP', serif;
        font-size: 1.2rem;
        font-weight: 700;
        box-shadow: 0 8px 24px rgba(36, 49, 38, 0.1);
      }

      .reason-content {
        padding: 22px 22px 24px;
        
      }

      .reason-card h4 {
        min-height: 0;
        margin: 0 0 10px;
        font-size: 1.22rem;
        line-height: 1.5;
        text-align: center;
      }

      .reason-card p {
        margin: 0;
        color: var(--muted);
        font-size: 1rem;
        line-height: 1.8;
      }

      .ambient-strip {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 14px;
        margin-top: 20px;
      }

      .ambient-strip .media-card {
        aspect-ratio: 1.2 / 1;
      }

      .target-intro {
        max-width: var(--content-width);
        margin: 0 auto 26px;
        padding: 28px 30px;
        border-radius: 24px;
        background: linear-gradient(135deg, rgba(232, 239, 231, 0.95), rgba(255, 255, 255, 0.9));
        border: 1px solid rgba(48, 82, 61, 0.1);
        text-align: center;
        font-weight: 600;
        font-size: 1.12rem;
        line-height: 1.9;
        color: var(--green);
      }

      .target-intro p {
        margin: 0;
      }

      .target-intro p + p {
        margin-top: 8px;
      }

      .target-emphasis {
        display: inline-block;
        margin-top: 10px;
        padding: 4px 14px;
        border-radius: 999px;
        background: rgba(48, 82, 61, 0.1);
        color: var(--green-deep);
        font-weight: 700;
        letter-spacing: 0.02em;
      }

      .target-layout {
        display: grid;
        grid-template-columns: 1fr;
        gap: 22px;
        max-width: var(--content-width);
        margin: 0 auto;
        align-items: start;
      }

      .target-list {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
      }

      .target-item {
        padding: 22px 18px;
        
      }

      .target-item h4 {
        margin: 0 0 10px;
        font-size: 1.1rem;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 12px;

      }

      .target-item h4::before {
        content: '✓';
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 28px;
        height: 28px;
        flex-shrink: 0;
        border-radius: 999px;
        background: var(--green);
        color: #fff;
        font-size: 0.86rem;
        box-shadow: 0 8px 16px rgba(48, 82, 61, 0.18);
      }

      .target-item p {
        margin: 0 auto;
        max-width: 42ch;
        padding-left: 0;
        color: var(--muted);
        font-size: 0.98rem;
        line-height: 1.8;
      }

      .target-gallery {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
      }

      .target-gallery .media-card {
        aspect-ratio: 1 / 1;
      }

      .cta-banner {
        position: relative;
        overflow: hidden;
        margin-top: 8px;
        border-radius: 28px;
        background: linear-gradient(135deg, rgba(32, 55, 40, 0.94), rgba(47, 79, 58, 0.86));
        color: #fff;
        box-shadow: 0 22px 50px rgba(32, 55, 40, 0.24);
      }

      .cta-inner {
        display: grid;
        grid-template-columns: 1fr;
        gap: 22px;
        max-width: var(--content-width);
        margin: 0 auto;
        align-items: center;
        padding: 34px;
      }

      .cta-text {
        text-align: center;
      }

      .cta-text p {
        margin: 0 0 10px;
        font-size: 0.96rem;
        letter-spacing: 0.1em;
        color: rgba(255, 255, 255, 0.8);
        font-weight: 700;
      }

      .cta-text h2 {
        margin: 0 0 10px;
        color: #fff;
        font-size: clamp(2rem, 4vw, 3rem);
      }

      .cta-text .cta-sub {
        margin: 0;
        color: rgba(255, 255, 255, 0.9);
        font-size: 1.04rem;
      }

      .cta-shot {
        border-radius: 22px;
        overflow: hidden;
        border: 1px solid rgba(255, 255, 255, 0.18);
        box-shadow: 0 18px 30px rgba(0, 0, 0, 0.15);
      }

      .cta-shot img {
        aspect-ratio: 1 / 1.1;
        object-fit: cover;
      }

      @media (max-width: 980px) {
        .panel,
        .main-hero,
        .cta-inner {
          padding: 28px;
        }

        .hero-grid,
        .story-layout,
        .target-layout,
        .cta-inner {
          grid-template-columns: 1fr;
        }

        .hero-grid > div:first-child,
        .section-heading,
        .target-intro,
        .grid-3,
        .story-layout,
        .reason-grid,
        .target-layout,
        .cta-inner {
          max-width: 100%;
        }

        .hero-visual {
          grid-template-columns: repeat(3, minmax(0, 1fr));
          width: 100%;
          max-width: 100%;
        }

        .hero-main {
          min-height: 0;
        }
        .main-title {
          font-size: 2.4rem;
        }
        .hero-stack {
          display: contents;
        }

        .hero-stack .media-card {
          aspect-ratio: 1.18 / 1;
        }
        .card-body h3 {
          font-size: 1.0rem;
          line-height: 1.45;
        }
        .story-media{
          display: flex;
          justify-content: space-between;
        }
        .story-side .media-card {
            aspect-ratio: 1.08 / 1;
        }
        .value-card .card-body,
        .reason-content {
            padding: 18px 18px 18px;
        }
        .value-grid,
        .reason-grid{
          gap: 14px;
        }
        .value-card .card-index,
        .reason-number {
            top: 10px;
            left: 10px;
            min-width: 42px;
            height: 42px;
            font-size: 1.1rem;
        }
        .reason-card h4 {
            font-size: 1.0rem;
        }
        /*.grid-3,
        .reason-grid,
        .ambient-strip {
          grid-template-columns: repeat(2, minmax(0, 1fr));
        }*/

        /*.value-grid .value-card:last-child,
        .reason-grid .reason-card:last-child {
          grid-column: 1 / -1;
          width: min(100%, calc(50% - 9px));
          margin: 0 auto;
        }*/


      }

      @media (max-width: 768px) {
        .panel,
        .main-hero,
        .cta-inner {
          padding: 22px;
        }

        .nav {
          gap: 8px;
          border-radius: 22px;
          padding: 12px;
        }

        .nav a {
          width: 100%;
          text-align: center;
        }

        .main-title {
          font-size: 2rem;
        }

        .hero-lead {
          font-size: 1.06rem;
        }

        .hero-points,
        .story-side,
        .target-gallery,
        .target-list,
        .grid-3,
        .reason-grid,
        .ambient-strip {
          grid-template-columns: 1fr;
        }

        .hero-visual {
          grid-template-columns: 1fr;
        }

        .hero-main,
        .hero-stack .media-card {
          aspect-ratio: 1.32 / 1;
        }

        .value-grid .value-card:last-child,
        .reason-grid .reason-card:last-child {
          grid-column: auto;
          width: 100%;
          margin: 0;
        }

        .content-block,
        .target-intro,
        .target-item,
        .card-body,
        .reason-content {
          padding: 18px;
        }

        .target-item p {
          padding-left: 0;
        }

        .hero-visual{
          display: block;
        }
        .hero-visual figure{
          width: 100%;
          margin-bottom: 10px;
        }

        .hero-body{
          font-size: 0.85em;
        }
        .hero-body p{
          text-align: left;
        }
        .hero-supplement{
          text-align: left;
        }
        .reason-card h4 {
            font-size: 1rem;
            line-height: 1.5;
        }
        .reason-card p{
          font-size: 0.85rem;
          line-height: 1.5;
        }
        .card-body p {
            font-size: 0.85rem;
        }
        .content-block h2 {
            font-size: 1.3rem;
        }
        .content-block p{
          text-align: left;
          font-size: 0.85rem;
        }
        .story-media{
          display: block;
        }
        .story-main{
          margin-bottom: 10px;
        }
        .section-heading p, .reason-intro {
          text-align: left;
            font-size: 0.9rem;
        }
        .target-intro p{
          font-size: 1.0rem;
          line-height: 1.6;
          text-align: left;
        }
        .target-emphasis {
            border-radius: 10px;
            font-size: 0.9rem;
            line-height: 1.6;
            text-align: center;
            width: 100%;
        }
        .target-item h4 {
            font-size: 1.0rem;
        }
        .target-item p {
              font-size: 0.9rem;
              line-height: 1.6;
          }
      }





.dis-sp{
  display: none;
}
  .page {
    width: 100%;
    max-width: 1100px;
    /*min-height: 297mm;*/
    margin: 0 auto 32px;
    background: #FAF7F0;
    position: relative;
    overflow: hidden;
    page-break-after: always;
    box-shadow: 0 12px 48px rgba(0,0,0,0.28);
    display: flex;
    flex-direction: column;
  }

  /* ── ヒーロー写真エリア ── */
  .hero {
    position: relative;
    width: 100%;
    /*height: 152mm;*/
    overflow: hidden;
    flex-shrink: 0;
  }
  .hero-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 40%;
    display: block;
  }
  .hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
      to bottom,
      rgba(0,0,0,0.12) 0%,
      rgba(0,0,0,0.04) 35%,
      rgba(10,30,5,0.55) 85%,
      rgba(10,30,5,0.72) 100%
    );
  }
  .invitation-only {
    position: absolute;
    top: 16px;
    left: 22px;
    font-family: 'Cormorant Garamond', serif;
    font-size: 10.5px;
    font-weight: 300;
    letter-spacing: 0.5em;
    color: rgba(255,255,255,0.82);
    text-transform: uppercase;
  }
  .hero-badge {
    position: absolute;
    top: 40px;
    left: 22px;
  }
  .hero-badge .b-main {
    font-family: 'Noto Serif JP', serif;
    font-size: 20px;
    font-weight: 700;
    color: #fff;
    letter-spacing: 0.08em;
    display: block;
    line-height: 1.4;
    text-shadow: 0 1px 14px rgba(0,0,0,0.45);
  }
  .hero-title {
    position: absolute;
    bottom: 30px;
    left: 22px;
    right: 22px;
  }
  .title-jp {
    font-family: 'Noto Serif JP', serif;
    font-size: 38px;
    font-weight: 900;
    color: #fff;
    line-height: 1.25;
    letter-spacing: 0.06em;
    text-shadow: 0 2px 18px rgba(0,0,0,0.38);
    display: block;
  }
  .title-jp .fire { color: #FFD97A; }
  .title-en {
    font-family: 'Cormorant Garamond', serif;
    font-size: 11px;
    font-weight: 300;
    font-style: italic;
    color: rgba(255,255,255,0.82);
    letter-spacing: 0.22em;
    display: block;
    margin-top: 5px;
  }

  /* ── 3枚フォトストリップ ── */
  .photo-strip {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2px;
    width: 100%;
    /*height: 64mm;*/
    flex-shrink: 0;
    background: #D8D0C0;
  }
  .strip-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
  /* pizza縦写真：coverでピザ作業部分を中心に */
  .strip-pizza {
    object-fit: cover;
    object-position: center 100%;  /* ピザ手元 */
  }
  /* bonfire縦写真：焚き火周辺の雰囲気も見える高さ */
  .strip-bonfire { object-position: 50% 45%; }
  /* lodge横長写真：空・山をもう少し含む */
  .strip-lodge  { object-position: center 45%; }

  /* ── クリームセクション ── */
  .cream-section {
    background: #FAF7F0;
    padding: 14px 26px 20px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 15px;
  }

  .catch-row {
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .catch-bullet {
    width: 7px; height: 7px;
    background: #6B8040;
    flex-shrink: 0;
  }
  .catch-phrase {
    font-family: 'Noto Serif JP', serif;
    font-size: 24px;
    font-weight: 700;
    color: #2C3318;
    letter-spacing: 0.06em;
    flex: 1;
    line-height: 1.5;
    text-align: center;
  }

  .sub-copy {
    text-align: center;
    font-size: 13px;
    color: #7A6A4A;
    letter-spacing: 0.18em;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
  }
  .sub-copy::before, .sub-copy::after {
    content: '›› ';
    color: #B8A878;
    font-size: 13px;
  }
  .en-tagline {
    text-align: center;
    font-family: 'Cormorant Garamond', serif;
    font-size: 9.5px;
    color: #9A8A6A;
    letter-spacing: 0.25em;
    line-height: 1.6;
  }

  /* コース */
  .course-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
  }
  .summer-course-row {
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
  }
  .course-box {
    border: 1px solid #D8D0BC;
    border-radius: 6px;
    padding: 9px 12px;
    background: #fff;
    position: relative;
    overflow: hidden;
  }
  .summer-box {
    padding: 15px;
    min-height: 88px;
  }
  .course-box::before {
    content:''; position:absolute;
    top:0; left:0; right:0; height:3px;
    background: linear-gradient(90deg, #6B8040, #A0B870);
  }
  .course-box.c2::before {
    background: linear-gradient(90deg, #C8902A, #E8B84A);
  }
  .summer-box:nth-child(2n)::before {
    background: linear-gradient(90deg, #C8902A, #E8B84A);
  }
  .course-num {
    font-size: 15px; color: #6B8040;
    letter-spacing: 0.18em; text-transform: uppercase;
    font-weight: 700; margin-bottom: 10px;
  }
  .course-box.c2 .course-num { color: #C8902A; }
  .summer-box:nth-child(2n) .course-num { color: #C8902A; }
  .course-date {
    font-family: 'Noto Serif JP', serif;
    font-size: 15px; font-weight: 700;
    color: #2C3318; line-height: 1.3;
  }
  .summer-box .course-date {
    font-size: 20px;
    line-height: 1.6;
  }
  .summer-box .course-date span {
    font-size: 14px;
    padding-left: 2px;
  }
  .course-detail { font-size: 8px; color: #8A7A5A; margin-top: 3px; }
  .summer-box .course-detail { font-size: 10px; }
  .summer-box .limited-tag {
    margin-top: 10px;
    font-size: 13px;
    padding: 2px 7px;
  }
  /*.summer-box-last {
    grid-column: 2 / span 1;
  }*/
  .limited-tag {
    display: inline-block; margin-top: 5px;
    background: #FFF3E0; border: 1px solid #E8C888;
    border-radius: 20px; font-size: 8px;
    padding: 2px 9px; color: #A07030; font-weight: 700;
  }
  .remaining-tag {
    display: inline-block; margin-top: 4px; margin-left: 4px;
    background: #D32F2F; border-radius: 20px;
    font-size: 9px; font-weight: 800;
    padding: 3px 10px; color: #fff;
    letter-spacing: 0.05em;
    box-shadow: 0 2px 6px rgba(211,47,47,0.35);
    animation: pulse 1.4s ease-in-out infinite;
  }
  @keyframes pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.80; transform: scale(1.06); }
  }
  .sold-out-tag {
    background: #555 !important;
    box-shadow: none !important;
    animation: none !important;
    opacity: 0.85;
    letter-spacing: 0.12em;
  }

  /* 少人数メッセージ */
  .private-note {
    text-align: center;
    font-size: 13px;
    color: #6B8040;
    letter-spacing: 0.15em;
    line-height: 1.7;
    background: linear-gradient(135deg, #F4F8EC, #EDF5E0);
    border: 1px solid #C8D8A0;
    border-radius: 6px;
    padding: 7px 14px;
    position: relative;
  }
  .private-note::before {
    content: '🍃';
    margin-right: 5px;
  }
  .private-note::after {
    content: '🍃';
    margin-left: 5px;
  }

  /* 特徴 */
  .feature-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 7px;
  }
  .feature-card {
    background: #fff;
    border: 1px solid #E0D8C8;
    border-radius: 6px;
    padding: 15px 5px;
    text-align: center;
  }
  .feat-icon { font-size: 22px; display:block; margin-bottom:3px; }
  .feat-label { font-size: 13px; color: #5A5040; line-height: 1.5; }


  /* P2 下部フォトストリップ */
  .p2-photo-strip {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 3px;
    width: 100%;
    height: 52mm;
    background: #2C3318;
    flex-shrink: 0;
    overflow: hidden;
  }
  .p2-strip-img {
    width: 100%;
    height: 100%;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center 50%;
    display: block;
  }
  /* 食事（横長）: テーブル全体を表示 */
  .p2-shokuji { background-position: center 45%; } /* テーブル全体 */
  /* 森ガイド（縦長）: 人物が中央に来るよう */
  .p2-mori    { background-position: center 55%; } /* 3人全員 */
  /* 子供（縦長）: 顔が中心 */
  .p2-kodomo  { background-position: center 50%; } /* 顔が中心 */
  /* フッター */
  .p1-footer {
    border-top: 1px solid #E0D8C8;
    padding-top: 20px;
    margin-top: 5px;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .footer-loc img{
    width: 130px;
    height: auto;
  }
  .footer-loc {
    font-family: 'Noto Serif JP', serif;
    font-size: 11px; font-weight: 600;
    color: #3A4820; letter-spacing: 0.1em;
  }
  .footer-loc small {
    display: block; font-size: 7.5px;
    color: #8A7A5A; font-weight: 400;
    letter-spacing: 0.2em;
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
  }
  .footer-tag {
    background: #3A5A20; color: #fff;
    font-size: 12px; font-weight: 700;
    padding: 6px 14px; border-radius: 20px;
    letter-spacing: 0.12em;
    font-family: 'Noto Serif JP', serif;
  }

  /* =============================================
     PAGE 2
     ============================================= */
  .p2-topbar {
    background: linear-gradient(135deg, #2A5020, #3A7030, #2A6858);
    padding: 14px 26px;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .p2-topbar h2 {
    font-family: 'Noto Serif JP', serif;
    color: #fff; font-size: 18px;
    font-weight: 700; letter-spacing: 0.12em;
  }
  .p2-topbar p {
    color: rgba(255,255,255,0.58);
    font-size: 12px; letter-spacing: 0.15em;
    margin-top: 2px;
    font-family: 'Cormorant Garamond', serif; font-style: italic;
  }
  .nights-pills { display:flex; gap:6px; }
  .nights-pill {
    background: rgba(255,255,255,0.14);
    border: 1px solid rgba(255,255,255,0.3);
    border-radius: 6px; padding: 5px 13px;
    text-align: center; color: #FFD97A;
    font-family: 'Noto Serif JP', serif;
    font-size: 24px; font-weight: 900; line-height: 1;
  }
  .nights-pill span {
    display: block; font-size: 10px;
    color: rgba(255,255,255,0.62);
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400; margin-top: 2px;
  }

  .p2-body {
    padding: 14px 22px;
    flex: 1;
    background: #FAF7F0;
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  .sec-heading {
    font-family: 'Noto Serif JP', serif;
    font-size: 13px; font-weight: 700;
    color: #3A5A20; letter-spacing: 0.2em;
    display: flex; align-items: center; gap: 8px;
    margin-bottom: 10px;
  }
  .sec-heading::after {
    content:''; flex:1; height:1px;
    background: linear-gradient(90deg, #A0B870, transparent);
  }

  .days-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
  }
  .day-card {
    background: #fff; border-radius: 8px;
    overflow: hidden; border: 1px solid #E8E0D0;
    box-shadow: 0 2px 10px rgba(60,80,30,0.08);
  }
  .day-head {
    padding: 10px 15px;
    display: flex; align-items: center; gap: 6px;
  }
  .day-card:nth-child(1) .day-head { background: linear-gradient(135deg, #4A7030, #7AAA50); }
  .day-card:nth-child(2) .day-head { background: linear-gradient(135deg, #2A90B0, #50C0D8); }
  .day-card:nth-child(3) .day-head { background: linear-gradient(135deg, #C87830, #E8B050); }
  .day-num {
    font-family: 'Cormorant Garamond', serif;
    font-size: 30px; font-weight: 700;
    color: #fff; line-height: 1;
  }
  .day-info .day-lbl { font-size: 10px; color: rgba(255,255,255,0.72); letter-spacing: 0.3em; text-transform: uppercase; }
  .day-info .day-theme { font-size: 14px; color: #fff; font-weight: 700; letter-spacing: 0.04em; }
  .day-events { padding: 15px; display:flex; flex-direction:column; gap:3px; }
  .ev {
    display: flex; gap: 8px; align-items: flex-start;
    padding-bottom: 10px; border-bottom: 1px solid #F0EAE0;
    margin-bottom: 10px;
  }
  .ev:last-child { border-bottom:none; padding-bottom:0; }
  .ev-time { font-size: 13px; color: #8A7A5A; font-weight: 600; min-width: 28px; padding-top:1px; white-space:nowrap; }
  .ev-name { font-size: 14px; color: #2C2818; line-height: 1.6; }
  .ev-name small { font-size: 12px; color: #A09070; }
  .ev-tag {
    display: inline-block; font-size: 12px;
    padding: 1px 5px; border-radius: 3px;
    margin-top: 5px; font-weight: 600;
  }
  .t-nat { background: #E8F0D8; color: #3A6020; }
  .t-food { background: #FFF3E0; color: #906020; }
  .t-fire { background: #FDEEDD; color: #C05020; }
  .t-water { background: #E0F4FA; color: #206880; }
  .t-free { background: #EEE8FA; color: #503090; }

  .btm-grid {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 10px;
  }
  .card-box {
    background: #fff; border-radius: 8px;
    overflow: hidden; border: 1px solid #E8E0D0;
    box-shadow: 0 2px 10px rgba(60,80,30,0.07);
  }
  .card-hd { padding: 10px 15px; }
  .card-hd.green { background: linear-gradient(135deg, #3A5A20, #5A8A38); }
  .card-hd.orange { background: linear-gradient(135deg, #C87028, #E8A040); }
  .card-hd span { color:#fff; font-family:'Noto Serif JP',serif; font-size:16px; font-weight:700; letter-spacing:0.15em; }

  .price-body { padding: 0 15px 15px; }
  .price-row {
    display: flex; justify-content: space-between;
    align-items: center; padding: 10px 0;
    border-bottom: 1px dashed #E0D8C8;
  }
  .price-row:last-child { border-bottom:none; }
  .pw { font-size: 15px; color: #3A3020; font-weight: 500; }
  .pw small {  font-size: 12px; color:#8A7A5A; font-weight:400; }
  .pa { font-family:'Noto Serif JP',serif; font-size:18px; font-weight:700; color:#2C4010; }
  .pa.free { color:#C04820; }
  .pa small { font-size: 10px; font-weight:400; color:#8A7A5A; font-family:'Noto Sans JP',sans-serif; }
  .price-note {
    margin-top: 6px; background: #F4F0E8;
    border-radius: 5px; padding: 5px 9px;
    font-size: 13px; color: #7A6A4A; line-height: 1.7;
  }
  .price-note strong { color:#3A5A20; font-weight:700; }
  .price-special {
    margin-top: 15px; background: linear-gradient(135deg, #FFF4E8, #FDE7D2);
    border: 1px solid #F0C48A; border-radius: 6px;
    padding: 6px 9px; font-size: 13px; color: #7A5630; line-height: 1.7;
  }
  .price-special strong { color:#B85A18; font-weight:700; }
  .period-badge {
    display:inline-block; margin-top:4px; margin-left:4px;
    background:#B85A18; color:#fff; border-radius:20px;
    font-size:12px; font-weight:700; padding:4px 10px;
    letter-spacing:0.08em;
  }

  .hl-list { padding: 10px 10px 6px; display:flex; flex-direction:column; gap:15px; }
  .hl-item { display:flex; gap:7px; align-items:flex-start; }
  .hl-ico { font-size:16px; line-height:1.2; flex-shrink:0; }
  .hl-txt { font-size: 13px; color:#3A3020; line-height:1.6; }
  .hl-txt strong { color:#2C4010; font-weight:700; }

  .p2-footer {
    background: linear-gradient(135deg, #2A4818, #3A6A28, #286858);
    padding: 10px 22px;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .guide-block { display:flex; align-items:center; gap:10px; }
  .guide-avs { display:flex; gap:5px; }
  .guide-av {
    width:27px; height:27px; border-radius:50%;
    border:2px solid rgba(255,255,255,0.38);
    background: rgba(255,255,255,0.14);
    display:flex; align-items:center; justify-content:center;
    font-size:12px;
  }
  .guide-txt { font-size:11px; color:rgba(255,255,255,0.85); line-height:1.6; }
  .guide-txt strong { color:#FFD97A; font-size:14px; }
  .closed-pill {
    background:rgba(255,255,255,0.12);
    border:1px solid rgba(255,255,255,0.27);
    border-radius:6px; padding:6px 20px; text-align:center;
  }
  .closed-pill .cp-lbl { color:rgba(255,255,255,0.52); font-size:10px; letter-spacing:0.25em; text-transform:uppercase; }
  .closed-pill .cp-val { color:#FFD97A; font-size:14px; font-weight:700; letter-spacing:0.1em; margin-top:1px; }
  .cta-pill {
    background: linear-gradient(135deg, #E07030, #F0A050);
    border-radius:7px; padding:5px 20px; text-align:center;
    box-shadow:0 2px 10px rgba(220,100,40,0.4);
  }
  .cta-pill .ct-lbl { color:rgba(255,255,255,0.78); font-size:12px; letter-spacing:0.2em; }
  .cta-pill .ct-val { color:#fff; font-size:14px; font-weight:700; letter-spacing:0.12em; font-family:'Noto Serif JP',serif; margin-top:1px; }

  @media print {
    body { background:white; padding:0; }
    .page { margin:0; box-shadow:none; page-break-after:always; }
  }

@media only screen and (max-width: 991px) {
  .guide-txt {
    font-size: 10px;
  }
  .guide-txt strong {
    font-size: 13px;
  }
  .cta-pill {
    padding: 5px 10px;
  }
  .cta-pill .ct-val {
    font-size: 12.5px;
  }
  .closed-pill {
    padding: 6px 10px;
  }
  .closed-pill .cp-val {
    font-size: 12.5px;
  }
}
@media only screen and (max-width: 767px) {
  body {
      padding: 0;
  }
  .dis-pc{
    display: none;
  }
  .dis-sp{
    display: block
  }
  .invitation-only {
    top: 15px;
    left: 18px;
}
  .hero-badge {
    top: 30px;
    left: 15px;
  }
  .hero-title {
    bottom: 15px;
    left: 15px;
}
  .title-jp {
    font-size: 30px;
  }
  .title-en {
    font-size: 14px;
    line-height: 1.3;
}
  .cream-section {
    padding: 15px 15px 20px;
  }
  .summer-course-row{
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }
  .summer-box {
    padding: 15px 10px 10px;
  }
  .summer-box .course-date {
    font-size: 20px;
  }
  .summer-box .course-date span {
    font-size: 12px;
    padding-left: 0px;
  }
  .summer-box .course-detail {
    font-size: 11px;
    line-height: 1.5;
  }
  .period-badge{
    margin-top: 5px;
    margin-left: 0;
    width: 120px;
    text-align: center;
  }
  .summer-box .limited-tag{
    width: 120px;
  }
  .feature-row {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }
  .footer-loc img {
    width: 120px;
  }
  .p2-topbar {
    padding: 15px;
  }
  .p2-topbar h2 {
    font-size: 16px;
  }
  .p2-body {
    padding: 15px;
  }
  .days-grid {
    grid-template-columns: repeat(1, 1fr);
    gap: 15px;
  }
  .ev-time {
    font-size: 14px;
  }
  .ev-name {
    font-size: 14px;
  }
  .btm-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .p2-photo-strip {
    grid-template-columns: repeat(3, 1fr);
    gap: 3px;
    width: 100%;
    height: 150px;
  }
  .p2-footer{
    display: block;
    padding: 15px 15px 20px;
  }
  .closed-pill{
    margin: 10px 0;
  }
}
@media only screen and (max-width: 400px) {
  .summer-box .course-date {
    font-size: 17px;
  }
  .summer-box .course-date span {
    font-size: 11px;
  }
  .nights-pill {
    padding: 5px 8px;
  }
}
