:root{
  --bg:#fff;
  --text:#111;
  --muted:#f6f6f6;
  --line:#e7e7e7;

  --accent:#ff3b30;   
  --lineGreen:#06c755;
  --mailOrange:#ff7a00;

  --container: 680px;
  --radius: 14px;
}
@media (min-width: 1024px) {
  :root {
    --container: 1024px;
  }
}
*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{
   font-family: "Noto Sans JP", sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.7;
}
*, *::before, *::after{
  box-sizing:border-box;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; }

.container{
  width:min(var(--container), calc(100% - 24px));
  margin-inline:auto;
}

.section{ padding:0 8px; }
.section--tight{ padding:10px 8px; }
.section--muted{ background:var(--muted); }

.h2{
  font-size:20px;
  margin:0 0 12px;
  line-height:1.3;
}
.h2--small{ font-size:18px; }

.text-sub{ color:#555; margin:0; }

/* =========================
  固定ヘッダー + ハンバーガー
========================= */
.header{
  position:fixed;
  top:0; left:0; right:0;
  z-index:100;
  background:#fff;
  border-bottom:1px solid var(--line);
}
.header__inner{
  height:56px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 12px;
}
.header__brand{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}

.header__logo{
  height:28px;      
  width:auto;       
  display:block;
  object-fit:contain;
  border-radius:0;  
  background:none;  
}


.header__name{
  display:none;
}
.hamburger{
  width:42px;
  height:42px;
  border:none;
  border-radius:12px;
  background:#fff;
  display:grid;
  place-items:center;
  gap:4px;
  padding:10px;
}
.hamburger__line{
  width:18px;
  height:2px;
  background:#111;
  border-radius:999px;
}


.main{ padding-top:56px; }


.is-locked{ overflow:hidden; }


.drawer{
  position:fixed;
  inset:0;
  z-index:120;
  pointer-events:none;
}
.drawer__backdrop{
  position:absolute;
  inset:0;
  background:rgba(0, 0, 0, 0);
  border:0;
  z-index: 0; 
  opacity:0;
  transition:.18s;
   pointer-events: none;
}
.drawer__panel{
  position:absolute;
  top:0; right:0;
  width:min(86vw, 360px);
  height:100%;
  background:#fff;
  border-left:1px solid var(--line);
  transform:translateX(100%);
  transition:.18s;
  padding:14px;
  overflow:auto;
  z-index: 1; 
}
.drawer.is-open{ pointer-events:auto; }
.drawer.is-open .drawer__backdrop{ opacity:1;  pointer-events: auto; }
.drawer.is-open .drawer__panel{ transform:translateX(0); }

.drawer__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:10px;
}
.drawer__title{ margin:0; font-weight:900; }
.drawer__close{
  width:38px; height:38px;
  border-radius:12px;
  border:1px solid var(--line);
  background:#fff;
  cursor:pointer;
}
.drawer__nav{
  display:grid;
  gap:10px;
}
.drawer__nav a{
  padding:10px 10px;
  border-bottom:1px solid var(--line);
  font-weight:700;
}

/* =========================
  FV
========================= */
.fv{ padding:0; }
.fv__img{
  width:100%;
  height:auto;
}
/* =========================
  PCレイアウト
========================= */
@media (min-width: 1024px){

  /* ===== ヘッダー ===== */

  .header__inner{
    height:80px;
    padding:0 40px;
  }

  /* ハンバーガー非表示 */
  .hamburger{
    display:none;
  }

  /* PCナビ表示 */
  .header__nav{
    display:flex;
    align-items:center;
    gap:28px;
    font-weight:700;
  }

  .header__nav a{
    text-decoration:none;
    color:#111;
    font-size:14px;
  }

  .header__nav a:hover{
    opacity:.7;
  }

  /* SPドロワー無効化 */
  .drawer{
    display:none;
  }

  .main{
    padding-top:80px;
  }


  /* ===== FV ===== */

  .fv__img--sp{
    display:none;
  }

  .fv__img--pc{
    display:block;
    width:100%;
    height:auto;
  }

}
.header__contact{ display:none; }
.header__bar{ display:none; }
.header__nav{ display:none; }

.hbtn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  border-radius:10px;
  padding:10px 12px;
  font-weight:800;
  border:1px solid var(--line);
  background:#fff;
  color:#111;
  line-height:1.1;
}
.hbtn__icon{
  width:22px;
  height:22px;
  object-fit:contain;
  display:block;
}
.hbtn__text{
  font-size:12px;
  white-space:nowrap;
}

/* =========================
  PCレイアウト
========================= */
@media (min-width: 1024px){

  /* ヘッダー高さ */
  .header__inner{
    height:64px;
    padding:0 24px;
    gap:16px;
  }


  .hamburger{ display:none; }
  .drawer{ display:none; }

  .header__contact{
    display:flex;
    align-items:center;
    gap:10px;
    margin-left:auto;
  }

  .hbtn--tel .hbtn__text{
    font-size:16px;
    letter-spacing:.02em;
  }

  .header__bar{
    display:block;
    border-top:1px solid var(--line);
    background:#fff;
  }
  .header__nav{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:28px;
    padding:10px 16px;
  }
  .header__nav a{
    text-decoration:none;
    color:#111;
    font-weight:800;
    font-size:13px;
  }
  .header__nav a:hover{ opacity:.75; }

  .main{ padding-top:105px; }
}
@media (min-width: 1024px){

  .header__inner{
    height:64px;
    padding:0 24px;
    gap:16px;
  }
  .hamburger{ display:none; }
  .drawer{ display:none; }

  .header__contact{
    display:flex;
    align-items:center;
    gap:10px;
    margin-left:auto;
  }

  .h-tel{
    display:flex;
    align-items:center;
    gap:10px;
    text-decoration:none;
    color:#111;
    padding:6px 10px;
    border-radius:8px;
  }
  .h-tel__icon{
    width:18px;
    height:18px;
    object-fit:contain;
    display:block;
  }
  .h-tel__body{
    display:flex;
    flex-direction:column;
    line-height:1.05;
  }
  .h-tel__meta{
    font-size:11px;
    font-weight:700;
    color:#555;
    white-space:nowrap;
  }
  .h-tel__num{
    font-size:24px;
    font-weight:900;
    color:#e60012; 
    letter-spacing:.02em;
    white-space:nowrap;
  }

  /* ===== LINE/メール（背景色付きボタン） ===== */
  .h-chip{
    display:flex;
    align-items:center;
    gap:8px;
    text-decoration:none;
    border-radius:0;            
    padding:8px 12px;
    min-height:38px;
    color:#fff;
    font-weight:900;
    line-height:1.05;
  }
  .h-chip__icon{
    width:18px;
    height:18px;
    object-fit:contain;
    display:block;
  }
  .h-chip__text{
    font-size:11px;
    white-space:nowrap;
  }

  .h-chip--line{
    background:#06C755; 
  }
  .h-chip--mail{
    background:#f28a2a; 
  }
  .h-chip:hover{ opacity:.85; }

  /* ===== ヘッダー下段（ナビ） ===== */
  .header__bar{
    display:block;
    border-top:1px solid var(--line);
    background:#fff;
  }
  .header__nav{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:28px;
    padding:10px 16px;
  }
  .header__nav a{
    text-decoration:none;
    color:#111;
    font-weight:800;
    font-size:13px;
  }
  .header__nav a:hover{ opacity:.75; }


  .main{ padding-top:105px; }
    .h-tel__meta{
    display:inline-block;
    width:fit-content;
    padding:2px 8px;
    background:#ffe45a;      
    color:#e60012;           
    font-size:11px;
    font-weight:900;
    line-height:1.2;
    white-space:nowrap;
  }

}

/* =========================
  CTA / ボタン（SPデフォルト）
========================= */

.cta-panel{
  position:relative;
  border:3px solid #ff0000;
  background:#fff;
  overflow:visible;
  margin-top:72px;
  padding-bottom:12px;
}

/* 吹き出し（CSS描画 + 人物に被らない右寄せ） */
.cta-panel__bubble{
  position:absolute;
  top:-60px;

  /* 以前の中央寄せを解除して右寄せ */
  left:auto;
  right:12px;
  transform:none;

  z-index:6;
  pointer-events:none;
  white-space:normal;

  /* 左側を空けて人物と被らないようにする（SP） */
  --bubble-left-gap: clamp(110px, 28vw, 170px);
  margin-left: var(--bubble-left-gap);

  /* 横幅は “ほぼいっぱい” だけど左を削る */
      width: 250px;
  max-width: none;
}

/* 画像運用の名残りがあっても崩さないため（imgを残してる場合は非表示） */
.cta-panel__bubble img{ display:none; }

/* 吹き出し本体（白 + 青枠） */
.cta-panel__bubbleText{
  display:block;
  width:100%;
  box-sizing:border-box;
  background:#fff;
  border:2px solid #1976ff;
  color:#1976ff;
  border-radius:8px;
  padding:10px 14px;
  text-align:center;
  font-weight:1000;
  font-size:16px;
  line-height:1.2;
  box-shadow:0 2px 0 rgba(25,118,255,.15);
}

/* 左向きのしっぽ（青枠） */
.cta-panel__bubble::after{
 content: "";
    position: absolute;
    left: -11px;
    top: 50%;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 9px 12px 9px 0;
    border-color: transparent #1976ff transparent transparent;

}

/* 左向きのしっぽ（白部分） */
.cta-panel__bubble::before{
      content: "";
    position: absolute;
    left: -8px;
    top: 50%;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 8px 11px 8px 0;
    border-color: transparent #fff transparent transparent;
    z-index: 2;
}

/* 赤帯（人物の基準） */
.cta-panel__head{
  position:relative;
  overflow:visible;
  background:#ff0000;
  padding:12px 12px 12px 72px;
  text-align:center;
}

/* 赤帯タイトル */
.cta-panel__headText{
  margin:0;
  color:#fff;
  font-weight:1000;
  font-size:16px;
  letter-spacing:.02em;
  position:relative;
  z-index:4;
}

/* 人物：SP */
.cta-panel__person{
  position:absolute !important;
  left:-6px;
  bottom:auto;
  top:auto;
  z-index:3;
  pointer-events:none;
  display:block;

  width:clamp(105px, 20vw, 96px);
  height:auto;
  max-width:none;

  transform: translateY(-80px);
}

/* サブ文言 */
.cta-panel__sub{
  text-align:center;
  margin:10px;
  font-weight:900;
  font-size:12px;
  color:#ff0000;
}
.cta-panel__sub span{
  flex:1;
  text-align:center;
  white-space:nowrap;
}

/* ボタン共通 */
.cta-btn{
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  border:1px solid transparent;
  margin-top:12px;
  width:90%;
  margin-right:auto;
  margin-left:auto;
}

.cta-btn__icon{
  width:54px;
  min-width:54px;
  height:54px;
  display:grid;
  place-items:center;
}
.cta-btn__icon img{
  width:46px;
  height:46px;
  object-fit:contain;
  display:block;
}

.cta-btn__body{ flex:1; text-align:center; }
.cta-btn__top{
  margin:0 0;
  font-weight:1000;
  font-size:12px;
  opacity:.95;
}
.cta-btn__main{
  margin:0;
  font-weight:1000;
  font-size:20px;
  line-height:1.1;
}
.cta-btn__sub{
  margin:6px 0 0;
  font-weight:900;
  font-size:12px;
  opacity:.95;
}

/* ① TEL（SP） */
.cta-btn--tel{
  background:#ff0000;
  color:yellow;
  padding:14px 12px;
  box-shadow:0 4px 0 #be0000;
}
.cta-btn--tel .cta-btn__main{
  font-size:28px;
  letter-spacing:.02em;
  color:#fff;
}

/* ② LINE（SP） */
.cta-btn--line{
  background:#fff;
  border:3px solid #06c755;
  color:#06c755;
  padding:8px 12px;
  box-shadow:0 4px 0 #06c755;
}
.cta-btn__main--green{ color:#06c755; }

/* ③ MAIL（SP） */
.cta-btn--mail{
  background:#ff7a00;
  color:#fff;
  margin-bottom:22px;
  padding:8px 12px;
  box-shadow:0 4px 0 #ff5309;
}


/* =========================
  アンカーボタン
========================= */

.anchor-wrap{
  text-align:center;
  padding:8px 0 18px;
}

.anchor-catch{
  margin:0 0 10px;
  color:#ff0000;
  font-weight:1000;
  font-size:18px;
  letter-spacing:.05em;
}

.anchor-btn2{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;

  background:#ff8754;
  color:#fff;
  text-decoration:none;

  font-weight:1000;
  font-size:18px;

  padding:10px 20px;
  border-radius:999px;
  box-shadow:0 6px 0 #ff0000;

  transition:.15s ease;
}

.anchor-btn2:active{
  transform:translateY(3px);
  box-shadow:0 3px 0 #ff0000;
}

.anchor-btn2__text{ line-height:1.2; }
.anchor-btn2__arrow{
  font-size:22px;
  font-weight:1000;
}


/* =========================
  CTA / アンカー（PC）
========================= */

@media (min-width: 1024px){

  /* ===== CTAパネル ===== */
  .cta-panel{
    width:980px;
    margin: 170px auto 0 auto;
    background:#fff;
    position:relative;
  }

  /* 吹き出し（PC：人物が大きいので左をさらに空ける） */
  .cta-panel__bubble{
    top:-70px;
    right:220px;
    z-index:6;
    width: 380px;
    --bubble-left-gap: clamp(240px, 26vw, 360px);
    margin-left: var(--bubble-left-gap);
  }
  .cta-panel__bubbleText{
    font-size:22px;
    padding:12px 18px;
  }
  .cta-panel__bubble::after{ left:-11px; }
  .cta-panel__bubble::before{ left:-9px; }

  /* 赤帯 */
  .cta-panel__head{
    padding:18px 16px;
    text-align:center;
  }
  .cta-panel__headText{
    font-size: 31px;
    letter-spacing: .03em;
    padding-left: 355px;
  }

  /* 人物 */
  .cta-panel__person{
    position: absolute !important;
    left: -69px;
    top: -161%;
    transform: none !important;
    width: 427px;
    height: auto;
    z-index: 5;
  }

  /* サブ文言 */
  .cta-panel__sub{
    margin: 12px 0 6px;
    display: flex;
    justify-content: center;
    gap: 18px;
    font-size: 15px;
    color: #ff0000;
    padding-left: 657px;
    width: 300px;
  }

  /* ボタン共通 */
  .cta-btn{
    width:auto;
    margin:0;
  }

  /* TEL */
  .cta-btn--tel{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    width: min(563px, 100%);
    padding: 16px 18px;
    margin: 18px auto 0;
    margin-left: 390px;
    background: #ff0000;
    color: #fff;
    box-shadow: none;
  }
  .cta-btn--tel .cta-btn__top{
    margin:0 0 4px;
    font-size:12px;
    font-weight:900;
    opacity:1;
  }
  .cta-btn--tel .cta-btn__main{
    margin:0;
    font-size:28px;
    letter-spacing:.02em;
    color:#fff;
  }

  /* 下段：MAIL(左) / LINE(右) を横並び固定 */
  .cta-btn--mail,
  .cta-btn--line{
    width: calc((562px - 16px) / 2);
    padding:12px 14px;
    margin-top:14px;
    box-shadow:none;
  }

  .cta-btn--mail{
    background:#ff7a00;
    color:#fff;
    margin-bottom:0;
    margin-left:calc(50% - 260px);
  }

  .cta-btn--line{
    background:#06c755;
    color:#fff;
    border:0;
    margin-left: 363px;
  }
  .cta-btn__main--green{ color:#fff; }

  /* アイコン */
  .cta-btn__icon{
    width:56px;
    min-width:56px;
    height:56px;
  }
  .cta-btn__icon img{
    width:48px;
    height:48px;
  }

  /* 下段ボタン文字 */
  .cta-btn__main{ font-size:18px; }
  .cta-btn__sub{ font-size:11px; margin-top:4px; }

  /* ===== アンカー ===== */
  .anchor-wrap{
    max-width:980px;
    margin:0 auto;
    padding:16px 0 28px;
  }

  .anchor-catch{
    font-size:18px;
    margin-bottom:12px;
  }

  .anchor-btn2{
    width: min(980px, 52%);
    margin:0 auto;
    padding:16px 28px;
    font-size:18px;
  }
  .anchor-btn2__arrow{ font-size:24px; }

  .cta-btn--mail,
  .cta-btn--line{
    display:inline-flex;
    vertical-align:top;
  }

  .cta-btn--mail{
    margin-left: calc(28% - 260px);
  }

  .cta-btn--line{
    margin-left:390px;
  }

}
/* =========================
  バナー：画像
========================= */
.img-banner{
  display:block;
  overflow:hidden;
}

/* =========================
  バナースライダー
========================= */
.banner-slider{
  position:relative;
  overflow:hidden;      
  border-radius:16px;
  background:#fff;
  user-select:none;
  touch-action: pan-y;
  padding:0;       
  margin-bottom: 22px;          
}

.banner-track{
  display:flex;
  gap:0;
  padding:10px;              
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;       /* Firefox */
}
.banner-track::-webkit-scrollbar{ display:none; } /* iOS/Chrome */

.banner-slide{
  flex:0 0 106%;
  scroll-snap-align:start;
  display:flex;
  align-items:center;
  justify-content:center;
  height:220px;
}

.banner-slide img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  display:block;
}

@media (max-width:420px){
  .banner-slide{ height:200px; }
}

/* =========================
  矢印（薄グレー・丸無し）
========================= */
.banner-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:44px;
  height:44px;
  border:0;
  background:transparent;
  padding:0;
  cursor:pointer;
  z-index:5;

  color:#bfbfbf;
  font-size:44px;
  line-height:1;
  display:grid;
  place-items:center;

  -webkit-tap-highlight-color:transparent;
}
.banner-nav--prev{ left:8px; }
.banner-nav--next{ right:8px; }

.banner-nav:hover{ color:#9e9e9e; }
.banner-nav:active{ transform:translateY(-50%) scale(0.96); }

.banner-nav:disabled{
  opacity:.25;
  cursor:default;
}

@media (max-width:420px){
  .banner-nav{ width:40px; height:40px; font-size:38px; }
  .banner-nav--prev{ left:6px; }
  .banner-nav--next{ right:6px; }
}

/* =========================
  PC：2枚見せ（中央寄せ）
========================= */
@media (min-width:1024px){
  .banner-slider{

    padding:20px clamp(16px, 4vw, 80px);
  }

  .banner-track{
    padding:0;
    gap:16px;
    justify-content:center;
    overflow-x:hidden;        
    scroll-snap-type:none;
  }

  .banner-slide{

    flex:0 0 calc((100% - 16px) / 2);
    max-width:520px; 
    height:auto;
  }

  .banner-slide img{
    width:100%;
    height:auto;
    object-fit:cover;
    border-radius:8px;
    display:block;
  }

  .banner-nav--prev{ left:10px; }
  .banner-nav--next{ right:10px; }
}

@media (max-width:420px){
  .tbnr-slide{ height:200px; }
}

/* 矢印（薄グレー・丸無し） */
.tbnr-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:44px;
  height:44px;
  border:0;
  background:transparent;
  padding:0;
  cursor:pointer;
  z-index:5;

  color:#bfbfbf;
  font-size:44px;
  line-height:1;
  display:grid;
  place-items:center;

  -webkit-tap-highlight-color:transparent;
}
.tbnr-arrow--prev{ left:8px; }
.tbnr-arrow--next{ right:8px; }

.tbnr-arrow:hover{ color:#9e9e9e; }
.tbnr-arrow:active{ transform:translateY(-50%) scale(0.96); }

@media (max-width:420px){
  .tbnr-arrow{ width:40px; height:40px; font-size:38px; }
  .tbnr-arrow--prev{ left:6px; }
  .tbnr-arrow--next{ right:6px; }
}

/* PC：2枚見せ */
@media (min-width:1024px){
  .tbnr-slider{
    padding:20px clamp(16px, 4vw, 80px);
  }

  .tbnr-track{
    padding:0;
  }

  .tbnr-slide{
    height:auto;
  }

  .tbnr-slide img{
    height:auto;
    object-fit:cover;
    border-radius:8px;
  }
}
/* JSアニメ中はスナップさせない（微妙な吸着ズレ防止） */
.banner-track.is-animating {
  scroll-snap-type: none !important;
  scroll-behavior: auto !important;
}
/* タブレット（例：768〜1199px）をSP扱い + 大きく */
@media (min-width: 768px) and (max-width: 1199px){
  .banner-slide{
    height: 300px;          /* ← ここを好みで 260〜340 くらいで調整 */
  }

  .banner-slide img{
    object-fit: cover;      /* ← 余白が減って大きく見える（端が少し切れる可能性） */
    /* object-position: center;  必要なら */
  }
   .banner-slide{ height: 300px; }
  .banner-slide img{ object-fit: contain; } /* 切れない */
}
/* =========================
  ロゴ列
========================= */
.logos{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:10px;
}
.logo{
  border:1px dashed var(--line);
  border-radius:14px;
  background:#fff;
  padding:18px 10px;
  text-align:center;
  font-weight:900;
  color:#666;
}

/* =========================
  カード
========================= */
.cards{ display:grid; gap:12px; }
.card{
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  padding:14px;
}
.card__kicker{ margin:0 0 6px; font-weight:900; color:#ff6a00; }
.kpi{ margin:0; }
.kpi__num{ font-size:34px; font-weight:1000; }
.kpi__unit{ margin-left:6px; color:#666; font-weight:800; }



/* =========================
  メディア掲載
========================= */
.media{
  background-color:#f7f7f7;
  
  background-image:
    linear-gradient(rgba(0,0,0,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,0,0,.06) 1px, transparent 1px);
  background-size: 26px 26px;
}

.media__title{
  margin:10px 0 0 0;
  text-align:center;
  font-weight:1000;
  color:#ff6a00;
  font-size:22px;
  letter-spacing:.04em;
  display:inline-block;
  width:100%;
  padding-bottom:4px;
  
  text-decoration-thickness: 3px;
  text-underline-offset: 6px;
}

.media__lead{
  margin:0 0 12px 0;
  text-align:center;
  font-weight:800;
  color:#222;
  line-height:1.7;
}

/* =========================
  ロゴスライダー
========================= */
.logo-carousel{
  position:relative;
  overflow:hidden;
  padding-bottom:14px; 
  touch-action: pan-y;
  user-select:none;
}

.logo-track{
  display:flex;
  gap:12px;
  transition: transform .45s ease;
  will-change: transform;
}


.logo-slide{
  flex: 0 0 calc((100% - 24px) / 3); 
  border-radius:12px;

  height:86px;                 
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}


.logo-slide img{
  width:92%;
  height:92%;
  object-fit:contain;
  display:block;
}

.logo-dots{
  display:flex;
  justify-content:center;
  gap:8px;
  margin-top:10px;
}


.logo-dot{
  appearance:none;
  -webkit-appearance:none;

  width:10px;
  height:10px;

  padding:0;
  margin:0;

  border:none;
  outline:none;

  border-radius:50%;
  background:#d5d5d5;

  cursor:pointer;
}


.logo-dot.is-active{
  background:#ff6a00;
}

@media (max-width: 380px){
  .logo-slide{
    flex: 0 0 calc((100% - 12px) / 2);
    height:84px;
  }
}

/* =========================
  メディア掲載：PC
========================= */
@media (min-width: 1024px){


  .media{
    padding:28px 0;
  }
  .media .container{
    max-width:962px; 
    margin:0 auto;
  }

 
  .media__title{
    font-size:36px;
    line-height:1.2;
    margin:0 0 10px;
    text-align:center;
  }

  .media__lead{
    font-size:16px;
    line-height:1.7;
    text-align:center;
    margin:0 auto 26px;
    max-width:880px;
  }


  .logo-carousel{
    padding-bottom:18px;
     padding-left: 0;
    padding-right: 0;
  }


.logo-track{
    gap:12px;
    justify-content:flex-start; 
  }

 .logo-slide{
           flex: 0 0 calc((100% - 24px) / 3);
        width: auto;
        height: 183px;
        border-radius: 12px;
        box-sizing: border-box;
        overflow: hidden;
        display: flex;
        align-items: center;
        justify-content: center;
  }

  .logo-slide img{
    width: 96%;
    height: 96%;
    object-fit: contain;
    display:block;
  }

  .logo-dots{
    margin-top:16px;
  }
}

/* =========================
  実績セクション
========================= */
.results{
  padding-top:22px;
}

.results__catch{
  margin:0;
  text-align:center;
  font-weight:1000;
  font-size:18px;
}

.results__sub{
  margin:6px 0 0;
  text-align:center;
  font-weight:900;
  color:#ff6a00;
  font-size:14px;
}

.results__title{
  margin:0 0 16px;
  text-align:center;
  font-weight:1000;
  font-size:34px;
  color:#ff6a00;
  letter-spacing:.04em;
}


.results__scroller{
  display:flex;
  gap:14px;
  overflow-x:auto;
  overflow-y:hidden;
  padding:6px 2px 18px; 
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
}


.results__scroller > *{
  scroll-snap-align:start;
}


.results__scroller::-webkit-scrollbar{
  height:12px;
}
.results__scroller::-webkit-scrollbar-track{
  background:#ffd6c6;      
  border-radius:999px;
}
.results__scroller::-webkit-scrollbar-thumb{
  background:#ff6a00;      
  border-radius:999px;
}
.results__scroller::-webkit-scrollbar-thumb:hover{
  background:#ff5500;
}


.results__scroller{
  scrollbar-color:#ff6a00 #ffd6c6;
  scrollbar-width:thin;
}

/* =========================
  カード
========================= */
.result-card{
  flex:0 0 320px;                 
  border:2px solid #ff6a00;
  border-radius:16px;
  background:#fff;
  padding:12px;
  position:relative;
  box-shadow:0 8px 18px rgba(0,0,0,.06);
}

.result-card__badge{
  position:absolute;
  top:10px;
  left:10px;
  background:#ff6a00;
  color:#fff;
  font-weight:1000;
  font-size:12px;
  padding:6px 10px;
  border-radius:12px;
}

.result-card__head{
  text-align:center;
  margin-top:4px;
  padding-top:8px;
}
.result-card__area{
  margin:0;
  font-weight:1000;
  font-size:16px;
}
@media (min-width: 1024px){
  .results__scroller {
    max-width: 1200px;
    margin: 0 auto;
  }
}
/* =========================
  Before/After
========================= */

.ba{
  position:relative;
  margin-top:10px;
  border:1px solid #e9e9e9;
  border-radius:12px;
  overflow:hidden;
  height:170px; 
}


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


.ba__labels{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  display:flex;
  height:30px;
}


.ba__label--before{
  flex:1;
  background:#bdbdbd;
  color:#fff;
  font-weight:1000;
  font-size:12px;
  letter-spacing:.12em;
  display:flex;
  align-items:center;
  justify-content:center;
}


.ba__label--after{
  flex:1;
  background:#ff6a00;
  color:#fff;
  font-weight:1000;
  font-size:12px;
  letter-spacing:.12em;
  display:flex;
  align-items:center;
  justify-content:center;
}


@media (max-width:420px){
  .ba{
    height:150px;
  }
}

/* =========================
  情報タグ
========================= */
.result-meta{
  margin:10px 0 0;
  display:grid;
  gap:8px;
}

.result-meta__row{
  border:1.5px solid #ff6a00;
  border-radius:10px;
  padding:8px 10px;
  display:flex;
  gap:6px;
  font-weight:900;
  font-size:12px;
  color:#ff6a00;
  align-items:center;
}
.result-meta__row dt{ margin:0; }
.result-meta__row dd{ margin:0; color:#ff6a00; font-weight:1000; }

.result-meta__row--strong{
  border-width:2px;
}


@media (max-width: 420px){
  .result-card{ flex-basis:300px; }
  .ba__item{ height:140px; }
}



/* =========================
  お悩みセクション
========================= */
.worries{
  padding-top:18px;
}

.worries__title{
  margin:0 0 14px;
  text-align:center;
  font-weight:1000;
  color:#ff6a00;
  font-size:22px;
  line-height:1.4;
}
.worries__title span{
  display:block;
  margin-top:6px;
  color:#111;
  font-size:14px;
  font-weight:900;
}


.worries__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
      margin-top: 34px;
}


.worry-card{
  border:2px solid #FF834D;
  background:#fff;
  overflow:hidden;
  padding:-1px;              
}


.worry-card__label{
  margin:0;
  background:#FF834D;
  color:#fff;
  font-weight:bold;
  font-size:12px;
  line-height:1.2;

  min-height:44px;          
  padding:8px 8px;

  
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;

  
  white-space:normal;
  word-break:keep-all;
}

.worry-card__img{
  height:86px;       
  overflow:hidden;
  background:#f2f2f2;
}
.worry-card__img img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.worry-card__text{
  margin:0;
  padding:10px 10px 12px;
  font-size:11px;
  font-weight:500;
  color:#333;
  line-height:1.6;
}


.worry-card--person{
  position:relative;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  min-height:170px;
  border: none;
  box-shadow: none;
}


.worry-card__bubble{
  position:absolute;
  top:10px;
  left:10px;
  right:10px;
  margin:0;
  background:#ff6a00;
  color:#fff;
  font-weight:1000;
  font-size:12px;
  text-align:center;
  padding:8px 10px;
  border-radius:999px;
}
.worry-card__bubble::after{
  content:"";
  position:absolute;
  left:22px;
  bottom:-8px;
  width:0;height:0;
  border:8px solid transparent;
  border-top-color:#ff6a00;
}


.worry-card__person{
  width:88%;
  height:auto;
  display:block;
  margin-bottom:6px;
  pointer-events:none;
}


@media (max-width:360px){
  .worries__grid{ gap:10px; }
  .worry-card__img{ height:78px; }
  .worry-card--person{ min-height:160px; }
}
@media (min-width: 1024px){
  .worries {
    max-width: 1200px;
    margin: 0 auto;
  }
}
@media (min-width: 1024px){

  .worries .container{
    max-width:845px;
    margin:0 auto;
  }

  .worries{
    padding-top:24px;
  }

  .worries__title{
    font-size:26px;
    margin:0 0 18px;
  }
  .worries__title span{
    font-size:16px;
    margin-top:8px;
  }


  .worries__grid{
    grid-template-columns:repeat(4, 1fr);
    gap:16px;
    align-items:stretch;
  }


  .worry-card{
    border-width:2px;
  }

  .worry-card__label{
    font-size:13px;
    min-height:46px;
    padding:10px 8px;
  }

  .worry-card__img{
    height:92px; 
  }

  .worry-card__text{
    font-size:12px;
    padding:12px 12px 14px;
    line-height:1.7;
  }


  .worry-card--person{
    grid-column:4;
    grid-row:2;
    display:flex;
    align-items:flex-end;
    justify-content:flex-end;
    min-height:auto;
    padding:0;
    background:transparent;
  }

  .worry-card__person{
    width:100%;
    max-width:210px; /* 右下の人物サイズ（必要なら調整） */
    margin:0;
  }

}
/* =========================
   タブレット（縦・横共通）
   768px〜1024px
========================= */
@media screen and (min-width: 500px) and (max-width: 1024px) {

      .worries__grid {
        grid-template-columns: repeat(4, 1fr);
        gap: 16px;
        align-items: stretch;
    }

}

.worries{
  position:relative;
  z-index:5;
}

.worry-card--person{
  align-self:end; 
}

.worry-card--person{
  position:relative;
  z-index:10;
}


.worry-card__person{
  position:relative;
  z-index:10;
}

.worry-card__person{
  transform:translateY(11px);
}
.worries__grid .worry-card:not(.worry-card--person){
  transform: translateY(-20px);
}
/* =========================
  パック
========================= */

.pack{
  background-color:#f7f7f7;
  background-image:
    linear-gradient(rgba(0,0,0,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,0,0,.06) 1px, transparent 1px);
  background-size:26px 26px;
  padding-top:30px;
}
.pack .container{
  width:100%;
}

.pack__kicker{
  margin:0;
  text-align:center;
  font-weight:1000;
  color:#ff6a00;
  font-size:16px;
  letter-spacing:.03em;
}

.pack__title{
  margin:6px 0 18px;
  text-align:center;
  font-weight:1000;
  color:#ff6a00;
  font-size:22px;
  letter-spacing:.04em;
}

.pack-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px 14px;
  align-items:stretch;
  grid-auto-rows:1fr;
}

.pack-pair{
  display:grid;
  grid-template-rows:1fr auto;
  gap:10px;
  height:100%;
}

/* =========================
  カード（吹き出し）
========================= */
.plan-card{
  position:relative;
  height:100%;
  background:#fff;
  border-radius:0;
  overflow:visible;
  box-shadow:0 10px 18px rgba(0,0,0,.06);
  margin-bottom:18px;
}

.plan-card__band{
  background:#ff6a00;
  color:#fff;
  text-align:center;
  font-weight:1000;
  font-size:12px;
  padding:10px 8px;
}

.plan-card__body{
  padding:14px;
  display:flex;
  flex-direction:column;
  height:100%;
}

.plan-card__name{
  margin:0;
  text-align:center;
  font-weight:1000;
  color:#ff6a00;
  font-size:22px;
}

/* =========================
  価格：税込を金額の右端に揃えつつ、金額は中央
========================= */
.plan-card__price{
  display:grid;
  grid-template-columns:1fr auto 1fr; /* 中央列(=金額)を作る */
  grid-template-rows:auto auto;       /* 1段目=税込 / 2段目=金額 */
  align-items:end;
  justify-items:center;
  margin:8px 0 10px;
  line-height:1.1;
}

/* 税込：中央列の右端に揃える（＝金額右端と揃う） */
.plan-card__tax{
  grid-column:2;
  grid-row:1;
  justify-self:end;
  font-size:12px;
  font-weight:1000;
  color:#111;
  margin:0 0 4px;
}

/* 金額：中央固定 */
.plan-card__amount{
  grid-column:2;
  grid-row:2;
  justify-self:center;
  font-weight:1000;
  color:#ff0000;
  font-size:36px;
  text-align:center;
}

.plan-card__yen{
  font-size:20px;
  margin-right:2px;
}

/* 相談カード(3L)などで税込が空の時の余白を消す */
.plan-card__tax:empty{
  display:none;
}

.plan-card__price--consult .plan-card__amount{
  font-size:24px;
  line-height:1.2;
}

.plan-card__desc{
  margin:0;
  font-weight:800;
  color:#111;
  font-size:12px;
  line-height:1.7;

  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:4;
  overflow:hidden;

  min-height:calc(1.7em * 4);
}

.plan-card::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-18px;
  transform:translateX(-50%);
  width:0;
  height:0;
  border-left:18px solid transparent;
  border-right:18px solid transparent;
  border-top:18px solid #fff;
  filter:drop-shadow(0 8px 10px rgba(0,0,0,.08));
}

/* =========================
  料金下タグ（ピル）
========================= */
.plan-card__tags{
  display:flex;
  gap:10px;
  justify-content:center;
  margin:0 0 10px;
}

.plan-card__tag{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 14px;
  border-radius:4px;
  background:#FFD7C5;
  color:#111;
  font-weight:500;
  font-size:12px;
  line-height:1;
  white-space:nowrap;
}

@media (min-width:1024px){
  .plan-card__tags{
    justify-content:flex-start;
    gap:12px;
    margin:2px 0 12px;
  }
  .plan-card__tag{
    font-size:13px;
    padding:9px 16px;
    border-radius:4px;
  }
}

/* =========================
  トラック
========================= */
.truck{
  display:flex;
  align-items:flex-end;
  justify-content:center;

  height:120px;
  padding:0 0 10px;
  margin-bottom:24px;
}

.truck img{
  width:95%;
  height:100%;
  display:block;
  object-fit:contain;
}

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

/* =========================
   タブレット（縦・横共通） 768px〜1024px
========================= */
@media screen and (min-width:500px) and (max-width:1024px){
  .pack-grid{
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap: 34px 5px;
    align-items:start;
  }
  .pack{
    padding-top:40px;
    padding-bottom:28px;
  }
}

/* =========================
  お得な理由
========================= */
.pack-reason-wrap{
  position:relative;
  max-width:680px;
  margin:42px auto 0;
  padding:0 0 43px;
  overflow:hidden;
}

.pack-reason-head{
  position:relative;
  text-align:center;
}

.pack-reason-head::before,
.pack-reason-head::after{
  content:"";
  position:absolute;
  top:12px;
  width:50px;
  height:6px;
  background:
    linear-gradient(#111,#111) top left / 100% 2px no-repeat,
    linear-gradient(#111,#111) bottom left / 100% 2px no-repeat;
  border-radius:999px;
  opacity:.95;
}

.pack-reason-head::before{
  left:6px;
  transform:rotate(60deg);
}

.pack-reason-head::after{
  right:6px;
  transform:rotate(-60deg);
}

.pack-reason-head__sub{
  margin:0;
  font-size:20px;
  font-weight:1000;
  color:#1e88ff;
  line-height:1.1;
}

.pack-reason-head__main{
  margin:4px 0 0;
  font-size:18px;
  font-weight:1000;
  color:#1e88ff;
  line-height:1.1;
}

.pack-reason-hero{
  position:absolute;
  left:50%;
  top:58px;
  transform:translateX(-50%);
  z-index:1;
  width:270px;
  pointer-events:none;
}

.pack-reason-hero__img{
  width:100%;
  height:auto;
  display:block;
  filter:drop-shadow(0 10px 18px rgba(0,0,0,.15));
}

.pack-reason{
  position:relative;
  z-index:2;
  display:grid;
  gap:12px;
  padding-top:142px;
}

.point-row{
  display:grid;
  grid-template-columns:74px minmax(0,1fr);
  border:1px solid #dcdcdc;
  background:#fff;
  width:100%;
  overflow:hidden;
  box-shadow:0 2px 10px rgba(0,0,0,.06);
}

.point-no{
  background:#1e88ff;
  color:#fff;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  text-align:center;
  padding:0;
}

.point-no__label{
  font-size:12px;
  font-weight:1000;
  letter-spacing:.08em;
  line-height:1;
  margin:0;
}

.point-no__num{
  font-size:22px;
  font-weight:1000;
  line-height:1;
  margin:0;
}

.point-body{
  padding:14px;
  min-width:0;
}

.point-body__title{
  margin:0 0 10px;
  font-size:16px;
  font-weight:1000;
  line-height:1.55;
  color:#111;
}

.point-body__text{
  margin:0;
  font-size:12px;
  font-weight:800;
  line-height:1.7;
}

/* PC寄り調整 */
@media (min-width:768px){
  .pack-reason-hero{
    top:94px;
    width:380px;
  }
  .pack-reason{
    padding-top:240px;
    padding-bottom:0;
  }
  .pack-reason-wrap{
    padding-bottom:0;
  }
  .pack-reason-head__sub{ font-size:32px; }
  .pack-reason-head__main{ font-size:20px; }
  .pack-reason-head::before{ left:91px; }
  .pack-reason-head::after{ right:91px; }
}

/* =========================
  パックプラン：PC
========================= */
@media (min-width:1024px){
  .pack{
    padding-top:40px;
    padding-bottom:50px;
  }

  .pack .container{
    max-width:1000px;
    margin:0 auto;
  }

  .pack__kicker{
    font-size:18px;
    margin-bottom:6px;
  }

  .pack__title{
    font-size:40px;
    margin:8px 0 26px;
  }

  .pack-grid{
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:34px 44px;
    align-items:start;
  }

  .pack-pair{
    gap:18px;
  }

  .plan-card{
    box-shadow:none;
    margin-bottom:0;
  }

  .plan-card__band{
    font-size:14px;
    padding:10px 10px;
  }

  .plan-card__body{
    padding:18px 18px 16px;
  }

  .plan-card__name{
    font-size:24px;
  }

  .plan-card__amount{
    font-size:44px;
  }

  .plan-card__price--consult .plan-card__amount{
    font-size:28px;
  }

  .plan-card__desc{
    font-size:13px;
    -webkit-line-clamp:5;
    min-height:calc(1.7em * 5);
  }

  .plan-card::after{
    bottom:-14px;
    border-left:14px solid transparent;
    border-right:14px solid transparent;
    border-top:14px solid #fff;
    filter:none;
  }

  .truck{
    height:170px;
    padding:0;
    margin-bottom:0;
  }

  .truck img{
    width:100%;
    height:100%;
  }

  .pack-reason__title{
    margin:56px 0 18px;
    font-size:28px;
  }

  .pack-reason{
    gap:18px;
  }

  .point-row{
    grid-template-columns:120px minmax(0,1fr);
  }

  .point-no__num{
    font-size:34px;
  }

  .point-body{
    padding:22px;
  }

  .point-body__title{
    font-size:18px;
    margin-bottom:12px;
  }

  .point-body__text{
    font-size:14px;
  }

  .point-row{
    margin:0 auto;
    width:100%;
  }
}

@media (max-width:500px){
  .pack-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:12px 10px;
  }

  .plan-card__body{ padding:10px; }
  .plan-card__band{ padding:8px 6px; font-size:14px; }

  .plan-card__name{ font-size:18px; }
  .plan-card__amount{ font-size:30px; }
  .plan-card__yen{ font-size:16px; }

  .plan-card__tags{ gap:6px; }
  .plan-card__tag{ padding:6px 10px; font-size:11px; }

  .pack-pair, .plan-card, .plan-card__body{ min-width:0; }
}
/* =========================
  LINE CTA
========================= */

.linecta{
  padding: 20px 0;
}

.linecta__inner{
  width: min(92%, 720px);
  margin: 0 auto;
  text-align: center;
  border: 1px solid #06C755;
  padding-bottom: 12px;
}


.linecta__head{
  margin: 0 0 18px;
  background: #06C755;
  color: #fff;
  font-weight: 1000;
  font-size: 16px;
  padding: 16px 12px;
}


.linecta__badge{
  position: absolute;
  left: 50%;
  top: -18px;                
  transform: translateX(-50%);

  background: #fff;
  color: #06C755;
  font-weight: 1000;
  font-size: 13px;
  padding: 2px 22px;
  border-radius: 999px;
  border: 3px solid #06C755;
  white-space: nowrap;
}


.linecta__btn{
  position: relative;   
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;

  padding: 20px 26px;   
  border-radius: 16px;

  background: #06C755;
  color: #fff;
  text-decoration: none;
  font-weight: 1000;
  font-size: 18px;
  margin: 12px 0;
  box-shadow: 0px 7px 0px 0px #00a443;

}


.linecta__icon img{
  width: 44px;
  height: 44px;
  display: block;
}


@media (max-width: 420px){
  .linecta__head{ font-size:14px; padding:14px 10px; }
  .linecta__btn{ font-size:16px; padding:16px 18px; }
  .linecta__icon img{ width:40px; height:40px; }
}
/* =========================
  選ばれ続ける理由
========================= */

*, *::before, *::after { box-sizing: border-box; }
.reason { overflow-x: hidden; }

.reason{
  padding: 66px 0 10px;
}

.reason__inner{
  width: min(92%, 980px);
  margin: 0 auto;
  position: relative;
}
@media (min-width: 1024px) {
  .linecta__inner {
    width: 628px;
  }
}
/* ===== 上部 ===== */
.reason__top{
  position: relative;
  padding-top: 6px;
  margin-bottom: 14px;
}


.reason__titlebox{
  max-width: 520px;
}

.reason__lead{
  margin: 0 0 6px;
  font-weight: 1000;
  font-size: 18px;
  color: #111;
  letter-spacing: .02em;
}

.reason__title{
  margin: 0;
  font-weight: 1000;
  font-size: 36px;
  line-height: 1.1;
  color: #ff7a2f; 
  letter-spacing: .02em;
}


.reason__person{
  position: absolute;
  right: 0;
  top: -6px;
  width: min(48vw, 310px);
  z-index: 0; 
  pointer-events: none;
}

.reason__person img{
  width: 100%;
  height: auto;
  display: block;
}

/* ===== POINTカード ===== */
.reason__list{
  display: grid;
  gap: 16px;
}


.reason-card{
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr); 
  border: 2px solid #cfcfcf;
  background: #fff;
}


.reason-card__no{
  background: #ff8a4d;
  color: #fff;
  display: grid;
  place-content: center;
  text-align: center;
  padding: 8px 6px;           
}

.reason-card__point{
  font-weight: 1000;
  font-size: 13px;            
  letter-spacing: .06em;
  line-height: 1;
  margin-bottom: 8px;         
}

.reason-card__num{
  font-weight: 1000;
  font-size: 28px;            
  line-height: 1;
}


.reason-card__body{
  padding: 14px 14px;         
  min-width: 0;
}

.reason-card__title{
  margin: 0 0 8px;
  font-weight: 1000;
  font-size: 18px;            
  line-height: 1.25;
  color: #111;
}

.reason-card__text{
  margin: 0;
  font-weight: 900;
  font-size: 14px;
  line-height: 1.6;
  color: #111;
}

/* ===== SP ===== */
@media (max-width: 520px){
  .reason__lead{ font-size: 18px; }
  .reason__title{ font-size: 25px; }

  
  .reason__person{
    width: min(45vw, 240px);  
    top: -56px;               
  }

  
  .reason__list{
    margin-top: 18px;
  }

  
  .reason-card{
    grid-template-columns: 88px minmax(0, 1fr); 
  }

  .reason-card__title{ font-size: 16px; }
  .reason-card__text{ font-size: 12px; }
}

/* ===== PC ===== */
@media (min-width: 500px){
  .reason__top{
    display: grid;
    grid-template-columns: 1fr 360px;
    align-items: start;
    column-gap: 24px;
    margin-bottom: 18px;
  }

  .reason__person{
    position: relative;
    top: -10%;
    right: 0;
    width: 360px;
    z-index: 1;
  }

  .reason__titlebox{
    max-width: none;
  }

  
  .reason-card{
    grid-template-columns: 104px minmax(0, 1fr);
  }
  .reason-card__title{ font-size: 28px; }
  .reason-card__text{ font-size: 18px; }
  .reason-card__num{ font-size: 34px; }
}
/* ========================================
   選ばれ続ける理由 
======================================== */

.reason {
 padding: 75px 0 37px;
}

.reason__inner {
  width: min(92%, 980px);
  margin: 0 auto;
  position: relative;
}

.reason__top {
  position: relative;
  padding-top: 6px;
  margin-bottom: 14px;
}

.reason__titlebox {
  max-width: 520px;
}

.reason__lead {
  margin: 0 0 6px;
  font-weight: 1000;
  font-size: 18px;
  color: #111;
  letter-spacing: .02em;
}

.reason__title {
  margin: 0;
  font-weight: 1000;
  font-size: 36px;
  line-height: 1.1;
  color: #ff7a2f;
  letter-spacing: .02em;
}

.reason__person {
  position: absolute;
  right: 0;
  top: -6px;
  width: min(48vw, 310px);
  z-index: 0;
  pointer-events: none;
}

.reason__person img {
  width: 100%;
  height: auto;
  display: block;
}

/* ===== POINTカード ===== */
.reason__list {
  display: grid;
  gap: 16px;
}

.reason-card {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  border: 2px solid #cfcfcf;
  background: #fff;
}

.reason-card__no {
  background: #ff8a4d;
  color: #fff;
  display: grid;
  place-content: center;
  text-align: center;
  padding: 8px 6px;
}

.reason-card__point {
  font-weight: 1000;
  font-size: 13px;
  letter-spacing: .06em;
  line-height: 1;
  margin-bottom: 8px;
  display: block;
}

.reason-card__num {
  font-weight: 1000;
  font-size: 28px;
  line-height: 1;
  display: block;
}

.reason-card__body {
  padding: 14px 14px;
  min-width: 0;
}

.reason-card__title {
  margin: 0 0 8px;
  font-weight: 1000;
  font-size: 18px;
  line-height: 1.25;
  color: #111;
}

.reason-card__text {
  margin: 0;
  font-weight: 900;
  font-size: 14px;
  line-height: 1.6;
  color: #111;
}

@media (max-width: 520px) {
  .reason__lead { font-size: 18px; }
  .reason__title { font-size: 25px; }
  .reason__person {
        width: min(46vw, 240px);
        top: -62px;
  }
  .reason__list { margin-top: 18px; }
  .reason-card { grid-template-columns: 88px minmax(0, 1fr); }
  .reason-card__title { font-size: 16px; }
  .reason-card__text { font-size: 12px; }
}

@media (min-width: 900px) {

  .reason {
    padding: 60px 0 60px;
  }

  
  .reason__inner {
    display: grid;
    
    column-gap: 40px;
    align-items: start;
  }

 
  .reason__top {
    position: static;
    margin-bottom: 24px;
    padding-top: 0;
  }

  .reason__titlebox {
    max-width: none;
  }

  .reason__lead {
    font-size: 20px;
  }

  .reason__title {
    font-size: 42px;
  }

  
  .reason__person {
  
    grid-column: 2;
    grid-row: 1 / 3;
    position: sticky;     
    top: 20px;
    width: 100%;
    max-width: 300px;
    align-self: start;
    z-index: 1;
    pointer-events: none;
  }


  .reason__list {
    grid-column: 1;
    grid-row: 2;
    gap: 16px;
  }


  .reason-card {
    grid-template-columns: 104px minmax(0, 1fr);
  }

  .reason-card__point {
    font-size: 13px;
  }

  .reason-card__num {
    font-size: 34px;
  }

  .reason-card__body {
    padding: 18px 20px;
  }

  .reason-card__title {
    font-size: 22px;
    margin-bottom: 10px;
  }

  .reason-card__text {
    font-size: 15px;
  }
}
/* =========================
  選ばれ続ける理由：背景（方眼）
========================= */
.reason{

  background-color:#fff;
  background-image:
    linear-gradient(to right, rgba(0,0,0,.06) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(0,0,0,.06) 1px, transparent 1px);
  background-size: 14px 14px;   /* 方眼の細かさ */
  background-position: center;
}

/* =========================
  レイアウト土台
========================= */
.reason__inner{
  width: min(92%, 1000px); /* コンテンツ幅 1000px以内 */
  margin: 0 auto;
}



@media (min-width: 500px){
  .reason{
    padding: 72px 0 64px;
  }

  .reason__grid{
    display: grid;
    grid-template-columns: minmax(0, 1fr) 380px;
    column-gap: 48px;
    align-items: start;
  }

 
  .reason__titlebox{
    max-width: 560px;
    margin: 0 auto 22px;
    text-align: center;
  }
  .reason__lead{
    font-size: 20px;
    margin-bottom: 8px;
  }
  .reason__title{
    font-size: 40px;
    line-height: 1.1;
  }


  .reason__list{
    gap: 18px;
  }


  .reason-card{
    grid-template-columns: 96px minmax(0, 1fr);
    border: 2px solid #cfcfcf;
    background: #fff;
  }
  .reason-card__body{
    padding: 16px 18px;
  }
  .reason-card__title{
    font-size: 20px;     
    margin: 0 0 8px;
    line-height: 1.25;
  }
  .reason-card__text{
    font-size: 14px;
    line-height: 1.7;
  }
  .reason-card__num{
    font-size: 30px;
  }


  .reason__right{
    display: flex;
    justify-content: center;
    align-items: flex-start;
  }
  .reason__person{
    position: relative;  
    top: 0;
    right: 97px;
    width: 221px;
    z-index: 1;
    pointer-events: none;
  }
  .reason__person img{
    width: 100%;
    height: auto;
    display: block;
  }
  .reason__grid{
    display: grid;
    grid-template-columns: minmax(0, 1fr) fit-content(420px);
    column-gap: 0px;
    align-items: start;
  }


  .reason__right{
    justify-self: end;
  }

  
  .reason__person{
    width: clamp(320px, 34vw, 420px);
  }


  .reason__titlebox{
    margin: 0 0 22px;
    text-align: left;
    max-width: none;
  }
}


@media (min-width: 1000px){

  .reason__grid{
    grid-template-columns: minmax(0, 1fr) 420px;
  }
  .reason__person{
    width: 221px;
  }
  


}
/* =========================
   タブレット（縦・横共通）
   768px〜1024px
========================= */
@media screen and (min-width: 500px) and (max-width: 1024px) {
  .reason {
    padding: 100px 0 37px;
}
      .reason__titlebox {
        margin-bottom: 16px;
      }
    .reason__person {
    position: absolute;
    right: 79px;
    top: -72px;
    z-index: 0;
            width: 239px
  }

}
/* =========================
  12の約束
========================= */
*, *::before, *::after { box-sizing: border-box; }

.promise12{
  background-color: #fbf7f2;
  background-image:
    linear-gradient(rgba(0,0,0,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,0,0,.04) 1px, transparent 1px);
  background-size: 24px 24px;
  padding: 40px 0 30px;
  overflow-x: hidden;
}

.promise12__inner{
  width: min(92%, 1000px);  
  margin: 0 auto;
}

.promise12__header{
  text-align: center;
}

.promise12__headline{
  display: inline-flex;
  align-items: flex-end;
  justify-content: center;
  gap: 10px;
  margin: 0 0 10px;
}

.promise12__brand img{
  display:block;
  height: 52px;
  width: auto;
}

.promise12__ga{
  font-weight: 900;
  font-size: 28px;
  line-height: 1;
  color: #f26b1c;
  transform: translateY(-2px);
}

.promise12__title{
  margin: 0 0 14px;
  line-height: 1.1;
}

.promise12__title-em{
  display:block;
  font-weight: 900;
  color: #f26b1c;
  font-size: clamp(28px, 6vw, 44px);
}

.promise12__lead{
  margin: 0;
  text-align: left;
  max-width: 860px;
  margin-inline: auto;
  font-weight: 700;
  font-size: 14px;
  line-height: 1.9;
  color: #111;
}

.promise12__group{ margin-top: 30px; }

.promise12__group-title{
  display: table;
  margin: 0 auto 14px;
  padding: 10px 18px;
  font-weight: 1000;
  color: #fff;
  font-size: 18px;
  line-height: 1;
  border-radius: 4px;
}

.is-orange{ background:#ff8a4d; }
.is-blue{ background:#4aa8ff; }
.is-green{ background:#3ccf86; }
.is-gold{ background:#f2b44a; }

/* -------------------------
  card
------------------------- */
.promise-card{
  --card-color: #ff8a4d;
  background: #fff;
  border: 2px solid var(--card-color);
  box-shadow: 0 2px 0 rgba(0,0,0,.05);
  min-width: 0;
  display: flex;
  flex-direction: column;
  height: 312px;
}

.promise-card.is-orange{ --card-color:#ff8a4d; }
.promise-card.is-blue{   --card-color:#4aa8ff; }
.promise-card.is-green{  --card-color:#3ccf86; }
.promise-card.is-gold{   --card-color:#f2b44a; }

.promise-card__head{
  background: var(--card-color);
  color: #fff;
  font-weight: 1000;
  padding: 10px 12px;
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: center; /* SPも中央寄せのまま */
  font-size: 14px;
  text-align: center;
}

.promise-card__no{ flex: 0 0 auto; }
.promise-card__headtxt{ min-width: 0; }

.promise-card__media{
  aspect-ratio: 2.4 / 1;
  overflow: hidden;
  background: #eee;
  flex-shrink: 0;
}

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

.promise-card__list{
  margin: 0;
  padding: 12px 14px 14px;
  list-style: none;
  color: #111;
  font-weight: 900;
  font-size: 13px;
  line-height: 1.7;
  flex: 1 1 auto;
}

.promise-card__list li{
  position: relative;
  padding-left: 14px;
  margin-top: 6px;
}

.promise-card__list li:first-child{ margin-top: 0; }

.promise-card__list li::before{
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
}

.promise-card__list .is-marker{
  background: linear-gradient(transparent 55%, #fff49a 55%);
  padding: 0 2px;
}
.marker {
   background: linear-gradient(transparent 55%, #fff49a 55%);
}
/* =================================
  SP
================================= */
.promise12__scroll{ display:none; }

@media (max-width: 899px){
  .promise12__scroll{
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 10px;
  }

  .promise12__row{
    display: flex;
    gap: 16px;
    padding: 4px 4px 10px;
    width: max-content;
    align-items: stretch;
  }

  :root{ --promise-card-w: 260px; }

  .promise12__row > .promise-card,
  .promise12__lane-cards > .promise-card{
    flex: 0 0 var(--promise-card-w);
    width: var(--promise-card-w);
  }

  .promise12__lane{
    flex: 0 0 auto;
  }

  .promise12__lane-title{
    margin: 0 auto 12px;
    display: table;
    padding: 10px 18px;
    font-weight: 1000;
    color: #fff;
    font-size: 18px;
    line-height: 1;
    border-radius: 4px;
    white-space: nowrap;
    text-align: center;
  }
  .promise12__lane-title.is-green{ background:#3ccf86; }
  .promise12__lane-title.is-gold{ background:#f2b44a; }

  .promise12__lane-cards{
    display: flex;
    gap: 16px;
  }

  @media (max-width: 360px){
    :root{ --promise-card-w: 240px; }
  }
}

/* =================================
  PC
================================= */
@media (min-width: 900px){
  .promise12{ padding: 60px 0 50px; }
  .promise12__lead{ font-size: 15px; }

  
  .promise12__scroll{
    display: block;
    overflow: visible;
    padding-bottom: 0;
  }

  /* 1) 訪問前（1〜4）/ 作業中（5〜8）は 4カラム */
  .promise12__group > .promise12__scroll > .promise12__row{
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    padding: 0;
    width: auto;
    align-items: stretch;
  }

  .promise12__group[aria-label="作業後とサービス品質のお約束"] > .promise12__scroll > .promise12__row{
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    padding: 0;
    width: auto;
    align-items: start;
  }

  .promise12__lane{
    grid-column: span 2;     
    min-width: 0;
  }

  .promise12__lane-title{
    margin: 0 auto 14px;
    display: table;
    padding: 10px 18px;
    font-weight: 1000;
    color: #fff;
    font-size: 18px;
    line-height: 1;
    border-radius: 4px;
    text-align: center;
    white-space: nowrap;
  }
  .promise12__lane-title.is-green{ background:#3ccf86; }
  .promise12__lane-title.is-gold{ background:#f2b44a; }

  .promise12__lane-cards{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr)); 
    gap: 18px;
    align-items: stretch;
  }


  .promise-card__head{
    font-size: 13px;
    padding: 12px 14px;
  }

  .promise-card__list{
    font-size: 12px;
    padding: 12px 14px 14px;
  }


  .promise-card{
    min-height: 344px;
  }
}

/* =========================
  比較表 
========================= */
.compare{
  position:relative;
  border-radius:18px;
}
.compare__tableWrap{
  overflow:auto;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
}
.table{
  width:100%;
  border-collapse:collapse;
  min-width:520px;
}
.table th, .table td{
  border-bottom:1px solid var(--line);
  padding:12px 10px;
  font-size:14px;
  text-align:center;
}
.table thead th{
  background:#f2f2f2;
  font-weight:1000;
}
.table tbody th{
  text-align:left;
  font-weight:1000;
}

/* =========================
  まずはお気軽にご相談を
========================= */
.consult{
  box-sizing: border-box;
  background-color: #e9e9e9;
  background-image:
    linear-gradient(rgba(0,0,0,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,0,0,.04) 1px, transparent 1px);
  background-size: 24px 24px;
  padding: 26px 0 30px;
}

.consult__inner{
  width: min(90%, 680px);
  margin: 0 auto;
}

.consult__title{
  margin: 0 0 14px;
  text-align: center;
  font-weight: 1000;
  font-size: 30px;
  letter-spacing: .02em;
  color: #ff7a2f;
}


.consult__hero{
  display: grid;
  place-items: center;
  margin-bottom: 0px;
}

.consult__hero img{
  width: 100%;
  height: auto;
  display: block;
}


.consult__note{
  border: 4px dotted #111;
  background: #fff;
  padding: 16px 14px 16px;
  margin: 0 4px;
}

.consult__note-top{
  display: grid;
  grid-template-columns: 62px 1fr;
  gap: 12px;
  align-items: center;
}


.consult__avatar{
  width: 62px;
  height: 62px;
  border-radius: 999px;
  object-fit: cover;
  display: block;
}


.consult__desc{
  margin: 0;
  font-weight: 500;
  font-size: 10px;
  line-height: 1.9;
  color: #111;
}

.consult__desc--sub{
  margin-top: 12px;
  font-size: 8px;
  text-align: center;
}
 .consult__desc{ font-size: 10px; }

@media (max-width: 360px){
  .consult__title{ font-size: 26px; }
  .consult__note-top{
    grid-template-columns: 56px 1fr;
  }
  .consult__avatar{
    width: 56px;
    height: 56px;
  }
  .consult__desc{ font-size: 10px; }
}
@media (min-width: 900px){
  .consult__desc{ font-size: 12px; }
}
/* =========================
  追加料金になるもの
========================= */
.addfee{
  background-color: #fff5ed; 
  background-image:
    linear-gradient(rgba(255,122,47,.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,122,47,.08) 1px, transparent 1px);
  background-size: 24px 24px;
  padding-top: 24px;
  padding-bottom: 2px;
}

.addfee__inner{
  width: min(92%, 680px);
  margin: 0 auto;
}


.addfee__head{
  display: grid;
  grid-template-columns: 30px 1fr;
  gap: 10px;
  align-items: center;

  background: #fff;
  border: 1px solid rgba(0,0,0,.12);
  padding: 10px 12px;
}

.addfee__head-ico{
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
}

.addfee__head-ico img{
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.addfee__title{
  margin: 0;
  font-weight: 1000;
  font-size: 18px;
  color: #111;
  letter-spacing: .02em;
}

.addfee__lead{
  margin: 12px 0 14px;
  text-align: center;
  font-weight: 800;
  font-size: 13px;
  line-height: 1.9;
  color: #111;
}


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

.addfee__item{
  display: grid;
  grid-template-columns: 54px 1fr;
  gap: 12px;
  align-items: center;

  background: #fff;
  border: 1px solid rgba(0,0,0,.12);
  padding: 12px 14px;
}

.addfee__icon{
  width: 54px;
  height: 40px;
  padding-bottom: 53px;
  display: grid;
  place-items: center;
}

.addfee__icon img{
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.addfee__label{
  font-weight: 1000;
  font-size: 14px;
  line-height: 1.35;
  color: #111;
}


.addfee__note{
  margin-top: 14px;
  background: #fff;
  border: 1px solid rgba(0,0,0,.12);
  padding: 12px 14px;
}

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

.addfee__note-list li{
  position: relative;
  padding-left: 14px;
  font-weight: 800;
  font-size: 12px;
  line-height: 1.75;
  color: #111;
}

.addfee__note-list li::before{
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
}

.addfee__note-sub{
  margin: 10px 0 0;
  font-weight: 700;
  font-size: 11px;
  line-height: 1.6;
  color: #111;
}


.addfee__bottom{
      margin: 24px auto 20px auto;
    width: 80%;
}

.addfee__bottom img{
  width: 100%;
  height: auto;
  display: block;
}

@media (min-width: 900px){
  .addfee__head{
  display: flex;              
  align-items: center;
  justify-content: center;   
  gap: 10px;

  background: #fff;
  border: 1px solid rgba(0,0,0,.12);
  padding: 10px 12px;
}

.addfee__title{
  margin: 0;
  font-weight: 1000;
  font-size: 18px;
  color: #111;
  letter-spacing: .02em;
  text-align: center;         /* 念のため */
}



.addfee__icon{
  width: 54px;
  height: 54px;
  padding-bottom: 0;
  display: grid;
  place-items: center;
}
.addfee__inner{
    width: min(92%, 860px);  
  }

  .addfee__list{
    grid-template-columns: repeat(2, minmax(0, 1fr)); /* 2列 */
    gap: 14px 18px;                                  /* 行/列の余白 */
  }


  .addfee__item{
    height: 100%;
  }
}
@media (max-width: 360px){
  .addfee__title{ font-size: 17px; }
  .addfee__label{ font-size: 13px; }
  .addfee__lead{ font-size: 12px; }
}
@media (min-width: 900px){
  .addfee__inner{
    width: 680px;
  }
}
/* =========================
  比較表
========================= */

.compare{
  --accent:#FF834D;
  --line:#d6d6d6;
  --soft:#f2f2f2;
  --blue:#3694FF;

  
  --w-stub:150px;   
  --w-main:220px;   
  --w-other:170px;  
  --head-h:56px;        
  --head-h-main:72px;   
  
  --head-h:56px;

  max-width: 100%;
  margin: 0px auto 0;
  padding: 12px 8px;
}


.compare__scroll{
  overflow-x: auto;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
  position: relative;
  padding: 103px 0 10px; 
}


.compare__table{
  border-collapse: collapse;
  table-layout: fixed;
  width: 100%;
  min-width: calc(var(--w-stub) + var(--w-main) + (var(--w-other) * 2));
  background: #fff;
}


.compare__table th,
.compare__table td{
  border: 1px solid var(--line);
  padding: 12px 10px;
  text-align: center;
  vertical-align: middle; 
  font-size: 14px;
  line-height: 1.4;
  background: #fff;
  word-break: break-word;
}

/* -------------------------
  左列（項目）
------------------------- */
.compare__table tbody th.sticky-col{
  width: var(--w-stub);
  background: var(--blue);
  color: #fff;
  font-weight: 900;
  white-space: nowrap;
  background-color: #3694Ff;
}


.compare__table thead th.corner-empty{
  width: var(--w-stub);
  background: transparent;
  border: 0;
  padding: 0;
}

/* -------------------------
  ヘッダー行
------------------------- */
.compare__table thead th{
  height: var(--head-h);
  padding: 0;            
  vertical-align: middle; 
  font-weight: 900;
}


.compare__table thead th.other-head{
  width: var(--w-other);
  background: #fff6d8;
  
}


.compare__table thead th.main-head{
  width: var(--w-main);
  background: #FF834D;
  color: #fff;
  
  position: relative;
  overflow: visible; 
}


.main-head__title{
  height: var(--head-h);
  line-height: var(--head-h); 
  padding: 0 10px;
  font-weight: 1000;
  letter-spacing: .03em;
}


.main-head__badge{
  position: absolute;
  top: -180%; 
  left: 50%;
  transform: translateX(-50%);
  z-index: 5;
  pointer-events: none;
  width: 100%;
  display: flex;
  justify-content: center;
}
.main-head__badge img{
  width: 190px;
  height: auto;
  display: block;
}

/* -------------------------
  本文：メイン列
------------------------- */
.compare__table td.is-main{
  width: var(--w-main);
  color: var(--accent);
  font-weight: 900;
}


.compare__table tbody td{
  width: var(--w-other);
}


.compare__table tbody th,
.compare__table tbody td{
  padding-top: 14px;
  padding-bottom: 14px;
}


@media (max-width: 480px){
  .compare{
    --w-stub:140px;
    --w-main:210px;
    --w-other:160px;
    --head-h:54px;
  }

  .compare__table th,
  .compare__table td{
    font-size: 13px;
    padding: 12px 8px;
  }

  .main-head__badge img{ width: 180px; }
}


.compare__scroll::-webkit-scrollbar{ height: 10px; }
.compare__scroll::-webkit-scrollbar-track{ background:#f2f2f2; border-radius:999px; }
.compare__scroll::-webkit-scrollbar-thumb{ background: var(--accent); border-radius:999px; }
.compare__scroll::-webkit-scrollbar-thumb:hover{ background:#ff5f0f; }
.compare__scroll{ scrollbar-color: var(--accent) #f2f2f2; scrollbar-width: thin; }

@media (min-width: 900px){
  .compare {
    max-width: 780px;
  }
}
/* =========================
  お客様の声
========================= */

.voices {
  --accent: #ff7a2a;
  --ink: #2a2a2a;
  --card: #ffffff;
  --line: #ececec;

  padding: 28px 16px 34px;
  color: var(--ink);

  
  background-color: #fafafa;
  background-image:
    linear-gradient(to right, rgba(0, 0, 0, 0.04) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(0, 0, 0, 0.04) 1px, transparent 1px);
  background-size: 18px 18px;
}

.voices__inner {
  max-width: 1100px;
  margin: 0 auto;
}

.voices__title {
  margin: 0 0 16px;
  text-align: center;
  font-weight: 800;
  letter-spacing: 0.02em;
  color: var(--accent);
  font-size: 26px;
}

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


.voice {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.06);
}

.voice__media {
  padding: 12px 12px 0;
}

.voice__photo {
  width: 100%;
  aspect-ratio: 16 / 9;
  display: block;
  object-fit: cover;
  border-radius: 12px;
  border: 1px solid var(--line);
}


.voice__body {
  padding: 12px 14px 14px;
}

.voice__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}

.voice__who {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.voice__avatar-img {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  object-fit: cover;
  flex: 0 0 auto;
}

.voice__who-text {
  font-weight: 800;
  font-size: 14px;
  white-space: nowrap;
}

.voice__rate {
  flex: 0 0 auto;
  line-height: 1;
}

.voice__stars {
  color: #f6b100;
  font-size: 14px;
  letter-spacing: 0.12em;
}

.voice__tags {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 8px 0 10px;
}

.voice__tag {
  display: inline-flex;
  align-items: center;
  padding: 6px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  color: #fff;
  background: #ff9a5a;
  white-space: nowrap;
}

.voice__tag--accent {
  background: var(--accent);
}

.voice__text {
  margin: 0;
  font-size: 13px;
  line-height: 1.75;
  color: #2f2f2f;
}

/* ====== PC（横並び） ====== */
@media (min-width: 900px) {
  .voices {
    margin-top: 44px;
    padding: 44px 24px 52px;
    background-size: 22px 22px;
  }

  .voices__title {
    font-size: 34px;
    margin-bottom: 22px;
  }

  .voices__list {
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
  }

  .voice__body {
    padding: 14px 16px 16px;
  }

  .voice__text {
    font-size: 13.5px;
  }
}


/* =========================
   回収品目一覧
========================= */

.items {
  padding: 24px 16px 28px;
  background: #ffffff;
}

.items__inner {
  max-width: 980px;
  margin: 0 auto;
  text-align: center;
}


.items__lead {
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 8px;
  letter-spacing: 0.02em;
}


.items__title {
  font-size: 26px;
  font-weight: 800;
  color: #ff6a2a;
  margin-bottom: 18px;
  line-height: 1.2;
  letter-spacing: 0.03em;
}


.items__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}


.items__card {

  overflow: hidden;
  background: #fff;
  aspect-ratio: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
}


.items__card img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}


.items__cta {
  margin-top: 18px;
}

.items__btn {
  display: inline-block;
  padding: 12px 20px;
  min-width: min(320px, 100%);
  border-radius: 9999px;
  background: #ff7a3a;
  color: #fff;
  font-weight: 800;
  text-decoration: none;
  letter-spacing: 0.02em;
}
/* =========================
  回収品目 モーダル
========================= */
.items-modal{
  position:fixed;
  inset:0;
  display:none;
  z-index:9999;
}

.items-modal.is-active{
  display:block;
}

.items-modal__overlay{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,0.6);
  backdrop-filter:blur(2px);
}

.items-modal__content{
   width:min(92vw, 720px); 
  position:absolute;
  top: 44%;
  left:50%;
  transform:translate(-50%,-50%);
  max-width:90%;
  max-height:83vh;         
  overflow:auto;
  background:#fff;
  border-radius:16px;
  padding:0;
  box-shadow:0 20px 40px rgba(0,0,0,0.3);
}

.items-modal__content img{
  width:100%;
  height:auto;
  display:block;
}

.items-modal__close{
  position:absolute;
  top:10px;
  right:15px;
  background:none;
  border:none;
  font-size:28px;
  cursor:pointer;
  line-height:1;
}
/* =========================
   PC表示
========================= */

@media (min-width: 768px) {

  .items {
    padding: 44px 20px 48px;
  }

  .items__lead {
    font-size: 14px;
    margin-bottom: 10px;
  }

  .items__title {
    font-size: 34px;
    margin-bottom: 26px;
  }

  .items__grid {
    gap: 18px;
  }

  .items__card {
    border-radius: 12px;
  }

  .items__cta {
    margin-top: 26px;
  }

  .items__btn {
    padding: 16px 28px;
    min-width: 520px;
    font-size: 18px;
  }
}


@media (hover:hover) {
  .items__btn:hover {
    filter: brightness(0.97);
  }
}

/* =========================
   FAQ
========================= */
.faq{
  padding: 42px 16px 24px; 
  background: #fff;
}

.faq__inner{
  max-width: 720px;
  margin: 0 auto;
}

.faq__title{
  text-align: center;
  margin: 0 0 14px;
  font-size: 28px;
  font-weight: 900;
  color: #ff6a2a;
  letter-spacing: .04em;
}

.faq__list{
  display: grid;
  gap: 10px;
}

.faq__item{
  border: 2px solid #a9a9a9;
  background: #fff;
}

.faq__q{
  list-style: none; 
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 12px;
  cursor: pointer;
  user-select: none;
}

.faq__q::-webkit-details-marker{
  display: none;
}

.faq__qLeft{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.faq__qIcon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #222;
  color: #fff;
  font-weight: 900;
  font-size: 13px;
  flex: 0 0 auto;
}

.faq__qText{
  font-size: 14px;
  font-weight: 400;
  color: #222;
  line-height: 1.35;
  white-space: normal;
}

.faq__chev{
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #6f6f6f;
  position: relative;
  flex: 0 0 auto;
}

.faq__chev::before{
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: 7px;
  height: 7px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(-45deg); 
  top: 0;
  bottom: 0;
  left: -1px;
}


.faq__item[open] .faq__chev::before{
  transform: rotate(45deg); 
  left: 0;
}


.faq__a{
  display: flex;
  gap: 10px;
  padding: 10px 12px 14px;
  border-top: 1px solid #d6d6d6;
}

.faq__aIcon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #ff6a2a;
  color: #fff;
  font-weight: 900;
  font-size: 13px;
  flex: 0 0 auto;
}

.faq__aBody{
  font-size: 14px;
  line-height: 1.6;
  color: #333;
}


/* =========================
   許可・証明セクション
========================= */
.proof{
  padding: 26px 16px 22px;
  background-color: #ffffff;
  
  background-image:
    linear-gradient(to right, rgba(0,0,0,.06) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(0,0,0,.06) 1px, transparent 1px);
  background-size: 26px 26px;
  margin-top: 42px;
}

.proof__inner{
  max-width: 780px;
  margin: 0 auto;
  text-align: center;
}

.proof__lead{
  margin: 0 0 6px;
  font-size: 16px;
  font-weight: 700;
  color: #1f6f8b; 
  letter-spacing: .02em;
}

.proof__title{
  margin: 0 0 18px;
  font-size: 26px;
  font-weight: 900;
  line-height: 1.25;
  letter-spacing: .03em;
}

.proof__titleBlue{ color:#1f6f8b; }
.proof__titleOrange{ color:#ff6a2a; }

.proof__cards{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  align-items: start;
}

.proof__card{
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 220px; 
  margin: 0;
}

.proof__img{
  flex: 1; 
  display: flex;
  align-items: center;     
  justify-content: center; 
}

.proof__img img{
  max-width: 100%;
  height: auto;
  object-fit: contain;
}

.proof__cap{
  margin-top: auto; 
  padding-top: 10px;
  font-size: 13px;
  font-weight: 700;
  text-align: center;
}

.proof__logoWrap{
  display: inline-block;
  vertical-align: middle;
  transform: translateY(-4px); 
}

.proof__logo{
  height: 38px; 
  width: auto;
  display: inline-block;
}

.proof__titleOrange{
  color: #ff6a2a;
  display: inline-block;
  transform: translateY(2px); 
}


.proof__title{
  margin: 0 0 18px;
  font-size: 26px;
  font-weight: 900;
  line-height: 1.3;
}

.proof__titleOrange{
  color:#ff6a2a;
}


@media (min-width: 768px){
  .proof__img img{
    width: 200px;
  }
}
/* =========================
  対応エリア
========================= */
.area{
  padding: 22px 16px 26px;
  background-color:#fff;
  background-image:
    linear-gradient(to right, rgba(0,0,0,.06) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(0,0,0,.06) 1px, transparent 1px);
  background-size: 26px 26px;
}

.area__inner{
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}


.area__hero{
  margin: 0 auto 10px;
  max-width: 340px;
}

.area__hero img{
  width: 100%;
  height: auto;
  display: block;
}


.area__title{
  margin: 4px 0 4px;
  font-size: 26px;
  font-weight: 900;
  color: #ff6a2a;
  letter-spacing: .04em;
}

.area__sub{
  margin: 0 0 14px;
  font-size: 13px;
  font-weight: 800;
  color: #ff6a2a;
}


.area__listWrap{
  border: 2px solid #ff6a2a;
  border-radius: 16px;
  padding: 14px 12px;
  background: rgba(255,255,255,.85);
   display: grid;
  grid-template-columns: repeat(4, 1fr); 
  gap: 12px 12px;
}


.area__pill{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 6px 14px;
  border-radius: 9999px;
  background: #ff6a2a;
  color: #fff;
  font-weight: 900;
  font-size: 13px;
  letter-spacing: .02em;
  text-decoration: none;

  white-space: nowrap;
}


@media (max-width: 360px){
  .area__hero{ max-width: 310px; }
  .area__pill{ font-size: 12px; padding: 6px 12px; }
}


@media (min-width: 768px){
  
}


@media (hover:hover){
  .area__pill:hover{
    transform: translateY(-1px);
    filter: brightness(.98);
    box-shadow: 0 10px 18px rgba(0,0,0,.12);
  }
}


/* =========================
  切り抜き
========================= */
.cutout{
  position:absolute;
  bottom:0;
  right:0;
  width:120px;
  height:auto;
  pointer-events:none;
  
  filter: drop-shadow(0 10px 18px rgba(0,0,0,.18));
}


.cutout--cta{
  left:-6px;
  top: -23%;
  width:110px;
}
.cutout--line{
  right:-10px;
  bottom:-8px;
  width:120px;
}
.cutout--compare{
  right:-6px;
  bottom:-10px;
  width:120px;
}
.cutout--area{
  right:-6px;
  bottom:-10px;
  width:120px;
}
@media (min-width: 900px){
  .area__hero {
    max-width: 530px;
  }
}
/* =========================
   フッター
========================= */

.footer{
  background: #eeeeee;
  padding: 24px 16px 28px;
  padding-bottom: 160px;
}

.footer__inner{
  max-width: 720px;
  margin: 0 auto;
}


.footer__top{
  display: flex;
 align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}


.footer__logo img{
  width: 200px;
  height: auto;
  display: block;
}


.footer__person img{
  width: 120px;
  height: auto;
  display: block;
}


.footer__nav{
  display: flex;
  justify-content: center;
  gap: 32px;
}

.footer__link{
  font-size: 16px;
  font-weight: 600;
  color: #444;
  text-decoration: none;
  letter-spacing: .04em;
}

.footer__link:hover{
  opacity: .7;
}


@media (min-width: 768px){
  
}


@media (min-width: 768px){
  
}
/* =========================
   画面下部固定メニュー
========================= */

.fixedMenu{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 9999;
}


.fixedMenu__notice{
  position: relative;
  background: #2f8fff;
  color: #fff;
  border-radius: 7px;
  padding: 10px 44px 10px 14px;
  width: calc(100% - 24px);   
  margin: 10px auto 8px;        
  padding: 10px 44px 10px 14px;
  box-sizing: border-box;
}

.fixedMenu__noticeText{
  margin: 0;
  font-size: 15px;
  font-weight: 800;
  text-align: center;
  letter-spacing: .02em;
}

.fixedMenu__close{
  position: absolute;
  top: 6px;
  right: 10px;
  width: 28px;
  height: 28px;
  border: none;
  border-radius: 50%;
  background: rgba(0,0,0,.25);
  color: #fff;
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
}


.fixedMenu__main{
  padding: 2px 4% 10px;
  border-top: 1px solid #e6e6e6;
  background-color: #E8E8E8;
}

.fixedMenu__headline{
  margin: 0 0 3px;
  text-align: center;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .02em;
}

.fixedMenu__actions{
  display: grid;
  grid-template-columns: 60% 1fr 1fr; 
  gap: 4px;
}


.fixedMenu__btn{
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  text-decoration: none;
  overflow: hidden;
  height: 52px;
}

.fixedMenu__btn--tel{ background:#e60012; }
.fixedMenu__btn--mail{ background:#ff8a3d; }
.fixedMenu__btn--line{ background:#11c34f; }

.fixedMenu__icon{
  width: 100%;
  
  object-fit: contain;
  display: block;
}
.fixedMenu__btn--mail .fixedMenu__icon {
  height: 70%;
}
.fixedMenu__btn--line .fixedMenu__icon {
  height: 90%;
}
.fixedMenu__telInner{
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 0 12px;
  width: 100%;
}

.fixedMenu__telIcon{
  width: 30px;
  height: 30px;
  flex-shrink: 0;
}

.fixedMenu__telText{
  display: flex;
  flex-direction: column;
  align-items: center;
  color: #fff;
}

.fixedMenu__telSmall{
  font-size: 11px;
  font-weight: 400;
  line-height: 1;
  text-align: center;
}

.fixedMenu__telNumber{
  font-size: 20px;
  font-weight: 600;
  letter-spacing: .03em;
  line-height: 1.1;
}

@supports (padding: env(safe-area-inset-bottom)){
  .fixedMenu{
    padding-bottom: env(safe-area-inset-bottom);
  }
}

/* =========================
  画面下部固定メニュー
========================= */
@media (min-width: 900px){

  .fixedMenu{
   
    left: 0;
    right: 0;
    bottom: 0;
    background: #fff;
    border-top: 1px solid #e6e6e6;
  }


  .fixedMenu__notice{
    width: min(1000px, calc(100% - 32px));
    margin: 10px auto 10px;
    border-radius: 8px;
    padding: 10px 44px 10px 14px;
  }

  .fixedMenu__noticeText{
    font-size: 14px;
    font-weight: 900;
  }

  .fixedMenu__main{
   
    background: #fff;
    border-top: none;
    width: min(1000px, calc(100% - 32px));
    margin: 0 auto;
    padding: 10px 0 12px;
  }


  .fixedMenu__main{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
  }

  .fixedMenu__headline{
    margin: 0;
    text-align: center;
    font-size: 14px;
    font-weight: 900;
    line-height: 1.2;
    white-space: nowrap;
  }

  .fixedMenu__actions{
    display: flex; 
    gap: 4px;
    align-items: stretch;
    flex: 0 0 auto;
    width: 457px;
  }

 
  .fixedMenu__btn{
    height: 56px;
    border-radius: 10px;
  }

 
  .fixedMenu__btn--tel{
    width: 550px;      
  }

  .fixedMenu__telInner{
    justify-content: center;
    gap: 10px;
    padding: 0 14px;
  }

  .fixedMenu__telIcon{
    width: 32px;
    height: 32px;
  }

  .fixedMenu__telSmall{
    font-size: 11px;
  }

  .fixedMenu__telNumber{
    font-size: 26px;
    letter-spacing: .02em;
  }

 
  .fixedMenu__btn--mail,
  .fixedMenu__btn--line{
    width: 220px;
  }


  .fixedMenu__icon{
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 10px 14px;
  }

  
  @media (max-width: 1100px){
    .fixedMenu__btn--tel{ width: 300px; }
    .fixedMenu__btn--mail,
    .fixedMenu__btn--line{ width: 138px; }
  }


  @media (max-width: 980px){
    .fixedMenu__main{
      flex-wrap: wrap;
      justify-content: center;
    }
    .fixedMenu__headline{
      width: 100%;
      text-align: center;
      white-space: normal;
    }
  }
}
@media (min-width: 900px){

 
  .fixedMenu{
    background: transparent;
    border-top: none;
  }


  .fixedMenu__main{
    background: transparent;
  }


  .fixedMenu__notice{
    margin: 12px auto 8px;
    box-shadow: 0 4px 14px rgba(0,0,0,.12);
  }

}
/* =========================
   PC
========================= */
@media (min-width: 900px){

 
  .fixedMenu__notice{
    width: fit-content;  
    max-width: 1000px;
    margin: 12px auto 8px; 
  }

  
  .fixedMenu{
    background: transparent;
  }

  .fixedMenu__main{
    background: #E8E8E8; 
    border-top: 1px solid #e6e6e6;
  }
  
  .fixedMenu__main{
    width: 100%;
    margin: 0;
    padding: 10px 0 12px;    
    background-color: #e8e8e862; 
    border-top: 1px solid #e6e6e6;
    display: block;          
  }
  
  .fixedMenu__headline,
  .fixedMenu__actions{
    margin-left: auto;
    margin-right: auto;
    justify-content: center;
            width: 547px;
  }
  .fixedMenu__headline {
    margin-bottom: 4px;
  }
  .fixedMenu__btn--mail .fixedMenu__icon {
    height: 100%;
  }
  .fixedMenu__btn--line .fixedMenu__icon {
    height: 100%;
  }
}


@media (min-width: 768px){
  
}
.fv__img--pc{ display:none !important; }
@media (min-width: 1024px){
  .fv__img--pc{ display:block !important; }
  .fv__img--sp{ display:none !important; }
}




@media (min-width: 550px) and (max-width: 1025px){
  .fixedMenu__main {
    padding: 2px 10% 10px;
  }
  .fixedMenu__notice{
    width: fit-content;  
    max-width: 1000px;
    margin: 12px auto 8px; 
  }

  
  .fixedMenu{
    background: transparent;
  }

  .fixedMenu__main{
    background: #E8E8E8; 
    border-top: 1px solid #e6e6e6;
  }
  
  .fixedMenu__main{
    width: 100%;
    margin: 0;
    padding: 10px 0 12px;    
    background-color: #e8e8e862; 
    border-top: 1px solid #e6e6e6;
    display: block;          
  }
  
  .fixedMenu__headline,
  .fixedMenu__actions{
    margin-left: auto;
    margin-right: auto;
    justify-content: center;
            width: 521px;
  }
  .fixedMenu__headline {
    margin-bottom: 4px;
  }
  .fixedMenu__btn--mail .fixedMenu__icon {
    height: 100%;
  }
  .fixedMenu__btn--line .fixedMenu__icon {
    height: 100%;
  }
  .fixedMenu__telNumber {
    font-size: 24px;
  }
  .fixedMenu__telSmall {
    font-size: 12px;
  }
}