/* ===== RESET & BASE ===== */
    *, *::before, *::after {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }

    html {
      font-size: 16px;
      scroll-behavior: smooth;
    }

    body {
      font-family: 'Noto Sans JP', sans-serif;
      color: #2d2418;
      background: #ffffff;
      line-height: 1.7;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      overflow-x: hidden;
    }

    img {
      max-width: 100%;
      height: auto;
      display: block;
    }

    a {
      text-decoration: none;
      color: inherit;
    }

    /* ===== UTILITY ===== */
    .container {
      max-width: 1072px;
      margin: 0 auto;
      padding: 0 32px;
    }

    .container--narrow {
      max-width: 800px;
      margin: 0 auto;
      padding: 0 32px;
    }

    .section-heading {
      font-size: 28px;
      font-weight: 700;
      color: #46341e;
      line-height: 1.6;
      text-align: center;
      margin-bottom: 16px;
      width: fit-content;
      max-width: 100%;
      margin-left: auto;
      margin-right: auto;
    }

    .section-heading::after {
      content: '';
      display: block;
      width: 100%;
      height: 3px;
      background: linear-gradient(90deg, transparent, #92EE21);
      margin: 16px auto 0;
      border-radius: 2px;
    }

    /* ===== HEADER (Sticky) ===== */
    .header {
      position: sticky;
      top: 0;
      z-index: 1000;
      background: #ffffff;
      border-bottom: 1px solid #ddd5cb;
      height: 64px;
      display: flex;
      align-items: center;
    }

    .header__inner {
      max-width: 1072px;
      margin: 0 auto;
      padding: 0 32px;
      width: 100%;
      display: flex;
      align-items: center;
      justify-content: space-between;
    }

    .header__logo img {
      height: 44px;
      width: auto;
    }

    .header__nav {
      display: flex;
      align-items: center;
      gap: 32px;
    }

    .header__nav a {
      font-size: 14px;
      color: #2d2418;
      font-weight: 500;
      transition: color 0.2s;
    }

    .header__nav a:hover {
      color: #92EE21;
    }

    .header__cta {
      background: #bf4b35;
      color: #ffffff !important;
      font-size: 14px;
      font-weight: 700;
      padding: 8px 20px;
      border-radius: 6px;
      transition: background 0.2s;
    }

    .header__cta:hover {
      background: #a83e2c;
    }

    /* ===== HERO ===== */
    .hero {
      position: relative;
      width: 100%;
      height: min(900px, 92vh);
      overflow: hidden;
    }

    .hero__bg {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 120%; /* パララックス用の余白 */
      object-fit: cover;
      will-change: transform;
    }

    @media (prefers-reduced-motion: reduce) {
      .hero__bg {
        height: 100%;
        transform: none !important;
      }
    }

    .hero__bg-placeholder {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      background: linear-gradient(180deg, #f5f0e8 0%, #e8dfd3 30%, #ddd5c5 60%, #d4c9b8 100%);
    }

    .hero__badge {
      position: absolute;
      z-index: 2;
      top: 35%;
      left: 30%;
      transform: translate(-50%, -50%);
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 12px;
      padding: 80px 120px;
      background: rgba(255,255,255,0.95);
      border-radius: 62% 38% 46% 54% / 40% 55% 45% 60%;
      backdrop-filter: blur(20px);
      -webkit-backdrop-filter: blur(20px);
      box-shadow: 0 16px 56px rgba(46,34,20,0.16);
      max-width: 90vw;
    }

    .hero__icon {
      width: 300px;
      height: auto;
    }

    .hero__title-img {
      width: 320px;
      height: auto;
    }

    .hero__tagline {
      font-size: 16px;
      color: #5a4e42;
      font-weight: 500;
      letter-spacing: 0.08em;
      margin-top: 4px;
    }

    /* Hero bottom organic curve */
    .hero__wave {
      position: absolute;
      bottom: 0;
      left: 0;
      width: 100%;
      line-height: 0;
      z-index: 3;
    }

    .hero__wave svg {
      width: 100%;
      height: auto;
      display: block;
    }

    /* ===== INTRO ===== */
    .intro {
      background: #ffffff;
      padding: 100px 0 80px;
      position: relative;
      overflow: visible;
    }

    .intro::before {
      content: '';
      position: absolute;
      top: -100px;
      right: -200px;
      width: 800px;
      height: 800px;
      border-radius: 50% 40% 60% 45%;
      background: radial-gradient(ellipse at center, rgba(240,234,224,0.5) 0%, rgba(240,234,224,0) 70%);
      pointer-events: none;
      z-index: 0;
    }

    .intro .container {
      position: relative;
      z-index: 1;
    }

    .intro__heading {
      text-align: center;
      font-size: 28px;
      font-weight: 700;
      color: #46341e;
      line-height: 1.6;
      margin-bottom: 4px;
    }

    .intro__heading-main {
      font-size: 28px;
      font-weight: 700;
      color: #46341e;
      display: inline;
      background-image: linear-gradient(90deg, transparent 0%, #92EE21 100%);
      background-position: bottom;
      background-size: 100% 4px;
      background-repeat: no-repeat;
      padding-bottom: 4px;
    }

    .intro__note {
      text-align: center;
      font-size: 12px;
      color: #5a4e42;
      margin-top: 8px;
      margin-bottom: 32px;
    }

    .intro__subtitle {
      text-align: center;
      font-size: 18px;
      color: #2d2418;
      line-height: 1.7;
      margin-bottom: 40px;
    }

    .intro__subtitle strong {
      font-weight: 700;
      font-size: 20.55px;
    }

    .intro__content {
      display: flex;
      flex-direction: column;
      gap: 32px;
      align-items: center;
      max-width: 800px;
      margin: 0 auto;
    }

    .intro__text {
      text-align: center;
    }

    .intro__text p {
      font-size: 18px;
      line-height: 32px;
      color: #2d2418;
      margin-bottom: 24px;
    }

    .intro__text p.intro__warning {
      color: #bf4b35;
      line-height: 34px;
    }

    .intro__pitaco-highlight {
      border-bottom: 10px solid #92EE21;
      padding-bottom: 0;
      font-weight: 700;
      font-size: 22px;
    }

    /* ===== ORGANIC WAVE SEPARATOR ===== */
    .wave-separator {
      width: 100%;
      overflow: hidden;
      line-height: 0;
    }

    .wave-separator svg,
    .wave-separator img {
      width: 100%;
      height: auto;
      display: block;
    }

    /* ===== BENEFITS ===== */
    .benefits {
      background: #f0eae0;
      padding: 140px 0 160px;
      position: relative;
      overflow: visible;
    }

    /* 上部: 白→ベージュの柔らかい波形 */
    .benefits__wave-top {
      position: absolute;
      top: -30px;
      left: 0;
      width: 100%;
      line-height: 0;
      z-index: 2;
    }

    .benefits__wave-top svg {
      width: 100%;
      height: auto;
      display: block;
    }

    /* 下部: ベージュ→白の柔らかい波形 */
    .benefits__wave-bottom {
      position: absolute;
      bottom: -30px;
      left: 0;
      width: 100%;
      line-height: 0;
      z-index: 2;
    }

    .benefits__wave-bottom svg {
      width: 100%;
      height: auto;
      display: block;
    }

    .benefits::before {
      content: '';
      position: absolute;
      top: -150px;
      left: -300px;
      width: 900px;
      height: 900px;
      border-radius: 45% 55% 40% 60% / 50% 45% 55% 50%;
      background: radial-gradient(ellipse at center, rgba(232,224,212,0.7) 0%, rgba(232,224,212,0) 65%);
      pointer-events: none;
      z-index: 0;
    }

    .benefits .container {
      position: relative;
      z-index: 1;
    }

    .benefits .section-heading {
      margin-bottom: 48px;
    }

    .benefits__list {
      display: flex;
      flex-direction: column;
      gap: 12px;
      max-width: 830px;
      margin: 0 auto;
    }

    .benefit-card {
      background: #ffffff;
      border-radius: 8px;
      padding: 16px 48px;
      box-shadow: 0 1px 4px rgba(46,34,20,0.06);
      font-size: 20px;
      line-height: 30.6px;
      color: #2d2418;
    }

    .benefit-card strong {
      font-weight: 700;
      color: #2d2418;
    }

    .benefit-card .benefit-note--warning {
      color: #d64545;
      font-size: 13px;
    }
    .benefit-card .benefit-note {
      display: block;
      font-size: 15px;
      color: #2d2418;
      margin-top: 4px;
      font-weight: 400;
      line-height: 25.5px;
    }

    /* ===== SOUND INSULATION ===== */
    .sound {
      background: #f8f5f0;
      padding: 120px 0;
      position: relative;
      overflow: visible;
    }

    .sound::before {
      content: '';
      position: absolute;
      top: 50px;
      right: -250px;
      width: 800px;
      height: 600px;
      border-radius: 50% 40% 55% 45% / 45% 60% 40% 55%;
      background: radial-gradient(ellipse at center, rgba(240,234,224,0.5) 0%, rgba(240,234,224,0) 65%);
      pointer-events: none;
      z-index: 0;
    }

    .sound .container {
      position: relative;
      z-index: 1;
    }

    .sound .section-heading {
      margin-bottom: 8px;
    }

    .sound__subtitle {
      text-align: center;
      font-size: 26px;
      color: #5a4e42;
      margin-bottom: 56px;
      line-height: 1.8;
    }

    .sound__grid {
      display: grid;
      grid-template-columns: 280px 1fr;
      gap: 40px;
      align-items: flex-start;
    }

    .sound__diagram {
      display: flex;
      flex-direction: column;
      gap: 12px;
    }

    .sound__product-photo {
      width: 280px;
      border-radius: 8px;
      overflow: hidden;
      background: #ffffff;
      padding: 20px;
    }

    .sound__product-photo img {
      width: 100%;
      height: auto;
      object-fit: contain;
    }

    .sound__diagram-caption {
      font-size: 14px;
      color: #8c7e70;
      margin-top: 4px;
      line-height: 1.8;
      text-align: center;
    }

    .sound__table-wrap {
      overflow-x: auto;
    }

    .sound__table {
      width: 100%;
      border-collapse: collapse;
      border-radius: 8px;
      overflow: hidden;
      box-shadow: 0 2px 8px rgba(46,34,20,0.08);
      font-size: 16px;
    }

    .sound__table thead th {
      background: #46341e;
      color: #ffffff;
      font-weight: 500;
      padding: 12px 16px;
      text-align: center;
      font-size: 15px;
      line-height: 27px;
      white-space: nowrap;
    }

    .sound__table thead th:first-child {
      text-align: left;
    }

    .sound__table tbody td {
      padding: 12px 16px;
      border-bottom: 1px solid #ddd5cb;
      text-align: center;
      color: #2d2418;
      vertical-align: middle;
      line-height: 27px;
    }

    .sound__table tbody td:first-child {
      text-align: left;
      font-weight: 700;
      white-space: nowrap;
    }

    .sound__table tbody tr:last-child td {
      border-bottom: none;
    }

    .sound__table tbody tr.highlight {
      background: #fff8e1;
    }

    .sound__table tbody tr.highlight td {
      font-weight: 700;
      color: #2d2418;
    }

    .sound__table tbody tr:not(.highlight) {
      background: #ffffff;
    }

    .sound__table-note {
      font-size: 13px;
      color: #8c7e70;
      margin-top: 8px;
      line-height: 23.4px;
    }

    /* Video demo */
    .sound__video {
      margin-top: 64px;
    }

    .sound__video-title {
      text-align: center;
      font-size: 22px;
      font-weight: 500;
      color: #46341e;
      margin-bottom: 24px;
    }

    .sound__video-box {
      max-width: 800px;
      margin: 0 auto;
      width: 800px;
      height: 450px;
      background: linear-gradient(150.6deg, #46341e 0%, #5c4a32 100%);
      border-radius: 12px;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 12px;
      cursor: pointer;
      position: relative;
      overflow: hidden;
    }

    .sound__play-icon {
      position: relative;
      z-index: 2;
    }

    .sound__play-icon img {
      width: 64px;
      height: 64px;
    }

    .sound__play-label {
      font-size: 14px;
      color: #ffffff;
      text-align: center;
    }

    /* Decorative leaf elements */
    .sound__decor {
      position: absolute;
      pointer-events: none;
      z-index: 0;
    }

    .sound__decor--left {
      left: -20px;
      top: 200px;
      opacity: 0.15;
    }

    .sound__decor--right {
      right: -10px;
      bottom: 250px;
      opacity: 0.12;
      transform: scaleX(-1);
    }

    /* ===== FEATURES ===== */
    .features {
      background: #ffffff;
      padding: 60px 0 80px;
      position: relative;
      overflow: visible;
    }

    .features .container {
      position: relative;
      z-index: 1;
    }

    .features .section-heading {
      margin-bottom: 40px;
    }

    .features__grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 32px;
    }

    .feature-card {
      background: #faf8f5;
      border-radius: 12px;
      padding: 40px 28px 32px;
      box-shadow: 0 2px 8px rgba(46,34,20,0.08);
      text-align: center;
    }

    .feature-card__icon {
      width: 64px;
      height: 64px;
      margin: 0 auto 20px;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
    }

    .feature-card__icon img {
      width: 64px;
      height: auto;
      object-fit: contain;
    }

    .feature-card__title {
      font-size: 22px;
      font-weight: 700;
      color: #46341e;
      margin-bottom: 12px;
      line-height: 39.6px;
    }

    .feature-card__desc {
      font-size: 15px;
      line-height: 27px;
      color: #5a4e42;
      text-align: left;
      letter-spacing: -0.02em;
      margin-bottom: 20px;
    }

    .feature-card__photo {
      display: block;
      width: 100%;
      height: auto;
      border-radius: 8px;
      margin-top: 16px;
    }

    .feature-card__table {
      width: 100%;
      border-collapse: collapse;
      font-size: 14px;
      border-radius: 0;
      overflow: hidden;
    }

    .feature-card__table th {
      background: #46341e;
      color: #ffffff;
      padding: 16px 14px;
      font-weight: 400;
      font-size: 15px;
      border-bottom: 1px solid #ddd5cb;
      line-height: 27px;
    }

    .feature-card__table td {
      padding: 16px 14px;
      background: #ffffff;
      border-bottom: 1px solid #ddd5cb;
      text-align: left;
      font-size: 14px;
      line-height: 25.2px;
    }

    .feature-card__table tr:last-child td {
      border-bottom: none;
    }

    .feature-card__table .improvement {
      color: #bf4b35;
      font-weight: 700;
      font-size: 11px;
      display: block;
      text-align: center;
    }

    .feature-card__note {
      font-size: 15px;
      color: #5a4e42;
      line-height: 27px;
      text-align: center;
      margin-top: 8px;
    }

    /* ===== COLOR VARIATIONS ===== */
    .colors {
      background: #f7f6f3;
      position: relative;
      overflow: visible;
    }

    .colors__wave-top {
      position: absolute;
      top: -30px;
      left: 0;
      width: 100%;
      line-height: 0;
      z-index: 2;
    }

    .colors__wave-top svg,
    .colors__wave-bottom svg {
      width: 100%;
      height: auto;
      display: block;
    }

    .colors__wave-bottom {
      position: absolute;
      bottom: -30px;
      left: 0;
      width: 100%;
      line-height: 0;
      z-index: 2;
    }

    .colors__bg {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      z-index: 0;
    }

    .colors .container {
      position: relative;
      z-index: 1;
      padding-top: 150px;
      padding-bottom: 80px;
    }

    .colors .section-heading {
      margin-bottom: 56px;
    }

    .colors__grid {
      display: grid;
      grid-template-columns: repeat(2, 334px);
      gap: 32px;
      justify-content: center;
    }

    .color-swatch {
      text-align: center;
    }

    .color-swatch__img {
      width: 334px;
      height: 334px;
      border-radius: 12px;
      overflow: hidden;
      margin-bottom: 12px;
      box-shadow: 0 1px 2px rgba(46,34,20,0.06), 0 8px 24px rgba(46,34,20,0.08);
      border: 1px solid rgba(46,34,20,0.06);
    }

    .color-swatch__img img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .color-swatch__name {
      font-size: 16px;
      font-weight: 500;
      color: #2d2418;
      line-height: 27px;
    }

    /* ===== QUANTITY GUIDE ===== */
    .quantity {
      background: #ffffff;
      padding: 140px 0 100px;
      position: relative;
      overflow: visible;
    }

    .quantity__wave-top,
    .quantity__wave-bottom,
    .marks__wave-top,
    .marks__wave-bottom,
    .cautions__wave-top {
      position: absolute;
      left: 0;
      width: 100%;
      line-height: 0;
      z-index: 2;
    }

    .quantity__wave-top { top: -30px; }
    .quantity__wave-bottom { bottom: -30px; }
    .marks__wave-top { top: -30px; }
    .marks__wave-bottom { bottom: -30px; }
    .cautions__wave-top { top: -30px; }

    .quantity__wave-top svg,
    .quantity__wave-bottom svg,
    .marks__wave-top svg,
    .marks__wave-bottom svg,
    .cautions__wave-top svg {
      width: 100%;
      height: auto;
      display: block;
    }

    .quantity .container {
      position: relative;
      z-index: 1;
    }

    .quantity .section-heading {
      margin-bottom: 8px;
    }

    .quantity__subtitle {
      text-align: center;
      font-size: 26px;
      color: #5a4e42;
      margin-bottom: 48px;
      line-height: 1.8;
    }

    .quantity__table-title {
      text-align: left;
      font-size: 18px;
      font-weight: 700;
      color: #46341e;
      max-width: 700px;
      margin: 0 auto 12px;
      line-height: 1.6;
    }

    .quantity__table-wrap {
      max-width: 700px;
      margin: 0 auto;
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      border: 1px solid #ddd5cb;
      border-radius: 8px;
      box-shadow: 0 2px 8px rgba(46,34,20,0.08);
    }

    .quantity__table {
      width: 100%;
      min-width: 560px;
      border-collapse: collapse;
      font-size: 15px;
    }

    .quantity__table thead th {
      background: #46341e;
      color: #ffffff;
      font-weight: 500;
      padding: 16px 24px;
      text-align: center;
      line-height: 27px;
      border-bottom: 1px solid #5a4e42;
      border-right: 1px solid #5a4e42;
    }

    .quantity__table tbody td {
      padding: 16px 24px;
      border-bottom: 1px solid #ddd5cb;
      border-right: 1px solid #ddd5cb;
      text-align: center;
      background: #ffffff;
      color: #2d2418;
      line-height: 27px;
    }

    /* ===== PRODUCT SPECS ===== */
    .specs {
      background: #f8f5f0;
      padding: 55px 0 120px;
      position: relative;
      overflow: hidden;
    }

    .specs .container {
      position: relative;
      z-index: 1;
    }

    .specs .section-heading {
      margin-bottom: 56px;
    }

    .specs__layout {
      display: flex;
      gap: 40px;
      align-items: flex-start;
      max-width: 800px;
      margin: 0 auto;
      justify-content: center;
    }

    .specs__table-wrap {
      flex: 0 0 700px;
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
    }

    .specs__table {
      width: 100%;
      border-collapse: collapse;
      border-radius: 8px;
      overflow: hidden;
      box-shadow: 0 2px 8px rgba(46,34,20,0.08);
      font-size: 15px;
    }

    .specs__table th {
      background: #46341e;
      color: #ffffff;
      font-weight: 500;
      padding: 16px 24px;
      text-align: left;
      width: 210px;
      vertical-align: middle;
      line-height: 27px;
      border-bottom: 1px solid #5a4e42;
    }

    .specs__table td {
      padding: 16px 24px;
      background: #ffffff;
      border-bottom: 1px solid #ddd5cb;
      color: #2d2418;
      line-height: 27px;
    }

    .specs__table td small {
      display: block;
      font-size: 12.5px;
      line-height: 22.5px;
      color: #2d2418;
      margin-top: 4px;
    }

    .specs__table tr:last-child td {
      border-bottom: none;
    }

    /* ===== FUNCTION MARKS ===== */
    .marks {
      background: #ffffff;
      padding: 150px 0 120px;
      position: relative;
      overflow: visible;
    }

    .marks .container {
      position: relative;
      z-index: 1;
    }

    .marks .section-heading {
      margin-bottom: 56px;
    }

    .marks__grid {
      display: flex;
      justify-content: center;
      gap: 48px;
      flex-wrap: wrap;
      max-width: 1072px;
      margin: 56px auto 0;
    }

    .mark-item {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 10px;
    }

    .mark-item__icon {
      width: 90px;
      height: 114px;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
    }

    .mark-item__icon img {
      width: 100%;
      height: 100%;
      object-fit: contain;
    }

    /* ===== FAQ ===== */
    .faq {
      background: #f0eae0;
      padding: 80px 0 100px;
      position: relative;
      overflow: visible;
    }

    .faq .container {
      position: relative;
      z-index: 1;
    }

    .faq .section-heading {
      margin-bottom: 48px;
    }

    .faq__list {
      max-width: 800px;
      margin: 0 auto;
      display: flex;
      flex-direction: column;
      gap: 12px;
    }

    .faq-item {
      background: #ffffff;
      border-radius: 8px;
      box-shadow: 0 1px 4px rgba(46,34,20,0.06);
      overflow: hidden;
    }

    .faq-item__question {
      width: 100%;
      background: none;
      border: none;
      padding: 18px 56px 18px 28px;
      font-size: 18px;
      font-weight: 500;
      color: #2d2418;
      text-align: center;
      cursor: pointer;
      font-family: inherit;
      line-height: 32px;
      position: relative;
    }

    .faq-item__question::after {
      content: '+';
      position: absolute;
      right: 24px;
      top: 50%;
      transform: translateY(-50%);
      font-size: 28px;
      font-weight: 500;
      color: #92EE21;
      line-height: 1;
      transition: color 0.3s;
    }

    .faq-item.open .faq-item__question::after {
      content: '−';
      color: #bf4b35;
    }

    .faq-item__answer {
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.35s ease, padding 0.35s ease;
    }

    .faq-item.open .faq-item__answer {
      max-height: 300px;
    }

    .faq-item__answer-inner {
      padding: 0 24px 20px 24px;
      font-size: 15px;
      line-height: 27px;
      color: #5a4e42;
    }

    /* ===== CAUTIONS ===== */
    .cautions {
      background: #ffffff;
      padding: 140px 0 120px;
      position: relative;
      overflow: visible;
    }

    .cautions .container {
      position: relative;
      z-index: 1;
    }

    .cautions .section-heading {
      margin-bottom: 48px;
    }

    .cautions__list {
      max-width: 800px;
      margin: 0 auto;
      display: flex;
      flex-direction: column;
      gap: 24px;
    }

    .caution-card {
      background: #faf8f5;
      border-radius: 8px;
      border-left: 4px solid #c8963e;
      overflow: hidden;
    }

    .caution-card__header {
      padding: 16px 24px;
      background: #f0eae0;
      border-bottom: 1px solid #ddd5cb;
      font-size: 16px;
      font-weight: 700;
      color: #46341e;
      line-height: 28.8px;
    }

    .caution-card__body {
      padding: 16px 24px 16px 44px;
    }

    .caution-card__body ul {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 4px;
    }

    .caution-card__body li {
      font-size: 14px;
      line-height: 28px;
      color: #5a4e42;
    }

    .caution-card__subhead {
      font-size: 15px;
      font-weight: 700;
      color: #46341e;
      margin-top: 8px;
      margin-bottom: 4px;
    }
    .caution-card__subhead:first-child { margin-top: 0; }

    .caution-card__text {
      font-size: 14px;
      line-height: 28px;
      color: #5a4e42;
      margin-bottom: 8px;
    }

    .basics-block {
      display: flex;
      align-items: flex-start;
      flex-wrap: wrap;
      gap: 16px;
      margin-bottom: 16px;
    }
    .basics-block:last-child { margin-bottom: 0; }

    .basics-block__fig {
      flex: 0 0 auto;
      width: 96px;
      aspect-ratio: 1;
      padding: 0;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .basics-block__fig svg,
    .basics-block__fig img {
      width: 100%;
      height: 100%;
      object-fit: contain;
    }
    .basics-block__body {
      flex: 1 1 200px;
      min-width: 0;
    }

    .caution-card__list--dot {
      list-style: disc outside !important;
      padding-left: 1.2em;
    }
    .caution-card__list--dot li {
      padding-left: 0.25em;
    }
    .caution-card__list--dot li::marker {
      font-size: 0.85em;
      color: #5a4e42;
    }

    .caution-card__list--num {
      list-style: decimal outside !important;
      padding-left: 1.4em;
      display: flex;
      flex-direction: column;
      gap: 4px;
    }
    .caution-card__list--num li {
      padding-left: 0.35em;
    }
    .caution-card__list--num li::marker {
      font-weight: 700;
      color: #46341e;
    }

    /* ===== CTA ===== */
    .cta {
      background: linear-gradient(170deg, #46341e 0%, #2e2214 100%);
      padding: 80px 0;
      text-align: center;
    }

    .cta__heading {
      font-size: 28px;
      font-weight: 700;
      color: #ffffff;
      margin-bottom: 12px;
      line-height: 1.6;
    }

    .cta__sub {
      font-size: 16px;
      color: rgba(255,255,255,0.8);
      margin-bottom: 36px;
    }

    .cta__button {
      display: inline-block;
      background: #bf4b35;
      color: #ffffff;
      font-size: 18px;
      font-weight: 700;
      padding: 16px 48px;
      border-radius: 8px;
      transition: background 0.2s, transform 0.2s;
      letter-spacing: 0.04em;
    }

    .cta__button:hover {
      background: #d45540;
      transform: translateY(-2px);
    }

    /* ===== FOOTER / CONTACT ===== */
    .footer {
      background: #f0eae0;
      padding: 64px 0;
      text-align: center;
    }

    .footer__label {
      font-size: 14px;
      font-weight: 700;
      letter-spacing: 2.1px;
      color: #46341e;
      margin-bottom: 8px;
      text-transform: uppercase;
    }

    .footer__heading {
      font-size: 28px;
      font-weight: 700;
      color: #46341e;
      margin-bottom: 24px;
    }

    .footer__company {
      font-size: 18px;
      font-weight: 700;
      color: #2d2418;
      margin-bottom: 16px;
    }

    .footer__tel {
      font-size: 24px;
      font-weight: 700;
      color: #46341e;
      margin-bottom: 8px;
    }

    .footer__hours {
      font-size: 14px;
      color: #8c7e70;
      margin-bottom: 12px;
      line-height: 1.6;
    }

    .footer__mail {
      font-size: 16px;
      color: #5a4e42;
    }

    .footer__mail a {
      color: #bf4b35;
      font-weight: 500;
    }

    .footer__mail a:hover {
      text-decoration: underline;
    }

    .footer__form {
      margin-top: 8px;
    }

    .footer__form-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 280px;
      padding: 16px 32px;
      background: #bf4b35;
      color: #ffffff;
      font-size: 16px;
      font-weight: 600;
      border-radius: 999px;
      text-decoration: none;
      box-shadow: 0 4px 12px rgba(191,75,53,0.25);
      transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
    }

    .footer__form-btn:hover {
      background: #a33d2a;
      transform: translateY(-1px);
      box-shadow: 0 6px 16px rgba(191,75,53,0.3);
    }

    .footer__copyright {
      margin-top: 40px;
      font-size: 12px;
      color: #8c7e70;
    }

    /* ===== RESPONSIVE ===== */
    @media (max-width: 1024px) {
      .hero {
        height: 700px;
      }
      .intro__content {
        flex-direction: column;
        align-items: center;
      }
      .sound__grid {
        grid-template-columns: 1fr;
      }
      .sound__product-photo {
        width: 100%;
        max-width: 280px;
        margin: 0 auto;
      }
      .sound__table-wrap {
        width: 100%;
      }
      .features__grid {
        grid-template-columns: 1fr;
        max-width: 480px;
        margin: 0 auto;
      }
      .colors__grid {
        grid-template-columns: repeat(2, 1fr);
        max-width: 500px;
      }
      .color-swatch__img {
        width: 100%;
        height: auto;
        aspect-ratio: 1;
      }
      .specs__layout {
        flex-direction: column;
        align-items: center;
      }
      .specs__table-wrap {
        flex: none;
        width: 100%;
      }
    }

    @media (max-width: 768px) {
      .header__nav a:not(.header__cta) {
        display: none;
      }
      .hero {
        height: 480px;
      }
      .hero__badge {
        padding: 32px 28px;
      }
      .hero__title-img {
        width: 220px;
      }
      .section-heading {
        font-size: 22px;
      }
      .intro__heading {
        font-size: 22px;
      }
      .intro__heading-main {
        font-size: 22px;
      }
      .sound__subtitle {
        font-size: 16px;
      }
      .sound__video-box {
        width: 100%;
        height: auto;
        aspect-ratio: 16/9;
      }
      .colors__grid {
        gap: 16px;
      }
      .color-swatch__name {
        font-size: 13px;
        letter-spacing: -0.02em;
        white-space: nowrap;
      }
      .marks__grid {
        gap: 16px;
        margin-top: 40px;
      }
      .mark-item__icon {
        width: 72px;
        height: 72px;
      }
      .cta__heading {
        font-size: 22px;
      }
      .section-illust {
        display: none;
      }
      .caution-card__body {
        padding: 16px 20px 16px 24px;
      }
      .caution-card__list--dot,
      .caution-card__list--num {
        padding-left: 1.1em;
      }
      .basics-block {
        gap: 12px;
      }
      .basics-block__fig {
        width: 80px;
      }
      .basics-block__body {
        flex: 1 1 100%;
      }
      .feature-card {
        padding: 32px 22px 28px;
      }
    }

    @media (max-width: 480px) {
      .basics-block {
        justify-content: center;
      }
      .basics-block__fig {
        width: 72px;
      }
      .caution-card__header {
        font-size: 14px;
        padding: 12px 20px;
      }
      .caution-card__body li,
      .caution-card__text {
        font-size: 13px;
        line-height: 24px;
      }
      .benefit-card {
        font-size: 15px;
      }
      .sound__table,
      .specs__table {
        min-width: 420px;
      }
      .specs__table th {
        width: 96px;
        padding: 14px 16px;
      }
      .specs__table td {
        padding: 14px 16px;
      }
    }

    /* ===== SECTION ILLUSTRATIONS ===== */
    .section-illust {
      --parallax-y: 0px;
      position: absolute;
      z-index: 10;
      pointer-events: auto;
      cursor: default;
      opacity: 0;
      transform: translateY(24px);
      transition: opacity 0.6s ease-out, transform 0.6s ease-out;
      will-change: opacity, transform;
    }

    .section-illust.is-visible {
      opacity: 0.7;
      transform: translateY(var(--parallax-y));
      transition: opacity 0.4s ease, transform 0.6s ease-out;
    }

    .section-illust.is-visible:hover {
      opacity: 1;
      transform: translateY(var(--parallax-y)) scale(1.05);
      transition: opacity 0.3s ease, transform 0.3s ease;
    }

    .section-illust img {
      width: 100%;
      height: auto;
    }

    /* イラスト背景ブロブ（不規則な楕円） */
    .section-illust::before {
      content: '';
      position: absolute;
      z-index: -1;
      border-radius: 55% 45% 60% 40% / 50% 60% 40% 50%;
      pointer-events: none;
    }

    /* 7箇所の配置: コンテンツ内側寄せ（calc基準） */
    /* コンテンツ幅1072px → 左右端 = calc(50% - 536px) → 内側に寄せてcalc(50% - 480px) */
    .illust-1 { right: calc(50% - 520px); bottom: 120px; width: 200px; }
    .illust-1::before {
      width: 270px; height: 270px; top: -35px; left: -35px;
      background: rgba(143,168,120,0.08);
    }

    .illust-2 { left: calc(50% - 520px); top: 100px; width: 200px; }
    .illust-2::before {
      width: 310px; height: 310px; top: -35px; left: -35px;
      background: rgba(196,162,101,0.08);
      border-radius: 45% 55% 50% 50% / 55% 45% 55% 45%;
    }

    .illust-2b { right: calc(50% - 520px); bottom: 80px; width: 300px; }
    .illust-2b::before {
      width: 290px; height: 290px; top: -35px; left: -35px;
      background: rgba(143,168,120,0.08);
      border-radius: 50% 50% 42% 58% / 42% 55% 45% 58%;
    }

    .illust-3 { right: calc(50% - 560px); bottom: 140px; width: 200px; }
    .illust-3::before {
      width: 270px; height: 270px; top: -35px; left: -35px;
      background: rgba(143,168,120,0.10);
      border-radius: 50% 50% 45% 55% / 45% 55% 50% 50%;
    }

    .illust-4 { left: calc(50% - 500px); top: 50%; width: 220px; transform: translateY(-50%); }
    .illust-4::before {
      width: 290px; height: 280px; top: -30px; left: -35px;
      background: rgba(196,144,138,0.08);
      border-radius: 60% 40% 55% 45% / 50% 55% 45% 50%;
    }

    .illust-5 { right: max(0px, calc(50% - 680px)); bottom: 20px; width: 160px; }
    .illust-5::before {
      width: 270px; height: 270px; top: -35px; left: -35px;
      background: rgba(122,155,191,0.08);
      border-radius: 48% 52% 42% 58% / 55% 48% 52% 45%;
    }

    .illust-6 { left: calc(50% - 480px); top: 180px; width: 200px; }
    .illust-6::before {
      width: 270px; height: 260px; top: -35px; left: -35px;
      background: rgba(184,133,108,0.08);
      border-radius: 52% 48% 55% 45% / 48% 52% 48% 52%;
    }

    .illust-7 { left: calc(50% - 520px); bottom: 80px; width: 300px; }
    .illust-7::before {
      width: 370px; height: 370px; top: -35px; left: -35px;
      background: rgba(143,168,120,0.08);
      border-radius: 45% 55% 48% 52% / 52% 45% 55% 48%;
    }

    .illust-7b { right: calc(50% - 480px); top: 60px; width: 160px; }
    .illust-7b::before {
      width: 220px; height: 220px; top: -30px; left: -30px;
      background: rgba(122,155,191,0.08);
      border-radius: 52% 48% 55% 45% / 45% 52% 48% 55%;
    }

    .illust-8 { right: calc(50% - 560px); top: 160px; width: 200px; }
    .illust-8::before {
      width: 270px; height: 260px; top: -35px; left: -35px;
      background: rgba(196,162,101,0.08);
      border-radius: 55% 45% 52% 48% / 48% 55% 45% 52%;
    }

    /* 装飾ドット（セクション間の小さな丸） */
    .section-dot {
      position: absolute;
      border-radius: 50%;
      pointer-events: none;
      z-index: 0;
    }

    .section-dot--sage { background: rgba(143,168,120,0.15); }
    .section-dot--camel { background: rgba(196,162,101,0.12); }
    .section-dot--pink { background: rgba(196,144,138,0.12); }
    .section-dot--blue { background: rgba(122,155,191,0.12); }

    @media (prefers-reduced-motion: reduce) {
      .section-illust {
        opacity: 0.7;
        transform: none;
        transition: none;
      }
      .section-illust:hover {
        opacity: 1;
      }
    }

    @media (max-width: 1200px) {
      .illust-1, .illust-3, .illust-5, .illust-7b, .illust-8 { right: 10px; width: 120px; }
      .illust-7 { left: 10px; width: 120px; }
      .illust-2 { left: 10px; width: 140px; }
      .illust-2b { right: 10px; width: 120px; }
      .illust-4, .illust-6 { left: 10px; width: 120px; }
      .section-illust::before { display: none; }
    }
