 :root {
   /* Brand */
   --brand-blue: #1f4e9e;
   --brand-blue-light: #81a3c9;

   /* Base */
   --white: #fff;
   --gray-50: #F7F7F7;
   --gray-100: #EEEEEE;
   --gray-300: #CCCCCC;
   --gray-600: #666666;
   --gray-800: #333333;
   --black: #111111;

   --border: #DDDDDD;

   /* Layout */
   --content: 1120px;
   --gutter: 24px;

   /* Type */
   --font: system-ui, -apple-system, "Segoe UI", Roboto, "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", sans-serif;
   --h1: 32px;
   --h2: 24px;
   --h3: 18px;
   --body: 15px;
   --small: 13px;

   --lh-heading: 1.4;
   --lh-body: 1.8;

   --radius: 2px;
 }



 /* ===== base ===== */
 * {
   box-sizing: border-box;
 }

 body {
   height: 100%;
   overflow-x: hidden;
 }

 html {
   scroll-behavior: smooth;
   height: 100%;
   overflow-x: hidden;
 }

 body {
   margin: 0;
   font-family: var(--font);
   color: var(--black);
   background: var(--white);
 }

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

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

 .container {
   width: min(1100px, calc(100% - 48px));
   margin: 0 auto;
 }

 .rule {
   border: none;
   border-top: 1px solid #d9d9d9;
   margin: 16px 0 28px;
 }

 .sp-only {
   display: none;
 }

 @media (max-width: 768px) {
   .sp-only {
     display: inline;
   }


 }

 .pc-only {
   display: none;
 }

 @media (min-width: 769px) {
   .pc-only {
     display: inline;
   }
 }

 /* ===== buttons ===== */
 .btn {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   border: 1px solid transparent;
   border-radius: 2px;
   padding: 10px 14px;
   font-weight: 600;
   cursor: pointer;
   color: var(--white);
 }

 .btn--primary {
   background: var(--brand-blue);
 }

 .btn:hover {
   background: var(--brand-blue-light);
 }

 .btn--wide {
   width: 240px;
 }

 /* ===== header ===== */
 .header {
   border-bottom: 1px solid var(--border);
   position: fixed;
   top: 0;
   left: 0;
   width: 100%;
   z-index: 9999;
   background: #fff;
 }


 main {
   padding-top: 72px;
 }


 .header__inner {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 16px;
   padding: 8px 0;
 }


 .brand__logo {
   height: 100%;
   width: auto;
   max-width: 300px;
   object-fit: contain;
   margin-top: 5px;
 }

 @media (max-width:769px) {
   .brand__logo {

     max-width: 250px;

   }

 }


 .brand {
   font-weight: 700;
   letter-spacing: .02em;
 }

 .brand__mark {
   width: 18px;
   height: 18px;
   background: var(--kc-red);
   border-radius: 2px;
 }

 .header__nav {
   display: flex;
   gap: 18px;
   color: var(--gray-800);
   font-size: 14px;
   white-space: nowrap;
 }


 .header-contact {
   display: flex;
   align-items: center;
   gap: 16px;
 }

 /* 電話番号 */
 .header-tel {
   display: flex;
   align-items: center;
   gap: 6px;
   font-size: 24px;
   font-weight: 700;
   color: #111;
 }

 .header-tel a {
   color: inherit;
   text-decoration: none;
 }

 .tel-icon {
   font-size: 24px;
 }

 /* お問い合わせボタン */
 .header-cta {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   height: 48px;
   padding: 0 16px;
   background: var(--brand-blue);
   color: var(--white);
   font-size: 16px;
   font-weight: 700;
   text-decoration: none;
   white-space: nowrap;
 }

 .header-cta:hover {
   background: var(--brand-blue-light);
 }

 .mail-icon {
   font-size: 28px;
   margin-right: 5px;
 }


 /* ハンバーガー：PCは隠す */
 .hamburger {
   display: none;
   width: 44px;
   height: 44px;
   margin-left: auto;
   background: #fff;
   border: 1px solid #1f4e9e;
   cursor: pointer;
   position: relative;
   z-index: 10001;
   /* メニューより上 */
 }

 .hamburger span {
   position: absolute;
   left: 10px;
   right: 10px;
   height: 2px;
   background: #1f4e9e;
   transition: .25s;
 }

 .hamburger span:nth-child(1) {
   top: 9px;
 }

 .hamburger span:nth-child(2) {
   top: 16px;
 }

 .hamburger span:nth-child(3) {
   top: 23px;
 }

 .hamburger__text {
   position: absolute;
   left: 0;
   right: 0;
   bottom: 4px;
   font-size: 10px;
   line-height: 1;
   color: #1f4e9e;
 }

 /* モバイルメニュー：PCは隠す */
 .mobile-nav {
   display: none;
 }


 @media (max-width:1024px) {


   .header__nav,
   .header-contact {
     display: none;
   }

   .hamburger {
     display: inline-block;
   }

   .mobile-nav {
     display: block;
     position: fixed;
     top: 0;
     right: -100%;
     width: min(320px, 80vw);
     height: 100vh;
     background: #fff;
     padding: 88px 20px 24px;
     /* ヘッダー分だけ空ける */
     transition: .25s;
     z-index: 10000;
     box-shadow: -10px 0 20px rgba(0, 0, 0, .08);
   }

   .mobile-nav a {
     display: block;
     padding: 12px 0;
     border-bottom: 1px solid #eee;
   }

   .mobile-nav.is-open {
     right: 0;
   }
 }

 /* 開いたとき×にする（任意） */
 .hamburger.is-open span:nth-child(1) {
   top: 17px;
   transform: rotate(45deg);
 }

 .hamburger.is-open span:nth-child(2) {
   opacity: 0;
 }

 .hamburger.is-open span:nth-child(3) {
   top: 17px;
   transform: rotate(-45deg);
 }


 /* ===== TOP HERO ===== */
 .topHero {
   background: linear-gradient(90deg,
       #161f2f 0%,
       #243149 35%,
       #313c4d 70%,
       #3b4453 100%);
   color: #fff;
 }

 .topHero__title img {
   width: 100%;
   display: block;
 }

 @media (max-width: 768px) {
   .topHero .container {
     max-width: none;
     width: 100%;
     padding-left: 0;
     padding-right: 0;
   }

   .topHero__title img {
     height: 190px;
     object-fit: cover;
     object-position: left center;
     /* 左を優先して見せる */
   }
 }


 /* ===== 製品ページ｜hero ===== */
 .hero {
   padding: 32px 0 10px;
 }

 .heroVisual {
   width: 100%;
   height: auto;
   display: block;
   margin-top: 20px;
 }

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



 /* ===== section ===== */
 .section {
   padding: 56px 0;
 }

 .section--tightTop {
   padding-top: 18px;
 }

 .section__title {
   margin: 0;
   font-size: 24px;
   font-weight: 700;
   letter-spacing: .02em;
 }

 /* 本体 2カラム */
 .twoCol {
   display: grid;
   grid-template-columns: 1fr 420px;
   gap: 34px;
   align-items: flex-start;
 }

 .lead {
   font-size: 16px;
   color: #333;
   line-height: 1.9;
 }

 .spec {
   margin-top: 18px;
   width: min(520px, 100%);
 }

 .specTable {
   width: 100%;
   border-collapse: collapse;
   font-size: 16px;
 }

 .specTable th {
   width: 35%;
   background: #81a3c9;
   padding: 10px 12px;
   text-align: left;
   font-weight: 700;
 }

 .specTable td {
   background: #f3f6fb;
   padding: 10px 12px;
   border-left: 1px solid #fff;
 }

 .specTable th,
 .specTable td {
   border: 1px solid #fff;
 }

 .floatImg {
   width: min(480px, 100%);
   margin-left: auto;
 }

 @media (max-width:768px) {
   .floatImg {
     width: 250px;
   }

   .section {
     padding: 25px 0;
   }

 }

 /* 特色 */
 .featureBody {
   padding-left: 14px;
 }

 .featureList {
   list-style: none;
   padding: 0;
   margin: 0;
   display: grid;
   gap: 18px;
 }

 .featureList__item {
   display: grid;
   grid-template-columns: 74px 1fr;
   gap: 18px;
   border-bottom: 1px solid #eee;
   padding: 12px 0 18px;
 }

 .featureNo {
   font-size: 64px;
   font-weight: 700;
   font-style: italic;
   color: #e9eef8;
   line-height: 1;
 }

 .featureTitle {
   position: relative;
   margin: 0;
   padding-left: 14px;
   font-size: 24px;
   color: #1f4e9e;
   font-weight: 800;
 }

 .featureTitle::before {
   content: "";
   position: absolute;
   left: 0;
   top: 3px;
   bottom: 3px;
   width: 3px;
   background: linear-gradient(to bottom, #1f4e9e, #7fa0d3);
 }

 .featureText {
   margin: 6px 0 4;
   font-size: 16px;
   color: #333;
 }

 /* =========================
   レスポンシブ
========================= */
 @media (max-width:768px) {
   .featureTitle {

     font-size: 20px;

   }
 }

 /* 動画 */
 .videoBox {
   width: 100%;
   max-width: 720px;
   aspect-ratio: 16 / 9;
   margin: 56px auto;
 }

 .videoBox iframe {
   width: 100%;
   height: 100%;
   border: none;
 }

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




 /* =========================
   フィルム（テーブル共通）
========================= */
 .filmBlock {
   margin-top: 50px;
 }

 .dataTable {
   --unit-col: 200px;
   /* 左の単位列幅 */
   --cols: 2;
   /* 製品列数（デフォルト2列） */
   width: 100%;
   border-collapse: collapse;
   font-size: 14px;
   margin-top: 20px;
   table-layout: fixed;
 }

 /* 先頭（単位列）固定 */
 .dataTable thead th:first-child,
 .dataTable tbody th:first-child {
   width: var(--unit-col);
 }

 /* 見出し（青帯） */
 .dataTable thead th {
   background: #1f4e9e;
   color: #fff;
   padding: 10px 8px;
   text-align: center;
   font-weight: 700;
 }

 .dataTable th,
 .dataTable td {
   white-space: normal;
 }

 /* 画像行 */
 .dataTable--withSamples thead .dataTable__sampleRow th {
   background: #fff;
   padding: 14px 8px 10px;
 }

 /* 左の項目列 */
 .dataTable tbody th {
   background: #81a3c9;
   padding: 8px 16px;
   text-align: left;
   white-space: nowrap;
 }

 /* データセル */
 .dataTable td {
   background: #f5f7fb;
   padding: 8px 10px;
   text-align: center;
   border-left: 1px solid #fff;
 }

 /* 罫線 */
 .dataTable th,
 .dataTable td {
   border: 1px solid #fff;
 }

 /* サンプル画像 */
 .sampleImg {
   width: 100%;
   max-width: 220px;
   height: auto;
   display: block;
   margin: 0 auto;
   object-fit: contain;
 }

 /* =========================
   幅調整：上段の「製品列数」を基準に揃える
   - twoCols：上段のうち「2列分」表示
   - oneCol ：上段のうち「1列分」表示（＝半分）
========================= */

 /* 上段が2列の商品なら 1列分＝1/2 */
 .dataTable--oneCol {
   width: calc(var(--unit-col) + (100% - var(--unit-col)) / var(--cols) * 1);
 }

 /* 上段が3列商品なら 2列分＝2/3（前に成功してたやつと同じ意味） */
 .dataTable--twoCols {
   width: calc(var(--unit-col) + (100% - var(--unit-col)) / var(--cols) * 2);
 }

 /* =========================
   レスポンシブ
========================= */
 @media (max-width:768px) {
   .dataTable {
     --unit-col: 120px;

     table-layout: fixed;
     border-collapse: collapse;
   }


 }

 /* アフターサービス（グレー帯） */
 .afterService {
   background: linear-gradient(135deg, #d9d9d9 0%, #ffffff 90%);
   padding: 90px 0;
   margin-top: 80px;
   position: relative;
   overflow: hidden;
 }

 .afterService__bg {
   position: absolute;
   inset: 0;
   pointer-events: none;
   z-index: 0;
 }

 .afterService__img {
   position: absolute;
 }

 .afterService__img--left1 {
   left: 180px;
   bottom: 190px;
   width: 300px;
 }

 .afterService__img--left2 {
   left: 0;
   bottom: -70px;
   width: 350px;
 }

 .afterService__img--right1 {
   right: 180px;
   bottom: 150px;
   width: 350px;
 }

 .afterService__img--right2 {
   right: 20px;
   bottom: -50px;
   width: 300px;
 }

 .afterService__content {
   text-align: center;
   width: min(600px, 100%);
 }

 .afterService__inner {
   width: min(1200px, calc(100% - 48px));
   margin: 0 auto;
   position: relative;
   min-height: 220px;
   display: flex;
   align-items: center;
   justify-content: center;
   z-index: 1;
 }

 .afterService__title {
   margin: 0 0 10px;
   font-size: 24px;
   font-weight: 800;
 }

 .afterService__text {
   font-size: 14px;
   color: #222;
   line-height: 1.9;
   gap: 10px;
   background: linear-gradient(135deg,
       rgba(217, 217, 217, 0.6) 0%,
       rgba(255, 255, 255, 0.7) 90%);

 }

 /* .afterService__cards{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
} */
 .afterCard {
   background: #fff;
   border: 1px solid #ddd;
   padding: 10px 12px;
   margin-bottom: 4px;
   font-weight: 700;
   font-size: 16px;
 }

 @media (min-width: 769px) and (max-width: 1024px) {

   .afterService__img--left1 {
     width: 64vw;
     max-width: 250px;
     left: 5vw;
     top: 5px;
   }

   .afterService__img--left2 {
     width: 64vw;
     max-width: 300px;
     left: -10vw;
   }

   .afterService__img--right1 {
     width: 64vw;
     max-width: 250px;
     right: 5vw;
     top: 5px;
   }

   .afterService__img--right2 {
     width: 64vw;
     max-width: 300px;
     right: -10vw;
   }
 }

 @media (max-width: 768px) {
   .afterService {
     padding: 64px 0 72px;
   }

   .afterService__img--left1 {
     width: 30vw;
     max-width: 190px;
     left: -6vw;
     top: 5px;
   }

   .afterService__img--left2 {
     width: 64vw;
     max-width: 180px;
     left: -10vw;
     bottom: -20px;
   }

   .afterService__img--right1 {
     width: 36vw;
     max-width: 200px;
     right: -8vw;
     top: 5px;
   }

   .afterService__img--right2 {
     width: 42vw;
     max-width: 180px;
     right: -10vw;
     bottom: -20px;
   }
 }

 /* お問い合わせフォーム */
 .contact {
   background: linear-gradient(#1b1b1b, #0f0f0f);
   color: #fff;
   padding: 60px 0 48px;
 }

 .contact__title {
   margin: 0;
   font-size: 26px;
   font-weight: 800;
 }

 .contact__lead {
   margin: 10px 0 22px;
   font-size: 14px;
   color: #ddd;
 }



 .form {
   background: #fff;
   color: #111;
   padding: 32px;
   border-radius: 2px;
   max-width: --content;
 }

 .form__row {
   display: flex;
   flex-direction: column;
   gap: 6px;
   margin-bottom: 16px;
 }

 .form__label {
   font-size: 16px;
   font-weight: 700;
   margin-bottom: 4px;
 }

 input[type="text"],
 input[type="email"],
 input[type="tel"] {
   width: 50%;
 }

 .form-row--75 input[type="text"] {
   width: 75%;
 }

 /* 送信ボタン位置 */
 .form__actions {
   display: flex;
   justify-content: flex-start;
   margin-top: 16px;
 }

 .form__controls--inline {
   display: flex;
   gap: 16px;
   align-items: center;
   font-size: 16px;
 }

 .form__input,
 .form__textarea {
   width: 100%;
   border: 1px solid #d6d6d6;
   padding: 10px 12px;
   border-radius: 2px;
   font-size: 14px;
 }

 .form__actions {
   display: flex;
   justify-content: flex-start;
   margin-top: 16px;
 }

 .contact__note {
   margin-top: 12px;
   font-size: 12px;
   color: #ccc;
 }

 .contact-tel {
   text-align: center;
 }

 .contact-hours__tel-icon {
   font-size: 32px;
 }

 .contact-tel a {
   font-size: 36px;
   font-weight: 600;
 }

 .contact-hours__time {
   font-size: 12px;
 }

 /* スマホ対応 */
 @media (max-width: 768px) {

   input[type="text"],
   input[type="email"],
   input[type="tel"] {
     width: 100%;
   }

   .form-row--75 input[type="text"] {
     width: 100%;
   }

   .contact-tel a {
     font-size: 28px;
     font-weight: 600;
   }

   .contact-hours__tel-icon {
     font-size: 24px;
   }

 }

 /* お問い合わせ確認ページ */
 .confirm-container {
   width: min(800px, calc(100% - 56px));
   margin: 48px auto;
 }

 .confirm {
   padding: 48px 0;
 }

 .confirm__title {
   margin: 0 0 18px;
   font-size: 18px;
   font-weight: 800;
 }

 .confirm__message {
   font-size: 12px;
 }

 .confirmList {
   background: #fff;
   border: 1px solid #ddd;
   padding: 18px;
 }

 .confirmRow {
   display: grid;
   grid-template-columns: 140px 1fr;
   gap: 12px;
   padding: 10px 0;
   border-bottom: 1px solid #eee;
 }

 .confirmRow:last-child {
   border-bottom: none;
 }

 .confirmRow dt {
   font-weight: 700;
   font-size: 13px;
   color: #222;
 }

 .confirmRow dd {
   margin: 0;
   font-size: 13px;
   line-height: 1.8;
   color: #222;
 }

 .confirmActions {
   display: flex;
   gap: 12px;
   justify-content: center;
   margin-top: 18px;
 }




 /* 追尾CTA */

 .floating-contact {
   position: fixed;
   right: 0;
   bottom: 52%;
   z-index: 9999;
   display: none;
   transition: opacity .3s;
 }



 .floating-contact img {
   width: 90px;
   height: auto;
   display: block;
 }



 /* スマホだけ表示 */
 @media (max-width:768px) {
   .floating-contact {
     display: block;
   }

   /* メニュー開いてる間だけ隠す */
   body.is-menu-open .floating-contact {
     display: none;
   }


 }



 /* Footer */
 .site-footer {
   font-size: 12px;
   border-top: 1px solid var(--border);
 }

 .footer-inner {
   max-width: 1200px;
   margin: 0 auto;
   padding: 8px 24px;
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 24px;
 }

 .footer-logo img {
   height: 48px;
   display: block;
 }

 .footer-nav {
   display: flex;
   align-items: center;
   gap: 20px;
 }

 .footer-nav span {
   font-size: 20px;
 }

 .footer-nav a {
   text-decoration: none;
 }

 .footer-nav a:hover {
   text-decoration: underline;
 }


 .footer-copy {
   color: #999;
   white-space: nowrap;
 }

 /* スマホ対応 */
 @media (max-width: 768px) {
   .footer-inner {
     flex-direction: column;
     gap: 12px;
     text-align: center;
   }

   .footer-nav {
     gap: 10px;
   }

   .footer-copy {
     white-space: normal;
   }


 }

 .sp-br {
   display: none;
 }

 @media (max-width: 768px) {
   .sp-br {
     display: inline;
   }
 }

 /* ===== responsive ===== */
 @media (max-width: 980px) {
   .siteHeader__inner {
     grid-template-columns: 1fr;
     gap: 10px;
   }

   .siteHeader__nav {
     justify-content: flex-start;
     flex-wrap: wrap;
   }

   .siteHeader__cta {
     justify-content: flex-start;
   }

   .hero {
     padding: 0;
   }

   .hero__inner {
     grid-template-columns: 1fr;
   }

   .hero__right {
     order: -1;
   }

   .hero__titleMain {
     font-size: 44px;
   }

   .hero__titleBg {
     font-size: 100px;
     right: 10px;
   }

   .heroVisual {
     margin-top: 30px;
   }

   .twoCol {
     grid-template-columns: 1fr;
     gap: 0;

   }

   .floatImg {
     margin: 0 auto;
   }

   .form__row {
     grid-template-columns: 1fr;
   }

   .form__label {
     padding-top: 0;
   }

   .afterService__cards {
     grid-template-columns: 1fr;
   }

   .afterService__img {
     display: block;
   }
 }

 /* ===== form errors ===== */
 .formAlert {
   background: #fff3f3;
   border: 1px solid #f0b4b4;
   color: #b40000;
   padding: 12px 14px;
   border-radius: 2px;
   font-size: 13px;
   font-weight: 700;
   margin-bottom: 14px;
 }

 .form__field {
   display: flex;
   flex-direction: column;
   gap: 6px;
 }

 .fieldError {
   margin: 0;
   font-size: 12px;
   color: #b40000;
 }

 .form__input.is-error,
 .form__textarea.is-error {
   border-color: #b40000;
   background: #fffafa;
 }

 .req {
   display: inline-block;
   margin-left: 8px;
   font-size: 11px;
   color: #b40000;
   font-weight: 800;
 }



 /* サンクスページ */

 .thanks {
   padding: 48px 0;
   text-align: center;
 }

 .thanks .section__title {
   font-size: 28px;
   margin-bottom: 12px;
 }

 .thanks .lead {
   font-size: 16px;
   margin-top: 20px;
 }

 /* =========================
   TOP（画像の範囲）統合版
   ========================= */

 /* 見出し下線（青＋赤） */
 .titleUnderline {
   position: relative;
   display: inline-block;
   padding-bottom: 10px;
 }

 .titleUnderline::after {
   content: "";
   position: absolute;
   left: 50%;
   transform: translateX(-50%);
   bottom: 0;
   width: 180px;
   height: 3px;
   background: var(--brand-blue);
   border-radius: 999px;
   opacity: .95;
 }

 .titleUnderline::before {
   content: "";
   position: absolute;
   left: 50%;
   transform: translateX(-50%);
   bottom: 0;
   width: 42px;
   height: 3px;
   background: #c94a4a;
   /* ブランドに無ければ固定でOK */
   border-radius: 999px;
 }

 .titleUnderline--sm::after {
   width: 160px;
 }

 .titleUnderline--sm::before {
   width: 38px;
 }

 /* ===== 上：左右クッション＋説明 ===== */
 .topEco {
   position: relative;
   overflow: hidden;
   padding-top: 48px;
   /* section--tightTop と合算されてもOKな設計 */
 }

 .topEco__bg {
   position: absolute;
   inset: 0;
   pointer-events: none;
 }

 .topEco__pillow {
   position: absolute;
   top: 18px;
   width: min(360px, 34vw);
   opacity: .9;
   filter: drop-shadow(0 10px 18px rgba(0, 0, 0, .10));
 }

 .topEco__pillow--left {
   left: -40px;
   transform: rotate(-8deg);
 }

 .topEco__pillow--right {
   right: -60px;
   transform: rotate(10deg);
 }

 .topEco__inner {
   position: relative;
   text-align: center;
 }

 .topEco__title {
   margin: 0 0 14px;
 }

 .topEco__lead {
   width: min(720px, 100%);
   margin: 0 auto;
   color: var(--gray-600);
   font-size: var(--small);
 }

 .topEco__lead p {
   margin: 8px 0;
 }

 /* ===== 4製品帯 ===== */
 .topProducts {
   background: linear-gradient(to bottom, #1f2634 0%, #2b3346 40%, #7b87a5 75%, #e6edf8 100%);
   border-top: 1px solid rgba(0, 0, 0, .06);
   border-bottom: 1px solid rgba(0, 0, 0, .06);
 }

 .topProducts__grid {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 0;
   min-height: clamp(280px, 24vw, 420px);
 }

 .topProduct {
   position: relative;
   display: block;
   color: #fff;
   padding: 34px 34px 26px;
   border-left: 1px solid rgba(255, 255, 255, .18);
   overflow: hidden;
 }

 .topProduct:first-child {
   border-left: none;
 }

 .topProduct:hover {
   opacity: .96;
 }

 .topProduct__head {
   display: grid;
   grid-template-columns: 1fr auto;
   gap: 14px;
   align-items: start;
   min-height: 86px;
 }

 .topProduct__title {
   margin: 0;
   line-height: 1.2;
   font-family: Georgia, "Times New Roman", Times, serif;

 }

 .topProduct__type {
   font-size: clamp(14px, 1.6vw, 24px);
   font-weight: 400;
   letter-spacing: .04em;
   display: inline-block;
   white-space: nowrap;
   /* Air-Quick は折らない */
   opacity: .85;
 }

 .topProduct__model {
   font-size: clamp(20px, 2.8vw, 56px);
   font-weight: 700;
   display: block;
 }

 .topProduct__alpha {
   font-size: clamp(48px, 5vw, 72px);
   font-style: italic;
   line-height: 0.7;
 }

 .topProduct__7 {
   display: block;
   font-size: clamp(38px, 4vw, 58px);
   line-height: 0.8;
 }

 .topProduct__title--serif {
   font-family: Georgia, "Times New Roman", Times, serif;
 }

 .topProduct__sub {
   margin: 6px 0 0;
   font-size: clamp(11px, 0.9vw, 14px);
   line-height: 1.35;
   opacity: .9;
   text-align: right;

   white-space: normal;
   /* 折り返しOK */
   max-width: none;
   overflow-wrap: break-word;
   /* 長い単語を自然に折る */
   word-break: normal;
   /* 無理やり途中分断しない */
   overflow: visible;
 }

 .topProduct__img {
   position: absolute;
   left: 50%;
   bottom: 2px;
   transform: translateX(-50%);
   width: clamp(210px, 16vw, 320px);
   height: auto;
   object-fit: contain;
   filter: drop-shadow(0 8px 14px rgba(0, 0, 0, .35));
 }

 .topProduct__img--wide {
   width: clamp(240px, 18vw, 360px);
 }



 /* ===== お困りごと ===== */

 .topProblems {
   padding-top: 62px;
 }

 .topProblems__box {
   width: min(860px, 100%);
   margin: 0 auto;
   background: var(--gray-100);
   padding: 26px 26px 22px;
 }

 .topProblems__title {
   margin: 0 0 18px;
   text-align: center;
   font-size: 20px;
   font-weight: 700;
 }

 /* リスト */
 .topProblems__list {
   margin: 0;
   padding-left: 18px;

   /* ★ PCでは2列 */
   columns: 2;
   column-gap: 42px;

   color: var(--gray-800);
   font-size: 16px;
   line-height: 1.7;
 }


 .topProblems__list li {
   break-inside: avoid;
   margin: 8px 0;
 }

 /* ===== スマホ ===== */
 @media (max-width: 768px) {

   .topProblems__box {
     padding: 22px 16px 18px;
   }

   .topProblems__list {
     columns: 1;
     /* ★ 1列に戻す */
     column-gap: 0;
   }

 }

 /* ===== メリット ===== */
 .topMerit {
   position: relative;
 }

 .topMerit__head {
   align-items: center;
   gap: 18px;
   position: relative;
   z-index: 1;
   margin-bottom: 22px;
 }

 .topMerit__title {
   margin: 0;
   font-size: 20px;
   font-weight: 800;
   letter-spacing: .02em;
   white-space: nowrap;
 }

 .topMerit__line {
   flex: 1;
   height: 2px;
   background: var(--brand-blue);
   opacity: .85;
 }

 .topMerit__body {
   display: flex;
   align-items: flex-start;
   gap: 40px;
   position: relative;
 }

 .topMerit__left {
   flex: 0 0 min(560px, 52%);
   padding-left: 6px;
   padding-top: 6px;
 }

 .topMerit__list {
   list-style: none;
   margin: 0;
   padding: 0;
   display: flex;
   flex-direction: column;
   gap: 12px;
   width: min(520px, 100%);
 }

 .topMerit__item {
   padding: 14px 18px;
   font-size: 16px;
   color: var(--gray-800);

   background: linear-gradient(90deg, #eeeeee 0%, #cfcfcf 100%);

   box-shadow: 0 2px 4px rgba(0, 0, 0, .04);
   border-radius: 2px;
 }

 .topMerit__right {
   flex: 1 1 auto;
   width: clamp(520px, 44vw, 680px);
   margin-left: auto;
   margin-top: -96px;
   margin-right: calc(50% - 50vw);
   position: relative;
   z-index: 3;

 }

 .topMerit__img {
   width: 100%;
   height: auto;
   object-fit: cover;
   object-position: right center;

   clip-path: polygon(14% 0%, 100% 0%, 100% 100%, 0% 100%);
   box-shadow: 0 14px 28px rgba(0, 0, 0, .10);
 }


 /* ===== レスポンシブ ===== */

 @media (max-width: 768px) {

   .topMerit .container {
     width: min(1100px, calc(100% - 32px));
   }

   .topMerit__body {
     position: relative;
     display: block;
     min-height: auto;
     padding-bottom: 20px;
     padding-top: 10px;
   }

   /* リスト（前面） */
   .topMerit__left {
     position: relative;
     z-index: 2;
     max-width: 72%;
     padding-top: 18px;
   }

   .topMerit__list {
     max-width: 100%;
     gap: 14px;
   }

   .topMerit__item {
     background: linear-gradient(90deg,
         rgba(255, 255, 255, 0.85) 0%,
         rgba(230, 230, 230, 0.75) 50%,
         rgba(200, 200, 200, 0.65) 100%);

     backdrop-filter: blur(3px);

     box-shadow:
       0 4px 10px rgba(0, 0, 0, .06),
       inset 0 1px 0 rgba(255, 255, 255, .5);


   }


   .topMerit__right {
     position: absolute;
     z-index: 1;
     top: 90px;
     right: -38vw;
     width: 120vw;
     max-width: 820px;
     min-width: 520px;
   }

   .topMerit__img {
     width: 100%;
     height: auto;
     object-fit: cover;
     object-position: right center;
     clip-path: polygon(26% 0%, 100% 0%, 100% 100%, 8% 100%);
   }
 }

 /* ===== 製品4カード：スマホは 2列×2段 ===== */
 @media (max-width: 768px) {
   .topProducts__grid {
     display: grid;
     grid-template-columns: repeat(2, minmax(0, 1fr));
     gap: 0;
     width: 100%;
   }

   .topProduct {
     min-height: 260px;
     padding: 18px 16px;
     position: relative;
     overflow: hidden;
     border-right: 1px solid rgba(255, 255, 255, .35);
     border-bottom: 1px solid rgba(255, 255, 255, .35);
   }

   .topProduct:nth-child(2n) {
     border-right: none;
   }

   /* 下段は下線を消す */
   .topProduct:nth-last-child(-n+2) {
     border-bottom: none;
   }

   /* 文字（左上固定）のサイズ調整 */
   .topProduct__name {
     top: 14px;
     left: 14px;
   }

   .topProduct__type {
     font-size: 18px;
   }

   .topProduct__model {
     font-size: 30px;
   }

   .topProduct__img {
     width: 78%;
     max-width: 220px;
     height: auto;
     margin: 0 auto;
     display: block;
     position: absolute;
     left: auto;
     transform: none;
     right: 10px;
     bottom: 5px;
   }
 }

 /* ===== FAQ（よくあるご質問） ===== */
 .faq {
   position: relative;
   color: #fff;
   overflow: hidden;
   padding: 64px 0 72px;
 }

 /* 背景レイヤー（左写真＋右パネル） */
 .faq__bg {
   position: absolute;
   inset: 0;
   z-index: 0;
   pointer-events: none;
 }

 /* 左の写真 */
 .faq__photo {
   position: absolute;
   left: 0;
   top: 0;
   bottom: 0;
   width: 42%;
   background-size: cover;
   background-position: center;
 }

 /* 右の濃い帯（斜めカット） */
 .faq__panel {
   position: absolute;
   right: 0;
   top: 0;
   bottom: 0;
   width: 70%;
   background: linear-gradient(135deg,
       #4a5670 0%,
       #2c3648 45%,
       #1b2433 100%);
   clip-path: polygon(10% 0%, 100% 0%, 100% 100%, 0% 100%);
 }

 .faq::before {
   content: "";
   position: absolute;
   inset: 0;
   background: rgba(0, 0, 0, .45);
   /* 数値上げるともっと暗くなる */
   z-index: 1;
 }

 /* コンテンツ */
 .faq__inner {
   position: relative;
   z-index: 2;
   max-width: 980px;
 }

 /* 見出し＋下線 */
 .faq__title {
   margin: 0;
   text-align: center;
   font-size: 22px;
   font-weight: 700;
   letter-spacing: .06em;
 }

 .faq__rule {
   height: 2px;
   background: rgba(255, 255, 255, .75);
   margin: 18px auto 34px;
   width: min(980px, 88%);
 }

 /* Q/A 本体 */
 .faq__items {
   width: min(980px, 92%);
   margin: 0 auto;
   display: grid;
   gap: 26px;
 }

 .faq__item {
   display: grid;
   gap: 12px;
 }

 .faq__row {
   display: grid;
   grid-template-columns: 34px 1fr;
   gap: 18px;
   align-items: start;
 }

 .faq__mark {
   display: inline-flex;
   width: 30px;
   height: 30px;
   align-items: center;
   justify-content: center;
   font-weight: 800;
   border-radius: 2px;
   background: #fff;
   color: #111;
   flex: 0 0 auto;
 }

 .faq__mark--a {
   background: #fff;
   color: #d9262e;
   /* 赤いA */
 }

 .faq__q {
   margin: 2px 0 0;
   font-size: 16px;
   font-weight: 700;
   line-height: 1.8;
 }

 .faq__a {
   margin: 2px 0 0;
   font-size: 14px;
   line-height: 2.0;
   opacity: .95;
 }

 /* 2つめ以降の間を少し空ける（画像の雰囲気寄せ） */
 .faq__row--a {
   margin-top: 4px;
 }



 /* ===== responsive ===== */
 @media (max-width: 900px) {
   .faq__photo {
     width: 48%;
   }

   .faq__panel {
     width: 78%;
     clip-path: polygon(14% 0%, 100% 0%, 100% 100%, 0% 100%);
   }
 }

 @media (max-width: 768px) {
   .faq {
     padding: 52px 0 60px;
   }

   /* スマホは斜め＋写真を弱めて読みやすく */
   .faq__photo {
     width: 100%;
     filter: brightness(.85) blur(0.5px);
     transform: scale(1.02);
     background-position: left center;
   }

   .faq__panel {
     width: 100%;
     clip-path: none;
     background: linear-gradient(135deg,
         rgba(26, 35, 50, .35) 0%,
         rgba(26, 35, 50, .70) 100%);
   }

   .faq::before {
     background: rgba(0, 0, 0, .15);
   }

   .faq__row {
     grid-template-columns: 30px 1fr;
     gap: 14px;
   }

   .faq__q {
     font-size: 15px;
   }

   .faq__a {
     font-size: 13px;
   }
 }

 .wrap video {
   width: 100%;
   height: auto;
   display: block;
 }