@font-face {
      font-family: 'Daylimirror';
      src: local('Daylimirror'), local('Daylimirror Personal Use');
    }

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

    html, body {
      width: 100vw;
      font-family: 'Daylimirror', 'Arial Black', sans-serif;
      cursor: url('../images/cursor.png') 44 48, auto;
    }

    body {
      background-color: #8b726a;
      padding: 0.6rem 0.5rem 0.6rem;
    }

    .back {
      position: fixed;
      top: 1rem;
      left: 1.5rem;
      font-size: 0.85rem;
      font-weight: 900;
      color: #fff;
      text-decoration: none;
      text-transform: lowercase;
      z-index: 999;
      transition: opacity 0.2s;
    }
    .back:hover { opacity: 0.6; }

    .page-menu {
      position: fixed;
      top: 1.1rem;
      left: 50%;
      transform: translateX(-50%);
      z-index: 999;
      display: flex;
      gap: 2rem;
    }

    .page-menu a {
      font-family: 'Daylimirror', 'Arial Black', sans-serif;
      font-weight: 900;
      font-size: 0.95rem;
      color: #fff;
      text-decoration: underline;
      text-transform: lowercase;
      transition: opacity 0.2s;
    }

    .page-menu a:hover { opacity: 0.6; }

    .page-title {
      position: relative;
      top: 1.2rem;
      left: calc(1rem - 1mm);
      font-size: clamp(1rem, 2.2vw, 2.2rem);
      font-weight: 900;
      color: #fff;
      text-transform: lowercase;
      white-space: nowrap;
      line-height: 1.1;
      margin-bottom: 0;
    }

    .content {
      position: relative;
      z-index: 2;
      margin-top: 3rem;
      max-width: 100%;
      font-family: 'Canva Sans', 'Inter', 'Helvetica Neue', sans-serif;
      font-size: 1.05rem;
      font-weight: 700;
      color: #fff;
      line-height: 1.6;
      padding: 0 3.5rem 4rem 8rem;
    }

    .content p + p {
      margin-top: 1rem;
    }


    .top-right-img {
      float: right;
      width: 33%;
      shape-outside: url('../images/p3-crop.webp');
      shape-image-threshold: 0.4;
      shape-margin: 0.2rem;
      margin: -1rem 4rem 1.5rem 0.3rem;
    }

    .image-wrap {
      position: relative;
      z-index: 1;
      width: 75%;
      margin: -24rem auto 4rem;
    }

    .content-img {
      display: block;
      width: 100%;
      position: relative;
      top: -9rem;
    }

    .sessions-row {
      position: absolute;
      left: 16%;
      right: 2%;
      display: grid;
      grid-template-columns: 1fr 1fr;
      column-gap: 4%;
      font-family: 'Canva Sans', 'Inter', 'Helvetica Neue', sans-serif;
    }

    .sessions-row-top {
      top: 37%;
    }

    .sessions-row .session:first-child {
      margin-left: 4rem;
    }

    .sessions-row-bottom {
      bottom: 32%;
    }

    .session-label {
      font-style: italic;
      text-decoration: underline;
      font-weight: 700;
      color: #9b685c;
      font-size: 0.95vw;
      margin-bottom: 0.3em;
    }

    .session-title {
      font-weight: 900;
      color: #571d0f;
      font-size: 1.15vw;
      line-height: 1.25;
      margin-bottom: 0.8em;
    }

    .session ul {
      list-style: disc;
      padding-left: 1.1em;
      color: #571d0f;
      font-weight: 700;
      font-size: 0.85vw;
      line-height: 1.45;
    }

    .session li + li {
      margin-top: 0.4em;
    }

    .p2-wrap {
      position: relative;
      width: 50%;
      margin: -16rem auto 0.5rem -4rem;
    }

    .p2-wrap img {
      display: block;
      width: 100%;
    }

    .p2-wrap .p2-label {
      position: absolute;
      top: 42%;
      left: 18%;
      transform: translateY(-50%);
      font-family: 'Daylimirror', 'Arial', sans-serif;
      font-weight: 900;
      color: #fff;
      font-size: clamp(1.4rem, 3vw, 2.4rem);
      text-transform: lowercase;
    }

    .p2-note {
      position: absolute;
      top: 58%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: 90%;
      font-family: 'Canva Sans', 'Inter', 'Helvetica Neue', sans-serif;
      font-size: 0.85rem;
      color: #fff;
      text-align: center;
    }

    .p2-prices {
      width: 50%;
      margin: 1rem auto 3rem -4rem;
      padding-left: 12%;
      font-family: 'Canva Sans', 'Inter', 'Helvetica Neue', sans-serif;
      font-size: 1rem;
      font-weight: 400;
      color: #fff;
      line-height: 1.6;
      white-space: nowrap;
    }

    .p2-prices strong {
      font-weight: 700;
    }

    .p2-contact {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: 80%;
      text-align: center;
      font-family: 'Canva Sans', 'Inter', 'Helvetica Neue', sans-serif;
      font-size: 1rem;
      font-weight: 400;
      color: #492820;
      line-height: 1.2;
    }

    .p2-contact a {
      color: #492820;
      text-decoration: underline;
    }

    .p2-contact strong {
      font-weight: 700;
    }

    .tag5-wrap {
      position: relative;
      width: 52%;
      margin: 2rem auto 3rem;
    }

    .tag5-wrap .tag5-tape {
      display: block;
      width: 100%;
    }

    .p4-img {
      display: block;
      width: 40%;
      margin: 0 auto 3rem;
    }

    .note-text {
      width: 60%;
      margin: 0 auto 4rem;
      text-align: center;
      font-family: 'Canva Sans', 'Inter', 'Helvetica Neue', sans-serif;
      font-size: 0.95rem;
      font-weight: 700;
      color: #fff;
      line-height: 1.6;
    }

    .note-text p + p {
      margin-top: 1rem;
    }

    .supplies-row {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 10rem;
      margin: 0 auto;
      padding: 0 2rem;
    }

    .supplies-row img {
      display: block;
    }

    .p6-img {
      width: 17%;
    }

    .p5-img-rotated {
      width: 33%;
    }

    .p7-img {
      width: 17%;
      position: relative;
      top: 3rem;
    }

    /* ══════════════════════════════════════════
       MOBILE
       ══════════════════════════════════════════ */
    @media (max-width: 900px) {
      .page-title {
        position: relative;
        top: 0;
        left: 0;
        padding: 3rem 1.2rem 0.5rem;
        font-size: 1.6rem;
      }

      .page-menu {
        top: 5.6rem;
        gap: 1rem 1.4rem;
        flex-wrap: wrap;
        justify-content: center;
        width: 92%;
      }

      .page-menu a {
        font-size: 0.8rem;
      }

      .content {
        margin-top: 3.2rem;
        padding: 0 1.2rem 1rem;
        font-size: 0.95rem;
      }

      .top-right-img {
        float: none;
        shape-outside: none;
        width: 55%;
        display: block;
        margin: 0 auto 1.2rem;
      }

      .image-wrap {
        width: 100%;
        margin: 1.5rem auto 1rem;
      }

      .content-img {
        display: none;
      }

      .sessions-row {
        position: static;
        display: block;
        left: auto;
        right: auto;
      }

      .session {
        margin-bottom: 1.5rem;
        padding: 0 0.5rem;
      }

      .session-label {
        font-size: 0.8rem;
        color: #f0d9d0;
      }

      .desktop-break {
        display: none;
      }

      .session-title {
        font-size: 1.05rem;
      }

      .session ul {
        font-size: 0.88rem;
      }

      .p2-wrap {
        width: 92%;
        margin: 2.5rem auto 1rem;
      }

      .p2-wrap .p2-label {
        font-size: 1.6rem;
        left: 2%;
        top: 30%;
      }

      .p2-note {
        font-size: 0.72rem;
        width: 96%;
      }

      .p2-prices {
        width: 100%;
        padding: 0 1.2rem;
        margin: 1.5rem 0 2rem;
        white-space: normal;
        font-size: 0.85rem;
      }

      .tag5-wrap {
        width: 92%;
        margin: 4rem auto 2rem;
      }

      .tag5-wrap .tag5-tape {
        position: relative;
        top: 1rem;
      }

      .p2-contact {
        font-size: 0.85rem;
        width: 92%;
      }

      .p4-img {
        width: 68%;
        margin-top: 5rem;
        margin-bottom: 2rem;
      }

      .note-text {
        width: 92%;
        font-size: 0.85rem;
        margin-bottom: 2.5rem;
      }

      .supplies-row {
        gap: 1.5rem;
        flex-wrap: wrap;
        padding: 0 1.2rem 0;
        max-height: 22.5rem;
        overflow: hidden;
      }

      .p6-img, .p7-img {
        width: 30%;
      }

      .p5-img-rotated {
        width: 52%;
      }
    }
