/** Shopify CDN: Minification failed

Line 5516:4 Unexpected "{"
Line 5516:5 Expected identifier but found "%"
Line 5517:23 Unexpected ".24"
Line 5520:5 Expected identifier but found "%"
Line 5521:4 Unexpected "{"
Line 5521:5 Expected identifier but found "%"
Line 5524:9 Unexpected "!"
Line 5525:5 Expected identifier but found "%"
Line 5547:4 Unexpected "{"
Line 5547:5 Expected identifier but found "%"
... and 16 more hidden warnings

**/
/* SHOPIFY_STYLESHEETS_VERSION: 1.0 */


/* CSS from section stylesheet tags */
/* START_SECTION:brand-kasthall (INDEX:3) */
body:has(.brand-kasthall) {
    background-color: #fffcf7;
  }

  .brand-kasthall {
    background-color: #fffcf7;
    padding-bottom: 120px;
  }

  .brand-kasthall__inner {
    position: relative;
    width: 100%;
    max-width: 1440px;
    margin-inline: auto;
  }

  .brand-kasthall__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    /* FVと同様、1440px内枠を突き抜けて左右をヘッダーの --page-margin に揃える (2026-07-05, 旧: padding-inline 40px) */
    width: calc(100vw - 2 * var(--page-margin));
    margin-left: calc(50% - 50vw + var(--page-margin));
    padding-inline: 0;
  }

  .brand-kasthall__top .brand-nav {
    padding-top: 70px;
  }

  .brand-kasthall__logo {
    padding-top: 70px;
    font-family: var(--font-primary--family);
    font-weight: 500;
    font-size: clamp(14px, calc(18 * 100vw / 1440), 18px);
    letter-spacing: 0.3em;
  }

  .brand-kasthall__logo img,
  .brand-kasthall__logo-img {
    width: auto;
    height: auto;
    max-height: clamp(18px, calc(22 * 100vw / 1440), 22px);
  }

  .brand-kasthall__hero {
    margin-top: 49px;
    /* FVは1440px内枠を突き抜けてビューポート基準で拡大し、
     * 左右余白はヘッダーと同じ --page-margin に揃える (2026-07-05, 旧: margin 40px固定) */
    width: calc(100vw - 2 * var(--page-margin));
    margin-left: calc(50% - 50vw + var(--page-margin));
    margin-right: 0;
  }

  .brand-kasthall__intro-title {
    margin: 183px 0 0; 
    margin-left: calc(25% + 25px);
    font-family: var(--font-primary--family);
    font-weight: var(--font-primary--weight);
    font-size: clamp(28px, calc(46 * 100vw / 1440), 46px);
    line-height: 1.15;
    letter-spacing: 0.03em;
    white-space: nowrap;
  }

  .brand-kasthall__intro-title-drop {
    letter-spacing: 0.017em;
  }

  .brand-kasthall__intro-subtitle {
    margin: 12px 0 0; 
    margin-left: calc(25% + 25px);
    font-family: var(--font-japanese--family);
    font-size: clamp(16px, calc(24 * 100vw / 1440), 24px);
    line-height: 1.4;
    letter-spacing: 0.05em;
  }

  .brand-kasthall__intro-body {
    margin: 71px 0 0; 
    margin-left: calc(25% + 25px);
    width: calc(46.53% - 0px);
    max-width: 670px;
    font-family: var(--font-japanese--family);
    font-size: clamp(14px, calc(18 * 100vw / 1440), 18px);
    line-height: 1.8;
    letter-spacing: 0.05em;
  }

  .brand-kasthall__feature-image {
    margin-left: calc(8.33% + 35px);
    width: calc(83.33% - 70px);
  }

  .brand-kasthall__feature-image--1  { margin-top: 89px; }  
  .brand-kasthall__feature-image--2  { margin-top: 20px; }  
  .brand-kasthall__feature-image--3  { margin-top: 150px; } 
  .brand-kasthall__feature-image--4a { margin-top: 183px; } 
  .brand-kasthall__feature-image--4b { margin-top: 20px; }  
  .brand-kasthall__feature-image--5  { margin-top: 118px; } 
  .brand-kasthall__feature-image--store { margin-top: 198px; } 

  .brand-kasthall__pillar {
    margin-left: calc(25% + 25px);
    width: calc(46.53% - 0px);
    max-width: 670px;
  }

  .brand-kasthall__pillar--1 { margin-top: 150px; } 
  .brand-kasthall__pillar--2 { margin-top: 150px; } 
  .brand-kasthall__pillar--3 { margin-top: 150px; } 
  .brand-kasthall__pillar--4 { margin-top: 210px; } 

  .brand-kasthall__pillar-title {
    margin: 0;
    font-family: var(--font-japanese--family);
    font-weight: normal;
    font-size: clamp(18px, calc(24 * 100vw / 1440), 24px);
    line-height: 1.4;
    letter-spacing: 0.05em;
  }

  .brand-kasthall__br-sp {
    display: none;
  }

  .brand-kasthall__pillar-body {
    margin: 38px 0 0; 
    font-family: var(--font-japanese--family);
    font-size: clamp(14px, calc(18 * 100vw / 1440), 18px);
    line-height: 1.8;
    letter-spacing: 0.05em;
  }

  .brand-kasthall__pillar-body p {
    margin: 0 0 1.5em;
  }

  .brand-kasthall__pillar-body p:last-child {
    margin-bottom: 0;
  }

  .brand-kasthall__visit {
    margin-top: 150px; 
    margin-left: calc(41.67% + 7px);
    width: max-content;
  }

  .brand-kasthall__visit-link {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    font-family: var(--font-primary--family);
    font-size: 14px; /* 旧: clamp(12px, calc(14*100vw/1440), 14px) — 14px固定指定 (2026-07-05) */
    line-height: 1;
    letter-spacing: 0.05em;
    color: var(--color-foreground);
    text-decoration: none;
  }

  /* カンプ準拠: 下線はテキストの下のみ（矢印は線の外・上下中央） (2026-07-05) */
  .brand-kasthall__visit-text {
    padding-bottom: 5px; /* カンプに合わせて下線を文字に近づける (2026-07-05) */
    border-bottom: 1px solid currentColor;
  }

  .brand-kasthall__visit-arrow {
    flex-shrink: 0;
    transform: translateY(-2.5px); /* テキスト側のpadding-bottom(5px)の半分だけ上げ、文字の上下中央に合わせる (2026-07-05) */
  }

  .brand-kasthall__store {
    position: relative;
    margin-top: 90px;
  }

  .brand-kasthall__store-info {
    margin-left: calc(25% + 25px);
    width: calc(46.53% - 0px);
    max-width: 670px;
  }

  .brand-kasthall__store-cta {
    position: absolute;
    bottom: 0;
    left: calc(58.33% + 45px);
  }

  .brand-kasthall__store-title {
    margin: 0;
    font-family: var(--font-japanese--family);
    font-weight: normal;
    font-size: clamp(18px, calc(24 * 100vw / 1440), 24px);
    line-height: 1.4;
    letter-spacing: 0.05em;
  }

  .brand-kasthall__store-lead {
    margin: 31px 0 0; 
    font-family: var(--font-japanese--family);
    font-size: clamp(13px, calc(16 * 100vw / 1440), 16px);
    line-height: 1.8;
    letter-spacing: 0.05em;
  }

  .brand-kasthall__store-address {
    margin: 40px 0 0; 
    font-family: var(--font-japanese--family);
    font-size: clamp(12px, calc(14 * 100vw / 1440), 14px);
    line-height: 1.8;
    letter-spacing: 0.05em;
  }

  .brand-kasthall__store-tel {
    margin: 4px 0 0;
    font-family: var(--font-japanese--family);
    font-size: clamp(12px, calc(14 * 100vw / 1440), 14px);
    line-height: 1.8;
  }

  @media (max-width: 768px) {
    .brand-kasthall { padding-bottom: 80px; }

    .brand-kasthall__inner { height: auto; }
    .brand-kasthall__inner > * { position: static; }

    .brand-kasthall__top {
      display: flex;
      flex-direction: column;
      align-items: stretch;
      gap: 136px;
      padding-inline: 0; /* 旧: 20px — ベースの breakout(--page-margin=20px) が効くため二重にしない (2026-07-05) */
    }
    .brand-kasthall__top .brand-nav {
      padding-top: 37px; 
    }
    .brand-kasthall__logo {
      padding-top: 0;
      align-self: center; 
    }
    .brand-kasthall__logo img,
    .brand-kasthall__logo-img {
      max-height: 25px;
      width: auto;
    }

    .brand-kasthall__hero {
      margin-top: 102px;
      margin-left: 20px;
      margin-right: 20px;
    }

    .brand-kasthall__intro-title,
    .brand-kasthall__intro-subtitle,
    .brand-kasthall__intro-body,
    .brand-kasthall__pillar,
    .brand-kasthall__feature-image,
    .brand-kasthall__visit,
    .brand-kasthall__store,
    .brand-kasthall__store-info {
      margin-left: 20px;
      margin-right: 20px;
      width: auto;
      max-width: none;
    }

    .brand-kasthall__intro-title {
      margin-top: 110px; 
      font-size: 26px;
      white-space: normal;
      letter-spacing: 0.03em;
    }
    .brand-kasthall__intro-title-drop {
      letter-spacing: 0.05em;
    }
    .brand-kasthall__intro-subtitle {
      margin-top: 7px;
      font-size: 16px;
    }
    .brand-kasthall__intro-body {
      margin-top: 83px;
      font-size: 15px;
      line-height: 1.7;
      letter-spacing: 0.05em;
    }

    .brand-kasthall__feature-image { margin-top: 49px; }     
    .brand-kasthall__feature-image--2,
    .brand-kasthall__feature-image--4b { margin-top: 10px; } 
    .brand-kasthall__feature-image--3 { margin-top: 80px; }  
    .brand-kasthall__feature-image--4a { margin-top: 80px; } 
    .brand-kasthall__feature-image--5 { margin-top: 80px; }  
    .brand-kasthall__feature-image--store { margin-top: 167px; } 

    .brand-kasthall__pillar,
    .brand-kasthall__pillar--1,
    .brand-kasthall__pillar--2,
    .brand-kasthall__pillar--3 { margin-top: 70px; }
    .brand-kasthall__pillar--4 { margin-top: 80px; } 

    .brand-kasthall__pillar-title {
      font-size: 24px;
      letter-spacing: 0.05em;
    }
    
    .brand-kasthall__pillar--1 .brand-kasthall__pillar-title {
      letter-spacing: 0;
    }

    .brand-kasthall__br-sp {
      display: inline;
    }

    .brand-kasthall__pillar-body {
      margin-top: 38px;
      font-size: 15px;
      line-height: 1.7;
      letter-spacing: 0.05em;
    }

    .brand-kasthall__visit {
      margin-top: 130px; 
      margin-left: 0;
      margin-right: 0;
      display: flex;
      justify-content: center;
    }

    .brand-kasthall__store {
      position: static;
      margin-top: 40px; 
    }
    .brand-kasthall__store-info {
      margin-left: 0;
      margin-right: 0;
    }
    .brand-kasthall__store-cta {
      position: static;
      margin-top: 17px; 
    }

    .brand-kasthall__store-title {
      font-size: 24px;
      letter-spacing: 0.05em;
    }
    
    .brand-kasthall__store-lead {
      margin-top: 15px;
      font-size: 15px;
      line-height: 1.7;
    }
    .brand-kasthall__store-address {
      margin-top: 48px;
      font-size: 14px;
      line-height: 1.8;
    }
    .brand-kasthall__store-tel {
      margin-top: 0;
      font-size: 14px;
      line-height: 1.8;
    }
  }

  /* 日本語本文の右端ガタつき対策: 両端揃え＋英単語は収まらない時だけ途中改行 (2026-07-05) */
  .brand-kasthall__intro-body,
  .brand-kasthall__pillar-body p {
    text-align: justify;
    overflow-wrap: anywhere;
  }
/* END_SECTION:brand-kasthall */

/* START_SECTION:brand-klong (INDEX:4) */
/* 修正リストNo.10: KLONGページは背景色 #FCFFFF (2026-07-20) */
  body.template-page-klong {
    background-color: #FCFFFF;
  }

  .brand-klong {
    padding-bottom: 120px;
  }

  .brand-klong__inner {
    position: relative;
    width: 100%;
    max-width: 1440px;
    margin-inline: auto;
  }

  .brand-klong__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    /* FVと同様、1440px内枠を突き抜けて左右をヘッダーの --page-margin に揃える (2026-07-05, 旧: padding-inline 40px) */
    width: calc(100vw - 2 * var(--page-margin));
    margin-left: calc(50% - 50vw + var(--page-margin));
    padding-inline: 0;
  }

  .brand-klong__top .brand-nav {
    padding-top: 70px;
  }

  .brand-klong__logo {
    padding-top: 70px;
    font-family: var(--font-primary--family);
    font-weight: 500;
    font-size: clamp(14px, calc(18 * 100vw / 1440), 18px);
    letter-spacing: 0.3em;
  }

  .brand-klong__logo img,
  .brand-klong__logo-img {
    width: auto;
    height: auto;
    max-height: clamp(20px, calc(27 * 100vw / 1440), 27px);
  }

  .brand-klong__hero--full {
    margin-top: 49px;
    /* FVは1440px内枠を突き抜けてビューポート基準で拡大し、
     * 左右余白はヘッダーと同じ --page-margin に揃える (2026-07-05, 旧: margin 40px固定) */
    width: calc(100vw - 2 * var(--page-margin));
    margin-left: calc(50% - 50vw + var(--page-margin));
    margin-right: 0;
  }

  .brand-klong__hero--narrow {
    margin-top: 61px;
    margin-left: calc(8.33% + 35px);
    width: calc(83.33% - 70px);
  }

  .brand-klong__intro-title {
    margin: 170px 0 0; 
    margin-left: calc(33.33% + 20px);
    font-family: var(--font-primary--family);
    font-weight: var(--font-primary--weight);
    font-size: clamp(28px, calc(46 * 100vw / 1440), 46px);
    line-height: 1.15;
    letter-spacing: 0.03em;
  }

  .brand-klong__intro-subtitle {
    margin: 27px 0 0; 
    margin-left: calc(33.33% + 20px);
    font-family: var(--font-japanese--family);
    font-size: clamp(16px, calc(24 * 100vw / 1440), 24px);
    line-height: 1.4;
    letter-spacing: 0.05em;
  }

  .brand-klong__intro-body {
    margin: 99px 0 0; 
    margin-left: calc(25% + 25px);
    width: calc(46.53% - 0px);
    max-width: 670px;
    font-family: var(--font-japanese--family);
    font-size: clamp(15px, calc(16 * 100vw / 1440), 16px); /* 下限13→15px (2026-07-05) */
    line-height: 1.8;
    letter-spacing: 0.05em;
  }

  .brand-klong__essence-body {
    margin: 60px 0 0; 
    margin-left: calc(25% + 25px);
    width: calc(46.53% - 0px);
    max-width: 670px;
    font-family: var(--font-japanese--family);
    font-size: clamp(15px, calc(16 * 100vw / 1440), 16px); /* 下限13→15px (2026-07-05) */
    line-height: 1.8;
    letter-spacing: 0.05em;
  }

  .brand-klong__essence-body p {
    margin: 0 0 1.5em;
  }

  .brand-klong__essence-body p:last-child {
    margin-bottom: 0;
  }

  .brand-klong__essence-title {
    margin: 70px 0 0; 
    margin-left: calc(33.33% + 67px);
    font-family: var(--font-primary--family);
    font-weight: var(--font-primary--weight);
    font-size: clamp(24px, calc(35 * 100vw / 1440), 35px);
    line-height: 1.15;
    letter-spacing: 0.03em;
  }

  .brand-klong__essence-image {
    margin: 64px 0 0; 
    margin-left: calc(25% + 25px);
    width: calc(46.53% - 0px);
    max-width: 670px;
  }

  .brand-klong__pillar {
    margin: 0;
    margin-left: calc(25% + 25px);
    width: calc(46.53% - 0px);
    max-width: 670px;
  }

  .brand-klong__pillar--1,
  .brand-klong__pillar--2,
  .brand-klong__pillar--3 { margin-top: 40px; }

  .brand-klong__pillar--wide-body {
    
    width: calc(54.51% - 0px);
    max-width: 785px;
  }

  .brand-klong__pillar-eyebrow {
    margin: 0;
    font-family: var(--font-primary--family);
    font-weight: var(--font-primary--weight);
    font-size: clamp(22px, calc(29 * 100vw / 1440), 29px);
    line-height: 1.15;
    letter-spacing: 0.03em;
  }

  .brand-klong__pillar-title {
    margin: 17px 0 0;
    font-family: var(--font-japanese--family);
    font-weight: normal;
    font-size: clamp(24px, calc(36 * 100vw / 1440), 36px);
    line-height: 1.4;
    letter-spacing: 0;
  }

  .brand-klong__pillar-body {
    margin: 39px 0 0;
    font-family: var(--font-japanese--family);
    font-size: clamp(15px, calc(16 * 100vw / 1440), 16px); /* 下限13→15px (2026-07-05) */
    line-height: 2.3;
    letter-spacing: 0.05em;
  }

  .brand-klong__pillar-body p {
    margin: 0;
  }

  .brand-klong__pillar-image--wide {
    margin: 177px 0 0;
    margin-left: 40px;
    margin-right: 40px;
  }

  .brand-klong__pillar-image--narrow {
    margin: 177px 0 0;
    margin-left: calc(25% + 25px);
    width: calc(46.53% - 0px);
    max-width: 670px;
  }

  .brand-klong__products-grid {
    margin-top: 188px;
    margin-left: calc(8.33% + 35px);
    width: calc(83.33% - 70px); 
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: 33px;
    row-gap: 40px;
  }

  .brand-klong__product-image {
    display: block;
    margin-bottom: 28px;
  }

  .brand-klong__product-lead {
    margin: 0;
    font-family: var(--font-japanese--family);
    font-size: clamp(15px, calc(16 * 100vw / 1440), 16px); /* 下限13→15px (2026-07-05) */
    line-height: 1.8;
    letter-spacing: 0.05em;
  }

  .brand-klong__product-name {
    margin: 36px 0 0;
    padding-bottom: 3px; /* 12 → 3 (2026-07-05) */
    border-bottom: 1px solid var(--color-foreground);
    display: inline-block;
    font-family: var(--font-primary--family);
    font-size: clamp(12px, calc(14 * 100vw / 1440), 14px);
    line-height: 1;
    letter-spacing: 0.05em;
  }

  .brand-klong__products-cta {
    margin-top: 94px;
    text-align: center;
  }

  .brand-klong__products-cta .button-pill {
    padding-inline: 55px;
  }

  .brand-klong__products-note {
    margin: 162px 0 0;
    margin-left: calc(8.33% + 35px);
    font-family: var(--font-japanese--family);
    font-size: clamp(15px, calc(16 * 100vw / 1440), 16px); /* 下限13→15px (2026-07-05) */
    line-height: 1.8;
    letter-spacing: 0.05em;
  }

  .brand-klong__store {
    margin-top: 40px; 
    margin-left: calc(8.33% + 35px);
    width: calc(29.03% - 0px); 
    max-width: 418px;
  }

  .brand-klong__store-title {
    margin: 0;
    font-family: var(--font-primary--family);
    font-weight: var(--font-primary--weight);
    font-size: clamp(18px, calc(22 * 100vw / 1440), 22px);
    line-height: 30px;
    letter-spacing: 0.03em;
  }

  .brand-klong__store-body {
    margin: 19px 0 0;
    font-family: var(--font-japanese--family);
    font-size: clamp(11px, calc(12 * 100vw / 1440), 12px);
    line-height: 19px;
    letter-spacing: 0;
  }

  .brand-klong__store-tel {
    margin: 4px 0 0;
    font-family: var(--font-japanese--family);
    font-size: clamp(11px, calc(12 * 100vw / 1440), 12px);
    line-height: 19px;
  }

  @media (max-width: 768px) {
    .brand-klong { padding-bottom: 80px; }

    .brand-klong__inner { height: auto; }
    .brand-klong__inner > * { position: static; }

    .brand-klong__top {
      display: flex;
      flex-direction: column;
      align-items: stretch;
      gap: 62px;
      padding-inline: 0; /* 旧: 20px — ベースの breakout(--page-margin=20px) が効くため二重にしない (2026-07-05) */
    }
    .brand-klong__top .brand-nav {
      padding-top: 37px; 
    }

    .brand-klong__logo {
      padding-top: 0;
      padding-left: 0; 
      align-self: flex-start; 
    }
    .brand-klong__logo img,
    .brand-klong__logo-img {
      max-height: 25px;
      width: auto;
    }

    .brand-klong__hero--full,
    .brand-klong__hero--narrow {
      margin-top: 36px;
      margin-left: 20px;
      margin-right: 20px;
      width: auto;
    }

    .brand-klong__intro-title,
    .brand-klong__intro-subtitle,
    .brand-klong__intro-body,
    .brand-klong__essence-body,
    .brand-klong__essence-title,
    .brand-klong__essence-image,
    .brand-klong__pillar,
    .brand-klong__pillar-image--narrow,
    .brand-klong__products-cta,
    .brand-klong__products-note,
    .brand-klong__store {
      margin-left: 20px;
      margin-right: 20px;
      width: auto;
      max-width: none;
    }

    .brand-klong__intro-title {
      margin-top: 77px;
      margin-left: 30px; 
      font-size: 28px;
      letter-spacing: 0.03em;
    }
    
    .brand-klong__intro-subtitle {
      margin-top: 12px;
      margin-left: 30px;
      font-size: 16px;
    }
    .brand-klong__intro-body {
      margin-top: 71px;
      font-size: 15px;
      line-height: 1.7;
      letter-spacing: 0.05em;
    }

    .brand-klong__essence-body {
      margin-top: 30px;
      font-size: 15px;
      line-height: 1.7;
    }
    
    .brand-klong__essence-title {
      margin-top: 79px;
      font-size: 26px;
      letter-spacing: 0.03em;
      text-align: center;
      margin-left: 20px;
      margin-right: 20px;
    }
    .brand-klong__essence-image { margin-top: 40px; }

    .brand-klong__pillar,
    .brand-klong__pillar--1,
    .brand-klong__pillar--2,
    .brand-klong__pillar--3 { margin-top: 30px; }
    .brand-klong__pillar--wide-body { width: auto; max-width: none; }

    .brand-klong__pillar-eyebrow {
      font-size: 18px;
      letter-spacing: 0.03em;
    }
    .brand-klong__pillar-title {
      font-size: 24px;
      margin-top: 9px;
      letter-spacing: 0.03em;
    }
    .brand-klong__pillar-body {
      margin-top: 41px;
      font-size: 15px;
      line-height: 2;
      letter-spacing: 0.05em;
    }

    .brand-klong__pillar-image--wide {
      margin-top: 120px;
      margin-left: 20px;
      margin-right: 20px;
    }
    .brand-klong__pillar-image--narrow {
      margin-top: 180px;
    }

    .brand-klong__products-grid {
      margin-top: 166px;
      margin-left: 20px;
      margin-right: 20px;
      width: auto;
      display: flex;
      flex-direction: column;
      gap: 60px;
      align-items: center;
    }
    .brand-klong__product {
      width: calc(248 / 335 * 100%);
      max-width: none;
    }
    .brand-klong__product-image { margin-bottom: 20px; }
    .brand-klong__product-lead { font-size: 15px; }
    .brand-klong__product-name {
      margin-top: 10px; /* SPカンプ実測 (2026-07-21, 旧: 13px) */
      font-size: 15px;
      letter-spacing: 0.05em;
    }

    .brand-klong__products-cta { margin-top: 110px; text-align: center; }
    
    .brand-klong__products-cta .button-pill { padding-inline: 40px; }
    .brand-klong__products-note {
      margin-top: 146px;
      font-size: 15px;
      letter-spacing: 0.05em;
    }
    .brand-klong__store { margin-top: 29px; }
    .brand-klong__store-title { font-size: 20px; letter-spacing: 0.05em; }
    .brand-klong__store-body,
    .brand-klong__store-tel { font-size: 14px; line-height: 1.8; letter-spacing: 0.05em; }
  }

  /* 日本語本文の右端ガタつき対策: 両端揃え＋英単語は収まらない時だけ途中改行 (2026-07-05) */
  .brand-klong__intro-body,
  .brand-klong__essence-body p,
  .brand-klong__pillar-body p,
  .brand-klong__product-lead,
  .brand-klong__products-note {
    text-align: justify;
    overflow-wrap: anywhere;
  }
/* END_SECTION:brand-klong */

/* START_SECTION:brand-showcase (INDEX:5) */
.brand-showcase {
    position: relative;
    padding-top: 295px;
  }

  .brand-showcase__title {
    position: absolute;
    top: 305px;
    left: 0;
    margin: 0;
    font-family: var(--font-primary--family);
    font-weight: 500;
    font-size: clamp(18px, calc(24 * 100vw / 1440), 24px);
    line-height: 1;
    letter-spacing: 0.03em;
  }

  .brand-showcase__blocks {
    margin-left: calc(271 * 100vw / 1440 - var(--page-margin));
    margin-right: calc(280 * 100vw / 1440 - var(--page-margin));
    display: flex;
    flex-direction: column;
    gap: 72px;
  }

  .brand-showcase__brand {
    display: grid;
    grid-template-columns: calc(344 * 100vw / 1440) 1fr;
    grid-template-rows: auto auto;
    align-items: start;
  }

  .brand-showcase__logo {
    grid-row: 1 / span 2;
    height: min(26px, calc(177px / var(--logo-aspect, 8)));
    /* 本文 line-height:32px の行間(leading ≈ (32-14)/2)分だけ下げ、
     * ロゴ上端を本文1行目の文字上端に光学的に揃える。 */
    margin-top: 9px;
    margin-bottom: 0;
  }

  .brand-showcase__logo img {
    display: block;
    width: auto;
    height: 100%;
  }

  .brand-showcase__description {
    grid-column: 2;
    margin: 0;
    font-family: var(--font-japanese--family);
    font-size: 14px; /* 旧: clamp(11px, calc(14*100vw/1440), 14px) — 14px固定指定 (2026-07-05) */
    line-height: 32px;
    letter-spacing: 0.05em;
  }

  .brand-showcase__cta {
    grid-column: 2;
    justify-self: start;
    margin-top: 24px; 
  }

  @media (max-width: 768px) {
    .brand-showcase {
      padding-top: 105px; 
    }

    .brand-showcase__title {
      position: static;
      font-size: 24px; /* SPカンプ実測 (2026-07-21, 旧: 20px) */
      margin-bottom: 50px; /* SPカンプ実測 (2026-07-21, 旧: 22px) */
    }

    .brand-showcase__blocks {
      margin-left: 0;
      margin-right: 0;
      gap: 80px;
    }

    .brand-showcase__brand {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      text-align: left;
    }

    .brand-showcase__logo {
      height: min(24px, calc(200px / var(--logo-aspect, 8)));
      margin-top: 0; /* SPは縦積みなので上下中央揃え不要 */
      margin-bottom: 22px;
    }

    .brand-showcase__description {
      /* font-size: 13px 削除 — 全画面14px固定に統一 (2026-07-05) */
      line-height: 24px;
    }

    .brand-showcase__cta {
      margin-top: 25px;
    }
  }
/* END_SECTION:brand-showcase */

/* START_SECTION:brand-title (INDEX:6) */
/* PC: ブロックごと中央配置＋左端揃え。
   * __inner の font-size を基準に子要素を em で指定することで、
   * タイトルとサブタイトルが同じ比率で縮小し長方形の形が崩れない (2026-07-05)。
   * 基準 = 48px（タイトルのサイズ）。1440px以下は線形縮小、下限32px。 */
  .brand-title {
    padding-top: 232px;
    display: flex;
    justify-content: center;
  }

  .brand-title__inner {
    font-size: clamp(32px, calc(48 * 100vw / 1440), 48px);
  }

  .brand-title__row {
    display: flex;
    align-items: baseline;
    margin: 0 0 4px;
    font-size: 1em; /* h2のUAデフォルト(1.5em)を打ち消す — これが無いとタイトルが72pxになる (2026-07-05) */
    line-height: 1.27;
    white-space: nowrap;
  }

  .brand-title__en {
    font-family: var(--font-primary--family);
    font-size: 1em; /* = 48px @1440 */
    letter-spacing: 0.05em;
    line-height: 1.27;
  }

  .brand-title__connector {
    font-family: var(--font-primary--family);
    font-size: 1em; /* = 48px @1440 */
    letter-spacing: 0.05em;
    line-height: 1.27;
    margin: 0 0.35em;
  }

  .brand-title__terminator {
    font-family: var(--font-japanese--family);
    font-size: 0.8333em; /* = 40px @1440 */
    letter-spacing: 0.05em;
    line-height: 1.27;
    margin-left: 0.15em;
  }

  .brand-title__subtitle {
    margin: 0;
    text-align: left; /* ブロック内は左端揃え */
    font-family: var(--font-japanese--family);
    font-size: 0.3958em; /* = 19px @1440 */
    letter-spacing: 0.05em;
    line-height: 2.41; /* = 45.8px @19px */
    white-space: nowrap;
  }

  /* PCでは<br>を無効化（1行のまま）。SPでのみ改行が効く (2026-07-05) */
  .brand-title__subtitle br {
    display: none;
  }

  @media (max-width: 768px) {
    .brand-title {
      padding-top: 116px;
      display: block; /* SPは従来通り左寄せブロック (2026-07-05) */
    }

    .brand-title__inner {
      font-size: 16px; /* em基準を無効化（SPは各要素px指定） */
    }

    .brand-title__row {
      padding-left: 0;
      justify-content: flex-start; /* SPは従来通り左寄せ (2026-07-05) */
      margin-bottom: 13px;
      max-width: 230px;
      flex-wrap: wrap;
      line-height: 36px;
    }

    .brand-title__en,
    .brand-title__connector {
      line-height: 36px;
    }

    .brand-title__en {
      font-size: 32px; /* 26 → 32 (2026-07-05) */
    }

    .brand-title__connector {
      font-size: 32px; /* 26 → 32 (2026-07-05) */
      margin: 0 0.35em;
    }

    .brand-title__terminator {
      font-size: 22px;
      margin-left: 0.15em;
    }

    .brand-title__subtitle {
      padding-left: 0;
      text-align: left; /* SPは従来通り左寄せ (2026-07-05) */
      font-size: 15px; /* 18 → 15 (2026-07-05) */
      line-height: 29px;
      white-space: normal;
      max-width: 280px;
    }

    .brand-title__subtitle br {
      display: inline; /* SPでは<br>を有効化 (2026-07-05) */
    }
  }
/* END_SECTION:brand-title */

/* START_SECTION:brands-index (INDEX:7) */
.brands-index {
    padding-bottom: 120px;
  }

  .brands-index__teasers {
    margin-top: 54px;
    display: flex;
    flex-direction: column;
    gap: 55px;
  }

  .brands-index__teaser {
    display: grid;
    grid-template-columns: calc(845 / 1360 * 100%) 1fr;
    column-gap: calc(72 / 1360 * 100%);
    align-items: center;
  }

  .brands-index__teaser-image {
    display: block;
  }

  .brands-index__teaser-body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }

  .brands-index__teaser-body .button-pill {
    margin-top: 22px; 
  }

  .brands-index__teaser-title {
    margin: 0;
    font-family: var(--font-primary--family);
    font-weight: var(--font-primary--weight);
    font-size: clamp(28px, calc(34 * 100vw / 1440), 34px);
    line-height: 1.15;
    letter-spacing: 0.03em;
  }

  .brands-index__teaser-title span {
    letter-spacing: 0.04em;
  }

  .brands-index__teaser-subtitle {
    margin: 0;
    font-family: var(--font-japanese--family);
    font-size: clamp(14px, calc(17.5 * 100vw / 1440), 17.5px);
    line-height: 1.6;
    letter-spacing: 0.05em;
  }

  .brands-index__intro {
    margin: 145px auto 0;
    width: calc(670 / 1360 * 100%);
  }

  .brands-index__intro-title {
    margin: 0;
    font-family: var(--font-primary--family);
    font-weight: var(--font-primary--weight);
    font-size: clamp(20px, calc(24 * 100vw / 1440), 24px);
    line-height: 1.15;
    letter-spacing: 0.03em;
  }

  .brands-index__intro-body {
    margin-top: 40px; 
    font-family: var(--font-japanese--family);
    font-size: clamp(14px, calc(16 * 100vw / 1440), 16px);
    line-height: 1.8;
    letter-spacing: 0.05em;
  }

  .brands-index__intro-body p {
    margin: 0 0 1em;
  }

  .brands-index__intro-body p:last-child {
    margin-bottom: 0;
  }

  .brands-index__showroom {
    margin: 40px auto 0;
    width: calc(900 / 1360 * 100%);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: calc(16 / 900 * 100%);
  }

  .brands-index__address {
    margin: 50px auto 0;
    width: calc(670 / 1360 * 100%);
    scroll-margin-top: 90px; /* アンカー到達時に固定ヘッダー(66px)に隠れない余白 (2026-07-05) */
  }

  .brands-index__address-title {
    margin: 0;
    font-family: var(--font-japanese--family);
    font-weight: var(--font-primary--weight);
    font-size: clamp(15px, calc(18 * 100vw / 1440), 18px);
    line-height: 1.8;
    letter-spacing: 0.05em;
  }

  .brands-index__address-body {
    margin: 20px 0 0; 
    font-family: var(--font-japanese--family);
    font-size: clamp(12px, calc(14 * 100vw / 1440), 14px);
    line-height: 1.8;
    letter-spacing: 0.05em;
  }

  .brands-index__address-tel {
    margin: 0;
    font-family: var(--font-japanese--family);
    font-size: clamp(12px, calc(14 * 100vw / 1440), 14px);
    line-height: 1.8;
    letter-spacing: 0.05em;
  }

  .brands-index__address .button-pill {
    margin-top: 29px;
  }

  .brands-index__company {
    margin: 70px auto 0;
    width: calc(670 / 1360 * 100%);
  }

  .brands-index__company-row {
    display: grid;
    grid-template-columns: 134px 1fr;
    column-gap: 0;
    align-items: baseline;
    min-height: 96px;
    padding: 39px 0 0 10px;
    border-top: 1px solid var(--color-border);
    font-family: var(--font-japanese--family);
    font-size: clamp(11px, calc(14 * 100vw / 1440), 14px);
    line-height: 1.6;
    letter-spacing: 0.05em;
  }

  .brands-index__company-row:last-child {
    border-bottom: 1px solid var(--color-border);
  }

  .brands-index__company-row dt {
    font-weight: normal;
  }

  .brands-index__company-row dd {
    margin: 0;
  }

  @media (max-width: 768px) {
    .brands-index { padding-bottom: 80px; }

    .brands-index__teasers {
      gap: 70px; 
      margin-top: 52px; 
    }

    .brands-index__teaser {
      grid-template-columns: 1fr;
      column-gap: 0;
      row-gap: 22px; 
    }

    .brands-index__teaser-body {
      gap: 12px; 
    }

    .brands-index__teaser-body .button-pill {
      margin-top: 5px; 
      height: 40px;
      padding: 0 40px;
      font-size: 14px;
      letter-spacing: 0.08em;
    }

    .brands-index__teaser-title {
      font-size: 24px;
      letter-spacing: 0.03em;
    }
    .brands-index__teaser-subtitle {
      font-size: 16px;
      letter-spacing: 0.05em;
    }

    .brands-index__teaser-body .button-pill {
      margin-top: 6px;
    }

    .brands-index__intro {
      margin-top: 100px; 
      width: auto;
      max-width: none;
      margin-inline: 0;
    }
    
    .brands-index__intro-title {
      font-size: 24px;
      letter-spacing: 0.03em;
    }
    .brands-index__intro-body {
      margin-top: 32px; 
      font-size: 15px;
      line-height: 1.7;
      letter-spacing: 0.05em;
    }

    .brands-index__showroom {
      margin-top: 60px;
      width: auto;
      grid-template-columns: 1fr 1fr;
      gap: 7px;
      max-width: none;
    }

    .brands-index__address {
      margin-top: 30px;
      width: auto;
      max-width: none;
      margin-inline: 0;
    }
    .brands-index__address-title {
      font-size: 18px;
      letter-spacing: 0.05em;
    }
    .brands-index__address-body,
    .brands-index__address-tel {
      font-size: 14px;
      line-height: 1.8;
    }
    
    .brands-index__address .button-pill {
      margin-top: 19px;
    }

    .brands-index__company {
      margin-top: 74px; 
      width: auto;
      max-width: none;
      margin-inline: 0;
    }
    .brands-index__company-row {
      grid-template-columns: 1fr;
      row-gap: 4px;
      min-height: 0;
      padding: 11px 5px 24px; 
    }
    .brands-index__company-row dt {
      font-size: 12px;
      letter-spacing: 0.05em;
    }
    .brands-index__company-row dd {
      font-size: 14px;
      line-height: 1.8;
      letter-spacing: 0.05em;
    }
  }

  /* 日本語本文の右端ガタつき対策: 両端揃え＋英単語は収まらない時だけ途中改行 (2026-07-05) */
  .brands-index__intro-body p {
    text-align: justify;
    overflow-wrap: anywhere;
  }
/* END_SECTION:brands-index */

/* START_SECTION:cart (INDEX:8) */
.cart-page {
    padding-bottom: 120px;
  }

  .cart-page__inner {
    position: relative;
    width: 100%;
    display: flow-root;
  }

  .cart-page__heading {
    margin: 0;
    padding-top: 70px;
    margin-left: var(--page-margin);
    font-family: var(--font-primary--family);
    font-weight: 500;
    font-size: 24px; /* 旧: clamp(20px, calc(24*100vw/1440), 24px) — 24px固定指定 (2026-07-05) */
    line-height: 1.2;
    letter-spacing: 0.03em;
  }

  @media (min-width: 769px) {
    .cart-page__heading {
      position: absolute;
      top: 0;
      left: 0;
      padding-top: 70px;
      margin-left: var(--page-margin);
    }

    .cart-page__content {
      width: calc(668 / 1440 * 100%);
      margin: 0 auto;
      padding-top: 76px;
    }
  }

  .cart-page__empty {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
  }

  .cart-page__empty-message {
    margin: 0;
    font-family: var(--font-japanese--family);
    font-size: clamp(14px, calc(16 * 100vw / 1440), 16px);
    line-height: 1.8;
    letter-spacing: 0.05em;
  }

  .cart-page__items {
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--color-border);
  }

  .cart-page__item {
    display: grid;
    grid-template-columns: 96px 1fr auto;
    column-gap: 24px;
    padding: 24px 0;
    border-bottom: 1px solid var(--color-border);
    align-items: start;
  }

  .cart-page__item-image {
    display: block;
    width: 96px;
    height: 96px;
    overflow: hidden;
  }

  .cart-page__item-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .cart-page__item-placeholder {
    width: 100%;
    height: 100%;
    background-color: var(--color-border);
  }

  .cart-page__item-info {
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
  }

  .cart-page__item-titles {
    display: flex;
    flex-direction: column;
    gap: 4px;
  }

  .cart-page__item-title {
    font-family: var(--font-japanese--family);
    font-size: clamp(13px, calc(14 * 100vw / 1440), 14px);
    line-height: 1.6;
    letter-spacing: 0.05em;
    color: var(--color-foreground);
    text-decoration: none;
  }

  .cart-page__item-variant {
    margin: 0;
    font-family: var(--font-japanese--family);
    font-size: clamp(11px, calc(12 * 100vw / 1440), 12px);
    line-height: 1.6;
    letter-spacing: 0.05em;
    color: var(--color-foreground);
    opacity: 0.6;
  }

  .cart-page__item-unit {
    margin: 6px 0 0;
    font-family: var(--font-primary--family);
    font-size: clamp(11px, calc(12 * 100vw / 1440), 12px);
    line-height: 1.2;
    letter-spacing: 0.05em;
    color: var(--color-foreground);
    opacity: 0.6;
  }

  .cart-page__item-controls {
    display: flex;
    align-items: center;
    gap: 20px;
  }

  .cart-page__qty {
    display: inline-flex;
    align-items: center;
    gap: 8px;
  }

  .cart-page__qty-label {
    font-family: var(--font-japanese--family);
    font-size: clamp(11px, calc(12 * 100vw / 1440), 12px);
    letter-spacing: 0.05em;
  }

  .cart-page__qty-input {
    width: 56px;
    height: 32px;
    padding: 0 8px;
    border: 1px solid var(--input-border-color, #c1c0c0);
    border-radius: 3px;
    font-family: var(--font-primary--family);
    font-size: clamp(12px, calc(14 * 100vw / 1440), 14px);
    text-align: center;
    background-color: var(--color-background);
    color: var(--color-foreground);
  }

  .cart-page__qty-input:focus {
    outline: none;
    border-color: var(--color-foreground);
  }

  .cart-page__item-remove {
    font-family: var(--font-japanese--family);
    font-size: clamp(11px, calc(12 * 100vw / 1440), 12px);
    letter-spacing: 0.05em;
    color: var(--color-foreground);
    text-decoration: underline;
    text-underline-offset: 3px;
    opacity: 0.6;
  }

  .cart-page__item-line-total {
    margin: 0;
    font-family: var(--font-primary--family);
    font-size: clamp(13px, calc(14 * 100vw / 1440), 14px);
    line-height: 1.2;
    letter-spacing: 0.05em;
    color: var(--color-foreground);
    white-space: nowrap;
  }

  .cart-page__summary {
    margin-top: 40px;
    display: flex;
    flex-direction: column;
    gap: 16px;
  }

  .cart-page__subtotal {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
  }

  .cart-page__subtotal-label {
    font-family: var(--font-japanese--family);
    font-size: clamp(13px, calc(14 * 100vw / 1440), 14px);
    line-height: 1.4;
    letter-spacing: 0.05em;
  }

  .cart-page__subtotal-amount {
    font-family: var(--font-primary--family);
    font-weight: 500;
    font-size: clamp(18px, calc(22 * 100vw / 1440), 22px);
    line-height: 1.2;
    letter-spacing: 0.03em;
  }

  .cart-page__notes {
    margin: 0;
    font-family: var(--font-japanese--family);
    font-size: clamp(11px, calc(12 * 100vw / 1440), 12px);
    line-height: 1.6;
    letter-spacing: 0.05em;
    color: var(--color-foreground);
    opacity: 0.6;
  }

  .cart-page__actions {
    margin-top: 24px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: stretch;
  }

  .cart-page__update {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 40px;
    padding: 0 35px;
    background: none;
    border: 1px solid var(--color-foreground);
    border-radius: 999px;
    color: var(--color-foreground);
    font-family: var(--font-gothic--family);
    font-size: clamp(13px, calc(14 * 100vw / 1440), 14px);
    letter-spacing: 0.05em;
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease;
  }

  .cart-page__update:hover {
    background-color: var(--color-foreground);
    color: var(--color-background);
  }

  .cart-page__checkout {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 40px;
    padding: 0 35px;
    border: 1px solid var(--color-foreground);
    border-radius: 999px;
    background-color: var(--color-foreground);
    color: var(--color-background);
    font-family: var(--font-gothic--family);
    font-size: clamp(13px, calc(14 * 100vw / 1440), 14px);
    letter-spacing: 0.05em;
    cursor: pointer;
    transition: opacity 0.15s ease;
  }

  .cart-page__checkout:focus,
  .cart-page__update:focus {
    outline: none;
    opacity: 0.85;
  }

  @media (max-width: 768px) {
    .cart-page {
      padding-bottom: 80px;
    }

    .cart-page__inner {
      height: auto;
    }

    .cart-page__heading {
      padding-top: 37px;
      margin-left: 20px;
      margin-right: 20px;
      margin-bottom: 40px;
      /* font-size: 20px 削除 — 全画面24px固定に統一 (2026-07-05) */
      letter-spacing: 0.05em;
    }

    .cart-page__content {
      margin-left: 20px;
      margin-right: 20px;
      width: auto;
      max-width: none;
      padding-top: 0;
    }

    .cart-page__item {
      grid-template-columns: 80px 1fr;
      grid-template-rows: auto auto;
      column-gap: 16px;
      row-gap: 8px;
    }

    .cart-page__item-image {
      width: 80px;
      height: 80px;
    }

    .cart-page__item-line-total {
      grid-column: 2;
      grid-row: 2;
      align-self: end;
      margin-top: 8px;
    }
  }
/* END_SECTION:cart */

/* START_SECTION:collection (INDEX:9) */
.collection-page {
    position: relative;
    padding-top: 77px;
  }

  .collection-page__title {
    position: absolute;
    top: 70px;
    left: 0;
    margin: 0;
    font-family: var(--font-primary--family);
    font-weight: 500;
    font-size: 24px; /* 旧: clamp(18px, calc(24*100vw/1440), 24px) — 24px固定指定 (2026-07-05) */
    line-height: 1;
    letter-spacing: 0.03em;
  }

  .collection-page__content {
    margin-left: calc(16.67vw + 28px - var(--page-margin));
  }

  .collection-page__filter-bar {
    display: flex;
    align-items: center;
    gap: 50px;
    margin-bottom: 39px;
  }

  .filter-header {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: none;
    border: none;
    padding: 0;
    font-family: var(--font-japanese--family);
    font-size: 14px; /* 旧: clamp(11px, calc(14*100vw/1440), 14px) — 14px固定指定 (2026-07-05) */
    line-height: 21px;
    letter-spacing: 0.05em;
    color: var(--color-foreground);
    cursor: pointer;
    transition: opacity 0.2s ease;
  }

  .filter-header[aria-expanded="true"] {
    opacity: 1;
  }

  .filter-header svg {
    width: 10px;
    height: 6px;
    transition: transform 0.2s ease;
  }

  .filter-header[aria-expanded="true"] svg {
    transform: rotate(180deg);
  }

  .filter-panel {
    margin-bottom: 39px;
  }

  .filter-panel__pills {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }

  .filter-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 30px;
    padding: 0 20px;
    border: 1px solid var(--color-border);
    border-radius: 40px;
    background-color: var(--color-background);
    color: var(--color-foreground);
    font-family: var(--font-japanese--family);
    font-size: 12px; /* 修正リストNo.6: タグ文字サイズ12px統一 PC/SP (2026-07-20, 旧: 14px) */
    line-height: 1;
    letter-spacing: 0.03em;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  }

  .filter-pill:hover {
    background-color: #F6F6F6;
    border-color: var(--color-foreground);
  }

  .filter-pill--active {
    background-color: var(--color-foreground);
    color: var(--color-background);
    border-color: var(--color-foreground);
  }

  .filter-pill--active:hover {
    background-color: var(--color-foreground);
    color: var(--color-background);
  }

  /* 修正リストNo.6: --all の個別サイズ指定を削除し全ピル12pxに統一 (2026-07-20) */

  .filter-panel__price {
    display: flex;
    align-items: center;
    gap: 12px;
    font-family: var(--font-japanese--family);
    font-size: clamp(11px, calc(13 * 100vw / 1440), 13px);
  }

  .filter-panel__price label {
    display: flex;
    align-items: center;
    gap: 6px;
  }

  .filter-panel__price input {
    width: 80px;
    height: 30px;
    padding: 0 8px;
    border: 1px solid var(--color-input-border);
    border-radius: var(--style-border-radius-inputs);
  }

  .filter-panel__price button {
    height: 30px;
    padding: 0 16px;
    border: 1px solid var(--color-foreground);
    border-radius: 40px;
    background-color: var(--color-background);
    color: var(--color-foreground);
    cursor: pointer;
  }

  .collection-page__view-toggle {
    position: absolute;
    top: 77px;
    right: 0;
    display: flex;
    align-items: center;
    gap: 14px;
    font-family: var(--font-japanese--family);
    font-size: 14px; /* 旧: clamp(11px, calc(14*100vw/1440), 14px) — 14px固定指定 (2026-07-05) */
    line-height: 21px;
    letter-spacing: 0.05em;
  }

  .view-toggle__option {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: none;
    border: none;
    padding: 0;
    color: var(--color-foreground);
    cursor: pointer;
    font: inherit;
    letter-spacing: 0.05em; 
  }

  .view-toggle__option[data-mode="scene"]   { font-weight: 600; }
  .view-toggle__option[data-mode="product"] { font-weight: 400; }

  .view-toggle__dot {
    width: 10px;
    height: 10px;

    border: 1px solid var(--color-foreground);
    border-radius: 50%;
    background-color: transparent;
    transition: background-color 0.15s ease;
  }

  .view-toggle__option[aria-checked="true"] .view-toggle__dot,
  .view-toggle__option:hover .view-toggle__dot {
    background-color: var(--color-accent);
  }

  .view-toggle__divider {
    display: inline-block;
    width: 1px;
    height: 18px;
    background-color: var(--color-foreground);
  }

  .collection-page__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    column-gap: 30px;
    row-gap: 80px;
  }

  .collection-page__pagination {
    margin-top: 80px;
    display: flex;
    justify-content: center;
  }

  .collection-page__pagination .pagination {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 16px;
    align-items: center;
  }

  .collection-page__pagination a,
  .collection-page__pagination span {
    font-family: var(--font-primary--family);
    font-size: clamp(11px, calc(14 * 100vw / 1440), 14px);
    color: var(--color-foreground);
    text-decoration: none;
    line-height: 1;
    transition: opacity 0.2s ease;
  }

  .collection-page__pagination [aria-current="page"] {
    font-weight: 600;
  }

  .collection-page__empty {
    margin: 40px 0;
    font-family: var(--font-japanese--family);
    font-size: clamp(11px, calc(14 * 100vw / 1440), 14px);
    line-height: 1.6;
    color: var(--color-foreground);
  }

  .product-card {
    list-style: none;
  }

  .product-card__link {
    display: block;
    color: var(--color-foreground);
    text-decoration: none;
  }

  .product-card__images {
    position: relative;
    aspect-ratio: 260 / 325;
    background-color: #E5E5E5;
    overflow: hidden;
    margin-bottom: 21px;
  }

  .product-card__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: opacity 0.35s ease;
  }

  [data-collection-mode="scene"] .product-card__img[data-image="scene"]   { opacity: 1; }
  [data-collection-mode="scene"] .product-card__img[data-image="product"] { opacity: 0; }

  [data-collection-mode="product"] .product-card__img[data-image="product"] { opacity: 1; }
  [data-collection-mode="product"] .product-card__img[data-image="scene"]   { opacity: 0; }

  /* 画像クロスフェードはホバーが使えるデバイス（PC）限定。
   * タッチ端末では1回目のタップがhover扱いになり遷移しない問題を防ぐ (2026-07-05) */
  @media (hover: hover) and (pointer: fine) {
    [data-collection-mode="scene"] .product-card__link:hover .product-card__img[data-image="scene"]   { opacity: 0; }
    [data-collection-mode="scene"] .product-card__link:hover .product-card__img[data-image="product"] { opacity: 1; }
    [data-collection-mode="product"] .product-card__link:hover .product-card__img[data-image="product"] { opacity: 0; }
    [data-collection-mode="product"] .product-card__link:hover .product-card__img[data-image="scene"]   { opacity: 1; }
  }

  .product-card__title {
    margin: 0;
    font-family: var(--font-primary--family);
    font-weight: var(--font-primary--weight);
    font-size: 12px; /* 旧: clamp(11px, calc(15*100vw/1440), 15px) — PC/SPとも12px固定指定 (2026-07-05) */
    line-height: 20px;
    letter-spacing: 0.05em;
  }

  @media (max-width: 768px) {
    .collection-page {
      padding-top: 37px; 
      display: grid;
      grid-template-columns: 1fr auto;
      column-gap: 16px;
      row-gap: 48px;     
      align-items: baseline;
    }

    .collection-page__title {
      position: static;
      grid-column: 1;
      grid-row: 1;
      /* font-size: 20px 削除 — 全画面24px固定に統一 (2026-07-05) */
    }

    .collection-page__view-toggle {
      position: static;
      grid-column: 2;
      grid-row: 1;
      justify-self: end;
    }

    .collection-page__content {
      grid-column: 1 / -1;
      grid-row: 2;
      margin-left: 0;
    }

    .collection-page__filter-bar {
      gap: 24px;
      flex-wrap: wrap;
      
      margin-bottom: 24px;
    }

    .collection-page__filter-bar:has(+ .collection-page__filter-panels .filter-panel:not([hidden])) {
      margin-bottom: 16px;
    }

    .filter-panel {
      margin-bottom: 34px;
    }

    .filter-panel__pills {
      flex-wrap: nowrap;
      overflow-x: auto;
      gap: 10px;
      margin-left: calc(-1 * var(--page-margin));
      margin-right: calc(-1 * var(--page-margin));
      padding: 0 var(--page-margin);
      scrollbar-width: none;
      -ms-overflow-style: none;
    }

    .filter-panel__pills::-webkit-scrollbar {
      display: none;
    }

    .filter-pill {
      flex-shrink: 0;
      height: 38px;
      padding: 0 20px;
      border-radius: 52px;
    }

    .collection-page__grid {
      grid-template-columns: repeat(2, 1fr);
      column-gap: 12px;
      row-gap: 43px; /* SPカンプ実測 (2026-07-21, 旧: 40px) */
    }

    .product-card__images {
      margin-bottom: 14px; /* SPカンプ実測 (2026-07-21, 旧: 9px ← 2026-07-05に17→9へ変更したもの) */
    }

    .product-card__title {
      font-size: 14px; /* SPカンプ実測。2026-07-05に「全画面12px固定」で削除したものを復活 (2026-07-21) */
      letter-spacing: 0.05em;
    }
  }
/* END_SECTION:collection */

/* START_SECTION:collections (INDEX:10) */
.collections-redirect {
    padding: 120px var(--page-margin) 200px;
    text-align: center;
    font-family: var(--font-primary--family);
  }

  .collections-redirect__message {
    margin: 0 0 16px;
    font-size: clamp(12px, calc(16 * 100vw / 1440), 16px);
    line-height: 1.6;
    color: var(--color-foreground);
  }

  .collections-redirect__link {
    color: var(--color-foreground);
    text-decoration: underline;
    font-size: clamp(11px, calc(14 * 100vw / 1440), 14px);
  }
/* END_SECTION:collections */

/* START_SECTION:contact-form (INDEX:11) */
.contact-page {
    padding-bottom: 120px;
  }

  .contact-page__inner {
    position: relative;
    width: 100%;
    display: flow-root;
  }

  .contact-page__heading {
    margin: 0;
    padding-top: 70px;
    margin-left: var(--page-margin);
    font-family: var(--font-primary--family);
    font-weight: 500;
    font-size: 24px; /* 旧: clamp(20px, calc(24*100vw/1440), 24px) — 24px固定指定 (2026-07-05) */
    line-height: 1;
    letter-spacing: 0.03em;
  }

  @media (min-width: 769px) {
    .contact-page__heading {
      position: absolute;
      top: 0;
      left: 0;
      padding-top: 70px;
      margin-left: var(--page-margin);
    }

    .contact-page__content {
      width: calc(668 / 1440 * 100%);
      margin: 0 auto;
      padding-top: 76px; 
    }
  }

  .contact-page__notice {
    list-style: disc outside;
    margin: 0 0 0 21px;
    padding: 0;
    font-family: var(--font-japanese--family);
    font-size: clamp(13px, calc(14 * 100vw / 1440), 14px);
    line-height: 2;
    letter-spacing: 0.05em;
    color: var(--color-foreground);
  }

  .contact-page__notice li {
    margin: 0;
  }

  .contact-page__form {
    margin-top: 85px;
    display: flex;
    flex-direction: column;
    gap: 30px; 
  }

  .contact-page__success {
    margin: 30px 0 0;
    padding: 20px 24px;
    border: 1px solid var(--color-foreground);
    border-radius: 3px;
    font-family: var(--font-japanese--family);
    font-size: clamp(13px, calc(14 * 100vw / 1440), 14px);
    line-height: 1.7;
    letter-spacing: 0.05em;
  }

  .contact-page__errors {
    margin: 0 0 20px;
    padding: 16px 20px;
    border: 1px solid #c00;
    border-radius: 3px;
    color: #c00;
    font-family: var(--font-japanese--family);
    font-size: clamp(13px, calc(14 * 100vw / 1440), 14px);
    line-height: 1.7;
  }
  .contact-page__errors ul {
    margin: 8px 0 0 18px;
    padding: 0;
  }

  .contact-page__field {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }

  .contact-page__label {
    font-family: var(--font-japanese--family);
    font-weight: normal;
    font-size: clamp(13px, calc(14 * 100vw / 1440), 14px);
    line-height: 1;
    letter-spacing: 0.05em;
    color: var(--color-foreground);
  }

  .contact-page__input,
  .contact-page__textarea {
    display: block;
    width: 100%;
    box-sizing: border-box;
    background-color: var(--color-background);
    border: 1px solid var(--input-border-color, #c1c0c0);
    border-radius: 3px;
    padding: 0 16px;
    font-family: var(--font-japanese--family);
    font-size: clamp(13px, calc(14 * 100vw / 1440), 14px);
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: var(--color-foreground);
    transition: border-color 0.15s ease;
  }

  .contact-page__input {
    height: 55px;
  }

  .contact-page__textarea {
    min-height: 306px;
    padding: 18px 16px;
    resize: vertical;
    line-height: 1.7;
  }

  .contact-page__input:focus,
  .contact-page__textarea:focus {
    outline: none;
    border-color: var(--color-foreground);
  }

  .contact-page__input::placeholder,
  .contact-page__textarea::placeholder {
    color: #ccc;
    opacity: 1;
  }

  .contact-page__submit-wrap {
    margin-top: 28px;
  }

  .contact-page__submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    max-width: 100%;
    height: 40px;
    padding: 0 35px;
    border: 1px solid var(--color-foreground);
    border-radius: 999px;
    background-color: var(--color-foreground);
    color: var(--color-background);
    font-family: var(--font-gothic--family);
    font-weight: normal;
    font-size: clamp(13px, calc(14 * 100vw / 1440), 14px);
    line-height: 1;
    letter-spacing: 0.05em;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease; /* 修正リストNo.11: add to cartと同じ演出 (2026-07-20) */
  }

  /* 修正リストNo.11: 送信ボタンにadd to cartと同じホバー演出 (2026-07-20) */
  .contact-page__submit:hover {
    background-color: #CCC;
    border-color: #CCC;
    color: var(--color-foreground);
  }

  .contact-page__submit:focus {
    outline: none;
  }

  @media (max-width: 768px) {
    .contact-page {
      padding-bottom: 80px;
    }

    .contact-page__inner {
      height: auto;
    }

    .contact-page__heading {
      padding-top: 37px;
      margin-left: 20px;
      margin-right: 20px;
      margin-bottom: 40px;
      /* font-size: 20px 削除 — 全画面24px固定に統一 (2026-07-05) */
      letter-spacing: 0.05em;
    }

    .contact-page__content {
      margin-left: 20px;
      margin-right: 20px;
      width: auto;
      max-width: none;
      padding-top: 0;
    }

    .contact-page__notice {
      font-size: 13px;
      line-height: 1.9;
    }

    .contact-page__form {
      margin-top: 40px;
      gap: 24px;
    }

    .contact-page__textarea {
      min-height: 200px;
    }

    .contact-page__submit {
      display: flex;
      width: 100%;
    }
  }
/* END_SECTION:contact-form */

/* START_SECTION:custom-section (INDEX:12) */
.custom-section {
    position: relative;
    overflow: hidden;
    width: 100%;
  }
  .custom-section__background {
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: -1;
    overflow: hidden;
  }
  .custom-section__background img {
    position: absolute;
    width: 100%;
    height: auto;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }
  .custom-section__content {
    display: grid;
    grid-template-columns: var(--content-grid);
  }
  .custom-section__content > * {
    grid-column: 2;
  }
/* END_SECTION:custom-section */

/* START_SECTION:featured-selection (INDEX:13) */
.featured-selection {
    padding-top: 202px; 
  }

  .featured-selection__feature {
    display: grid;
    grid-template-columns: 135fr 670fr 57fr 403fr 95fr;
    grid-template-areas: '. image . body .';
    align-items: start;
    color: var(--color-foreground);
    text-decoration: none;
    transition: opacity 0.2s ease;
  }

  .featured-selection__feature-image {
    grid-area: image;
    aspect-ratio: 670 / 438;
    background-color: #E5E5E5;
    overflow: hidden;
  }

  .featured-selection__feature-image img,
  .featured-selection__pickup-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .featured-selection__feature-body {
    grid-area: body;
    
    margin-top: calc(185 * 100vw / 1440);
  }

  .featured-selection__feature-title {
    margin: 0;
    
    max-width: calc(280 * 100vw / 1440);
    font-family: var(--font-primary--family);
    font-weight: var(--font-primary--weight);
    font-size: clamp(22px, calc(30 * 100vw / 1440), 30px);
    line-height: 1.3;
    letter-spacing: 0.05em;
  }

  .featured-selection__feature-description {
    margin: 21px 0 0;
    font-family: var(--font-japanese--family);
    font-size: 14px; /* 旧: clamp(11px, calc(14*100vw/1440), 14px) — 14px指定(2026-07-05)で固定 */
    line-height: 1.6;
    letter-spacing: 0.05em;
  }

  .featured-selection__feature-price {
    margin: 30px 0 0;
    font-family: var(--font-primary--family);
    font-weight: normal;
    font-size: clamp(16px, calc(22 * 100vw / 1440), 22px);
    line-height: 1;
    letter-spacing: 0.05em;
  }

  .featured-selection__pair {
    margin-top: 130px; 
    display: grid;
    grid-template-columns: 70fr 545fr 130fr 545fr 70fr;
  }

  .featured-selection__pickup {
    color: var(--color-foreground);
    text-decoration: none;
    transition: opacity 0.2s ease;
  }

  .featured-selection__pickup--left {
    grid-column: 2;
  }

  .featured-selection__pickup--right {
    grid-column: 4;
    margin-top: 171px; 
  }

  .featured-selection__pickup-image {
    background-color: #E5E5E5;
    overflow: hidden;
    margin-bottom: 16px;
  }

  .featured-selection__pickup--left .featured-selection__pickup-image {
    aspect-ratio: 545 / 370;
  }

  .featured-selection__pickup--right .featured-selection__pickup-image {
    aspect-ratio: 545 / 339;
  }

  .featured-selection__pickup-title {
    margin: 0;
    font-family: var(--font-primary--family);
    font-weight: var(--font-primary--weight);
    font-size: 24px; /* 旧: clamp(18px, calc(24*100vw/1440), 24px) — 24px固定指定 (2026-07-05)。SPも既存指定で24px */
    line-height: 1.3;
    letter-spacing: 0.05em;
  }

  .featured-selection__pickup-description {
    margin: 16px 0 0;
    font-family: var(--font-japanese--family);
    font-size: 14px; /* 旧: clamp(11px, calc(14*100vw/1440), 14px) — PC14px固定指定 (2026-07-05)。SPは既存の13px上書きが有効 */
    line-height: 1.6;
    letter-spacing: 0.05em;
  }

  .featured-selection__pickup-price {
    margin: 11px 0 0;
    font-family: var(--font-primary--family);
    font-weight: normal;
    font-size: clamp(16px, calc(22 * 100vw / 1440), 22px);
    line-height: 1;
    letter-spacing: 0.05em;
  }

  .featured-selection__cta {
    margin-top: 85px; 
    text-align: center;
  }

  @media (max-width: 768px) {
    .featured-selection {
      padding-top: 141px; 
    }

    .featured-selection__feature {
      display: block;
    }

    .featured-selection__feature-image {
      width: 83.58%; 
      aspect-ratio: 280 / 200;
      margin-bottom: 24px;
    }

    .featured-selection__feature-body {
      margin-top: 0;
      width: 83.58%; /* 画像と右端を揃える — テキストの右はみ出し修正 (2026-07-05) */
    }

    .featured-selection__feature-title {
      font-size: 24px;
      max-width: 170px; 
    }

    .featured-selection__feature-description {
      margin-top: 7px;
      font-size: 14px; /* 13 → 14 (2026-07-05) SPも14pxに統一 */
      line-height: 1.6;
    }

    .featured-selection__feature-price {
      margin-top: 10px;
      font-size: 21px;
    }

    .featured-selection__pair {
      margin-top: 72px;
      display: flex;
      flex-direction: column;
      gap: 72px;
    }

    .featured-selection__pickup {
      width: 83.58%; 
    }

    .featured-selection__pickup--left {
      margin-left: auto;
    }

    .featured-selection__pickup--right {
      margin-top: 0; 
      margin-left: 0;
    }

    .featured-selection__pickup--left .featured-selection__pickup-image,
    .featured-selection__pickup--right .featured-selection__pickup-image {
      aspect-ratio: 280 / 190;
    }


    .featured-selection__pickup-description {
      margin-top: 10px;
      /* font-size: 13px 削除 — 全画面14px固定に統一 (2026-07-05) */
    }

    .featured-selection__pickup-price {
      font-size: 21px; /* 20 → 21 (2026-07-05) */
    }

    .featured-selection__cta {
      margin-top: 54px; 
    }
  }

  /* 日本語本文の右端ガタつき対策: 両端揃え＋英単語は収まらない時だけ途中改行 (2026-07-05) */
  .featured-selection__feature-description,
  .featured-selection__pickup-description {
    text-align: justify;
    overflow-wrap: anywhere;
  }
/* END_SECTION:featured-selection */

/* START_SECTION:footer (INDEX:14) */
/* ===== メルマガ登録完了ポップアップ (2026-07-10) ===== */
  .newsletter-toast {
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%, calc(-50% + 12px));
    z-index: 90;
    max-width: calc(100vw - 32px);
    padding: 28px 44px 26px;
    background: #fff;
    border: 1px solid var(--color-border);
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);
    opacity: 0;
    transition: opacity var(--motion-snap), transform var(--motion-snap);
    text-align: center;
  }

  .newsletter-toast--visible {
    opacity: 1;
    transform: translate(-50%, -50%);
  }

  .newsletter-toast__title {
    margin: 0;
    font-family: var(--font-japanese--family);
    font-size: 14px;
    line-height: 1.6;
    letter-spacing: 0.05em;
    color: var(--color-foreground);
  }

  .newsletter-toast__note {
    margin: 10px 0 0;
    font-family: var(--font-japanese--family);
    font-size: 11px;
    line-height: 1.8;
    letter-spacing: 0.03em;
    color: #777;
  }

  .newsletter-toast__close {
    position: absolute;
    top: 10px;
    right: 10px;
    padding: 6px;
    background: none;
    border: none;
    color: var(--color-foreground);
    line-height: 0;
    cursor: pointer;
  }

  .site-footer__newsletter-error {
    margin: 12px 0 0;
    font-family: var(--font-japanese--family);
    font-size: 11px;
    line-height: 1.8;
    letter-spacing: 0.03em;
    color: #b3261e;
  }


  
  .site-footer {
    margin-top: 210px;
    color: var(--color-foreground);
    font-family: var(--font-primary--family);
  }

  .site-footer__rule {
    height: 1px;
    background-color: var(--color-border);
    margin: 0 calc(-1 * var(--page-margin));
  }

  .site-footer__main {
    padding: 44px 0 38px;
    display: grid;
    /* メルマガ列(4列目)は max-content で文言の折返しを防ぎ、
     * 残り3列は fr で比率を維持しつつ縮む (2026-07-05, 旧: vw固定calc + 1fr) */
    grid-template-columns: 605fr 232fr 283fr max-content;
    column-gap: 24px; /* 狭い幅で列同士が密着しないように (2026-07-05) */
    align-items: baseline; /* ロゴとリンク1行目のbaselineを揃える (2026-07-05, 旧: start) */
  }

  .site-footer__logo {
    margin: 0;
    font-size: clamp(16px, calc(22 * 100vw / 1440), 22px);
    line-height: 30px;
    letter-spacing: 0.03em;
    white-space: nowrap;
  }

  .site-footer__logo-comma {
    font-size: clamp(16px, calc(21 * 100vw / 1440), 21px);
    margin-left: 12px;
  }

  /* 修正リストNo.1: ロゴリンク — 見た目は従来どおり (2026-07-20) */
  .site-footer__logo-link {
    color: inherit;
    text-decoration: none;
  }

  .site-footer__links {
    display: contents;
  }

  .site-footer__links-col {
    list-style: none;
    margin: 0;
    padding: 0; /* 旧: 32px 0 0 — baseline揃えに伴い削除 (2026-07-05) */
  }

  .site-footer__links-col li a {
    display: inline-block;
    color: var(--color-foreground);
    text-decoration: none;
    font-size: clamp(12px, calc(16 * 100vw / 1440), 16px);
    line-height: 28px;
    letter-spacing: 0.03em;
  }

  .site-footer__links-col--secondary li a {
    font-family: var(--font-japanese--family);
    font-size: clamp(11px, calc(13 * 100vw / 1440), 13px);
    line-height: 28px;
    letter-spacing: 0.03em;
  }

  .site-footer__links-col li a {
    transition: opacity var(--motion-snap);
  }

  .site-footer__links-col li a:hover {
    opacity: 0.8; /* 旧: underline — ライン無し・opacity処理に変更 (2026-07-05) */
  }

  .site-footer__bottom-link {
    transition: opacity var(--motion-snap);
  }

  .site-footer__bottom-link:hover {
    opacity: 0.8; /* 旧: underline — ライン無し・opacity処理に変更 (2026-07-05) */
  }

  .site-footer__newsletter-label {
    margin: 0;
    font-family: var(--font-japanese--family);
    font-size: 13px; /* 旧: clamp(11px, calc(13*100vw/1440), 13px) — 13px固定指定 (2026-07-05) */
    line-height: 30px;
    letter-spacing: 0.05em;
    white-space: nowrap; /* SP幅まで改行させない (2026-07-05) */
  }

  .site-footer__newsletter-form {
    position: relative;
    margin: 8px 0 0; /* 修正リストNo.2: ラベルとの間を詰める 20→8px (PC, 2026-07-20) */
  }

  .site-footer__newsletter-input {
    display: block;
    width: 100%;
    padding: 6px 28px 2px 0; /* 修正リストNo.3: 下線とのマージン詰め 5→2px (2026-07-20) */
    border: none;
    border-bottom: 1px solid var(--color-foreground);
    border-radius: 0;
    background: none;
    font-family: var(--font-primary--family);
    font-size: clamp(14px, calc(16 * 100vw / 1440), 16px); /* 下限12→14px (2026-07-05) */
    letter-spacing: 0.05em;
    color: var(--color-foreground);
  }

  .site-footer__newsletter-input::placeholder {
    color: #555555; /* 旧: var(--color-foreground) — グレー指定 (2026-07-05) */
    opacity: 1;
  }

  .site-footer__newsletter-input:focus {
    outline: none;
  }

  .site-footer__newsletter-submit {
    position: absolute;
    right: 0;
    bottom: 8px;
    padding: 4px 0 4px 8px;
    background: none;
    border: none;
    color: var(--color-foreground);
    line-height: 0;
    cursor: pointer;
  }

  .site-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 0 22px;
  }

  .site-footer__copyright {
    margin: 0;
    font-size: clamp(11px, calc(11 * 100vw / 1440), 11px);
    line-height: 1;
    white-space: nowrap;
  }

  .site-footer__bottom-right {
    display: flex;
    align-items: center;
    gap: 14px;
  }

  .site-footer__bottom-link {
    display: inline-flex;
    align-items: center;
    color: var(--color-foreground);
    text-decoration: none;
    font-size: 13px; /* 旧: clamp(11px, calc(13*100vw/1440), 13px) — 13px固定指定 (2026-07-05) */
    line-height: 28px;
    letter-spacing: 0.03em;
    white-space: nowrap;
  }

  .site-footer__bottom-link--icon {
    line-height: 0;
  }

  .site-footer__bottom-divider {
    display: inline-block;
    width: 1px;
    height: 15px;
    background-color: rgba(34, 34, 34, 0.4);
  }

  @media (max-width: 768px) {
    .site-footer {
      margin-top: 100px; 
    }

    .site-footer__main {
      display: block;
      padding: 45px 0 0;
    }

    .site-footer__logo,
    .site-footer__links {
      display: none;
    }

    .site-footer__newsletter-label {
      line-height: 1.6;
    }

    .site-footer__newsletter-form {
      margin-top: 7px; /* 16 → 7 (2026-07-05) */
    }

    .site-footer__newsletter-input {
      padding-bottom: 5px; /* 修正リストNo.3はPC指定のためSPは従来値を維持 (2026-07-20) */
    }

    .site-footer__bottom {
      padding: 40px 0 19px;
    }
  }
/* END_SECTION:footer */

/* START_SECTION:header (INDEX:15) */
:root {
    --header-logo-size: 22px;
    --header-logo-line-height: 30px;
    --header-comma-size: 24px;
    --header-action-icon-size: 18px;
    --header-menu-toggle-width: 23px; 
    --header-action-gap-menu: 20px; 
    --header-shopify-account-size: 18px;

    --menu-drawer-padding-left: 60px;
    --menu-drawer-padding-top: 49px;
    --menu-drawer-padding-bottom: 40px;
    --menu-drawer-bg: #DEDEDE; 
    --menu-drawer-link-size: 24px;
    --menu-drawer-link-line-height: 35px;
  }

  @media (max-width: 768px) {
    :root {
      --header-logo-size: 20.145px;
      --header-logo-line-height: 25.181px;
      --header-comma-size: 20.145px;
      --header-action-icon-size: 16px;
      --header-menu-toggle-width: 22px; 
      --header-action-gap-menu: 16px; 
      --header-shopify-account-size: 16px;

      --menu-drawer-padding-left: 28px;
      --menu-drawer-padding-top: 80px;
      --menu-drawer-padding-bottom: 60px;
      --menu-drawer-link-size: 18px;
      --menu-drawer-link-line-height: 30px;
    }
  }

  .shopify-section-group-header-group {
    position: relative;
    z-index: 100;
  }

  .site-header {
    position: relative;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    
    gap: 0 68px;
    padding: 38px 0 25px; 
    
    font-family: var(--font-primary--family);
  }

  .site-header__logo {
    text-decoration: none;
    color: var(--color-foreground);
    font-size: var(--header-logo-size);
    line-height: var(--header-logo-line-height);
    letter-spacing: 0.03em;
    flex-shrink: 0;
  }

  .site-header__address {
    flex-basis: 100%;
    margin: 21px 0 0;
    font-family: var(--font-primary--family);
    font-style: normal;
    font-size: 12px;
    line-height: 19px;
    letter-spacing: 0;
    color: var(--color-foreground);
  }

  @media (max-width: 768px) {
    .site-header__address {
      margin-top: 20px;
      font-size: 10px;
      line-height: 16px;
    }
  }

  .site-header__logo-comma {
    font-size: var(--header-comma-size);
    line-height: 1;
    margin-left: 12px;
  }

  .site-header__nav {
    display: flex;
    align-items: center;
    gap: 28px;
    flex: 1;
  }

  .site-header__nav-link {
    text-decoration: none;
    color: var(--color-foreground);
    font-size: clamp(14px, calc(18 * 100vw / 1440), 18px);
    letter-spacing: 0.02em;
  }

  @media (max-width: 768px) {
    .site-header__nav {
      display: none;
    }

    .site-header {
      padding: 24px 0 0;
      gap: 0;
    }
  }

  .site-header__actions {
    position: relative;
    z-index: 110;
    display: flex;
    align-items: center;
    margin-left: auto;
  }

  .site-header__action {
    
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: var(--color-foreground);
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    line-height: 0;
    min-width: 0;
    min-height: 0;
    cursor: pointer;
  }

  shopify-account.site-header__action {
    --shopify-account-avatar-size: var(--header-shopify-account-size);
  }

  .site-header__action svg {
    width: var(--header-action-icon-size);
    height: auto;
    display: block;
  }

  .site-header__action[href*="cart"] svg {
    width: 16.5px;
    height: auto;
  }
  
  @media (max-width: 768px) {
    shopify-account.site-header__action {
      display: none;
    }
    body.menu-open .site-header__action[href*="cart"] {
      display: none;
    }
  }

  .site-header__action + .site-header__action {
    margin-left: 17px;
  }
  .site-header__action + .site-header__menu-toggle {
    margin-left: var(--header-action-gap-menu);
  }

  .site-header__menu-toggle {
    width: var(--header-menu-toggle-width);
    justify-content: center;
    position: relative;
  }
  /* 見た目は変えずクリック範囲だけ拡張（透明な疑似要素・レイアウト非干渉）。
   * 上下と右(ページマージン側)は広め、左はカートと被らないよう控えめ。 */
  .site-header__menu-toggle::before {
    content: "";
    position: absolute;
    top: -15px;
    bottom: -15px;
    left: -8px;
    right: -16px;
  }
  .site-header__menu-toggle .site-header__menu-icon--open {
    display: block;
    width: var(--header-menu-toggle-width);
    height: 9px;
    border-top: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
  }
  
  .site-header__menu-toggle .site-header__menu-icon--close {
    display: none;
    width: 17px;
    height: auto;
  }
  .site-header__menu-toggle[aria-expanded="true"] .site-header__menu-icon--open {
    display: none;
  }
  .site-header__menu-toggle[aria-expanded="true"] .site-header__menu-icon--close {
    display: block;
  }

  .site-header__cart-count {
    position: absolute;
    top: -6px;
    left: 100%;
    margin-left: -6px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    font-size: clamp(11px, calc(11 * 100vw / 1440), 11px);
    line-height: 18px;
    text-align: center;
    background-color: var(--color-foreground);
    color: var(--color-background);
    border-radius: 9px;
  }

  .visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .scroll-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 105; 
    display: flex;
    align-items: center;
    height: 66px;
    padding: 0 var(--page-margin);
    background-color: #fff;
    font-family: var(--font-primary--family);
    transform: translateY(-100%);
    transition: transform var(--motion-snap);
  }

  .scroll-header.is-visible {
    transform: translateY(0);
  }

  .scroll-header__logo {
    text-decoration: none;
    color: var(--color-foreground);
    font-size: 18px;
    line-height: 18px;
    letter-spacing: 0.03em;
    flex-shrink: 0;
  }

  .scroll-header__logo-comma {
    font-size: 20px;
    line-height: 1;
    margin-left: 10px;
  }

  .scroll-header__nav {
    display: flex;
    align-items: baseline;
    gap: 20px;
    flex: 1;
    margin-left: 26px;
  }

  .scroll-header__nav-link {
    text-decoration: none;
    color: var(--color-foreground);
    font-size: 16px;
    line-height: 18px; 
    letter-spacing: 0.02em;
  }

  .scroll-header__actions {
    display: flex;
    align-items: center;
    margin-left: auto;
  }

  .scroll-header__action {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: var(--color-foreground);
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    line-height: 0;
    cursor: pointer;
  }

  .scroll-header__action svg {
    width: 16px;
    height: auto;
    display: block;
  }

  .scroll-header__action[href*="cart"] svg {
    width: 15px;
  }

  .scroll-header__action + .scroll-header__action {
    margin-left: 15px;
  }

  .scroll-header__action + .site-header__menu-toggle {
    margin-left: 17px;
  }

  body.menu-open .scroll-header {
    background-color: transparent;
  }

  body.menu-open .scroll-header__logo,
  body.menu-open .scroll-header__nav {
    visibility: hidden;
  }

  @media (max-width: 768px) {
    .scroll-header {
      height: 60px;
    }

    .scroll-header__nav {
      display: none;
    }

    .scroll-header__action[href*="account"] {
      display: none;
    }

    .scroll-header__action svg,
    .scroll-header__action[href*="cart"] svg {
      width: 16px;
    }

    .scroll-header__action + .site-header__menu-toggle {
      margin-left: 16px;
    }

    body.menu-open .scroll-header__action[href*="cart"] {
      display: none;
    }
  }

  .menu-drawer {
    position: fixed;
    inset: 0;
    z-index: 100;
    background-color: var(--menu-drawer-bg);
    color: var(--color-foreground);
    overflow: hidden; 
    opacity: 0;
    
    transition: opacity var(--motion-snap);
  }

  .menu-drawer.is-open {
    
    transition: none;
    opacity: 1;
  }

  .menu-drawer [data-stagger] {
    opacity: 0;
    transform: translateY(-14px); 
    transition: none; 
  }

  .menu-drawer.is-open [data-stagger] {
    opacity: 1;
    transform: none;
    transition:
      opacity 0.2s var(--motion-ease),
      transform 0.2s var(--motion-ease);
    transition-delay: calc(var(--stagger-i, 0) * 35ms);
  }

  .menu-drawer[hidden] {
    display: none;
  }

  .menu-drawer__body {
    position: relative;
    padding: var(--menu-drawer-padding-top) var(--page-margin) var(--menu-drawer-padding-bottom) var(--menu-drawer-padding-left);
  }

  .menu-drawer__tagline {
    font-family: var(--font-japanese--family);
    font-size: clamp(19px, calc(25 * 100vw / 1440), 25px);
    
    line-height: 1;
    letter-spacing: 0.04em;
    
    margin-bottom: 85px;
  }

  .menu-drawer__icons {
    display: none;
  }

  .menu-drawer__tagline--rotated {
    display: none;
  }

  @media (max-width: 768px) {
    
    .menu-drawer__tagline {
      display: none;
    }

    .menu-drawer__icons {
      display: flex;
      align-items: center;
      gap: 19px; 
      margin-bottom: 31px; 
    }
    .menu-drawer__icon {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      color: var(--color-foreground);
      text-decoration: none;
      line-height: 0;
    }
    .menu-drawer__icon svg {
      width: 17px;
      height: auto;
      display: block;
    }

    .menu-drawer__tagline--rotated {
      display: flex;
      position: absolute;
      top: 84px; 
      
      right: var(--page-margin);
      width: var(--header-menu-toggle-width);
      height: 227px; 
      margin: 0;
      align-items: center;
      justify-content: center;
      pointer-events: none;
    }
    .menu-drawer__tagline--rotated > span {
      display: inline-block;
      font-family: var(--font-japanese--family);
      font-size: 22.225px;
      letter-spacing: 0.04em;
      white-space: nowrap;
      transform: rotate(90deg);
      transform-origin: center;
      color: var(--color-foreground);
    }
  }

  .menu-drawer__nav {
    display: flex;
    flex-direction: column;
    gap: 26px; 
  }

  .menu-drawer__list:nth-of-type(3) {
    margin-top: 5px;
  }

  .menu-drawer__list.menu-drawer__list--secondary {
    margin-top: -5px;
  }

  .menu-drawer__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    
    gap: 0;
  }

  .menu-drawer__link {
    display: inline-block;
    text-decoration: none;
    color: var(--color-foreground);
    font-family: var(--font-primary--family);
    font-size: var(--menu-drawer-link-size);
    line-height: var(--menu-drawer-link-line-height);
    letter-spacing: 0.04em;
  }

  .menu-drawer__list--secondary .menu-drawer__link {
    font-family: var(--font-japanese--family);
    font-size: 14px; /* 旧: clamp(11px, calc(14*100vw/1440), 14px) — 14px固定指定 (2026-07-05) */
    line-height: 34px;
    letter-spacing: 0;
  }

  .menu-drawer__external {
    display: flex;
    align-items: center;
    gap: 15px; 
    margin-top: 43px; 
  }

  .menu-drawer__external-divider {
    width: 1px;
    height: 20px;
    background-color: rgba(34, 34, 34, 0.25);
  }

  .menu-drawer__external .menu-drawer__external-link svg {
    width: 15px;
    height: auto;
    display: block;
  }

  @media (max-width: 768px) {
    .menu-drawer__nav {
      gap: 12px;
    }

    .menu-drawer__list:nth-of-type(3) {
      margin-top: 25px; 
    }

    .menu-drawer__list.menu-drawer__list--secondary {
      margin-top: 13px;
    }

    .menu-drawer__list--secondary .menu-drawer__link {
      /* font-size: 13px 削除 — 全画面14px固定に統一 (2026-07-05) */
    }

    .menu-drawer__external {
      margin-top: 56px;
    }
  }

  .menu-drawer__external-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    color: var(--color-foreground);
    font-family: var(--font-primary--family);
    font-size: 15px; /* 旧: clamp(11px, calc(15*100vw/1440), 15px) — 15px固定指定 (2026-07-05) */
    line-height: 1.6;
    letter-spacing: 0.03em;
  }
/* END_SECTION:header */

/* START_SECTION:hello-world (INDEX:16) */
.welcome {
    display: grid;
    grid-template-columns: var(--content-grid);
    background-color: #f6f6f7;
    padding: 72px 0;
  }

  .welcome-content {
    grid-column: 2;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    width: 100%;
    padding: 0 24px;
  }

  .welcome-description {
    max-width: 80ch;
    line-height: 1.4;
    margin-top: 1.5rem;
  }

  .icon {
    width: 300px;
  }

  .highlights {
    display: grid;
    gap: 2rem;
    grid-template-columns: repeat(3, 1fr);
    margin-top: 50px;
  }

  @media (max-width: 1100px) {
    .highlights {
      grid-template-columns: 1fr;
    }
  }

  .highlight {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 24px;
    border-radius: 8px;
    background-color: #eef3ff;
    color: rgb(92, 95, 98);
    line-height: 1.4;
  }

  .highlight > * + * {
    margin-top: 1rem;
  }

  .highlight h3 {
    font-size: 1rem;
    color: rgb(32, 34, 35);
  }

  .highlight-description {
    flex: 1 1;
  }

  .highlight a {
    display: flex;
    width: fit-content;
    background-color: rgb(250, 251, 251);
    box-shadow: rgba(0, 0, 0, 0.2) 0px -3px 0px 0px inset, rgba(255, 255, 255, 0.9) 0px 2px 0px 0px inset;
    border: 1px solid rgb(140, 145, 150);
    border-radius: 4px;
    color: rgb(92, 95, 98);
    padding: 3px 10px 5px;
    text-decoration: none;
  }
/* END_SECTION:hello-world */

/* START_SECTION:hero-split (INDEX:17) */
.hero-split {
    padding-top: 96px; 
  }

  .hero-split__tagline {
    font-family: var(--font-japanese--family);
    margin: 0 0 50px; 
    letter-spacing: 0.04em;
    white-space: nowrap;
  }

  .hero-split__tagline-large {
    font-size: clamp(22px, calc(30 * 100vw / 1440), 30px);
  }

  .hero-split__tagline-small {
    font-size: clamp(20px, calc(27 * 100vw / 1440), 27px);
  }

  .hero-split__columns {
    display: grid;
    grid-template-columns: calc(921 / 1360 * 100%) calc(369 / 1360 * 100%);
    column-gap: calc(60 / 1360 * 100%);
    align-items: start;
  }

  .hero-split__brand {
    display: block;
    text-decoration: none;
    color: var(--color-foreground);
  }

  .hero-split__brand--klong {
    margin-top: 35px;
  }

  .hero-split__image {
    display: block;
    width: 100%;
    background-color: #E5E5E5;
    margin-bottom: 10px;
    overflow: hidden;
  }

  .hero-split__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .hero-split__image--kasthall {
    aspect-ratio: 921 / 569;
  }

  .hero-split__image--klong {
    aspect-ratio: 369 / 467;
  }

  .hero-split__label {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-bottom: 4px;
  }

  .hero-split__dot {
    width: 10px;
    height: 10px;
    border: 1px solid currentColor;
    border-radius: 50%;
    flex-shrink: 0;
    transition: background-color 0.15s ease;
  }

  .hero-split__brand:hover .hero-split__dot {
    background-color: var(--color-accent);
  }

  .hero-split__brand-name {
    font-family: var(--font-primary--family);
    font-size: 20px; /* 旧: clamp(15px, calc(20*100vw/1440), 20px) — 下限20px指定(2026-07-05)で上限と同値になるため固定 */
    line-height: 1;
    letter-spacing: 0.05em;
  }

  .hero-split__brand-subtitle {
    margin: 0; /* 修正リストNo.8: 1行表記化に伴い左マージン21px削除、flex gapで間隔 (2026-07-20) */
    font-family: var(--font-primary--family);
    font-size: 17px; /* 旧: clamp(13px, calc(17*100vw/1440), 17px) — 下限17px指定(2026-07-05)で上限と同値になるため固定 */
    line-height: 1;
    letter-spacing: 0.05em;
  }

  @media (max-width: 768px) {
    .hero-split {
      padding-top: 71px; 
    }

    .hero-split__tagline {
      margin-bottom: 27px; 
    }

    .hero-split__tagline-large {
      font-size: 25px;
    }

    .hero-split__tagline-small {
      font-size: 22.5px;
    }

    .hero-split__columns {
      grid-template-columns: 1fr;
      column-gap: 0;
      row-gap: 60px;
    }

    .hero-split__brand--klong {
      margin-top: 0;
      width: 65%; 
      margin-left: 22%; 
    }

    .hero-split__image--kasthall {
      aspect-ratio: 335 / 490;
    }
  }
/* END_SECTION:hero-split */

/* START_SECTION:info-article (INDEX:18) */
.info-article {
    padding-bottom: 120px;
  }

  .info-article__inner {
    position: relative;
    width: 100%;
        
    display: flow-root;
  }

  .info-article__heading {
    margin: 0;
    padding-top: 70px;
    margin-left: var(--page-margin);
    font-family: var(--font-primary--family);
    font-weight: 500;
    font-size: clamp(20px, calc(24 * 100vw / 1440), 24px);
    line-height: 1;
    letter-spacing: 0.03em;
  }

  @media (min-width: 769px) {
    .info-article__heading {
      position: absolute;
      top: 0;
      left: 0;
      padding-top: 70px;
      margin-left: var(--page-margin);
    }

    .info-article__content {
      width: calc(668 / 1440 * 100%);
      margin: 0 auto;
      padding-top: 83px;
    }
  }

  .info-article__date {
    display: block;
    font-family: var(--font-primary--family);
    font-weight: var(--font-primary--weight);
    font-size: clamp(12px, calc(14 * 100vw / 1440), 14px);
    line-height: 1;
    letter-spacing: 0.05em;
  }

  .info-article__title {
    margin: 43px 0 0; 
    font-family: var(--font-japanese--family);
    font-weight: normal;
    font-size: clamp(14px, calc(16 * 100vw / 1440), 16px);
    line-height: 1.5;
    letter-spacing: 0.05em;
  }

  .info-article__divider {
    margin: 16px 0 0; 
    width: 100%;
    height: 1px;
    background-color: var(--color-border);
  }

  .info-article__body {
    margin: 30px 0 0;
    font-family: var(--font-japanese--family);
    font-size: clamp(13px, calc(14 * 100vw / 1440), 14px);
    line-height: 2;
    letter-spacing: 0.05em;
    color: var(--color-foreground);
  }

  .info-article__body :is(p) {
    margin: 0 0 1em;
  }

  .info-article__body :is(p):last-child {
    margin-bottom: 0;
  }

  .info-article__body :is(h2, h3, h4) {
    margin: 2em 0 1em;
    font-family: var(--font-japanese--family);
    font-weight: normal;
    font-size: clamp(14px, calc(16 * 100vw / 1440), 16px);
    line-height: 2;
    letter-spacing: 0.05em;
  }

  .info-article__body img {
    margin: 40px 0;
    max-width: 100%;
    height: auto;
    border: 1px solid var(--color-foreground);
    box-sizing: border-box;
  }

  .info-article__body a {
    text-decoration: underline;
    text-underline-offset: 4px;
    color: var(--color-foreground);
  }

  .info-article__body ul,
  .info-article__body ol {
    padding-left: 1.5em;
    margin: 1em 0;
  }

  .info-article__body li {
    margin: 0;
  }

  .info-article__back {
    display: block;
    width: fit-content;
    margin-inline: auto;
    margin-top: 85px; 
    font-family: var(--font-primary--family);
    font-weight: var(--font-primary--weight);
    font-size: clamp(14px, calc(16 * 100vw / 1440), 16px);
    line-height: 1;
    letter-spacing: 0.05em;
    color: var(--color-foreground);
    text-decoration: none;
  }

  .info-article__back span {
    display: inline-block;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--color-foreground);
    width: 33px;
  }

  @media (max-width: 768px) {
    .info-article {
      padding-bottom: 80px;
    }

    .info-article__inner {
      height: auto;
    }

    .info-article__heading {
      padding-top: 37px; 
      margin-left: 20px;
      margin-right: 20px;
      margin-bottom: 40px;
      font-size: 20px;
      letter-spacing: 0.05em;
    }

    .info-article__content {
      margin-left: 20px;
      margin-right: 20px;
      width: auto;
      max-width: none;
      padding-top: 0;
    }

    .info-article__title {
      margin-top: 16px;
      font-size: 14px;
    }

    .info-article__divider {
      margin-top: 18px;
    }

    .info-article__body {
      margin-top: 24px;
      font-size: 14px;
      line-height: 1.9;
    }

    .info-article__back {
      margin-top: 60px;
    }
  }

  /* 日本語本文の右端ガタつき対策: 両端揃え＋英単語は収まらない時だけ途中改行 (2026-07-05) */
  .info-article__body p {
    text-align: justify;
    overflow-wrap: anywhere;
  }
/* END_SECTION:info-article */

/* START_SECTION:info-list-page (INDEX:19) */
.info-list-page {
    padding-bottom: 120px;
  }

  .info-list-page__inner {
    position: relative;
    width: 100%;
    
    display: flow-root;
  }

  .info-list-page__heading {
    margin: 0;
    padding-top: 70px;
    margin-left: var(--page-margin);
    font-family: var(--font-primary--family);
    font-weight: 500;
    font-size: 24px; /* 旧: clamp(20px, calc(24*100vw/1440), 24px) — 24px固定指定 (2026-07-05) */
    line-height: 1;
    letter-spacing: 0.03em;
  }

  @media (min-width: 769px) {
    .info-list-page__heading {
      position: absolute;
      top: 0;
      left: 0;
      padding-top: 70px;
      margin-left: var(--page-margin);
    }

    .info-list-page__list,
    .info-list-page__pagination {
      width: calc(668 / 1440 * 100%);
      margin-inline: auto;
    }

    .info-list-page__list {
      margin-top: 83px; 
    }
  }

  .info-list-page__item {
    display: grid;
    grid-template-columns: 126px 1fr;
    column-gap: 0;
    align-items: baseline;
    padding: 39px 0 0 10px;
    border-top: 1px solid var(--color-border);
    color: var(--color-foreground);
    text-decoration: none;
    transition: opacity 0.2s ease;
    
    min-height: 96px;
  }

  .info-list-page__list > .info-list-page__item:last-child {
    border-bottom: 1px solid var(--color-border);
  }

  .info-list-page__item-date {
    font-family: var(--font-primary--family);
    font-weight: var(--font-primary--weight);
    font-size: clamp(12px, calc(14 * 100vw / 1440), 14px);
    line-height: 1;
    letter-spacing: 0.05em;
  }

  .info-list-page__item-title {
    margin: 0;
    font-family: var(--font-japanese--family);
    font-weight: normal;
    font-size: clamp(12px, calc(14 * 100vw / 1440), 14px);
    line-height: 1.4;
    letter-spacing: 0.05em;
    
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .info-list-page__empty {
    padding: 40px 0;
    text-align: center;
    font-family: var(--font-japanese--family);
    font-size: 14px;
    color: var(--color-foreground);
    opacity: 0.6;
  }

  .info-list-page__pagination {
    margin-top: 125px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 32px;
    font-family: var(--font-primary--family);
    font-size: clamp(14px, calc(16 * 100vw / 1440), 16px);
    line-height: 1;
    letter-spacing: 0.05em;
  }

  .info-list-page__pagination-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    color: var(--color-foreground);
  }

  .info-list-page__pagination-arrow--disabled {
    opacity: 0.3;
    pointer-events: none;
  }

  .info-list-page__pagination-pages {
    display: flex;
    align-items: center;
    gap: 26px;
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .info-list-page__pagination-page {
    position: relative;
    display: inline-block;
    color: var(--color-foreground);
    text-decoration: none;
    opacity: 0.5;
    transition: opacity 0.2s ease;
  }

  .info-list-page__pagination-page--current {
    opacity: 1;
  }

  .info-list-page__pagination-page--current::after {
    content: "";
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: -7px;
    width: 11px;
    height: 1px;
    background-color: var(--color-foreground);
  }

  @media (max-width: 768px) {
    .info-list-page {
      padding-bottom: 80px;
    }

    .info-list-page__inner {
      
      height: auto;
    }

    .info-list-page__heading {
      padding-top: 37px;
      margin-left: 20px;
      margin-right: 20px;
      margin-bottom: 22px; /* SPカンプ実測 (2026-07-21, 旧: 60px) */
      /* font-size: 20px 削除 — 全画面24px固定に統一 (2026-07-05) */
      letter-spacing: 0.05em;
    }

    .info-list-page__list,
    .info-list-page__pagination {
      margin-left: 20px;
      margin-right: 20px;
      width: auto;
      max-width: none;
    }

    .info-list-page__item {
      grid-template-columns: 1fr;
      column-gap: 0;
      row-gap: 4px;
      padding: 36px 4px 34px; /* SPカンプ実測 (2026-07-21, 旧: 18px 0 22px) */
      min-height: 0;
      align-items: start;
    }

    .info-list-page__item-date {
      font-size: 12px;
    }

    .info-list-page__item-title {
      font-size: 14px;
      white-space: normal; 
    }

    .info-list-page__pagination {
      margin-top: 64px;
      justify-content: center;
      gap: 20px;
    }
  }
/* END_SECTION:info-list-page */

/* START_SECTION:info-list (INDEX:20) */
.info-list {
    padding-top: 207px; 
  }

  .info-list__title {
    margin: 0 0 -0.5em;
    font-family: var(--font-primary--family);
    font-weight: 500;
    font-size: 24px; /* 旧: clamp(18px, calc(24*100vw/1440), 24px) — 24px固定指定 (2026-07-05) */
    line-height: 1;
    letter-spacing: 0.05em;
  }

  .info-list__items {
    list-style: none;
    width: calc(896 / 1360 * 100%); 
    margin: 0 auto;
    padding: 0;
  }

  .info-list__item {
    border-top: 1px solid var(--color-border);
  }

  .info-list__item:last-child {
    border-bottom: 1px solid var(--color-border);
  }

  .info-list__item-link {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    column-gap: calc(102 * 100vw / 1440); 
    padding: 22px 6px;
    color: var(--color-foreground);
    text-decoration: none;
    transition: opacity 0.2s ease;
  }

  .info-list__date {
    font-family: var(--font-primary--family);
    font-weight: var(--font-primary--weight);
    font-size: clamp(11px, calc(14 * 100vw / 1440), 14px);
    line-height: 1;
    letter-spacing: 0.05em;
  }

  .info-list__item-title {
    margin: 0;
    font-family: var(--font-japanese--family);
    font-size: clamp(11px, calc(14 * 100vw / 1440), 14px);
    line-height: 1.5;
    letter-spacing: 0.05em;
  }

  .info-list__cta {
    margin-top: 45px;
    text-align: center;
  }

  @media (max-width: 768px) {
    .info-list {
      padding-top: 105px; 
    }

    .info-list__title {
      /* font-size: 20px 削除 — 全画面24px固定に統一 (2026-07-05) */
      margin-bottom: 21px;
    }

    .info-list__items {
      width: auto;
      margin: 0;
    }

    .info-list__item-link {
      display: block;
      padding: 22px 0 19px;
    }

    .info-list__date {
      display: block;
      margin-bottom: 6px;
    }

    .info-list__date {
      font-size: 12px;
    }

    .info-list__item-title {
      font-size: 14px;
      line-height: 1.5;
    }

    .info-list__cta {
      margin-top: 29px;
    }
  }
/* END_SECTION:info-list */

/* START_SECTION:journal-back (INDEX:21) */
.journal-back {
    padding: 60px 0 120px;
    text-align: center;
    margin-left: 33.82%;
    margin-right: 16.91%;
  }

  @media (max-width: 768px) {
    .journal-back {
      margin-left: 0;
      margin-right: 0;
    }
  }

  .journal-back__link {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    color: var(--color-foreground);
    text-decoration: none;
    transition: opacity 0.2s ease;
  }

  .journal-back__label {
    font-family: var(--font-primary--family);
    font-size: clamp(12px, calc(16 * 100vw / 1440), 16px);
    line-height: 1;
    letter-spacing: 0.05em;
  }

  .journal-back__line {
    display: block;
    width: 33px;
    height: 1px;
    background-color: currentColor;
  }

  @media (max-width: 768px) {
    .journal-back {
      padding: 40px 0 80px;
    }

    .journal-back__label {
      font-size: 18px;
    }
  }
/* END_SECTION:journal-back */

/* START_SECTION:journal-content (INDEX:22) */
.journal-content {
    padding: 60px 0;
  }

  .journal-block {
    margin-bottom: 60px;
  }

  .journal-block:last-child {
    margin-bottom: 0;
  }

  .journal-block--wide {
    margin-left: 16.91%;
    margin-right: 0;
  }

  .journal-block--narrow {
    margin-left: 33.82%;
    margin-right: 16.91%;
    max-width: 670px;
  }

  .journal-table-row {
    margin-top: 0;
    margin-bottom: 0;
    border-top: 1px solid var(--color-border);
    padding: 36px 0;
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 24px;
  }

  .journal-table-row:not(:has(+ .journal-table-row)) {
    border-bottom: 1px solid var(--color-border);
    margin-bottom: 60px;
  }

  .journal-table-row__label,
  .journal-table-row__value {
    margin: 0;
    font-family: var(--font-japanese--family);
    font-size: clamp(11px, calc(14 * 100vw / 1440), 14px);
    line-height: 1.6;
    letter-spacing: 0.05em;
  }

  .journal-block:not(.journal-table-row) + .journal-table-row {
    margin-top: 60px;
  }

  .journal-section-heading {
    font-family: var(--font-japanese--family);
    font-weight: 400;
    font-size: clamp(18px, calc(24 * 100vw / 1440), 24px);
    line-height: 1.8;
    letter-spacing: 0.03em;
  }

  .journal-text {
    font-family: var(--font-japanese--family);
    font-size: clamp(12px, calc(16 * 100vw / 1440), 16px);
    line-height: 1.8;
    letter-spacing: 0.05em;
  }

  .journal-text p {
    margin: 0 0 1.8em;
  }

  .journal-text p:last-child {
    margin-bottom: 0;
  }

  .journal-text a {
    color: var(--color-foreground);
    text-decoration: underline;
  }

  .journal-text strong {
    font-weight: 700;
  }

  .journal-image {
    margin-top: 0;
  }

  .journal-image__media {
    display: block;
    overflow: hidden;
  }

  .journal-image img {
    display: block;
    width: 100%;
    height: auto;
    background-color: #E5E5E5;
  }

  .journal-image__caption {
    margin: 12px 0 0;
    font-family: var(--font-japanese--family);
    font-size: clamp(11px, calc(13 * 100vw / 1440), 13px);
    line-height: 1.6;
    letter-spacing: 0.03em;
    color: var(--color-foreground);
    opacity: 0.7;
  }

  .journal-grid {
    display: grid;
    gap: 26px;
  }

  .journal-grid--2 {
    grid-template-columns: repeat(2, 1fr);
  }

  .journal-grid--3 {
    grid-template-columns: repeat(3, 1fr);
  }

  .journal-grid__cell {
    aspect-ratio: 1 / 1;
    background-color: #E5E5E5;
    overflow: hidden;
  }

  .journal-grid__cell img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .journal-grid--2 .journal-grid__cell {
    aspect-ratio: 552 / 755;
  }

  .journal-arrow-link {
    margin-bottom: 60px;
    font-family: var(--font-japanese--family);
    font-size: clamp(12px, calc(16 * 100vw / 1440), 16px);
    line-height: 1.8;
    letter-spacing: 0.05em;
  }

  .journal-arrow-link__anchor {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--color-foreground);
    text-decoration: none;
    border-bottom: 1px solid currentColor;
    padding-bottom: 4px;
    transition: opacity 0.2s ease;
  }

  @media (max-width: 768px) {
    .journal-content {
      padding: 40px 0;
    }

    .journal-block {
      margin-bottom: 40px;
    }

    .journal-block--wide,
    .journal-block--narrow {
      margin-left: 0;
      margin-right: 0;
    }

    .journal-section-heading {
      font-size: 18px;
    }

    .journal-text {
      font-size: 14px;
    }

    .journal-grid {
      gap: 12px;
    }

    .journal-grid--3 {
      gap: 8px;
    }

    .journal-table-row {
      grid-template-columns: 1fr;
      gap: 4px;
      padding: 13px 0;
      margin-top: 0;
      margin-bottom: 0;
    }

    .journal-table-row__label {
      font-size: 12px;
      line-height: 1.4;
    }

    .journal-table-row__value {
      font-size: 14px;
      line-height: 1.5;
    }

    .journal-arrow-link {
      font-size: 14px;
    }

  }

  /* 日本語本文の右端ガタつき対策: 両端揃え＋英単語は収まらない時だけ途中改行 (2026-07-05) */
  .journal-text {
    text-align: justify;
    overflow-wrap: anywhere;
  }
/* END_SECTION:journal-content */

/* START_SECTION:journal-header (INDEX:23) */
.journal-header {
    position: relative;
    padding-top: 95px; 
  }

  .journal-header__page-label {
    margin: 0 0 40px;
    padding-left: 10px; 
    font-family: var(--font-primary--family);
    font-weight: var(--font-primary--weight);
    font-size: clamp(18px, calc(24 * 100vw / 1440), 24px);
    line-height: 1;
    letter-spacing: 0.05em;
  }

  @media (min-width: 769px) {
    
    .journal-header__page-label {
      position: absolute;
      top: 95px;
      left: 0;
      margin: 0;
    }
  }

  .journal-header__hero {
    margin: 0 0 0 16.91%;
    aspect-ratio: 1130 / 755;
    background-color: #E5E5E5;
    overflow: hidden;
  }

  .journal-header__hero img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .journal-header__meta {
    margin: 100px 16.91% 0 33.82%;
    max-width: 670px;
  }

  .journal-header__lead,
  .journal-header__article-title {
    margin: 0;
    font-family: var(--font-japanese--family);
    font-weight: 400;
    font-size: clamp(18px, calc(24 * 100vw / 1440), 24px);
    line-height: 1.8;
    letter-spacing: 0.03em;
  }

  @media (max-width: 768px) {
    .journal-header {
      padding-top: 35px; 
    }

    .journal-header__page-label {
      margin-bottom: 55px; 
      padding-left: 0;
      font-size: 24px;
    }

    .journal-header__hero {
      margin: 0;
      aspect-ratio: 335 / 224;
    }

    .journal-header__meta {
      margin-left: 0;
      margin-right: 0;
      margin-top: 60px;
      max-width: none;
    }

    .journal-header__lead,
    .journal-header__article-title {
      font-size: 18px;
      line-height: 1.8;
    }
  }
/* END_SECTION:journal-header */

/* START_SECTION:journal-list (INDEX:24) */
.journal-list {
    position: relative;
    padding: 95px 0 80px; 
  }

  .journal-list__title {
    margin: 0 0 40px; 
    font-family: var(--font-primary--family);
    font-weight: var(--font-primary--weight);
    font-size: clamp(18px, calc(24 * 100vw / 1440), 24px);
    line-height: 1;
    letter-spacing: 0.05em;
  }

  @media (min-width: 769px) {
    
    .journal-list__title {
      position: absolute;
      top: 95px;
      left: 0;
      margin: 0;
    }
  }

  .journal-list__grid {
    list-style: none;
    margin: 0 0 0 17.21%; 
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: 30px;
    row-gap: 90px;
  }

  .journal-card__link {
    display: block;
    color: var(--color-foreground);
    text-decoration: none;
    transition: opacity 0.2s ease;
  }

  .journal-card__image {
    aspect-ratio: 1 / 1;
    background-color: #E5E5E5;
    overflow: hidden;
    margin-bottom: 20px;
  }

  .journal-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .journal-card__lead,
  .journal-card__title {
    margin: 0;
    font-family: var(--font-japanese--family);
    font-size: clamp(11px, calc(14 * 100vw / 1440), 14px);
    line-height: 1.8;
    letter-spacing: 0.03em;
  }

  .journal-card__lead,
  .journal-card__title {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .journal-card__title {
    -webkit-line-clamp: 2;
  }

  .journal-card__lead {
    -webkit-line-clamp: 1;
  }

  .journal-card__link:has(.journal-card__lead) .journal-card__title {
    -webkit-line-clamp: 1;
  }

  .journal-list__pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 28px;
    margin-top: 90px;
  }

  .journal-list__pagination-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 18px;
  }

  .journal-list__pagination-link,
  .journal-list__pagination-ellipsis {
    font-family: var(--font-primary--family);
    font-size: clamp(12px, calc(16 * 100vw / 1440), 16px);
    line-height: 1;
    letter-spacing: 0.05em;
    color: var(--color-foreground);
    text-decoration: none;
    opacity: 0.5;
    transition: opacity 0.2s ease;
  }

  .journal-list__pagination-link--current {
    opacity: 1;
    border-bottom: 1px solid currentColor;
    padding-bottom: 4px;
  }

  .journal-list__pagination-arrow {
    display: inline-flex;
    align-items: center;
    color: var(--color-foreground);
    transition: opacity 0.2s ease;
  }

  .journal-list__pagination-arrow--disabled {
    opacity: 0.25;
    pointer-events: none;
  }

  .journal-list__empty {
    margin: 0 calc(8.33% + 35px - var(--page-margin));
    font-family: var(--font-japanese--family);
    font-size: clamp(11px, calc(14 * 100vw / 1440), 14px);
    line-height: 1.8;
  }

  @media (max-width: 768px) {
    .journal-list {
      padding: 35px 0 60px; 
    }

    .journal-list__title {
      margin-bottom: 55px; 
      padding-left: 0;
      font-size: 24px;
    }

    .journal-list__grid {
      margin: 0;
      grid-template-columns: repeat(2, 1fr);
      column-gap: 11px;
      row-gap: 50px;
    }

    .journal-card__image {
      margin-bottom: 8px; 
    }

    .journal-card__lead,
    .journal-card__title {
      font-size: 14px;
      line-height: 1.8;
    }

    .journal-list__pagination {
      margin-top: 60px;
      gap: 20px;
    }

    .journal-list__pagination-list {
      gap: 14px;
    }

    .journal-list__pagination-link,
    .journal-list__pagination-ellipsis {
      font-size: 15px;
    }

    .journal-list__empty {
      margin: 0;
    }
  }
/* END_SECTION:journal-list */

/* START_SECTION:legal-page (INDEX:25) */
.legal-page {
    padding-bottom: 120px;
  }

  .legal-page__inner {
    position: relative;
    width: 100%;
    display: flow-root;
  }

  .legal-page__heading {
    margin: 0;
    padding-top: 70px;
    margin-left: var(--page-margin);
    font-family: var(--font-primary--family);
    font-weight: 500;
    font-size: 24px; /* 旧: clamp(20px, calc(24*100vw/1440), 24px) — 24px固定指定 (2026-07-05) */
    line-height: 1.2;
    letter-spacing: 0.03em;
  }

  @media (min-width: 769px) {
    .legal-page__heading {
      position: absolute;
      top: 0;
      left: 0;
      padding-top: 70px;
      margin-left: var(--page-margin);
      white-space: nowrap;
    }

    .legal-page__content {
      width: calc(668 / 1440 * 100%);
      margin: 0 auto;
      padding-top: 73px; /* 77→73: ページ見出しと本文1つ目h2のbaselineを実測で揃えた (2026-07-05) */
    }
  }

  .legal-page__body {
    font-family: var(--font-japanese--family);
    font-size: clamp(13px, calc(14 * 100vw / 1440), 14px);
    line-height: 2;
    letter-spacing: 0.05em;
    color: var(--color-foreground);
  }

  .legal-page__body p {
    margin: 0 0 1em;
  }

  .legal-page__body p:last-child {
    margin-bottom: 0;
  }

  .legal-page__body h2 {
    margin: 5.5em 0 3em; /* 上5.5em=16px時88px相当 / 下3em=48px相当。フォント縮小時は比例して詰まる (2026-07-05) */
    font-family: var(--font-japanese--family);
    font-weight: normal;
    font-size: clamp(14px, calc(16 * 100vw / 1440), 16px);
    line-height: 2;
    letter-spacing: 0.05em;
  }

  .legal-page__body h2:first-child {
    margin-top: 0;
  }

  .legal-page__body h3 {
    margin: 1.5em 0 0.4em;
    font-family: var(--font-japanese--family);
    font-weight: normal;
    font-size: clamp(13px, calc(14 * 100vw / 1440), 14px);
    line-height: 2;
    letter-spacing: 0.05em;
  }

  .legal-page__body ul {
    list-style: disc outside;
    margin: 0 0 1em 1.5em;
    padding: 0;
  }

  .legal-page__body ol {
    list-style: decimal outside;
    margin: 0 0 1em 1.5em;
    padding: 0;
  }

  .legal-page__body li {
    margin: 0;
  }

  .legal-page__body li > ul,
  .legal-page__body li > ol {
    margin-top: 0.3em;
    margin-bottom: 0.3em;
  }

  .legal-page__body a {
    color: var(--color-foreground);
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
  }

  .legal-page__body strong,
  .legal-page__body b {
    font-weight: 600;
  }

  .legal-page__body table {
    width: 100%;
    border-collapse: collapse;
    margin: 1em 0;
    font-size: inherit;
  }

  .legal-page__body th,
  .legal-page__body td {
    padding: 12px 16px;
    border-bottom: 1px solid var(--color-border);
    vertical-align: top;
    text-align: left;
  }

  .legal-page__body th {
    font-weight: normal;
    width: 30%;
    white-space: nowrap;
  }

  .legal-page__body img {
    margin: 1em 0;
    max-width: 100%;
    height: auto;
  }

  .legal-page__empty {
    margin: 0;
    color: var(--color-foreground);
    opacity: 0.5;
    font-family: var(--font-japanese--family);
    font-size: 14px;
  }

  @media (max-width: 768px) {
    .legal-page {
      padding-bottom: 80px;
    }

    .legal-page__inner {
      height: auto;
    }

    .legal-page__heading {
      padding-top: 37px;
      margin-left: 20px;
      margin-right: 20px;
      margin-bottom: 40px;
      /* font-size: 20px 削除 — 全画面24px固定に統一 (2026-07-05) */
      letter-spacing: 0.05em;
    }

    .legal-page__content {
      margin-left: 20px;
      margin-right: 20px;
      width: auto;
      max-width: none;
      padding-top: 0;
    }

    .legal-page__body {
      font-size: 14px;
      line-height: 1.9;
    }

    .legal-page__body h2 {
      /* margin-top: 2em 削除 — 上(5.5em)が下(3em)より狭くなっていたためベース値に統一 (2026-07-05) */
      font-size: 16px;
    }
  }

  /* 日本語本文の右端ガタつき対策: 両端揃え＋英単語は収まらない時だけ途中改行 (2026-07-05) */
  .legal-page__body p,
  .legal-page__body li {
    text-align: justify;
    overflow-wrap: anywhere;
  }
/* END_SECTION:legal-page */

/* START_SECTION:product (INDEX:28) */
.product-page {
    position: relative;
    display: grid;

    grid-template-columns: calc(785 / 1360 * 100%) calc(408 / 1360 * 100%);
    column-gap: calc(52 / 1360 * 100%);
    padding-top: 70px; 
    align-items: start;
  }

  .product-page__gallery-wrapper {
    grid-column: 1;
  }

  .product-page__gallery {
    display: flex;
    flex-direction: column;
    gap: 35px; 
  }

  .product-page__media {
    position: relative; 
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: #E5E5E5;
    cursor: zoom-in;
  }

  .product-page__media-img {
    display: block;
    width: 100%;
    height: auto;
  }

  .product-page__zoom-badge {
    position: absolute;
    left: 10px;
    bottom: 10px;
    width: 30px;
    height: 30px;
    color: var(--color-foreground);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.15s ease;
  }

  .product-page__showcase-thumb .product-page__zoom-badge {
    left: 6px;
    bottom: 7px;
  }

  .product-page__zoom-badge svg {
    display: block;
    width: 100%;
    height: 100%;
  }

  .product-page__media:hover .product-page__zoom-badge,
  .product-page__showcase-thumb:hover .product-page__zoom-badge,
  .product-page__size-guide-trigger:hover .product-page__zoom-badge {
    opacity: 1;
  }

  @media (hover: none) {
    .product-page__zoom-badge { display: none; }
  }

  .product-page__gallery-controls { display: none; }

  .product-page__info {
    grid-column: 2;
    align-self: stretch;
  }

  .product-page__info-inner {
    position: sticky;
    /* 修正リストNo.16: スクロール時ヘッダー高さ(66px)と同じ位置に固定 (2026-07-20, 旧: 100px) */
    top: 66px;
  }

  /* 修正リストNo.15 (2026-07-21): パンくず廃止に伴い .product-page__breadcrumb 系のCSSを削除 */

  .product-page__label {
    margin: 0 0 29px;
    font-family: var(--font-primary--family);
    font-size: clamp(11px, calc(12 * 100vw / 1440), 12px);
    line-height: 1;
    letter-spacing: 0.05em;
  }

  .product-page__title {
    margin: 0 0 22px; /* 修正リストNo.15: Figma MCP実測 タイトル→タグライン61px (2026-07-21) */
    font-family: var(--font-primary--family);
    font-weight: var(--font-primary--weight);
    font-size: clamp(22px, calc(30 * 100vw / 1440), 30px);
    line-height: 1.3; /* 修正リストNo.12 (2026-07-20, 旧: 1) */
    letter-spacing: 0.05em;
  }

  .product-page__tagline {
    margin: 0 0 18px; /* 修正リストNo.15: Figma MCP実測 タグライン→価格69px (2026-07-21) */
    font-family: var(--font-japanese--family);
    font-size: 16px; /* 旧: clamp(12px, calc(16*100vw/1440), 16px) — 下限16px指定(2026-07-05)で上限と同値になるため固定 */
    line-height: 1.6;
    letter-spacing: 0.05em;
  }

  .product-page__price {
    margin: 0 0 69px; /* 修正リストNo.15: Figma MCP実測 価格→Sizeラベル99px (2026-07-21) */
    font-family: var(--font-primary--family);
    font-size: 30px; /* 旧: clamp(22px, calc(29.4*100vw/1440), 29.4px) — 下限30px指定(2026-07-05)が上限29.4を超えるため固定。PCも29.4→30に+0.6px */
    line-height: 1;
    letter-spacing: 0.05em;
  }

  .product-page__price-value {
    display: block;
  }

  .product-page__price-note {
    display: block;
    margin-top: 8px;
    font-family: var(--font-japanese--family);
    font-size: clamp(11px, calc(12 * 100vw / 1440), 12px);
    line-height: 1.6;
    letter-spacing: 0;
    color: var(--color-foreground);
  }

  .product-page__price-note[hidden] {
    display: none;
  }

  .product-page__form { margin: 0; }

  .product-page__option {
    margin: 0 0 13px; /* 修正リストNo.15: Figma MCP実測 ピル下端→次ラベル13px (2026-07-21, 旧: 14px) */
    padding: 0;
    border: 0;
  }

  .product-page__option:last-of-type {
    margin-bottom: 0;
  }

  .product-page__option-name {
    padding: 0;
    margin: 0 0 8px;
    font-family: var(--font-primary--family);
    font-size: 16px; /* 旧: clamp(12px, calc(16*100vw/1440), 16px) — 下限16px指定(2026-07-05)で上限と同値になるため固定 */
    line-height: 1;
    letter-spacing: 0.05em;
  }

  .product-page__option-values {
    display: flex;
    flex-wrap: wrap;
    gap: 6px; /* 修正リストNo.15: Figma MCP実測 ピル間6px・行間6px (2026-07-21) */
  }

  .variant-pill {
    display: inline-flex;
    align-items: center;
    height: 31px; /* 修正リストNo.15: Figma MCP実測 (2026-07-21, 旧: 30px) */
    padding: 0 18px;
    border: 1px solid var(--color-border);
    border-radius: 40px;
    background-color: var(--color-background);
    color: var(--color-foreground);
    font-family: var(--font-japanese--family);
    font-size: 13px; /* 旧: clamp(11px, calc(12*100vw/1440), 12px) — 下限13px指定(2026-07-05)が上限12を超えるため固定。PCも12→13に+1px */
    line-height: 1;
    letter-spacing: 0.03em;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  }

  .variant-pill__input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    pointer-events: none;
  }

  .variant-pill__label { white-space: nowrap; }

  .variant-pill:hover {
    background-color: #CCC;
    border-color: #CCC;
  }

  .variant-pill--selected,
  .variant-pill:has(.variant-pill__input:checked) {
    background-color: var(--color-foreground);
    color: var(--color-background);
    border-color: var(--color-foreground);
  }

  .product-page__cart-btn,
  .product-page__quote-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 50px; 
    padding: 0 35px;
    border: 1px solid var(--color-foreground);
    border-radius: 4px;
    background-color: var(--color-foreground);
    color: var(--color-background);
    font-family: var(--font-gothic--family);
    font-size: 16px; /* 旧: clamp(12px, calc(16*100vw/1440), 16px) — 下限16px指定(2026-07-05)で上限と同値になるため固定 */
    line-height: 1;
    letter-spacing: 0.05em;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
  }

  .product-page__cart-btn {
    margin-top: 25px; /* 修正リストNo.15: Figma MCP実測 最終ピル下端→ボタン25px（最終fieldsetはmargin-bottom:0のため全量をここで持つ） (2026-07-21, 旧: 42px) */
  }

  .product-page__quote-btn {
    margin-top: 9px;
  }

  .product-page__cart-btn:not(:disabled):hover,
  .product-page__quote-btn:hover {
    background-color: #CCC;
    border-color: #CCC;
    color: var(--color-foreground);
  }

  .product-page__cart-btn:disabled,
  .product-page--custom-order .product-page__cart-btn {
    background-color: #CCCCCC;
    border-color: #CCCCCC;
    color: var(--color-background);
    cursor: not-allowed;
  }
  .product-page__cart-btn:disabled:hover,
  .product-page--custom-order .product-page__cart-btn:hover {
    background-color: #CCCCCC;
    color: var(--color-background);
  }

  .product-page__inline-info {
    margin-top: 60px; /* 修正リストNo.15: Figma MCP実測 見積ボタン下端→アコーディオン上罫60px (2026-07-21, 旧: 70px) */
    border-top: 1px solid #A5A5A5;
  }

  .product-page__info-block {
    padding: 0;
  }

  .product-page__info-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0;
    cursor: pointer;
    list-style: none;
    user-select: none;
    font-family: var(--font-japanese--family);
    font-size: 16px; /* 旧: clamp(12px, calc(16*100vw/1440), 16px) — 下限16px指定(2026-07-05)で上限と同値になるため固定 */
    line-height: 1.44; /* 修正リストNo.15: Figma MCP実測 見出し行高23px (2026-07-21, 旧: 1) */
    letter-spacing: 0.05em;
  }

  .product-page__info-summary {
    padding: 15px 0; /* 修正リストNo.15: Figma MCP実測 上罫→見出し15px (2026-07-21, 旧: 17px) */
    border-bottom: 1px solid #A5A5A5;
  }

  .product-page__info-block--static .product-page__info-summary {
    cursor: default;
  }

  .product-page__info-jump {
    width: 100%;
    padding: 26px 0 36px;
    border: 0;
    border-bottom: 1px solid #A5A5A5;
    background: none;
    color: var(--color-foreground);
    text-align: left;
  }
  
  .product-page__info-summary::-webkit-details-marker {
    display: none;
  }

  .product-page__info-summary svg {
    width: 10px;
    height: 6px;
    flex-shrink: 0;
    transition: transform 0.15s ease;
  }

  .product-page__info-block[open] .product-page__info-summary svg {
    transform: rotate(180deg);
  }

  .product-page__info-body {
    padding: 20px 0 23px; /* 修正リストNo.15: Figma MCP実測 罫線→本文18-23px / 本文→次罫23px (2026-07-21, 旧: 24px 0 70px) */
    border-bottom: 1px solid #A5A5A5;
    font-family: var(--font-japanese--family);
    font-size: 14px; /* 旧: clamp(11px, calc(14*100vw/1440), 14px) — 下限14px指定(2026-07-05)で上限と同値になるため固定 */
    line-height: 25px;
    letter-spacing: 0.05em;
  }

  .product-page__info-body p {
    margin: 0 0 1em;
  }
  .product-page__info-body p:last-child {
    margin-bottom: 0;
  }

  .product-page__info-block[open] > .product-page__info-body {
    animation: productInfoReveal 0.15s ease;
  }

  @keyframes productInfoReveal {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
  }

  .product-page__below {
    grid-column: 1 / -1;
    margin-top: 191px;
    display: flex;
    flex-direction: column;
    row-gap: 120px;
  }

  .product-page__section {
    position: relative;
  }

  .product-page__section-title {
    position: absolute;
    top: 0;
    left: 0;
    margin: 0;
    font-family: var(--font-primary--family);
    font-weight: 500;
    font-size: clamp(19px, calc(25 * 100vw / 1440), 25px);
    line-height: 1;
    letter-spacing: 0.05em;
  }

  .product-page__section-toggle {
    display: none;
    align-items: center;
    gap: 8px;
    height: 32px;
    padding: 0 16px;
    border: 1px solid var(--color-border);
    border-radius: 32px;
    background: none;
    color: var(--color-foreground);
    font-family: var(--font-primary--family);
    font-size: 12px;
    letter-spacing: 0.05em;
    line-height: 1;
    cursor: pointer;
  }

  .product-page__toggle-icon::before {
    content: '+';
    font-size: 14px;
    line-height: 1;
  }

  .product-page__section--collapsible.is-open .product-page__toggle-icon::before {
    content: '−';
  }

  .product-page__section-body {
    width: calc(670 / 1360 * 100%);
    margin: 0 auto;
    font-family: var(--font-japanese--family);
    font-size: clamp(12px, calc(16 * 100vw / 1440), 16px);
    line-height: 2;
    letter-spacing: 0.05em;
  }

  .product-page__section-body.product-page__showcase-grid {
    width: calc(900 / 1360 * 100%);
  }

  .product-page__section-body p {
    margin: 0 0 1em;
  }
  .product-page__section-body p:last-child {
    margin-bottom: 0;
  }

  .product-page__details-description {
    line-height: 2;
  }

  /* 日本語本文の右端ガタつき対策: 両端揃え＋英単語は収まらない時だけ途中改行 (2026-07-05)
   * Details本文・標準サイズと価格/納期(info-body)・Shipping/Notice等の段落に適用 */
  .product-page__details-description,
  .product-page__info-body,
  .product-page__section-body p {
    text-align: justify;
    overflow-wrap: anywhere;
  }

  .product-page__details-description p {
    margin: 0 0 1em;
  }
  .product-page__details-description p:last-child {
    margin-bottom: 0;
  }

  .product-page__details-table {
    width: 100%;
    border-collapse: collapse;
    font-size: clamp(11px, calc(14 * 100vw / 1440), 14px);
    line-height: 25px;
    letter-spacing: 0.05em;
  }

  .product-page__details-description + .product-page__details-table {
    margin-top: 56px;
  }

  .product-page__details-table tr:first-child th,
  .product-page__details-table tr:first-child td {
    border-top: 1px solid #A5A5A5;
  }

  .product-page__details-table th,
  .product-page__details-table td {
    padding: 13px 0;
    border-bottom: 1px solid #A5A5A5;
    text-align: left;
    font-weight: normal;
    vertical-align: top;
  }

  .product-page__details-table th {
    width: 30%;
  }

  .product-page__size-guide-note {
    margin-bottom: 16px;
  }

  .product-page__size-guide-note p {
    margin: 0 0 1em;
  }

  .product-page__size-guide-note p:last-child {
    margin-bottom: 0;
  }

  .product-page__size-guide-trigger {
    position: relative; 
    display: block;
    padding: 0;
    border: 0;
    background: none;
    cursor: zoom-in;
    
    width: 100%;
    max-width: 553px;
  }

  .product-page__size-guide-img {
    display: block;
    width: 100%;
    max-width: 553px;
    height: auto;
    
  }

  .product-page__section-body a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
  }
  .product-page__section-body a:hover {
    text-decoration: none;
  }

  /* 各段落の頭に※を自動挿入し、ぶら下げインデントを※の幅(1em)ぴったりに (2026-07-05, 旧: 1.5em) */
  .product-page__section--notice .product-page__section-body p {
    padding-left: 1em;
    text-indent: -1em;
    margin: 0 0 1.5em;
  }

  .product-page__section--notice .product-page__section-body p::before {
    content: '※';
  }
  .product-page__section--notice .product-page__section-body p:last-child {
    margin-bottom: 0;
  }

  .product-page__showcase-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: calc(75 / 900 * 100%);
    row-gap: 24px;
  }

  /* 要素が1〜2個のときは中央寄せ。トラック幅は3カラム時と同じ250/900、gapも変更なし (2026-07-05) */
  .product-page__showcase-grid:has(> .product-page__showcase-item:nth-last-child(-n+2):first-child) {
    grid-template-columns: repeat(auto-fit, calc(250 / 900 * 100%));
    justify-content: center;
  }

  .product-page__showcase-item {
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .product-page__showcase-thumb {
    position: relative; 
    display: block;
    width: 100%;
    overflow: hidden;
    margin-bottom: 7px;
    padding: 0;
    border: 0;
    background: none;
    cursor: zoom-in;
  }

  .product-page__showcase--color .product-page__showcase-thumb {
    aspect-ratio: 242 / 303;
  }

  .product-page__showcase--size .product-page__showcase-thumb {
    aspect-ratio: 242 / 245;
  }

  .product-page__showcase-thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .product-page__showcase-label {
    margin: 0;
    font-family: var(--font-japanese--family);
    font-size: clamp(12px, calc(14 * 100vw / 1440), 14px); /* 下限11→12px (2026-07-05) */
    line-height: 1;
    letter-spacing: 0.03em;
    text-align: center;
  }

  .product-lightbox {
    width: 100vw;
    height: 100vh;
    max-width: none;
    max-height: none;
    margin: 0;
    padding: 0;
    border: 0;
    background-color: rgba(255, 255, 255, 0.98);
    overflow: hidden;
  }

  .product-lightbox[open] {
    display: flex;
    flex-direction: column;
  }

  .product-lightbox::backdrop {
    background-color: rgba(0, 0, 0, 0.5);
  }

  .product-lightbox__track {
    flex: 1 1 auto;
    display: flex;
    width: 100%;
    min-height: 0;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }
  .product-lightbox__track::-webkit-scrollbar { display: none; }

  .product-lightbox__slide {
    flex: 0 0 100%;
    height: 100%;
    scroll-snap-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 80px 80px 0;
    gap: 15px;
  }

  .product-lightbox__img {
    flex: 1;
    min-height: 0; 
    width: 100%;
    object-fit: contain;
  }

  .product-lightbox__caption {
    flex: 0 0 auto;
    margin: 0;
    padding-bottom: 15px;
    font-family: var(--font-japanese--family);
    font-size: clamp(11px, calc(14 * 100vw / 1440), 14px);
    line-height: 1.4;
    letter-spacing: 0.03em;
    text-align: center;
    color: var(--color-foreground);
  }

  .product-lightbox__close {
    position: absolute;
    top: 24px;
    right: var(--page-margin);
    width: 60px;
    height: 22px;
    padding: 0;
    background: none;
    border: 0;
    color: var(--color-foreground);
    cursor: pointer;
    z-index: 10;
  }

  /* dialog表示時にcloseボタンへ自動フォーカスが移り :focus-visible 扱いになるため、
   * 共通ルールでは消えない青枠をここで明示的に無効化 (2026-07-05) */
  .product-lightbox:focus-visible,
  .product-lightbox__close:focus,
  .product-lightbox__close:focus-visible {
    outline: none;
  }

  .product-lightbox__close svg {
    display: block;
    width: 100%;
    height: 100%;
  }

  .product-lightbox__controls {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 140px;
    padding: 25px 0 40px;
  }

  .product-lightbox__arrow {
    width: 14px;
    height: 14px;
    padding: 0;
    background: none;
    border: 0;
    color: var(--color-foreground);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .product-lightbox__arrow svg { width: 5px; height: 10px; }
  .product-lightbox__arrow--prev svg { transform: scaleX(-1); }

  .product-lightbox__dots {
    display: flex;
    gap: 8px;
  }

  .product-lightbox__dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 1px solid var(--color-foreground);
    background-color: transparent;
    cursor: pointer;
    transition: background-color 0.2s ease;
  }

  .product-lightbox__dot--active {
    background-color: var(--color-accent);
  }

  @media (max-width: 768px) {
    .product-page {
      display: block;
      padding-top: 20px; 
    }

    .product-page__gallery {
      position: relative;
      display: block;
      width: 100%;
      aspect-ratio: 335 / 419;
      margin: 0; /* 修正リストNo.15(SP): 下マージンを削除しコントロール側のmargin-top(16px)で制御 (2026-07-21, 旧: 0 0 40px) */
      padding: 0;
      overflow: hidden;
    }

    .product-page__media {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      margin: 0;
      background: #E5E5E5;
      opacity: 0;
      transition: opacity 0.18s ease;
      pointer-events: none;
    }

    .product-page__media--active {
      opacity: 1;
      pointer-events: auto;
      z-index: 1;
    }

    .product-page__media-img {
      width: 100%;
      height: 100%;
      aspect-ratio: auto;
      object-fit: cover;
      cursor: zoom-in;
    }

    {%- comment -%}
      修正リストNo.24 (2026-07-21): 横位置写真は正方形(1:1)にトリミングし、
      スライド枠(335:419)の高さは保ったまま上下中央に配置する。
      Figma実測(node 628:1016): 枠top201・高419に対し画像top243・335角＝上下42pxずつの余白。
    {%- endcomment -%}
    {%- comment -%}
      img-reveal.js が読み込み前の主要色を box に inline style で敷くため、
      横位置写真では正方形の上下余白まで色が乗ってしまう。SPのみ打ち消す。
      （!important は inline style に勝つために必要）
    {%- endcomment -%}
    .product-page__media--landscape {
      background-color: transparent !important;
    }

    .product-page__media--landscape .product-page__media-img {
      position: absolute;
      top: 50%;
      left: 0;
      width: 100%;
      height: auto;
      aspect-ratio: 1 / 1;
      transform: translateY(-50%);
    }

    .product-page__gallery-controls {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-top: 16px; /* 修正リストNo.15(SP): Figma MCP実測 画像下端→ドット16px (2026-07-21, 旧: 20px) */
    }

    {%- comment -%}
      修正リストNo.23 (2026-07-21): 矢印アイコンはクリッカブルエリアの外側の端に寄せる
      （prevは左端・nextは右端）。カンプでも左右の矢印がコンテンツ幅の端に揃っている。
    {%- endcomment -%}
    .product-page__gallery-arrow {
      display: flex;
      align-items: center;
      width: 14px;
      height: 14px;
      background: none;
      border: 0;
      padding: 0;
      color: var(--color-foreground);
      cursor: pointer;
    }

    .product-page__gallery-arrow--prev { justify-content: flex-start; }
    .product-page__gallery-arrow--next { justify-content: flex-end; }
    {%- comment -%}
      修正リストNo.23 (2026-07-21): 書き出しSVGの原寸(7×11px)で表示。
      SVGは左向きなので prev はそのまま、next を左右反転する。
    {%- endcomment -%}
    .product-page__gallery-arrow svg { width: 7px; height: 11px; }
    .product-page__gallery-arrow--next svg { transform: scaleX(-1); }

    .product-page__gallery-dots {
      display: flex;
      gap: 8px;
    }

    .product-page__gallery-dot {
      width: 10px;
      height: 10px;
      border-radius: 50%;
      border: 1px solid var(--color-foreground);
      background-color: transparent;
      transition: background-color 0.2s ease;
    }

    .product-page__gallery-dot--active {
      background-color: var(--color-accent);
    }

    .product-page__info {
      position: static;
      grid-column: auto;
      margin-top: 22px; /* 修正リストNo.15(SP): Figma MCP実測 コントロール下端→商品名 (2026-07-21, 旧: 40px) */
    }

    .product-page__info-inner {
      position: static;
      top: auto;
    }

    /* 修正リストNo.15 (2026-07-21): パンくず廃止（SP側マージン指定も削除） */

    {%- comment -%}
      修正リストNo.15(SP) (2026-07-21): Figma MCP実測（node 623:871 / 375px幅）
      画像上端起点の座標: 商品名471 / タグライン579 / 価格635 / Sizeラベル713 /
      ピル739・784 / Colorラベル834 / ピル858 / カート925 / 見積984 / 罫線1094
    {%- endcomment -%}
    .product-page__title {
      font-size: 30px;
      margin-bottom: 30px; /* Figma: 商品名(2行78px)下端→タグライン */
    }

    .product-page__tagline {
      margin-bottom: 5px; /* Figma: タグライン(2行)下端→価格 */
    }

    .product-page__price {
      margin-bottom: 48px; /* Figma: 価格→Sizeラベル78px (旧: 30px) */
    }

    .product-page__option-name {
      margin-bottom: 10px; /* Figma: Sizeラベル→ピル26px (PC: 8px) */
    }

    .product-page__option:not(:first-of-type) .product-page__option-name {
      margin-bottom: 8px; /* Figma: 2つ目以降(Color)は24px */
    }

    .product-page__option-values {
      gap: 8px 6px; /* Figma: 行間8px・ピル間6px */
    }

    .variant-pill {
      height: 37px; /* Figma実測 (PC: 31px) */
      padding: 0 14px;
      border-radius: 31px;
    }

    .product-page__cart-btn {
      margin-top: 30px; /* Figma: 最終ピル下端→カートボタン30px (PC: 25px) */
    }

    .product-page__cart-btn,
    .product-page__quote-btn {
      border-radius: 3px; /* Figma実測 (PC: 4px) */
    }

    .product-page__info-body {
      padding: 18px 0 30px; /* Figma: 罫線→本文18px / 本文→次罫30px (旧: 24px 0 42px) */
      font-size: 15px; /* Figma実測 SPは15px (PC: 14px) */
    }

    .product-page__below {
      grid-column: auto;
      display: block;
      margin-top: 100px;
    }

    .product-page__section {
      grid-column: auto;
      display: block;
      margin-bottom: 64px;
    }

    .product-page__section-title {
      grid-column: auto;
      position: static;
      padding-left: 0;
      margin-bottom: 33px;
      font-size: 20px;
    }

    .product-page__section-body,
    .product-page__details-table {
      grid-column: auto;
      width: auto;
      margin: 0;
      padding-left: 0;
      padding-right: 0;
      font-size: 14px;
    }

    .product-page__section-head {
      display: flex;
      align-items: center;
      gap: 18px;
      margin-bottom: 33px;
    }

    .product-page__section-head .product-page__section-title {
      margin-bottom: 0;
    }

    .product-page__section-toggle {
      display: inline-flex;
    }

    .product-page__section--collapsible:not(.is-open) .product-page__section-body {
      display: none;
    }

    .product-page__section--collapsible:not(.is-open) {
      margin-bottom: 32px;
    }

    .product-page__section--collapsible:not(.is-open) .product-page__section-head {
      margin-bottom: 0;
    }

    .product-page__details-table,
    .product-page__details-table tbody {
      display: block;
      width: 100%;
    }

    .product-page__details-table tr {
      display: block;
      padding: 11px 0 12px; /* Figma MCP実測(623:871) 上罫→項目名11px / 値→下罫12px (2026-07-21, 旧: 14px 0) */
      border-bottom: 1px solid #A5A5A5;
    }

    {%- comment -%}
      SPはth/tdのborderを解除しtr側で罫線を引くため、PC用の
      tr:first-child th/td { border-top } が効かず先頭行の上罫が消えていた。
      tr自体にborder-topを付けて復活させる (2026-07-21)
    {%- endcomment -%}
    .product-page__details-table tr:first-child {
      border-top: 1px solid #A5A5A5;
    }

    .product-page__details-table tr:first-child th,
    .product-page__details-table tr:first-child td {
      border-top: none;
    }

    .product-page__details-table th,
    .product-page__details-table td {
      display: block;
      width: auto;
      padding: 0;
      border: none;
    }

    .product-page__details-table th {
      margin-bottom: 0; /* Figma MCP実測: 項目名→値の間隔21px（line-heightで確保） (2026-07-21, 旧: 6px) */
      line-height: 21px;
      font-size: 12px;
    }

    .product-page__showcase-grid {
      grid-template-columns: repeat(2, 1fr);
      column-gap: 15px;
      row-gap: 28px;
    }

    /* SP: PC用の1〜2個中央寄せルールを打ち消し（SPは2カラムで満杯のため） */
    .product-page__showcase-grid:has(> .product-page__showcase-item:nth-last-child(-n+2):first-child) {
      grid-template-columns: repeat(2, 1fr);
      justify-content: initial;
    }

    /* SP: 要素1個のときだけ中央寄せ (2026-07-05) */
    .product-page__showcase-grid:has(> .product-page__showcase-item:first-child:last-child) {
      grid-template-columns: calc((100% - 15px) / 2);
      justify-content: center;
    }

    .product-page__section-body.product-page__showcase-grid {
      width: auto;
    }

    .product-lightbox__close { top: 16px; right: var(--page-margin); }
    .product-lightbox__slide { padding: 60px 8px 0; }
    
    .product-lightbox__controls {
      padding: 20px var(--page-margin) 30px;
      gap: 0;
      justify-content: space-between;
    }
  }
/* END_SECTION:product */

/* START_SECTION:recently-viewed (INDEX:29) */
.recently-viewed {
    position: relative;
    padding-top: 241px;
  }

  .recently-viewed__header {
    display: flex;
    align-items: baseline;
    gap: 24px;
  }

  .recently-viewed__title {
    position: absolute;
    top: 244px;
    left: 0;
    margin: 0;
    font-family: var(--font-primary--family);
    font-weight: 500;
    font-size: clamp(18px, calc(24 * 100vw / 1440), 24px);
    line-height: 1;
    letter-spacing: 0.05em;
  }

  .recently-viewed__title-rule {
    display: none;
  }

  /* 新カンプ(2011:1525): トラックは x270（12グリッド3カラム目）開始、
   * カード253・間隔26（store-showcase等と揃える）。 */
  .recently-viewed__container {
    position: relative;
    margin-left: calc(18.75vw - var(--page-margin));
    padding-top: 0;
  }

  .recently-viewed__track {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: calc(253 * 100vw / 1440);
    column-gap: calc(26 * 100vw / 1440);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }

  .recently-viewed__track::-webkit-scrollbar {
    display: none;
  }

  .recently-viewed__item {
    scroll-snap-align: start;
  }

  .recently-viewed__link {
    display: block;
    color: var(--color-foreground);
    text-decoration: none;
    transition: opacity 0.2s ease;
  }

  .recently-viewed__image {
    aspect-ratio: 253 / 316;
    background-color: #E5E5E5;
    overflow: hidden;
    margin-bottom: 16px; 
  }

  .recently-viewed__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .recently-viewed__name {
    margin: 0;
    font-family: var(--font-primary--family);
    font-weight: var(--font-primary--weight);
    font-size: clamp(11px, calc(15 * 100vw / 1440), 15px);
    line-height: 1.4;
    letter-spacing: 0.05em;
  }

  /* 修正リストNo.26 (2026-07-21): ◯と>の線の色を #D9D9D9 に */
  .recently-viewed__nav {
    position: absolute;
    top: 50%;
    width: 30px;
    height: 30px;
    padding: 0;
    border: 1px solid #D9D9D9;
    border-radius: 50%;
    background-color: var(--color-background);
    color: #D9D9D9;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: opacity 0.2s ease, background-color 0.2s ease, color 0.2s ease;
    z-index: 1;
  }

  .recently-viewed__nav--prev {
    left: 0;
    transform: translate(-50%, -50%);
  }

  .recently-viewed__nav--next {
    left: 100%;
    transform: translate(-50%, -50%);
  }

  .recently-viewed__nav:hover:not(:disabled) {
    background-color: var(--color-foreground);
    color: var(--color-background);
  }

  .recently-viewed__nav:disabled {
    opacity: 0.3;
    cursor: default;
  }

  .recently-viewed__nav svg {
    width: 6px;
    height: 10px;
  }

  .recently-viewed__nav--prev svg {
    transform: scaleX(-1);
  }

  .recently-viewed__nav[hidden] {
    display: none;
  }

  @media (max-width: 768px) {
    .recently-viewed {
      padding-top: 120px; 
    }

    .recently-viewed__title {
      position: static;
      margin-bottom: 0;
      font-size: 24px; /* SPカンプ実測 (2026-07-21, 旧: 20px) */
    }

    .recently-viewed__title-rule {
      display: none;
    }

    .recently-viewed__container {
      margin-left: 0;
      padding-top: 20px;
    }

    .recently-viewed__track {
      grid-auto-columns: calc((100% - 12px) / 2);
      column-gap: 12px;
    }

    .recently-viewed__image {
      margin-bottom: 16px;
    }

    .recently-viewed__name {
      font-size: 14px;
    }

    .recently-viewed__nav--prev {
      left: calc(-1 * var(--page-margin));
      transform: translateY(-50%);
    }

    .recently-viewed__nav--next {
      left: auto;
      right: calc(-1 * var(--page-margin));
      transform: translateY(-50%);
    }
  }
/* END_SECTION:recently-viewed */

/* START_SECTION:search (INDEX:30) */
.search-results {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  }
  .search-results .prev,
  .search-results .page,
  .search-results .next {
    grid-column: 1 / -1;
  }
/* END_SECTION:search */

/* START_SECTION:store-showcase (INDEX:31) */
.store-showcase {
    padding-top: 236px; 
    position: relative;
  }

  .store-showcase__title {
    position: absolute;
    top: 236px;
    left: 0;
    margin: 0;
    font-family: var(--font-primary--family);
    font-weight: 500;
    font-size: 24px; /* 旧: clamp(18px, calc(24*100vw/1440), 24px) — 24px固定指定 (2026-07-05) */
    line-height: 1;
    letter-spacing: 0.05em;
  }

  .store-showcase__title span {
    display: block;
  }

  .store-showcase__title span + span {
    margin-top: 8px;
  }

  .store-showcase__columns {
    margin-left: calc(18.75vw - var(--page-margin)); 
    display: grid;
    grid-template-columns: calc(526 * 100vw / 1440) calc(355 * 100vw / 1440);
    column-gap: calc(49 * 100vw / 1440);
    align-items: start;
  }

  .store-showcase__image {
    aspect-ratio: 526 / 330;
    background-color: #E5E5E5;
    overflow: hidden;
  }

  .store-showcase__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .store-showcase__info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    
    margin-top: 38px;
  }

  .store-showcase__name {
    margin: 0;
    font-family: var(--font-japanese--family);
    font-size: clamp(16px, calc(21 * 100vw / 1440), 21px);
    line-height: 1.4;
    letter-spacing: 0.05em;
  }

  .store-showcase__address {
    margin: 16px 0 0;
    font-family: var(--font-japanese--family);
    font-size: clamp(15px, calc(16 * 100vw / 1440), 16px); /* 下限12→15px (2026-07-05) */
    line-height: 1.6;
    letter-spacing: 0.05em;
  }

  .store-showcase__hours {
    margin: 34px 0 0;
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 16px;
    row-gap: 0;
    align-items: baseline;
    font-family: var(--font-japanese--family);
  }

  .store-showcase__hours dt {
    font-size: 12px; /* 旧: clamp(11px, calc(12*100vw/1440), 12px) — 12px固定指定 (2026-07-05) */
    line-height: 25px;
    letter-spacing: 0.05em;
  }

  .store-showcase__hours dd {
    margin: 0;
    font-size: 14px; /* 旧: clamp(11px, calc(14*100vw/1440), 14px) — 14px固定指定 (2026-07-05) */
    line-height: 25px;
    letter-spacing: 0.05em;
  }

  .store-showcase__notes {
    margin: 24px 0 0;
    font-family: var(--font-japanese--family);
    font-size: 12px; /* 旧: clamp(11px, calc(12*100vw/1440), 12px) — 12px固定指定 (2026-07-05) */
    line-height: 1.7;
    letter-spacing: 0.05em;
  }

  .store-showcase__cta {
    margin-top: 48px;
  }

  @media (max-width: 768px) {
    .store-showcase {
      padding-top: 124px; 
    }

    .store-showcase__title {
      position: static;
      /* font-size: 20px 削除 — 全画面24px固定に統一 (2026-07-05) */
      margin-bottom: 26px;
    }

    .store-showcase__title span + span {
      margin-top: 6px;
    }

    .store-showcase__columns {
      margin-top: 0;
      margin-left: 0;
      display: block;
    }

    .store-showcase__image {
      aspect-ratio: 335 / 207;
      margin-bottom: 34px;
    }

    .store-showcase__info {
      margin-top: 0;
    }

    .store-showcase__name {
      font-size: 18px;
    }

    .store-showcase__address {
      margin-top: 8px;
      font-size: 15px; /* 14 → 15 (2026-07-05) 下限15px指定に合わせる */
      line-height: 1.6;
    }

    .store-showcase__hours {
      margin-top: 26px;
      column-gap: 14px;
    }

    .store-showcase__hours dt,
    .store-showcase__hours dd {
      line-height: 25px;
    }

    .store-showcase__notes {
      margin-top: 20px;
      line-height: 17px;
    }

    .store-showcase__cta {
      margin-top: 40px;
    }
  }

  /* 日本語本文の右端ガタつき対策: 両端揃え＋英単語は収まらない時だけ途中改行 (2026-07-05) */
  .store-showcase__notes {
    text-align: justify;
    overflow-wrap: anywhere;
  }
/* END_SECTION:store-showcase */

/* CSS from block stylesheet tags */
/* START_BLOCK:group (INDEX:32) */
.group {
    display: flex;
    flex-wrap: nowrap;
    overflow: hidden;
    width: 100%;
  }

  .group--horizontal {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding: 0 var(--padding);
  }

  .group--vertical {
    flex-direction: column;
    align-items: var(--alignment);
    padding: var(--padding) 0;
  }
/* END_BLOCK:group */

/* START_BLOCK:text (INDEX:33) */
.text {
    text-align: var(--text-align);
  }
  .text--title {
    font-size: 2rem;
    font-weight: 700;
  }
  .text--subtitle {
    font-size: 1.5rem;
  }
/* END_BLOCK:text */

/* CSS from snippet stylesheet tags */
/* START_SNIPPET:image (INDEX:37) */
.image {
    display: block;
    position: relative;
    overflow: hidden;
    width: 100%;
    height: auto;
  }

  .image > img {
    width: 100%;
    height: auto;
  }
/* END_SNIPPET:image */