
:root{
  --bg:#0b0f14; --ink:#f4f6f9; --muted:#9aa3af; --container:1080px;
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:24px; --space-6:32px; --space-7:48px; --space-8:64px;
  --logo-h:44px; /* SP */
  /* HERO の目安高さ（デスクトップ基準）。INTRO を 1/3 で連動させるために使用 */
  --hero-h: clamp(560px, 68vh, 820px);
  /* INTRO 調整用: デスクトップの張り出し量やスケールを外から制御 */
  --intro-band-min: clamp(260px, 30vh, 360px);
  --intro-text-width: 48ch;
  --intro-collage-x: -10vw;   /* 左に張り出し(マイナス) */
  --intro-collage-scale: 1.22; /* 左コラージュ全体のスケール */
  --intro-person-x: 0vw;      /* 右へ張り出し(プラス) */
  --intro-person-pos: 98%;    /* 右人物の見せ位置(0-100%) 右端寄せ */
}
@media(min-width:768px){ :root{ --logo-h:50px; } }   
@media(min-width:1024px){ :root{ --logo-h:58px; } } 
*{box-sizing:border-box}
html,body{height:100%}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Noto Sans JP","Alata",system-ui,Arial,sans-serif;line-height:1.6;}
img{max-width:100%;display:block;height:auto}
.container{max-width:var(--container);margin:0 auto;padding:0 var(--space-5)}
.grid-3{display:grid;grid-template-columns:1fr;gap:var(--space-5)}
.point-card{position:relative;padding:var(--space-6);border:1px solid rgba(255,255,255,.08);border-radius:16px;background:rgba(255,255,255,.02);overflow:hidden}
.point__ttl{margin:0 0 var(--space-2);font-weight:700}
.point__txt{margin:0;color:var(--muted)}
.point--glow::before,.point--glow::after{
  content:"";position:absolute;inset:-20%;
  background:radial-gradient(circle at var(--x,50%) var(--y,120%), rgba(158,210,255,.18), transparent 55%);
  filter:blur(12px);pointer-events:none;
  animation:glowPulse 4s ease-in-out infinite
}
.point--glow::after{
  inset:-10%;
  background:radial-gradient(circle at var(--x2,20%) var(--y2,-10%), rgba(142,197,255,.22), transparent 60%);
  mix-blend-mode:screen;animation-duration:6s
}
@keyframes glowPulse{0%,100%{opacity:.55}50%{opacity:.9}}
@media (prefers-reduced-motion: reduce){.point--glow::before,.point--glow::after{animation:none;opacity:.35}}
.section__ttl{font-size:clamp(22px,3vw,28px);margin:var(--space-7) 0 var(--space-4)}
.feature__grid{display:grid;gap:var(--space-5)}
@media(min-width:768px){.feature__grid{grid-template-columns:repeat(2,1fr)}}
.feature__ph{background:linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,.02));border-radius:12px;position:relative;overflow:hidden;display:block}
/* 16:9 比率: 擬似要素方式→ aspect-ratio へ変更（画像二段表示防止） */
.ph-16x9{aspect-ratio:16/9;}

.retailers__grid{list-style:none;display:grid;gap:20px;padding:0;margin:var(--space-6) 0}

.retailers__grid{grid-template-columns:repeat(2, minmax(0,1fr));}
@media(min-width:768px){.retailers__grid{grid-template-columns:repeat(3,1fr);}}
@media(min-width:1024px){.retailers__grid{grid-template-columns:repeat(5,1fr);}}
.retailers__grid li{display:flex;align-items:center;justify-content:center;min-height:64px;padding:8px;border:1px solid rgba(255,255,255,.06);border-radius:10px;background:rgba(255,255,255,.02)}
.retailers__logo{height:28px;width:auto;opacity:.9}
@media(min-width:768px){.retailers__grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1024px){.retailers__grid{grid-template-columns:repeat(5,1fr)}}
a:focus-visible,button:focus-visible{outline:2px solid #9ed2ff;outline-offset:2px}
[id]{scroll-margin-top:80px}
:root{
  --logo-h: 48px;        
  --logo-scale: 2.2;       
}
@media (min-width:768px){  :root{ --logo-h: 54px; --logo-scale: 2.4; } }
@media (min-width:1024px){ :root{ --logo-h: 60px; --logo-scale: 2.6; } }

/*================ヒーローエリア=====================================================================================*/
.hero{background:transparent; position:relative; padding:0 0 var(--space-8)}
.hero__kv{margin:0; max-width:none; width:100vw; max-height:860px; object-fit:cover;}
.hero__kv{width: 100%; height: 100%;}
.feature__ph img{width: 100%; height: 100%; display: block; object-fit: cover; max-width:initial!important;}
.hero__logo{position: absolute; z-index: 3; width: 258px; height: auto; top: 8.5vw; left:8vw;}
.hero__logo img{width: 100%; height: 100%; object-fit:cover; object-position:center center;}
.hero__overlay{position:absolute; top: 0; right: 0; bottom: 0; left: 0; margin: auto; display: flex; width: 94%; height: 100%; max-width:1320px; margin: 0 auto; justify-content: space-between;  align-items:center; z-index:2}
.hero__left{align-self:center; margin-top: 100px; width: 346px; display:grid; gap:12px; max-width:520px}
.hero__chip{display:block; background:#ffffff; font-size: 25px; color:#0b0f14; padding:8px 0 9px; font-weight:600; letter-spacing:.07em; width:100%; text-align:center; line-height: 1}
.hero__name{line-height:1.05; margin:0;}
.hero__name-main{display: inline-block; font-size:68px; font-weight:600; letter-spacing: .12em; margin-bottom: .2em; line-height: 1}
.hero__name-suffix{font-size:32px; font-weight:700; margin-left:0em}
.hero__name-ks{display:inline-block; font-size:60px; font-weight:700; margin-bottom: .3em}
.hero__retailer-panel{margin-top: 8px; display:inline-block; box-shadow:0 8px 24px rgba(0,0,0,.25); width: 100%}
.hero__retailer-panel__header{background:#44687e; text-align:center; font-size: 14px; letter-spacing: 2px; padding:6px 16px 8px}
.hero__retailer-panel__body{display:flex; align-items:center; gap:16px; background:#ffffff; color:#0b0f14; padding:20px 18px; width: 100%;}
.hero__retailer-sep{width:2px; align-self:stretch; background:#9aa3af; opacity:.7}
.hero__retailer-text{font-weight:700; letter-spacing:.02em; color:#0b0f14; display:flex; flex-direction:column; line-height:1.3; font-size:14px; width: 52%; text-align: center}
.hero__retailer-logo{display:flex; align-items:center; justify-content:center; padding:0 16px 0 12px; border:none; background:transparent; width: 48%; overflow:hidden}
.hero__right{grid-area:right; align-self:center; padding:clamp(12px,2vw,24px);}
.hero__right img{width: 320px;}
/* HERO 背景画像の拡大（時計を大きく見せる） */
.hero__kv .img-slot img{transform:none; transform-origin:center center}
.hero__kv .img-slot img{transform:none}
@media (min-width:1024px) {
.pc_none_hero{display: none!important;}
.sp_none_hero{display: block!important;}
}
@media (max-width:1024px) {
.pc_none_hero{display: block!important;}
.sp_none_hero{display: none!important;}
}
@media (max-width:1024px) {
.hero{height: 100vh; max-height:1000px;}
.hero__kv{max-height:1000px;}
.hero__logo{position: absolute; z-index: 3; width: 40vw; height: auto; top: 8.5vw; left:8vw;}
.hero__overlay{flex-direction: column; height:300px;}
.sphero-ttl__wrap{display: flex; margin-top: 20vw; gap:10px;}
.hero__left{display: none;}
.hero__chip{background:none; font-size: 4.3vw; color:#ffffff; align-items: center;}
.hero__name{line-height:1.05; margin:0;}
.hero__name-main{font-size:9vw;}
.hero__name-suffix{font-size:6vw;}
.hero__name-ks{display:inline-block; font-size:4vw; font-weight:700; margin-bottom: .3em}
.sp_kansyu{writing-mode: vertical-rl; text-orientation: upright; padding: 14px 2px 0; box-shadow: 2px 2px #000; background: #50687b; font-size: 6.3vw; letter-spacing: .1em; }
.hero__retailers_sp-none{display: none;}
.hero__retailer-panel{width: 100%; padding: 0 38px;}
.hero__retailer-panel__header{background:#44687e; text-align:center; font-size: 12px; letter-spacing: 2px; padding:4px 16px 6px}
.hero__retailer-panel__body{display:flex; align-items:center; gap:8px; background:#ffffff; color:#0b0f14; padding:10px; width: 100%;}
.hero__retailer-sep{width:2px; align-self:stretch; background:#9aa3af; opacity:.7}
.hero__retailer-text{font-weight:700; letter-spacing:.02em; color:#0b0f14; display:flex; flex-direction:column; line-height:1.3; font-size:12px; width: 52%; text-align: center}
.hero__retailer-logo{display:flex; align-items:center; justify-content:center; padding:0 16px 0 12px; border:none; background:transparent; width: 48%; overflow:hidden}
.hero__right img{width: 40vw; padding-top: 52vw;}
/* HERO 背景画像の拡大（時計を大きく見せる） */
.feature__ph img{width: 100%; height: 100%; display: block; object-fit: cover; max-width:initial!important;}
}
@media(min-width:1024px){
  .hero__left__sp{display: none;}
  .hero__retailers_pc-none{display: none;}
}
@media (max-width:768px) {
.hero__right img{width: 40vw; padding-top: 75vw;}
.sphero-ttl__wrap{margin-top: 24vw;}
}
@media(max-width:1024px){.hero{height: 100vh;}}
/* INTRO（白帯・反転配色） */
.intro{position:relative; background:#f5f7fb; color:#0b0f14; padding:var(--space-8) 0; overflow:hidden;}
.intro .feature__ph{background:#e8edf6}
.intro__inner{display: block;}
@media(min-width:1024px){
  /* 上下いっぱいに見せるため INTRO の余白をなくし、内側はストレッチ */
  .intro{ padding:0; }
  .intro__inner{
    /* 左コラージュ / 中央テキスト / 右人物 の比率（見本寄せ） */
    grid-template-columns:.78fr .9fr 1.32fr;
    grid-template-areas:"collage text person";
    align-items:stretch;
    /* 白帯を薄めに（見本の厚み目安） */
    min-height:var(--intro-band-min);
  }
  .intro__collage{grid-area:collage}
  .intro__person{grid-area:person}
  .intro__text{width: 100%; text-align: center; padding: 5em;}
  /* セクション側の下限は撤回し、内側の min-height を基準にする */
  .intro{min-height:unset}
  .intro__inner{min-height:100%}

  /* 画像の中央寄りを解消：左右コンテンツを少しだけ外側へ */
  .intro__collage{ transform: translateX(var(--intro-collage-x)); height:auto; aspect-ratio:16/9; }
  .intro__collage .collage{ transform: scale(var(--intro-collage-scale)); transform-origin:left center; }

  .intro__person{ 
    transform: translateX(var(--intro-person-x)); 
    overflow:hidden; align-self:stretch; height:100%; 
    /* コンテナの右端からビューポート右端までフルブリード */
    justify-self:end;
    width: calc(100% + (50vw - 50%));
    margin-right: calc(50% - 50vw);
  }
  .intro__person .img-slot, .intro__person .img-slot img{ width:100%; height:100%; }
  .intro__person .img-slot img{ object-fit:cover; object-position:var(--intro-person-pos) center; transform:none; }
}
.intro__collage{border-radius:0; background:transparent; box-shadow:none}
.intro__person{position:relative; overflow:hidden; border-radius:0; background:transparent; box-shadow:none}
.intro__text{font-size:1.05rem; line-height:1.9; color:#0b0f14}
.intro__text{text-align:center}
.intro__text p{margin:0}

/* INTRO: 人物画像のレスポンシブ調整（巨大化防止＋クロップ位置の指定） */
.intro__person{
  /* body に与えた CSS 変数で幅を制御。未指定時は無難な既定値 */
  width: clamp(var(--intro-person-min, 240px), var(--intro-person-vw, 40vw), var(--intro-person-max, 560px));
  max-width: 100%;
  aspect-ratio: 16/9;
  justify-self: end; /* 右寄せ配置用（Grid 内） */
}
.intro__person .img-slot{display:block; width:100%; height:100%;}
.intro__person .img-slot img{
  width:100%;
  height:100%;
  object-fit:cover;
  /* 被写体の見せたい位置を CSS 変数で調整 */
  object-position: var(--intro-person-pos-x, 50%) var(--intro-person-pos-y, 50%);
}

/* 右人物のフェード（白→透明）と微グレースケール */
.intro__person::after{content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.86) 14%, rgba(255,255,255,0) 42%)}
.intro__person img{filter:grayscale(18%);}

/* === INTRO コラージュ（5枚重ね）=== */
.intro__collage{position:relative; overflow:visible; aspect-ratio:16/9}
.intro__collage .collage{position:absolute; inset:0}
.intro__collage .collage-item{position:absolute; box-shadow:0 6px 18px rgba(0,0,0,.22); border-radius:8px; overflow:hidden}
.intro__collage .collage-item img{display:block; width:100%; height:auto}

/* 左 5枚：ベース配置（SP/TB） */
/* 左 5枚：ベース配置（SP/TB） */
.intro__collage .i3{left:18%; top:14%; width:32%; transform:rotate(0deg); z-index:5}
.intro__collage .i1{left:-10%; top:-8%; width:44%; transform:rotate(-15deg); z-index:1}
.intro__collage .i2{left:6%; top:36%; width:36%; transform:rotate(-9deg); z-index:2}
.intro__collage .i4{left:44%; top:6%; width:26%; transform:rotate(8deg); z-index:3}
.intro__collage .i5{left:-2%; top:64%; width:34%; transform:rotate(-8deg); z-index:2}

@media(min-width:1024px){
  /* PC：左5枚の配置（見本寄せ版） */
  .intro__collage .i3{left:18%; top:-10%; width:34%; transform:rotate(0deg);  z-index:5}  /* 円グラフ */
  .intro__collage .i1{left:-12%; top:-4%;  width:44%; transform:rotate(-15deg); z-index:2}
  .intro__collage .i2{left:4%;  top:30%;  width:40%; transform:rotate(-8deg);  z-index:3}
  .intro__collage .i4{left:44%; top:12%;  width:25%; transform:rotate(9deg);   z-index:1}
  .intro__collage .i5{left:-2%; top:58%;  width:34%; transform:rotate(-6deg);  z-index:4}
}
/* ================= Revert INTRO to base layout (A版へ巻き戻し) ================= */
/* 右人物のフルブリード張り出しや強い変形を解除し、素直な3カラムに戻す */
.intro{padding:var(--space-8) 0; background:#f5f7fb; color:#0b0f14}
.intro__inner{display:grid; gap:var(--space-6); align-items:center}
@media(min-width:1024px){
  .intro__inner{grid-template-columns:.9fr 1fr 1.2fr; grid-template-areas:"collage text person"}
  .intro__collage{grid-area:collage; transform:none !important; height:auto; aspect-ratio:auto}
  .intro__collage .collage{transform:none !important}
  .intro__text{grid-area:text; align-self:center; justify-self:center}
  .intro__person{grid-area:person; justify-self:end; width:100%; max-width:520px; margin-right:0; transform:none !important; overflow:hidden; height:auto}
  .intro__person .img-slot, .intro__person .img-slot img{width:100%; height:auto}
  .intro__person .img-slot img{object-fit:contain; object-position:center !important; filter:none !important}
}
/* 付与していた白→透明グラデとグレースケールを無効化（A版は除外） */
body:not(.variant-a) .intro__person::after{background:none !important}
body:not(.variant-a) .intro__person img{filter:none !important}

/* A版はSP/TBでもフェード/グレースケールを有効化（幅に依存しない） */
body.variant-a .intro__person{position:relative}
body.variant-a .intro__person::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  /* 左からのごく薄い白フェード（強さ/幅は変数で調整可能） */
  background:linear-gradient(
    90deg,
    rgba(255,255,255, var(--intro-fade-alpha, .86)) 0%,
    rgba(255,255,255, 0) var(--intro-fade-end, 34%)
  ) !important;
  z-index:1; /* 背面（画像より背） */
}
body.variant-a .intro__person img{ filter:grayscale(12%) !important; }

/* ===== A版 INTRO: 右人物を右端フラッシュ＆最大化（他セクションに被らない） ===== */
@media(min-width:1024px){
  body.variant-a{ 
    /* HERO: 一旦高さを約100px圧縮（560→460 / 820→720） */
    --hero-h: clamp(460px, 60vh, 720px);
    /* INTRO 調整用デフォルト（必要に応じてHTML側のbodyにインラインで上書き可能） */
  --intro-vpad: 0px;        /* 余白ゼロ化で高ささらに縮小 */
    --intro-person-min: 260px; /* さらに縮小 */
    --intro-person-vw: 24vw;   /* 幅縮小で高さを追加圧縮 */
  --intro-person-max: 460px;  /* 上限も低く */
  --intro-person-pos-x: 100%; /* さらに左へ寄せ（表示範囲を左へ） */
    --intro-person-pos-y: 44%;  /* 縦の見せ位置 */
  /* 見本寄せ：本文の最大幅（rootの48chから少し絞る） */
  --intro-text-width: 42ch;
  --intro-person-scale: 1;     /* ズーム解除（デバッグ用） */
  --intro-person-shift-x: 0%;  /* 水平シフト解除 */
    --intro-person-shift-y: -8%; /* 上方向へ追加シフト */
  --intro-fade-alpha: .90;      /* 左フェード強さ */
  --intro-fade-end: 40%;        /* フェード幅やや拡張 */
    --intro-edge-nudge: 0px;    /* 右端合わせ微調整（+でさらに右、-で左に戻す） */
    /* 左コラージュの微張り出し＆スケール（見本寄せ） */
  /* コラージュを参照デザイン並みに大きく左へ張り出し */
  --intro-collage-x: -11vw;            /* もう少し左へ張り出し */
  --intro-collage-scale: 1.34;         /* コラージュ全体を更に拡大 */
    /* 見本寄せ：本文の最大幅（やや広めにして高さを詰める） */
    /* 日本語向け：ch ではなく CJK 幅基準 ic を使用（安定した改行） */
  --intro-text-width: 54ic; /* 長文2行を強制改行させないため拡張 */
  --intro-letter-spacing: .06em; /* 文字間隔（調整用） */
  --intro-line-height: 2.05; /* 行間を広めに */
  --intro-font-size: clamp(15px, 1.25vw, 18px); /* フォントサイズ拡大 */
  --intro-person-box-scale: 1.18; /* 枠ごとズーム倍率（視覚的拡大） */
  --intro-person-box-layer: 3;    /* 重なり順（テキストより上=3 / 下=1など） */
    /* 右人物：幅をわずかに拡大（vw 中央値）で存在感を近づける */
  --intro-person-vw: 26vw; /* 重複定義側も縮小 */
  }
  body.variant-a .intro{padding:var(--intro-vpad) 0; background:#ffffff;}
  body.variant-a .intro__inner{
    min-height: unset;   /* 固定はしない */
  }
  body.variant-a .intro__collage{grid-area:collage; transform:none !important; position:relative; height:100%; overflow:visible}
  body.variant-a .intro__text{grid-area:text; align-self:center; justify-self:center}
  /* 見本寄せ：テキストの表示・並び調整（中央寄せ、行間、改行反映） */
  body.variant-a .intro__text{
    width: 100%;
    text-align: center;
    word-break: keep-all;
    font-size: 21px;
    font-weight: 600;
    letter-spacing: 0.15em;
    line-height:2;
    z-index: 10;
    position: relative;
  }
  body.variant-a .intro__text p{
    margin: 0;
    white-space: normal;    /* 自然な折り返し */
    /* Safari 等 balance 未対応で極端に縦長になる場合に備え調整用 */
    display: block;
  }
  body.variant-a .intro__person{
    grid-area:person;
  justify-self:end;
  align-self:stretch; /* セクション全高にフィット */
    /* フルブリードをやめ、可変幅（min-vw-max）で縮むように */
    width: clamp(var(--intro-person-min, 240px), var(--intro-person-vw, 38vw), var(--intro-person-max, 560px));
    max-width: 100%;
  /* 全体表示モード: 余白を保持し高さ拡張を解除 */
  aspect-ratio:auto;
  max-height:400px; /* さらに約150px圧縮 */
  height:auto;
  margin-top:0;
  margin-bottom:0;
    margin-left: 0;         /* figure 既定の余白を除去 */
  /* ビューポート張り出し解除 */
  margin-right:0;
  overflow:visible;
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
    position:relative; z-index:3; /* 最前面 */
    /* 枠ごとズーム: レイアウトスペースは変えず視覚的に拡大（左方向へ） */
    transform: scale(var(--intro-person-box-scale,1)) translateZ(0);
    transform-origin: right center;
    will-change: transform;
    z-index: var(--intro-person-box-layer,3);
  }
  .intro__bg{position: absolute; width: 100%; display: flex; top: 50%; bottom: 50%; justify-content: space-between; align-items: center; z-index: 1;}
  .intro__bg figure{ width: 36vw; overflow: hidden; margin: 0;}
  .intro__bg figure:first-child img{margin-left: -80px;}
  .intro__bg figure:last-child img{margin-right: -80px; height: auto}
  body.variant-a .intro__person .img-slot{display:block}
  body.variant-a .intro__person .img-slot,
  body.variant-a .intro__person .img-slot img{width:100%; height:100%;}
  body.variant-a .intro__person .img-slot img{
    object-fit:contain !important; 
    object-position:center center !important;
    transform:none !important;
    transform-origin:center center !important;
  }
  /* 右人物：白→透明のフェードと軽いグレースケール（A版） */
  body.variant-a .intro__person::after{
    content:""; position:absolute; inset:0; pointer-events:none;
    background:linear-gradient(
      90deg,
      rgba(255,255,255, var(--intro-fade-alpha, .86)) 0%,
      rgba(255,255,255, 0) var(--intro-fade-end, 34%)
    ) !important;
  }
  body.variant-a .intro__person img{ filter:grayscale(12%) !important; }
}
@media(max-width:1024px){
  .intro{padding: 100px 0;}
  .intro__bg{height: 100%; position: absolute; width: 100%; display: flex; top: 0; justify-content: space-between; align-items: center; z-index: 1; right: 0px;}
  .intro__bg figure{ width: auto; overflow: hidden; margin: 0; height: 100%;}
  .intro__bg figure:first-child{display: none;}
  .intro__bg figure:last-child img{margin-right: 0; max-width: initial; height: auto; object-fit: cover; display: block; margin-left: -80vw;}
  .intro__text {text-align: left;padding: 0 38px;z-index: 10;position: relative;text-shadow: 1px 1px #fff; font-size: 3vw;}
  .nowrap{white-space: pre-wrap;}  
  .intro__bg figure:last-child img{max-width: 150%; margin-left: -15vw;}
}
@media(max-width:768px){
  .intro__text {font-size: 4.2vw;}
}
@media(max-width:480px){}
/* variant-a: HERO 下の黒帯（下パディング領域の透明化で見えていた）を解消 */
body.variant-a .hero{ padding-bottom: 0 !important; }
/* ===== TEMP FIX: show full person image (remove horizontal crop) ===== */
@media (min-width:1024px){
  body.variant-a .intro__person{ overflow:visible !important; }
  body.variant-a .intro__person .img-slot img{
    transform:none !important;
    object-position:center center !important;
  }
}
@media (min-width:1024px){body.variant-a .hero__kv{ min-height: var(--hero-h) !important; }}
@media (min-width:1024px){.sp__block{display: none;}}
@media (max-width:1024px){.sp__block{display: inline;}}
.product{position:relative; --product-ratio-h:56.25vw;
  min-height:clamp(480px, var(--product-ratio-h), 860px);
  padding:0; /* 背景画像を“ぴったり”にするため外側余白を内部で管理 */
  display:flex; align-items:center; /* 中央垂直揃え */
  overflow:hidden;
}
.product__grid{display:grid; gap:clamp(32px,4vw,60px); align-items:center; width:100%; padding:150px 38px 100px; max-width: 1300px; margin: 0 auto;}
@media(min-width:1024px){ .product__grid{grid-template-columns:minmax(0,560px) 1fr;} }
.product__copy{max-width:560px; position:relative; z-index:2;}
.product__date-chip{display:inline-block; font-size:.78rem; letter-spacing:.14em; font-weight:600; background:#43697e; color:#ffffff; padding:6px 18px 6px; border-radius:2px; margin:0 0 28px; font-size: 18px}
.product__title{margin:0 0 40px; font-size:42px; line-height:1.4; letter-spacing:.17em; font-weight:600; white-space: nowrap;}
.product__title-line1{white-space:nowrap;}
.product__spec-lines{font-size:.76rem; line-height:1.8; letter-spacing:.08em; margin:0 0 40px;}
.product__spec-lines p{margin:0;}
.product__spec-lines p:nth-child(-n+2){font-size:clamp(.9rem,1.05rem,2.2rem); font-weight:600; letter-spacing:.12em;}
.product__spec-lines p:nth-child(2){margin-bottom:1.8em;}
.product__spec-lines p:nth-child(n+3){font-size:clamp(.8rem,.85rem,1.8rem);}
.product__cta-row{margin:0 0 46px;}
.product__btn{display:inline-flex; align-items:center; justify-content:center; font-size:18px; letter-spacing:.08em; padding:14px 34px 12px; text-decoration:none; color:#ffffff; border:1px solid rgba(158,210,255,.5); border-radius:3px; background:#43697e; box-shadow:0 6px 18px rgba(0,0,0,.4); transition:.3s background,.3s color,.3s border-color;}
.product__btn:hover{background:linear-gradient(180deg,rgba(158,210,255,.26),rgba(16,22,30,.7)); color:#fff;}
.product__retailers-line{font-size:.82rem; line-height:1.8; letter-spacing:.14em; margin:0; opacity:.92;}
.product__retailers-line{font-size:clamp(.9rem,1.35vw,1.28rem); line-height:1.55; font-weight:500;}
.product__retailers-primary{display:inline-block; font-weight:600; letter-spacing:.12em;}
.product__retailers-primary a{color:#fff; text-underline-offset: 0.4rem;}
.product__retailers-primary :hover{opacity: .65;}
.product__retailers-secondary{display:inline-block; margin-top:.42em; letter-spacing:.08em; opacity:.95;}
.product__watch{position: absolute;right: 0;}
@media(max-width:1300px){{left: 0; width: auto;} .product__watch img{width: 100%; height: 100%; overflow: hidden; object-fit: cover;}}
@media(max-width:1024px){
.product__grid{padding:150px 0 100px;}
.product__watch{width: 250%; overflow: hidden; right: -200px; top: 40px}
.product__watch img{width: 100%; overflow: hidden;}
.product__title {margin: 0 0 40px; letter-spacing: .17em; font-size: 32px;}
.product{padding: 0 36px; width: 100%; text-align: center;}
.product__copy{width: 100%; padding:0; margin: 50vh auto 0;}
.product__spec-lines{text-align: center;}
.product__spec-lines p.price{font-size: 3vw!important;}
.product__spec-lines p{font-size: 2.6vw!important;}
.product__date-chip{display:inline-block; letter-spacing:.14em; font-weight:600; background:#43697e; color:#ffffff; padding:6px 18px 6px; border-radius:2px; margin:0 0 14px; font-size: 14px}
.product__retailers-secondary,.product__retailers-primary{font-size: 2.6vw;}
}
@media(max-width:768px){
.product__watch{width: 250%; overflow: hidden; right: -200px; top: 40px}
.product__watch img{width: 100%; overflow: hidden;}
.nowrap{}
.product__title {margin: 0 0 40px; letter-spacing: .17em; font-size: 24px;}
.product{padding: 0 36px; width: 100%; text-align: center;}
.product__copy{width: 100%; padding:0; max-width: auto; margin-top: 200px;}
.product__spec-lines p.price{font-size: 17px!important;}
.product__spec-lines p{font-size: 13px!important;}
.product__spec-lines{text-align: center;}
.product__date-chip{display:inline-block; letter-spacing:.14em; font-weight:600; background:#43697e; color:#ffffff; padding:6px 18px 6px; border-radius:2px; margin:0 0 14px; font-size: 14px}
.product__retailers-secondary,.product__retailers-primary{font-size: 13px;}
}
/* CAST */
@media(max-width:1024px){.cast__sp-none{display: none;}.cast__pc-none{display: block;}}
@media(min-width:1024px){.cast__pc-none{display: none;}}
.cast{padding:88px 0;background:#ffffff;color:#0b0f14;position:relative;}
.cast__layout{display:flex;align-items:flex-start;justify-content: center;width: 100%;max-width: 1600px;margin: 0 auto;padding: 0 21px;container-type: inline-size; gap:20px;}
.cast__headline{margin:0 2.4vw; font-size:clamp(34px,4.2vw,64px); writing-mode:vertical-rl; text-orientation:upright; letter-spacing:.18em; font-weight:700; align-self:center;  color: #222; line-height: 1;}
.cast__col{position: relative; display:flex; flex-direction:column; gap:28px; max-width: 720px; width: calc((100% - 4.2vw) / 2);}
.cast__col--left,.cast__col--right{flex-wrap: nowrap;}
.cast__col--left{flex-direction: row-reverse;}
.cast__col--right{flex-direction: row; justify-content: flex-start;}
.cast__col--left .cast__labels{position: absolute; z-index: 20; left: -55px; padding-top: 6cqi; align-items: flex-start;}
.cast__col--left .cast__visual-block{
  position: relative;
}
.cast__col--left .cast__bio{
  width: 16.7cqi;
  max-width: 227px;
  position: relative;
  line-height: 1.6;
  padding-top: 16.7cqi;
}
.cast__col--right .cast__labels{
  position: absolute;
  z-index: 10;
  right: -55px;
  top:4cqi;
  align-items: flex-end;
}
.cast__col--right .cast__visual-block{
  position: relative;
}
.cast__col--right .cast__bio{
  width: 16.7cqi;
  max-width: 227px;
  position:relative;
  line-height:1.6;
  padding-top: 16.7cqi;
}
.cast__visual-block{
  display:flex;
  flex-direction:column;
  gap:28px;
}
.cast__visual-block .cast__comment{
  margin-top:0;
  width:100%;
  position: relative;
}
.cast__portrait{
  margin:0 auto 36px;
  position:relative;
  width:100%;
  max-width: 450px;
  aspect-ratio:3/4;
  background:#0d1218;
  border:1px solid #d0d7df;
  box-shadow:0 10px 28px rgba(0,0,0,.25); z-index:1;
} 
.cast__portrait .img-slot, .cast__portrait .img-slot img{
  width:100%;
  height:100%;}
.cast__portrait .img-slot img{object-fit:cover; object-position:center top;}

/* ラベル群 */
.cast__labels{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.cast__labels.align-right{align-items:flex-end;}
.cast__role-chip{font-size:1cqi; letter-spacing:2px; font-weight:600; background:#43697e; color:#ffffff; padding:8px 18px 10px; display:inline; margin-top: -12px;}
.cast__name-chip{background:#43697e; color:#ffffff; padding:3px 15px 6px 20px; font-weight:600; font-size: 3.5cqi; letter-spacing:.16em; display:inline-flex; align-items:center; gap:.25em;}
.cast__name-main{white-space:nowrap;}
.cast__name-suffix{font-size: 60%; margin-bottom: -13px;}

/* 名前チップのみ画像へ水平オーバーラップ */
#cast .cast__name-chip{position:relative; z-index:3; box-shadow:0 4px 12px rgba(0,0,0,.18);} 
@media(min-width:1024px){
  #cast{--cast-name-overlap:56px;}
  .cast__col--left .cast__name-chip{transform:translateX(var(--cast-name-overlap));}
  .cast__col--right .cast__name-chip{transform:translateX(calc(var(--cast-name-overlap)*-1));}
  /* 役職チップも氏名チップ基準で揃える */
  .cast__col--left .cast__role-chip{transform:translateX(var(--cast-name-overlap));}
  .cast__col--right .cast__role-chip{transform:translateX(calc(var(--cast-name-overlap)*-1));}
}
.cast__bio{font-size:.72rem; line-height:1.85; letter-spacing:.05em; display:grid; gap:1.2em; max-width:420px;}
/* コメントボックス：内側にピル状ラベル */
.cast__comment{
  position:relative;
  border:2px dotted #c7d0d9;
  background:#ffffff;
  padding:54px 32px 32px;
  border-radius:2px;
  max-width:340px;
}
.cast__comment-label{top:-20px; right: 0;left: 0; margin: 0 auto; display: inline; width: 132px; text-align: center; position:absolute; background:#2f4a60; color:#eef5fb; font-size:18px; letter-spacing:.18em; font-weight:600; padding:11px 0 12px 10px; border-radius:999px; line-height:1; white-space:nowrap;}
.cast__comment-body{font-size:.7rem; line-height:1.9; letter-spacing:.05em;}
.cast__comment{
  width: 100%;
  max-width:450px;
  font-weight: 700;
}
@media(min-width:1024px){.cast__headline{align-self:center;}}
.cast__bio, .cast__comment-body{font-size: 1cqi; line-height: 1.4em;font-weight: 400;text-align: justify;letter-spacing: .65px;}
.cast__comment{padding:30px 24px 16px;}
.cast__comment-body{font-weight: 600;}
@media (max-width: 1024px){
.cast__layout_sp {width: 100%;}
.cast__layout_sp img{width: 100%; height: auto;}
.p_re{position: relative;background-color: #50687b}
.cast{padding: 0;}
.cast__headline{position: absolute; z-index: 30; font-size: 4vw; color: #fff; top:40%; left:50%; display:inline; transform:translate(-50%, -50%); margin: 0; height: auto;}
.cast__name-sp{position: absolute; color: #fff; font-size: 9vw; font-weight: 600; writing-mode: vertical-rl; text-orientation: upright; top:5em; z-index: 10;letter-spacing: 5px;}
.cast__name-sp .small{font-size: 4vw;}
.cast__name-sp_hirota{left: 0; white-space: nowrap;}
.cast__name-sp_ishida{right: 0; white-space: nowrap;}
.cast__layout{background-color: #50687b;}
.cast__labels_wrap{padding: 2vw 13vw; display: flex; justify-content: space-between; background-color: #50687b; position: relative; z-index: 1; gap:20px; font-size: 3vw; color: #fff; letter-spacing: 1; text-decoration:underline;}
.cast__labels_wrap div:last-child{text-align: right;}
.cast__visual-block{margin: 21px 0;}
.cast__comment {padding: 1em; font-size: 3vw;}
.cast__comment::before {content: ''; position: absolute; display: block; width: 13px; height: 13px; left: 0; right: 0; top: -10px; margin: 0 auto; border-top: 2px dotted #c7d0d9; border-right: 2px dotted #c7d0d9; background-color: #fff; transform: rotate(-45deg);}
.cast__comment_left::before {left: 20%; right:inherit;}
.cast__comment_right::before {left: inherit; right:20%;}
.cast__bio, .cast__comment-body {font-size:clamp(12px,3vw,14px);}
.cast__bio_sp_title{font-size:clamp(16px,3.2vw,18px);letter-spacing:1px;border-bottom: 1px solid #222;padding: 10px 0; font-weight: 600;}
.cast__bio_sp{padding: 38px;font-size:clamp(12px,2.8vw,16px);padding-bottom: 40px; text-align: justify;}
.cast__bio_sp div:first-child{padding-bottom: 1em;}
}
@media (max-width: 768px){
.cast__headline{top:35%; font-size: 5vw;}
.cast__name-sp{font-size: 7.5vw;top:6.5em;}
.cast__name-sp .small{font-size: 4vw;}
.cast__labels_wrap{padding: 10px 50px; display: flex; justify-content: space-between; background-color: #50687b; position: relative; z-index: 1; gap:20px; font-size: 13px; color: #fff; letter-spacing: 1; text-decoration:underline;}
}
.ceo{position:relative; padding:100px 0; color:#0b1014; background-color:#cfcfcd; background-image:url("../img/ceo_bg.png"); background-repeat: no-repeat; background-position: center center; background-size: cover;}
.ceo__wrap{background-color: #ffffff; padding-bottom: 96px;}
.ceo__layout{position:relative; display:flex; row-gap:40px; flex-direction: row; padding:0 38px;}
.ceo__photo{margin:0; position:relative; width:100%; aspect-ratio: 1 / 1; background:#101418; overflow:hidden; border-radius:0; box-shadow:0 14px 40px -4px rgba(0,0,0,.3); width:360px;}
.ceo__photo .img-slot, .ceo__photo .img-slot img{width:100%; height:100%;}
.ceo__photo .img-slot img{object-fit:cover; object-position:center top;}
.ceo__content{display:flex; flex-direction:column; gap:40px; width: 100%; flex-direction: row; width: 100%; max-width: 1228px; margin: 0 auto; padding: 0;}
.ceo__heading{display:flex; flex-direction:column; width: 420px;}
.ceo__role{margin:0;font-size:15px; letter-spacing:.65; font-weight:600;color:#2c3135;}
.ceo__role p{margin-bottom:0;}
.ceo__name{margin:0; font-size:38px; letter-spacing:.12em; font-weight:700; white-space:nowrap;}
.ceo__comment{position:relative;background:#fff;padding:16px 16px 10px;border:2px solid #cfd4d8;box-shadow:0 6px 24px rgba(0,0,0,.12);margin-top:auto;width: 320px;line-height: 1.6;font-weight: 600;}
.ceo__comment-label{position:absolute; top:0; left:50%; transform:translate(-50%, -50%); background:#2f4a60; color:#eef5fb; font-size:18px; letter-spacing:.18em; font-weight:600; padding:10px 0 12px 7px; text-align: center; border-radius:999px; line-height:1; box-shadow:0 4px 10px rgba(0,0,0,.18); width: 132px;}
.ceo__comment-body{font-size:15px;line-height: 1.4em;font-weight: 600;text-align: justify;letter-spacing: .65px;}
.cast__comment p{margin: 0;}
@media(max-width:1024px){
.ceo__wrap{padding-bottom: 0;}
.ceo__layout{padding: 0 38px;}
.ceo__content{flex-direction:column;}
.ceo__heading{width: 100%;  order: 2;}
.ceo__role{margin-bottom:0; text-align: center!important; width: 100%;}
.ceo__name{font-size:21px; text-align: center;}
.ceo__heading p{font-size:clamp(10px, 2.4vw, 16px); text-align: justify;}
.ceo__photo{width:80%; aspect-ratio: 1 / 1; order: 1; margin: 0 auto; max-width: 400px;}
.ceo__comment{width: 100%;  order: 3;}
.ceo__comment-body{font-size: clamp(10px, 2.4vw, 16px); font-weight: 400;}
.ceo{background-size: 400%; background-position: bottom;}
}
/* FEATURES 新デザイン */
.features{position:relative; background:#50687b; color:#fff; padding:90px 0 70px; overflow:hidden;}
.features__ttl{margin:0 0 56px; font-size:72px; line-height: 1; letter-spacing:6px; font-weight: 300; font-family: "Alata", sans-serif; text-align: center;}
.feature-block{position:relative;}
.feature-block + .feature-block{margin-top:96px;}
.feature-block__inner{position:relative; width:100%; margin:0 auto; display:grid; align-items:center; max-width: 1600px;}
.feature-block__tblock{width: 50%; max-width: 834px; container-type: inline-size;}
.point__wrap{display: flex;justify-content: flex-start;margin-bottom: 32px;}
.feature-block__point{position: relative; width: 160px; height: 160px; margin-right: 20px;}
.point-circle{position:absolute; width:160px; height:160px; border-radius: 80px; overflow: hidden;z-index: 1;}
.point-circle img{width: auto; height: auto;}
.point-circle__num{position: absolute; top: 0; display: flex; width: 100%; height: 100%; color: #425666; align-items: center; justify-content: center; flex-direction: column;font-size: 60px; z-index: 10;}
.point-circle__num p{margin: 0; line-height: 1; font-family: "Alata", sans-serif; font-weight: 600;}
.point-circle__num p:first-child{font-size: 20px; letter-spacing: 2.5px; font-weight: 500;}
/* 共通テキスト */
.feature-block__text{max-width:600px; display:flex; flex-direction:column; gap:24px; font-size:16px; line-height:1.9; letter-spacing:.04em;}
.feature-block__text--right{justify-self:end;}
.feature-block__heading{margin:0; font-size:4cqi; line-height:1.45; font-weight:700; letter-spacing:.12em;}
.feature-block__lead{margin:0; color:#e2ebf2;}
/* コメント（吹き出しカード） */
.feature-comment{display: flex; align-items: center; justify-content: flex-end; container-type: inline-size; margin-bottom: 5cqi;} 
.feature-comment__avatar{width: 22cqi; margin: 0 0 0 -12cqi;}
.feature-comment__avatar_right{width: 22cqi; margin: 0  0 5cqi 5cqi;}
.feature-comment__avatar_right img{width:100%; height:100%; object-fit:cover; object-position:center top; display:block;}
.feature-comment__body{width: calc(100% - width: 22cqi);position: relative;margin: -30px;
}
.feature-comment__body .hidari{width: calc(100% - width: 22cqi); position:relative; left: 0; bottom: 0;z-index: 1;}
.feature-comment__body .hidari img{width: 525px; height: auto;}
.feature-comment__body .text{position:absolute; z-index: 10; left: 10cqi; color: #222222; width:100%; max-width: calc(100% - 13cqi); top:0;padding: 16px 16px 16px 14px; font-size:clamp(10px,2.5cqi,14px);}
.migi{position: absolute; right: -57px; bottom: 0;}
.feature-comment--alt{background:#ffffff;}
.feature-comment--stack + .feature-comment--stack{margin-top:14px;}

/* 画像配置 */
.feature-block__image{margin:0; position:relative; width:100%; max-width:520px;overflow:hidden; border-radius:4px; box-shadow:0 12px 40px -2px rgba(0,0,0,.5);} 
.feature-block__image .img-slot, .feature-block__image .img-slot img{width:100%; height:100%;}
.feature-block__image .img-slot img{object-fit:cover; object-position:center center;}
.feature-block__hero-watch{margin:0; position:relative; width:100%; max-width:900px; justify-self:start; overflow:hidden; display: flex; align-items: center; margin-top: -50px;}
.feature-block__hero-watch .img-slot, .feature-block__hero-watch .img-slot img{width:auto; height:100%;}
.feature-block__hero-watch .img-slot img{object-fit:cover; object-position:center center;}
.feature-block--1 .feature-block__inner{ container-type: inline-size; display: flex; column-gap:0; justify-content:space-between; max-width: 1520px; margin-bottom: -150px; align-items: flex-start;}
.feature-block--1 .feature-block__text{position:relative;}
.feature-block--1 .feature-block__image{width: 100%; max-width:41cqi; margin: 0;}
.feature-block--2{background:#fff; color:#203440; padding:0px 0 0px; clip-path:polygon(0 25%, 100% 0, 100% 75%, 0 100%); z-index: 10; height: 770px;} 
.feature-block--2 .feature-block__tblock{margin-top: 160px; width: 825px;}
.feature-block--2 .feature-block__inner{display: flex; column-gap:0; align-items:flex-start; max-width: 1700px; container-type: inline-size;}
.feature-block--2 .feature-block__text{max-width: max-content; margin-top: 0;}
.feature-block--2 .feature-block__heading{color:#0c2431;}
.feature-block--2 .feature-block__lead{color:#222222; font-weight: 600;}
.feature-block--2 .feature-comment{flex-direction: row-reverse; justify-content: flex-start;}
.feature-block--2 .feature-comment__body{margin: 0 9cqi 0 0;}
.feature-block--2 .feature-comment__body .text{left: 20px; top: 3px;}
.feature-block--2 .feature-block__image{transform:none; max-width:900px;}
 .feature-block--2 .feature-block__image img{width: 100%;}

/* BLOCK 3: 背景トーンを少し落として再びダーク */
.feature-block--3{margin-top:0!important;}
.feature-block--3 .feature-block__inner{display: flex; column-gap:60px; justify-content: center; container-type: inline-size;}
.feature-block__inner--3{display: flex; column-gap:60px; justify-content: center;}
.feature-block--3 .feature-block__image{justify-self:end;} /* shift slightly right */
.feature-block--3 .feature-comment{flex-direction: row-reverse; justify-content: flex-start;}
.feature-block--3 .feature-comment__body{margin: 0 9cqi 0 0;}
.feature-block--3 .feature-comment__body .text{left: 20px; top: 3px;}
@media(max-width:1279.98px){ .feature-block--3 .feature-block__image{transform:translateX(20px);} }
@media(max-width:1079.98px){ .feature-block--3 .feature-block__image{transform:none;} }
.feature-block--3 .feature-block__text{position:relative;}
@media(max-width:1079.98px){ .feature-block--3 .feature-block__text{padding-left:0;} }
@media(min-width:1079.98px){
  .pc_none{
    display: none;
  }}
/* レスポンシブ（タブレット以下） ****************************************************************************/
@media(max-width:1079.98px){
  .sp_none{
    display: none;
  }
.features{box-sizing: border-box;}
.features__ttl{margin:0 0 40px; font-size: clamp(23px, 4vw, 36px)}
.feature-block{}
.feature-block + .feature-block{}
.feature-block__inner{padding: 0 36px;}
.feature-block__tblock{width: 100%;}
.point__wrap{display: flex;justify-content: center; margin:0 auto 32px; flex-direction: column; position: relative; z-index: 10;}
.feature-block__point{width: 70px; height: 70px; margin: 0 auto 14px;}
.point-circle{width:70px; height:70px; border-radius: 70px; overflow: hidden;}
.point-circle img{width: auto; height: auto;}
.point-circle__num{font-size: 28px;}
.point-circle__num p{margin: 0; line-height: 1; font-family: "Alata", sans-serif; font-weight: 600;}
.point-circle__num p:first-child{font-size: 10px; letter-spacing: 0px; font-weight: 700;}

/* 共通テキスト */
.feature-block__text{max-width:inherit; display:flex; flex-direction:column; gap:24px; font-size:16px; line-height:1.9; letter-spacing:.04em;}
.feature-block__text--right{justify-self:end;}
.feature-block__heading{font-size: clamp(18px, 4.5vw, 36px);text-align: center;letter-spacing: 0;}
.feature-block__lead{font-size: clamp(13px, 2.5vw, 26px)}

/* コメント（吹き出しカード） */
.feature-comment{align-items: flex-start; justify-content: flex-start; margin: 0 0 38px;  max-width: 400px; margin-left: auto; margin-right: auto;} 
.feature-comment__avatar{width: 100px; margin: 0; z-index: 10; position: absolute; bottom: 0; left: -20px;}
.feature-comment__avatar_right{width: 100px; margin:0;}
.feature-comment__avatar_right img{width:100%; height:100%; object-fit:cover; object-position:center top; display:block;}
.feature-comment__body{width: 90%; margin: 0 0 0 auto;}
.feature-comment__body .hidari{position:relative; left: -0px; bottom: 0; z-index: 1; width: 80%;}
.feature-comment__body .hidari img{width: 100%; height: auto;}
.feature-comment__body .text{width:90%; padding: 16px 16px 16px 14px; font-size: clamp(12px, 2vw, 20px); top: 5px; left: 24px;text-align: justify; font-weight: 600;}
.migi{position: absolute; right: -57px; bottom: 0;}
.feature-comment--alt{background:#ffffff;}
.feature-comment--stack + .feature-comment--stack{margin-top:14px;}

/* 画像配置 */
.feature-block__image{margin:0; position:relative; width:100%; max-width:520px;overflow:hidden; border-radius:4px; box-shadow:0 12px 40px -2px rgba(0,0,0,.5);} 
.feature-block__image .img-slot, .feature-block__image .img-slot img{width:100%; height:100%;}
.feature-block__image .img-slot img{object-fit:cover; object-position:center center;}
.feature-block__hero-watch{margin:0; position:relative; width:100%; max-width:900px; justify-self:start; overflow:hidden; display: flex; align-items: center; margin-top: -50px;}
.feature-block__hero-watch .img-slot, .feature-block__hero-watch .img-slot img{max-width:initial!important; height:auto; width: 120vw; margin-left: -10px;}
.feature-block__hero-watch .img-slot img{object-fit:cover; object-position:center center;}
.feature-block--1 .feature-block__inner{flex-direction: column; margin-bottom: -80px;}
.feature-block--1 .feature-block__text{position:relative;}
.feature-block--1 .feature-block__image{width: 100%; max-width:1000px; margin: 0;}

.feature-block--2{clip-path:polygon(0 10%, 100% 0, 100% 90%, 0 100%);height: 380px; margin-top:-200px;} 
.feature-block--2 .feature-block__tblock{margin-top: 160px; width: 100%;}
.feature-block--2 .feature-block__inner{flex-direction: column; padding: 0;}
.feature-block--2 .feature-block__text{max-width: max-content; margin-top: 0;}
.feature-block--2 .feature-block__heading{color:#0c2431;}
.feature-block--2 .feature-block__lead{color:#222222; font-weight: 600;}
.feature-block--2 .feature-comment{flex-direction: row-reverse; justify-content: flex-start;}
.feature-block--2 .feature-comment__body{margin: -40px;}
.feature-block--2 .feature-comment__body .text{left: 5px; top: 3px;}
.feature-block--2 .feature-block__image{transform:none; max-width:900px;}
 .feature-block--2 .feature-block__image img{width: 100%;}

/* BLOCK 3: 背景トーンを少し落として再びダーク */
.feature-block--3{margin-top:0!important;}
.feature-block__tblock--3{width: 100%; padding: 0 36px; z-index: 10; margin-top: -30px;}
.feature-block--3 .feature-block__inner{flex-direction: column;}
.feature-block--3 .feature-block__image{justify-self:end;} /* shift slightly right */
.feature-block--3 .feature-comment{flex-direction: row-reverse; justify-content: flex-start;}
.feature-block--3 .feature-comment__body{margin: -80px;}
.feature-block--3 .feature-comment__body .text{left: 5px; top: 3px;}
@media(max-width:1279.98px){ .feature-block--3 .feature-block__image{transform:translateX(20px);} }
@media(max-width:1079.98px){ .feature-block--3 .feature-block__image{transform:none;} }
.feature-block--3 .feature-block__text{position:relative;}
@media(max-width:1079.98px){ .feature-block--3 .feature-block__text{padding-left:0;} }
.feature-block--3 .feature-comment{align-items: flex-start; justify-content: flex-start; margin: 0 auto 38px;} 
.feature-block--3 .feature-comment__avatar{width: 100px; margin: 0; z-index: 10; position: absolute; bottom: 0; left: -20px;}
.feature-block--3 .feature-comment__avatar_right{width: 100px; margin:0;}
.feature-block--3 .feature-comment__avatar_right img{width:100%; height:100%; object-fit:cover; object-position:center top; display:block;}
.feature-block--3 .feature-comment__body{width: 90%; margin:0 auto 0 0;}
.com_right{width: 90%; margin:0 0 0 auto;}
.mb_r{margin: 0!important;}
.mb_r .text{left:20px!important;}
.feature-block--3 .feature-comment__body .hidari{position:relative; left: -0px; bottom: 0; z-index: 1; width: 80%;}
.feature-block--3 .feature-comment__body .hidari img{width: 100%; height: auto;}
.feature-block--3 .feature-comment__body .text{width:90%; padding: 16px 16px 16px 14px; font-size: clamp(12px, 2vw, 20px); top: 10px; left: 10px;text-align: justify; font-weight: 600;}
.feature-block--3 .migi{position: absolute; right: -57px; bottom: 0;}
.feature-block--3 .feature-comment--alt{background:#ffffff;}
.feature-block--3 .feature-comment--stack + .feature-comment--stack{margin-top:14px;}
  .sp_migi{left: auto!important; right: -28px!important;}
  .pd0{padding: 0!important}
}
/* DETAILS 新レイアウト */
.details{padding:120px 0 140px; background:#fff; color:#111;}
.details__ttl{margin:0 0 56px; font-size:72px; line-height: 1; letter-spacing:3px; font-weight:500; font-family: "Alata", sans-serif; text-align: center;}
.details__inner{max-width:1320px;}
.details__viewer{display:flex; align-items:center; gap:36px; position:relative; margin-bottom:110px;}
.details__arrow{flex:0 0 54px; width:54px; height:54px; display:flex; align-items:center; justify-content:center; border:1px solid #d4dae0; background:rgba(255,255,255,.85); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); border-radius:50%; cursor:default; pointer-events:none; box-shadow:0 4px 18px -4px rgba(0,0,0,.28);}
.details__arrow--prev{order:0;}
.details__arrow--next{order:2;}
.details__grid{order:1; flex:1 1 auto; margin:0;}
.details__arrow-icon{font-size:40px; line-height:1; letter-spacing:0; font-weight:300; color:#0d1a23; position:relative; top:-2px;}
@media(max-width:1199.98px){
  .details__viewer{gap:24px;}
  .details__ttl{margin:0 0 40px; font-size:28px; letter-spacing:3px; font-weight:400;}
}
@media(max-width:1023.98px){
  .details__viewer{gap:18px; margin-bottom:80px;}
  .details__arrow{width:46px; height:46px; flex-basis:46px;}
  .details__arrow-icon{font-size:34px; top:-1px;}
}
.details__grid{display:grid; gap:46px clamp(34px,4vw,60px); grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); align-items:start;}
.detail-card{display:flex; flex-direction:column; gap:18px; text-align:center;}

.detail-card__image{margin:0 auto; width:100%; max-width:360px; aspect-ratio:1/1; background:#e6e8ea; overflow:hidden; position:relative;}
.detail-card__image .img-slot, .detail-card__image .img-slot img{width:100%; height:100%;}
.detail-card__image .img-slot img{object-fit:cover; object-position:center center;}
.detail-card__image .img-slot img.img-rotate-90{object-fit:contain; transform:rotate(90deg); width:100%; height:100%;}
.detail-card__title{margin:0; font-size:24px; letter-spacing:.14em; font-weight:700; padding-top: 0.8em;}
.detail-card__desc{margin:0; font-size:14px; line-height:1.75; letter-spacing:.04em; text-align:left; max-width:360px; margin-inline:auto;}

/* Movie placeholder */
.details__movie-placeholder{position:relative; width:100%; max-width:740px; margin:0 auto; aspect-ratio:16/9; background:#0b0f14; display:flex; align-items:center; justify-content:center; border:1px solid #1e2730; box-shadow:0 8px 28px -4px rgba(0,0,0,.45);}
.details__movie-label{color:#fff; font-size:.9rem; letter-spacing:.28em; font-weight:600;}
@media(max-width:1023.98px){
  .details{padding:90px 0 110px;}
  .details__grid{gap:40px 28px; margin-bottom:80px;}
  .detail-card__title{font-size:14.8px;}
  .detail-card__desc{font-size:13px; line-height:1.7;}
}

/* PRODUCT GALLERY (Section 8) */
.gallery{background:#50687b; color:#fff; padding:120px 0 140px; position:relative;}
.gallery__inner{max-width:1025px;}
.gallery__layout{display:grid; grid-template-columns:minmax(480px,560px) minmax(380px,480px); column-gap:90px; align-items:flex-start;}
.gallery__visual{display:flex; flex-direction:column; gap:26px;}
.gallery__info{display:flex; flex-direction:column; gap:22px; justify-content: center; align-items: flex-start;}
.gallery__title{margin:0; font-size:clamp(30px,3.2vw,42px); line-height:1.25; letter-spacing:.18em; font-weight:600;}
.gallery__ref{margin:0; font-size:.7rem; line-height:1.7; letter-spacing:.14em; font-weight:500;}
.gallery__info .price{margin:0; font-size:18px; line-height:1.7; letter-spacing:.14em; font-weight:500;}
.gallery__specs{margin:0; padding:0; list-style:none; gap:0; font-size:14px; line-height:1.75; letter-spacing:2px; font-weight: 300; padding: 0;}
.gallery__specs li{position:relative; padding-left:0; margin: 0 0 1px;}
.gallery__cta{display:inline-block; margin-top:12px; background:#fff; color:#203440; padding:10px 38px 11px; font-size:.62rem; letter-spacing:.22em; font-weight:600; text-decoration:none; border:1px solid #fff; transition:.25s background,.25s color;}
.gallery__cta:hover{background:transparent; color:#fff;}

/* Overrides: Gallery typography adjustments */
.gallery__title{font-size:22px; line-height:1.8;}
.gallery__ref{font-size:16px; line-height:1.65; letter-spacing:.16em;}
.gallery__cta{margin-top:14px; padding:12px 40px 13px; font-size:16px; display: inline; box-shadow: 4px 4px 0 0 #445562;}
.gallery__title_sp{text-align: center; display: none;}
@media(max-width:1199.98px){
  .gallery__layout{grid-template-columns:1fr 1fr; column-gap:60px;}
}
@media(max-width:1023.98px){
  .gallery{padding:90px 0 110px;}
  .gallery__title_sp{display: block;}
  .gallery__layout{grid-template-columns:1fr; row-gap:54px;}
  .gallery__visual{order:1;}
  .gallery__info{order:2; justify-content: center; width: 100%;}
  .gallery__main{aspect-ratio:1/1;}
  .gallery__thumbs{grid-template-columns:repeat(auto-fit,minmax(66px,1fr));}
}
@media(max-width:1023.98px){
  .gallery__title,
  .gallery__ref,
  .gallery__specs,
  .gallery__info .price{text-align: center; width: 100%;}
  .gallery__info .price{margin:0; font-size:3vw!important; line-height:1.7; letter-spacing:.14em; font-weight:500;}
  .gallery__title{display: none;}
  .gallery__ref{font-size:2.6vw!important;;}
  .gallery__specs{font-size:2.6vw!important;;}
  .gallery__cta{margin: 0 auto; padding:11px 1.5em 12px; font-size: 2.6vw; letter-spacing: 1px;}
}
@media(max-width:768px){
  .gallery__title_sp{font-size: 20px;}
  .gallery__info .price{font-size:17px!important;}
  .gallery__ref{font-size:13px!important;}
  .gallery__specs{font-size:12.5px!important; letter-spacing: 0; font-weight: 400;}
  .gallery__cta{font-size: 16px!important; letter-spacing: 0;}
}

/* RETAILERS Cards */
.retailers{padding:110px 38px 140px; background:#fff; color:#0c1114;}
.retailers__ttl{margin:0 0 56px; font-size:72px; line-height: 1; letter-spacing:3px; font-weight:500; font-family: "Alata", sans-serif; text-align: center;}
.retailers a{text-decoration: none; color:#0c1114;}
/*.retailers a:hover{opacity:.65;}*/
/* ISHIDA block */
.retailers-block--ishida{border:1px solid #181d20; padding:44px 70px 44px; max-width:1200px; margin:0 auto 50px; background:#fff;}
.retailers-block__head{text-align:center; margin:0 0 20px;}
.retailers-block__logo-placeholder{display:flex; align-items:center; justify-content:center; position:relative; height:76px; margin: 0 auto; overflow: hidden;}
.retailers-block__logo-placeholder img{width: 400px; height: auto;}
.retailers-block__logo-hint{font-size:.6rem; letter-spacing:.28em; font-weight:600; color:#5a666e; opacity:.75;}
/*.retailers-list{margin:0; padding:0; list-style:none; display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:44px 70px; justify-items:center; flex-wrap: nowrap;}*/
.retailers-list{display: flex; flex-wrap: nowrap; margin:0; padding:0; list-style:none; gap:44px 70px; justify-items:center;}
.retailer-store{max-width:300px; text-align:center;}
.retailer-store__figure{margin:0 0 24px; width:100%; aspect-ratio:4/3; background:#e4e8ec; overflow:hidden; position:relative;}
.retailer-store__figure .img-slot, .retailer-store__figure img{width:100%; height:100%;}
.retailer-store__figure img{object-fit:cover; object-position:center center;}
.retailer-store__name{margin:0 0 12px; font-size:26px; letter-spacing:.08em; font-weight:600;}
.retailer-store__info{margin:0; font-size:14px; line-height:1.7; letter-spacing:.04em;}
/* Online block */
.retailers-block--online{border:1px solid #181d20; background:#fff; padding:0; max-width:1200px; margin:0 auto; height: 150px; display:flex; flex-direction: column; justify-content:center; align-items:center; gap:8%;}
.retailers-online__logo{width: 260px; margin: 0 auto;}
.retailers-online__text{text-align:center; line-height: 1.2;}
.retailers-online__logo img{display:block; height:auto; width:100%;}
.retailers-online__label{margin:0 0 5px; font-size:18px; letter-spacing:1px; font-weight:500;}
.retailers-online__url{margin:0; font-size:18px; letter-spacing:.12em; font-weight:600; padding-top: 3.4em;}
.retailers-online__url a{color:#0c1114; text-decoration:none; border-bottom:1px solid #0c1114; padding-bottom:2px;}
.retailers-online__url a:hover{opacity:.65;}
.sp__block{display: none;}
@media(max-width:1024px){.retailers{padding:70px 36px;}.retailers__ttl{margin:0 0 40px; font-size:28px; letter-spacing:3px; font-weight:400;}}
@media(max-width:1024px){
.retailers{padding:70px 36px;}
.retailers__ttl{margin:0 0 40px; font-size:28px; letter-spacing:3px; font-weight:400;}
.retailers-block--ishida{padding:36px 14px 40px; margin-bottom:22px;}
.retailers-list{gap:20px 20px; justify-items:left; align-items: center;}
.retailer-store__figure{margin:0 20px 0 0; width:140px; aspect-ratio:4/3; overflow:hidden; position:relative;}
.retailer-store__figure img{object-fit:cover; object-position:center center;}
.retailer-store__name{margin:0 0 4px; font-size:14px;}
.retailer-store__info{margin:0; font-size:11px; line-height:1.4; letter-spacing:0;}
.retailers a{display: flex; flex-direction: row; flex-wrap: nowrap; align-items: center; justify-content: center;}
.retailer-store__wrap{width: 50%; text-align: left;}
.sp__block{display: inline;}
/* Online block */
.retailers-block--online{height: 190px; flex-direction:column; gap:10px;}
.retailers-online__logo{margin: 0 auto 20px; width: 190px;}
.retailers-online__label{margin-top:20px; font-size:13px; width: 100%; text-align: center;}
.retailers-online__url{margin:0; font-size:14px; width: 100%; text-align: center;}
 .retailers-online__url a {border-bottom: none;}
.retailers-online__text{margin-top: 0;}
}
/* ABOUT 最終セクション */
.about{position:relative; padding: 86px 0; color:#0b1014; background-color:#d0d0cd; background-image:url("../img/ceo_bg.png"); background-repeat: no-repeat; background-position: center center; background-size: cover; margin-top: -1px;}
.about__content{max-width:840px; margin:0 auto; text-align:center;}
.about__label{margin:0; font-size:34px; letter-spacing:2px; font-weight:500; font-family: "Alata", sans-serif;}
.about__title{margin:-10px 0 1em; font-size:72px; line-height: 1; letter-spacing:3px; font-weight:500; font-family: "Alata", sans-serif;}
.about__body{display:flex; flex-direction:column; gap:26px; font-size:16px; line-height:2.0; letter-spacing:1px; width: 100%; max-width: 700px; margin: 0 auto; text-align: left;}
.about__body p{margin:0; font-weight: 600;}
@media(max-width:1024px){
.about__body{font-size: 2.6vw!important;}
.about__label{font-size:30px;}
.about__title{font-size:36px;}
}
@media(max-width:768px){
.about__label{font-size:30px;}
.about__title{font-size:36px;}
.about__body{padding: 0 36px;} 
.about__body p{font-size: 14px!important; font-weight: 500!important; line-height: 1.5; text-align: justify;} 
  .about{background-size:400%; background-position: bottom;}
}

.retailers_b_wrap{
  width: 100%;
  display: flex;
  flex-direction: row-reverse;
  flex-wrap: nowrap;
  max-width: 1440px;
  margin: 0 auto;
  gap:40px;
}
@media(max-width:1079.98px){
.retailers-list{
  display: flex; flex-wrap: wrap; margin:0; padding:0; list-style:none; gap:44px 70px; justify-items:center;}
  .retailers_b_wrap{
  flex-direction: column;
  flex-wrap: wrap;
  gap:40px;
    width: 100%;
    max-width: 300px;
    margin: 0 auto;
}
  .b_online{
    padding:36px 14px 40px;
    width: 100%;
  }
.b_online .retailers-list{gap:20px 20px; justify-items:center; align-items: center;}
.b_online .retailer-store__figure{margin:0 auto 0; width:100%; aspect-ratio:4/3; overflow:hidden; position:relative;}
.retailer-store__figure img{object-fit:cover; object-position:center center;}
.retailer-store__name{margin:0 0 4px; font-size:14px;}
.retailer-store__info{margin:0; font-size:11px; line-height:1.4; letter-spacing:0; justify-content: center;}
.b_online .retailers a{display: flex; flex-direction: row; flex-wrap: nowrap; align-items: center; justify-content: center;}
.b_online .retailer-store__wrap{width: 100%; text-align: center;}
.sp__block{display: inline;}
.retailers-online__url {
    margin: 0;
    font-size: 18px;
    letter-spacing: .12em;
    font-weight: 600;
    padding-top: 1em;
  width: 100%;
  text-align: center;
}
}