:root {
      --ruree-text: #464e54;
      --ruree-brown: #7c6147;
      --ruree-brown-dark: #4b2419;
      --ruree-teal: #58afa7;
      --ruree-teal-dark: #378980;
      --ruree-line: #e8ecec;
      --ruree-bg-soft: #f7faf9;
      --ruree-white: #fff;
      --ruree-warm: #fbf7f2;
      --ruree-alert: #bf3f32;
    }
    .ruree-lp,
    .ruree-lp * {
      box-sizing: border-box;
    }
    .ruree-lp {
      max-width: 840px;
      margin: 0 auto;
      background: var(--ruree-white);
      color: var(--ruree-text);
      font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
      line-height: 1.7;
    }
    .ruree-lp a {
      color: inherit;
      text-decoration: none;
    }
    .ruree-topbar {
      display: flex;
      justify-content: center;
      gap: 8px;
      padding: 7px 12px;
      background: #f2f5f5;
      color: #555;
      font-size: 12px;
      line-height: 1.2;
    }
    .ruree-header {
      position: sticky;
      top: 0;
      z-index: 10;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      min-height: 58px;
      padding: 10px 14px;
      background: rgba(255, 255, 255, .96);
      border-bottom: 1px solid var(--ruree-line);
    }
    .ruree-brand {
      display: flex;
      align-items: center;
      min-width: 0;
      gap: 10px;
    }
    .ruree-brand img {
      width: 142px;
      height: auto;
      display: block;
    }
    .ruree-brand small {
      display: block;
      margin-top: -3px;
      color: #687275;
      font-size: 10px;
      white-space: nowrap;
    }
    .ruree-nav {
      display: flex;
      align-items: center;
      gap: 16px;
      font-size: 12px;
      color: #4c565a;
    }
    .ruree-icon-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 34px;
      height: 34px;
      border: 1px solid transparent;
      border-radius: 4px;
      background: transparent;
      color: #253036;
    }
    .ruree-icon-btn svg {
      width: 22px;
      height: 22px;
      stroke-width: 1.8;
    }
    .ruree-actions {
      display: flex;
      align-items: center;
      gap: 4px;
    }
    .ruree-cart {
      position: relative;
    }
    .ruree-cart span {
      position: absolute;
      right: -1px;
      top: -2px;
      width: 16px;
      height: 16px;
      border-radius: 50%;
      background: #ff4356;
      color: #fff;
      font-size: 10px;
      line-height: 16px;
      text-align: center;
      font-weight: 700;
    }
    .ruree-section {
      padding: 18px 18px 0;
    }
    .ruree-section + .ruree-section {
      padding-top: 24px;
    }
    .ruree-section-head {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 10px;
    }
    .ruree-section-head {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 10px;
    }
    .ruree-section h2 {
      margin: 0;
      color: var(--ruree-brown-dark);
      font-family: "Noto Serif JP", "Yu Mincho", YuMincho, serif;
      font-size: 22px;
      line-height: 1.35;
      letter-spacing: 0;
    }
    .ruree-section p {
      margin: 2px 0 0;
      color: #6f797c;
      font-size: 13px;
      line-height: 1.65;
    }
    .ruree-section p {
      margin: 2px 0 8px;
      color: #6f797c;
      font-size: 13px;
      line-height: 1.65;
    }
    .ruree-section > h2 {
      margin-bottom: 10px;
    }
    .ruree-section > h2 + p {
      margin-top: -6px;
    }
    .ruree-section-head h2 {
      margin-bottom: 0;
    }
    .ruree-view-all {
      flex: 0 0 auto;
      color: #6f797c;
      font-size: 12px;
    }
    .ruree-hero {
      position: relative;
      display: block;
      min-height: 308px;
      padding: 34px 24px 28px;
      overflow: hidden;
      background: #fff;
      border-bottom: 1px solid var(--ruree-line);
    }
    .ruree-hero::before {
      content: "";
      position: absolute;
      inset: 0;
      background: url("https://img07.shop-pro.jp/PA01433/721/etc_base64/aGVyb19pbWc.png?cmsp_timestamp=20260914171637") center center / cover no-repeat;
      transform: none;
      z-index: 0;
    }
    .ruree-hero::after {
      content: "";
      position: absolute;
      inset: 0;
      z-index: 1;
      pointer-events: none;
      display: none;
    }
    .ruree-hero-copy {
      position: relative;
      z-index: 2;
      width: min(390px, 58%);
      padding: 0;
      background: transparent;
      color: var(--ruree-text);
      text-align: left;
    }
    .ruree-hero h1 {
      max-width: 390px;
      margin: 0;
      color: #1f1b18;
      font-family: "Noto Serif JP", "Yu Mincho", YuMincho, serif;
      font-size: 36px;
      line-height: 1.28;
      letter-spacing: 0;
      text-shadow: 0 0 10px rgba(255,255,255,.98), 0 0 22px rgba(255,255,255,.92), 0 0 34px rgba(255,255,255,.76);
    }
    .ruree-hero p {
      max-width: 320px;
      margin: 14px 0 18px;
      color: #222;
      font-size: 15px;
      font-weight: 600;
      text-shadow: 0 0 8px rgba(255,255,255,.98), 0 0 18px rgba(255,255,255,.9), 0 0 28px rgba(255,255,255,.72);
    }
    .ruree-hero .ruree-buttons {
      justify-content: flex-start;
    }
    .ruree-hero .ruree-btn {
      border-color: var(--ruree-brown);
      background: #fff;
      color: var(--ruree-brown-dark);
    }
    .ruree-hero .ruree-btn-primary {
      border-color: var(--ruree-teal);
      background: var(--ruree-teal);
      color: #fff;
    }
    .ruree-buttons {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
    }
    .ruree-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      min-height: 42px;
      padding: 10px 18px;
      border: 1px solid var(--ruree-brown);
      border-radius: 4px;
      background: #fff;
      color: var(--ruree-brown-dark);
      font-size: 14px;
      font-weight: 700;
      line-height: 1.2;
    }
    .ruree-btn-primary {
      border-color: var(--ruree-teal);
      background: var(--ruree-teal);
      color: #fff;
    }
    .ruree-btn svg,
    .ruree-view-all svg,
    .ruree-card-arrow svg,
    .ruree-wide-link svg {
      width: 16px;
      height: 16px;
    }
    .ruree-concerns {
      display: grid;
      grid-template-columns: repeat(5, 1fr);
      gap: 8px;
    }
    .ruree-concern {
      min-width: 0;
      overflow: hidden;
      border: 1px solid var(--ruree-line);
      border-radius: 4px;
      background: #fff;
    }
    .ruree-concern img {
      display: block;
      width: 100%;
      aspect-ratio: 1.45 / 1;
      object-fit: cover;
      border-radius: 4px 4px 0 0;
    }
    .ruree-concern span {
      display: flex;
      align-items: center;
      justify-content: center;
      min-height: 34px;
      padding: 7px 6px;
      color: #4d5659;
      font-size: 12px;
      font-weight: 700;
      line-height: 1.2;
      text-align: center;
    }
    .ruree-trials {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 10px;
    }
    .ruree-trial {
      min-width: 0;
      padding: 6px 4px 8px;
      border: 1px solid var(--ruree-line);
      border-radius: 4px;
      background: #fff;
      text-align: center;
    }
    .ruree-trial b {
      display: block;
      color: var(--ruree-brown-dark);
      font-size: 14px;
      line-height: 1.05;
    }
    .ruree-trial strong {
      display: block;
      color: var(--ruree-teal-dark);
      font-size: 13px;
      font-size: 15px;
      font-weight: 800;
      line-height: 1.05;
    }
    .ruree-trial img {
      width: min(170px, 100%);
      height: 170px;
      object-fit: contain;
      object-position: center center;
      margin: 0 auto 2px;
      display: block;
      mix-blend-mode: multiply;
    }
    .ruree-trial em {
      display: block;
      color: #1f2b31;
      font-size: 17px;
      font-style: normal;
      font-weight: 700;
      line-height: 1.05;
    }
    .ruree-wide-link {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      min-height: 40px;
      margin-top: 8px;
      border: 1px solid var(--ruree-brown);
      border-radius: 4px;
      color: var(--ruree-brown-dark);
      font-size: 13px;
      font-weight: 700;
    }
    .ruree-products {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 10px;
    }
    .ruree-product {
      border: 1px solid var(--ruree-line);
      border-radius: 4px;
      background: #fff;
      overflow: hidden;
    }
    .ruree-product img {
      display: block;
      width: 100%;
      height: 142px;
      aspect-ratio: auto;
      object-fit: cover;
      background: var(--ruree-bg-soft);
    }
    .ruree-product-body {
      padding: 9px 10px 11px;
    }
    .ruree-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 4px;
      margin-bottom: 6px;
    }
    .ruree-tag {
      display: inline-flex;
      align-items: center;
      min-height: 18px;
      padding: 2px 6px;
      background: #dff4f2;
      border-radius: 3px;
      color: var(--ruree-teal-dark);
      font-size: 10px;
      font-weight: 700;
      line-height: 1;
    }
    .ruree-product h3 {
      min-height: 48px;
      margin: 0 0 5px;
      color: #313a3e;
      font-size: 14px;
      line-height: 1.45;
      font-weight: 700;
    }
    .ruree-product p {
      min-height: 42px;
      margin: 0 0 8px;
      font-size: 12px;
      color: #687275;
      line-height: 1.5;
    }
    .ruree-price {
      color: #263137;
      font-size: 17px;
      font-weight: 800;
      line-height: 1.2;
    }
    .ruree-price small {
      margin-left: 2px;
      font-size: 11px;
      font-weight: 500;
    }
    .ruree-category-list {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 8px;
    }
    .ruree-category {
      display: grid;
      grid-template-columns: 64px 1fr 18px;
      align-items: center;
      gap: 9px;
      min-height: 60px;
      padding: 7px;
      border: 1px solid var(--ruree-line);
      border-radius: 4px;
      background: #fff;
    }
    .ruree-category img {
      width: 64px;
      height: 44px;
      object-fit: cover;
      border-radius: 3px;
      background: var(--ruree-bg-soft);
    }
    .ruree-category b {
      display: block;
      color: #384348;
      font-size: 13px;
      line-height: 1.35;
    }
    .ruree-reasons,
    .ruree-checks {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 10px;
    }
    .ruree-reason,
    .ruree-check {
      display: flex;
      align-items: center;
      gap: 10px;
      min-height: 74px;
      padding: 13px 14px;
      border: 1px solid var(--ruree-line);
      border-radius: 4px;
      background: #fff;
    }
    .ruree-reason svg,
    .ruree-check svg {
      flex: 0 0 auto;
      width: 34px;
      height: 34px;
      color: var(--ruree-teal-dark);
      stroke-width: 1.7;
    }
    .ruree-reason b,
    .ruree-check b {
      display: block;
      color: var(--ruree-teal-dark);
      font-size: 14px;
      line-height: 1.35;
    }
    .ruree-reason span,
    .ruree-check span {
      display: block;
      margin-top: 2px;
      color: #687275;
      font-size: 12px;
      line-height: 1.35;
    }
    .ruree-voices {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 10px;
    }
    .ruree-voice {
      display: grid;
      grid-template-columns: 104px 1fr;
      gap: 12px;
      padding: 10px;
      border: 1px solid var(--ruree-line);
      border-radius: 4px;
      background: #fff;
    }
    .ruree-voice img {
      width: 104px;
      height: 92px;
      object-fit: cover;
      border-radius: 3px;
    }
    .ruree-stars {
      color: #f3a619;
      font-size: 13px;
      letter-spacing: 0;
      line-height: 1;
    }
    .ruree-voice b {
      display: block;
      margin: 4px 0 3px;
      color: #384348;
      font-size: 14px;
      line-height: 1.35;
    }
    .ruree-voice p {
      margin: 0;
      font-size: 12px;
      line-height: 1.5;
    }
    .ruree-consult {
      display: grid;
      grid-template-columns: 220px 1fr;
      align-items: center;
      gap: 16px;
      padding: 12px;
      border: 1px solid var(--ruree-line);
      border-radius: 4px;
      background: var(--ruree-bg-soft);
    }
    .ruree-consult img {
      width: 100%;
      aspect-ratio: 1.55 / 1;
      object-fit: cover;
      border-radius: 3px;
    }
    .ruree-faq {
      border-top: 1px solid var(--ruree-line);
    }
    .ruree-faq a {
      display: grid;
      grid-template-columns: 1fr 26px;
      align-items: center;
      min-height: 38px;
      border-bottom: 1px solid var(--ruree-line);
      color: #3c464a;
      font-size: 13px;
    }
    .ruree-blog-list,
    .ruree-shop-list {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 10px;
    }
    .ruree-blog,
    .ruree-shop {
      display: grid;
      grid-template-columns: 118px 1fr;
      gap: 10px;
      padding: 8px;
      border: 1px solid var(--ruree-line);
      border-radius: 4px;
      background: #fff;
    }
    .ruree-blog img,
    .ruree-shop img {
      width: 118px;
      height: 72px;
      object-fit: cover;
      border-radius: 3px;
    }
    .ruree-blog time,
    .ruree-shop span {
      display: block;
      color: #879094;
      font-size: 11px;
      line-height: 1.25;
    }
    .ruree-blog b,
    .ruree-shop b {
      display: block;
      margin-top: 3px;
      color: #384348;
      font-size: 13px;
      line-height: 1.42;
    }
    .ruree-footer {
      margin-top: 28px;
      padding: 22px 18px 26px;
      border-top: 1px solid var(--ruree-line);
      color: #687275;
      text-align: center;
      font-size: 12px;
    }
    .ruree-footer img {
      width: 142px;
      height: auto;
      display: block;
      margin: 0 auto 10px;
    }
    .ruree-footer-links {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 10px 18px;
      margin-top: 12px;
    }
    @media (max-width: 720px) {
      .ruree-lp {
        max-width: none;
      }
      .ruree-header {
        min-height: 56px;
        padding: 8px 10px;
      }
      .ruree-brand img {
        width: 124px;
      }
      .ruree-brand small {
        max-width: 178px;
        overflow: hidden;
        text-overflow: ellipsis;
      }
      .ruree-nav {
        display: none;
      }
      .ruree-section {
        padding: 18px 12px 0;
      }
      .ruree-section h2 {
        font-size: 20px;
      }
      .ruree-hero {
        display: block;
        min-height: 284px;
        padding: 24px 14px 18px;
        background: #fff;
      }
      .ruree-hero::before {
        position: absolute;
        inset: 0;
        background-image: url("https://img07.shop-pro.jp/PA01433/721/etc_base64/aGVyb19pbWc.png?cmsp_timestamp=20260914171637");
        background-size: auto 96%;
        background-position: right bottom;
        background-repeat: no-repeat;
        transform: none;
      }
      .ruree-hero::after {
        display: none;
      }
      .ruree-hero-copy {
        width: min(245px, 68%);
        padding: 0;
        background: transparent;
        box-shadow: none;
      }
      .ruree-hero h1 {
        max-width: 245px;
        color: #1f1b18;
        font-size: 25px;
        line-height: 1.28;
        text-shadow: 0 0 10px rgba(255,255,255,.98), 0 0 22px rgba(255,255,255,.92), 0 0 34px rgba(255,255,255,.76);
      }
      .ruree-hero p {
        max-width: 220px;
        color: #222;
        margin: 11px 0 14px;
        font-size: 13px;
        line-height: 1.55;
        text-shadow: 0 0 10px rgba(255,255,255,1), 0 0 22px rgba(255,255,255,.96), 0 0 34px rgba(255,255,255,.84), 0 0 46px rgba(255,255,255,.68);
      }
      .ruree-buttons {
        display: grid;
        grid-template-columns: 1fr;
        max-width: 212px;
        gap: 8px;
      }
      .ruree-btn {
        min-height: 38px;
        padding: 9px 12px;
        font-size: 13px;
      }
      .ruree-concerns {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 6px;
        overflow: visible;
        padding-bottom: 2px;
      }
      .ruree-concern {
        min-width: 0;
      }
      .ruree-concern span {
        min-height: 32px;
        font-size: 11px;
      }
      .ruree-products,
      .ruree-category-list,
      .ruree-checks,
      .ruree-voices,
      .ruree-blog-list,
      .ruree-shop-list {
        grid-template-columns: 1fr;
      }
      .ruree-reasons {
        grid-template-columns: repeat(3, 1fr);
        gap: 6px;
      }
      .ruree-voices {
        grid-template-columns: repeat(2, 1fr);
        gap: 6px;
      }
      .ruree-checks {
        grid-template-columns: repeat(4, 1fr);
        gap: 6px;
      }
      .ruree-blog-list {
        grid-template-columns: repeat(2, 1fr);
        gap: 6px;
      }
      .ruree-trials {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 6px;
        overflow: visible;
        padding-bottom: 0;
      }
      .ruree-trial {
        padding: 6px 4px 6px;
      }
      .ruree-trial b,
      .ruree-trial strong {
        font-size: 12px;
      }
      .ruree-trial b {
        font-size: 12px;
      }
      .ruree-trial strong {
        font-size: 13px;
        font-weight: 800;
      }
      .ruree-trial img {
        width: 100%;
        height: 94px;
        margin: 1px auto 1px;
      }
      .ruree-trial em {
        font-size: 14px;
      }
      .ruree-products {
        display: flex;
        overflow-x: auto;
        gap: 10px;
        padding-bottom: 4px;
        scroll-snap-type: x mandatory;
      }
      .ruree-product {
        flex: 0 0 48%;
        scroll-snap-align: start;
      }
      .ruree-product h3 {
        min-height: 58px;
        font-size: 13px;
      }
      .ruree-product p {
        min-height: 54px;
        font-size: 11px;
      }
      .ruree-category-list {
        grid-template-columns: repeat(2, 1fr);
      }
      .ruree-category {
        grid-template-columns: 54px 1fr 14px;
        min-height: 58px;
        gap: 7px;
      }
      .ruree-category img {
        width: 54px;
        height: 42px;
      }
      .ruree-category b {
        font-size: 12px;
      }
      .ruree-reason,
      .ruree-check {
        min-height: 66px;
      }
      .ruree-check {
        display: block;
        padding: 9px 3px 8px;
        text-align: center;
      }
      .ruree-check svg {
        display: block;
        width: 24px;
        height: 24px;
        margin: 0 auto 5px;
      }
      .ruree-check b {
        font-size: 11px;
      }
      .ruree-check span {
        display: none;
      }
      .ruree-reason {
        display: block;
        padding: 10px 4px 9px;
        text-align: center;
      }
      .ruree-reason svg {
        display: block;
        width: 26px;
        height: 26px;
        margin: 0 auto 5px;
      }
      .ruree-reason b {
        font-size: 12px;
      }
      .ruree-reason span {
        margin-top: 2px;
        font-size: 10px;
        line-height: 1.35;
      }
      .ruree-voice,
      .ruree-blog,
      .ruree-shop {
        grid-template-columns: 94px 1fr;
      }
      .ruree-voice,
      .ruree-blog,
      .ruree-shop {
        grid-template-columns: 94px 1fr;
      }
      .ruree-voice {
        display: block;
        padding: 8px;
      }
      .ruree-voice img,
      .ruree-blog img,
      .ruree-shop img {
        width: 94px;
      }
      .ruree-voice img {
        width: 100%;
        height: 78px;
        margin-bottom: 6px;
      }
      .ruree-stars {
        font-size: 11px;
      }
      .ruree-voice b {
        font-size: 12px;
      }
      .ruree-voice p {
        font-size: 10px;
        line-height: 1.45;
      }
      .ruree-blog {
        display: block;
        padding: 8px;
      }
      .ruree-blog img {
        width: 100%;
        height: 76px;
        margin-bottom: 6px;
      }
      .ruree-blog time {
        font-size: 10px;
      }
      .ruree-blog b {
        font-size: 11px;
        line-height: 1.35;
      }
      .ruree-voice img,
      .ruree-blog img,
      .ruree-shop img {
        width: 94px;
      }
      .ruree-consult {
        grid-template-columns: 96px 1fr;
        gap: 10px;
      }
      .ruree-consult .ruree-buttons {
        max-width: none;
        grid-template-columns: 1fr;
      }
    }