/* =========================
   Base
========================= */
*, *::before, *::after { box-sizing: border-box; }

body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Yu Gothic",YuGothic,"繝｡繧､繝ｪ繧ｪ",Meiryo,sans-serif;
  color:#333;
  line-height:1.8;
  background-color:#f3f4f6;
}

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

a{ color:#0f6a80; text-decoration:none; }
a:hover{ text-decoration:underline; }

.inner{
  width:94%;
  max-width:900px;
	padding-bottom:16px;
  margin:0 auto;
}

/* =========================
   Header
========================= */
.site-header{
display:none;
  background-color:#dbe7e3;
  border-bottom:1px solid #d8dde5;
  position: relative;
  z-index: 1000;
}

.site-header-top{
  padding:10px 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;

}

.site-title-block{ min-width:220px; }

.site-title{
  font-size:22px;
  font-weight:700;
  color:#234553;
  margin:0;
}

.site-sub{
  font-size:12px;
  color:#666;
  margin-top:2px;
}

.tel-block{
  text-align:right;
  min-width:230px;
}

.tel-label{
  font-size:11px;
  color:#666;
}

.tel-main{
  font-family:'Bebas Neue', sans-serif;
  font-size:48px;
  font-weight:700;
  color:#c63a3a;
  letter-spacing:0.06em;
}

.tel-note{
  font-size:11px;
  color:#777;
}

/* =========================
   Global Nav (PC)
========================= */
.global-nav-bar{
  border-top:1px solid #e2e6ee;
  border-bottom:1px solid #e2e6ee;
  background:#f9fafb;
  font-size:16px;
}

.global-nav-wrap{
  display:flex;
  align-items:center;
  justify-content:center;
  position: relative;
  padding: 10px 0;
}

/* PC縺ｯ讓ｪ荳ｦ縺ｳ繝翫ン陦ｨ遉ｺ */
.global-nav{
  display:flex;
  flex-wrap:wrap;
  gap:8px 16px;
  padding: 8px 0;
  justify-content:center;
}

.global-nav a{
  position:relative;
  padding-left:16px;
  white-space:nowrap;
}

.global-nav a::before{
  content:"■";
  font-size:16px;
  color:#0f6a80;
  position:absolute;
  left:-1px;
  top:1px;
}
.sp_fixd {
	display:none;
}
.p_zei {
	font-size:16px;
}
/* =========================
   Hamburger / Drawer
   - PC: hidden
   - SP: fixed top-right
========================= */
.hamburger{ display:none; }
.drawer{ display:none; }

/* =========================
   Hero
========================= */
.hero{
  background-color:#ffffff;
  padding:20px 0 12px;
}

.hero-main-title{
  text-align:center;
  font-size:38px;
  font-weight:700;
  margin:0 0 4px;
}

.hero-sub{
  font-size:17px;
  color:#666;
  margin-bottom:16px;
  text-align:center;
}

.hero-banner{
  border-radius:10px;
  overflow:hidden;
  background:linear-gradient(135deg,#264653,#2a9d8f);
  color:#fff;
  padding:28px 20px;
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  align-items:center;
  justify-content:space-between;
}

.hero-banner-text{
  flex:1 1 280px;
  min-width:260px;
}

.hero-banner-title{
  font-size:26px;
  margin-bottom:6px;
  font-weight:700;
  text-align:center;
}

.hero-banner-lead{
  font-size:18px;
  margin-bottom:32px;
  text-align:left;
}

.hero-banner-cta{
  display:block;
  padding:10px 48px;
  border-radius:999px;
  background-color:#f4a261;
  color:#222;
  font-weight:600;
  font-size:21px;
  text-align:center;
}

.hero-banner-cta:hover{
  text-decoration:none;
  background-color:#f39b4d;
}

.hero-banner-img{
  flex:0 0 260px;
  min-width:220px;
  height:150px;
  border-radius:8px;
  background:rgba(255,255,255,0.12);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:13px;
}

.hero-note{
  margin-top:10px;
  font-size:12px;
  color:#777;
}

/* =========================
   Notice
========================= */
.notice-box{
  margin-top:16px;
  padding:10px 12px;
  border-radius:4px;
  font-size:12px;
  color:#7a5d16;
}

/* =========================
   CTA Call Box
========================= */
.cta-call-box{
  margin-top:24px;
  padding:20px 22px;
  border-radius:12px;
  background:linear-gradient(135deg,#fff4df,#ffe7e0);
  border:1px solid #f3b38c;
  box-shadow:0 6px 16px rgba(0,0,0,0.08);
  gap:16px;
  align-items:center;
  justify-content:space-between;
  font-size:18px;
}

.cta-call-text{
  flex:1 1 240px;
  min-width:220px;
}

.cta-call-heading{
  font-size:25px;
  font-weight:700;
  margin-bottom:4px;
  color:#b03b3b;
	text-align:center;
}
/**
.cta-call-heading::before{
  content:"縺皮嶌隲?ム繧､繝､繝ｫ";
  display:inline-block;
  margin-right:8px;
  padding:6px 14px;
  font-size:16px;
  color:#fff;
  background-color:#c63a3a;
  border-radius:999px;
}
**/
.cta-call-tel{
  text-align:right;
  min-width:210px;
}

.cta-call-tel-number{
  font-size:42px;
  font-weight:700;
  color:#c63a3a;
	text-align:center;
}

.cta-call-tel-small{
  font-size:12px;
  color:#884b4b;
}

/* =========================
   Section common
========================= */
.section{
  background-color:#ffffff;
  margin-top:18px;
  padding:46px 0 46px;
}

.section-title{
  font-size:28px;
  font-weight:700;
  border-bottom:4px solid #0f6a80;
  padding-left:8px;
  margin:0 0 10px;
  color:#234553;
  text-align:center;
}

.section-lead{
  font-size:18px;
  color:#555;
  margin-bottom:16px;
  text-align:left;
  font-weight:700;
  padding:24px;
}

/* =========================
   Outline table
========================= */
.outline-table{
  border-collapse:collapse;
  width:100%;
  font-size:18px;
  background-color:#fff;
}

.outline-table th,
.outline-table td{
  border:1px solid #d8dde5;
  padding:8px 10px;
  vertical-align:top;
}

.outline-table th{
  width:26%;
  background-color:#f1f5f9;
  font-weight:600;
  color:#234553;
}

/* =========================
   Bottom CTA
========================= */
.bottom-cta{
  background:linear-gradient(135deg,#fff0f0,#ffe7e7);
  margin-top:24px;
  padding:28px 0 34px;
}

.bottom-cta-box{
  max-width:720px;
  margin:0 auto;
  border-radius:14px;
  border:none;
  background-color:#ffffff;
  padding:20px 24px;
  text-align:center;
  box-shadow:0 10px 24px rgba(0,0,0,0.12);
}

.bottom-cta-title{
  font-size:20px;
  font-weight:700;
  margin-bottom:10px;
  color:#b53535;
}

.bottom-cta-tel{
  font-size:32px;
  font-weight:700;
  color:#c63a3a;
  margin:6px 0 4px;
}

.bottom-cta-note{
  font-size:13px;
  color:#555;
}

/* =========================
   Footer
========================= */
.site-footer{
  background-color:#1e252b;
  color:#d3dae0;
  padding:18px 0 24px;
  margin-top:20px;
  font-size:12px;
}

.site-footer small{ color:#9ca3af; }

/* =========================
   MV (Main Visual)
========================= */
.mv{ background-color:#000; }

.mv-inner{
  position:relative;
  max-width:1400px;
  margin:0 auto;
  overflow:hidden;
  height:430px;
}

.mv-slide{
  position:absolute;
  inset:0;
  width:100%;
  height:430px;
  background-size:cover;
  background-position:center center;
  opacity:0;
  transition:opacity .6s ease;
}

.mv-slide.is-active{ opacity:1; }

.mv-overlay{
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%, -50%);
  text-align:center;
  color:#333;
}

.mv-copy-main{
  display:inline-block;
  font-size:38px;
  font-weight:700;
  letter-spacing:.12em;
  padding:10px 32px;
  margin:0 0 8px;
  color:#fff;
  text-shadow:5px 5px 15px #000;
}

.mv-copy-sub{
  display:inline-block;
  font-size:20px;
  letter-spacing:.12em;
  padding:6px 24px;
  margin:0;
  color:#fff;
  font-weight:700;
  text-shadow:5px 5px 15px #000;
}

/* arrows */
.mv-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:40px;
  height:40px;
  border-radius:50%;
  border:none;
  background-color:rgba(255,255,255,0.85);
  color:#555;
  font-size:22px;
  cursor:pointer;
}

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

.mv-arrow:hover{ background-color:rgba(255,255,255,1); }

/* dots */
.mv-dots{
  text-align:center;
  padding:6px 0 10px;
  background-color:#fff;
}

.mv-dot{
  display:inline-block;
  width:8px;
  height:8px;
  border-radius:50%;
  margin:0 3px;
  background-color:#d0d4dc;
}

.mv-dot.is-active{ background-color:#888f9b; }

/* =========================
   SP Fixed CTA (縺ゅ↑縺溘?譌｢蟄?)
========================= */
.sp-fixed-cta{ display:none; }

/* =========================
   Floating CTA (SP)
========================= */
.floating-cta{ display:none; }

/* =========================
   Emergency CTA (谿九＠縺ｦ縺ゅｋ縺碁撼陦ｨ遉ｺ)
========================= */
.cta-emergency{
  display:none;
  max-width:500px;
  margin:auto;
  margin-bottom:36px;
}

/* =========================
   Large CTA (Orange)
========================= */
.cta-large{
  width:100%;
  max-width:1000px;
  margin:20px auto;
  border-radius:10px;
  overflow:hidden;
  border:1px solid #d8b8a0;
  background:#fff;
}

.cta-large-top{
  display:flex;
        flex-direction: column;
text-align:center;
  align-items:center;
  padding:12px 14px;
  background:linear-gradient(90deg,#f48b2b,#f26822);
  gap:22px;
  color:#fff;
}

.cta-op img{
  width:120px;
  height:auto;
  display:block;
}

.cta-info{
  display:flex;
  flex-direction:column;
  line-height:1.2;
}

.cta-365{
  font-size:22px;
  font-weight:700;
  color:#000;
}

.cta-free{
  font-size:20px;
  margin-top:3px;
  color:#000;
}

.cta-24h-icon{
  background:#fff;
  color:#f26822;
  border-radius:50%;
  width:70px;
  height:70px;
  display:flex;
  justify-content:center;
  align-items:center;
  font-weight:700;
  font-size:14px;
}

.cta-tel{
  font-size:78px;
  font-weight:700;
  letter-spacing:2px;
  color:#fff;
  text-decoration:none;
  font-family:'Bebas Neue', sans-serif;
  text-shadow:0 2px 3px rgba(0,0,0,0.25);
}

.cta-large-bottom{
  background:#fff;
  padding:10px 16px;
  display:flex;
  align-items:center;
  gap:8px;
  font-size:15px;
  border-top:1px solid #e5d4c7;
  justify-content:center;
}

.warn-icon{
  color:#d9534f;
  font-size:20px;
}

.red{
  color:#d9534f;
  font-weight:700;
}

/* =========================
   Plan Section
========================= */
.plan-section{ margin-top:24px; }

.plan-card{
  background-color:#ffffff;
  border-radius:10px;
  border:1px solid #d8dde5;
  box-shadow:0 6px 16px rgba(0,0,0,0.06);
  padding:20px 20px 24px;
}

.plan-header{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:16px;
  margin-bottom:16px;
  border-bottom:1px dashed #d8dde5;
  padding-bottom:12px;
}

.plan-price-block{ flex:1 1 auto; }

.plan-price-label{
  font-size:13px;
  color:#555;
  margin-right:10px;
}

.plan-price-main{
  font-size:22px;
  font-weight:700;
  color:#c63a3a;
}
.plan-price-main_top {
	display:block;
  font-size:36px;
  font-weight:700;
  color:#c63a3a;
	text-align:center;
}
.plan-price-yen{
  font-size:16px;
  margin-left:4px;
}

.plan-price-note{
  margin:4px 0 0;
  font-size:12px;
  color:#777;
}

.plan-main{
  display:block;
  flex-wrap:wrap;
  gap:18px;
  margin-top:12px;
}

.plan-photo{
  flex:0 0 320px;
  max-width:100%;
}

.plan-photo img{
  width:100%;
  border-radius:8px;
}

.plan-text{ flex:1 1 260px; }

.plan-catch{
  margin:12px 0 0px;
  font-size:28px;
  color:#234553;
  text-align:center;
}

.plan-desc{
  font-size:18px;
  color:#444;
  margin-bottom:10px;
  text-align:left;
}

.plan-point-list{
  margin:0 0 12px 1.2em;
  padding:0;
  font-size:18px;
}

.plan-point-list li{ margin-bottom:4px; }

.plan-cta-btn{
  width:320px;
  display:block;
  margin-top:4px;
  margin:auto;
  padding:10px 22px;
  border-radius:999px;
  background-color:#f4a261;
  color:#222;
  font-size:20px;
  font-weight:600;
  text-decoration:none;
	text-align:center;
}

.plan-cta-btn:hover{
  background-color:#f39b4d;
  text-decoration:none;
}

.plan-items{
  margin-top:20px;
  border-top:1px dashed #d8dde5;
  padding-top:16px;
}

.plan-items-title{
  font-size:22px;
  font-weight:700;
  margin:0 0 10px;
  color:#234553;
  text-align:center;
}

.plan-items-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
  gap:12px;
}

.plan-item{
  border:1px solid #e2e6ee;
  border-radius:6px;
  background-color:#f9fafb;
  padding:8px 8px 10px;
  text-align:center;
  font-size:20px;
}

.plan-item-photo{
  width:100%;
  height:auto;
  margin-bottom:6px;
  overflow:hidden;
}

.plan-item-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.plan-item-label{
  font-weight:700;
  margin-bottom:2px;
  color:#234553;
}

.plan-item-note{
  margin:0;
  font-size:12px;
  color:#666;
}

.plan-items-note{
  margin-top:10px;
  font-size:18px;
  color:#777;
  text-align:left;
}

/* =========================
   Overview / Fee tables
========================= */
.overview-table{
  width:100%;
  border-collapse:collapse;
  font-size:14px;
}

.overview-table th{
  width:160px;
  background:#e9f5fb;
  text-align:left;
  padding:12px;
  vertical-align:top;
  border:1px solid #c9dbe5;
  font-weight:bold;
}

.overview-table td{
  padding:12px;
  border:1px solid #c9dbe5;
  background:#fff;
  line-height:1.7;
}

.fee-table-wrapper{ margin:8px 0 6px; }

.fee-table{
  width:100%;
  border-collapse:collapse;
  font-size:13px;
}

.fee-table th{
  background:#f3f3f3;
  padding:8px;
  border:1px solid #ccc;
  text-align:center;
}

.fee-table td{
  padding:8px;
  border:1px solid #ccc;
  text-align:center;
}

.fee-table td:first-child{ text-align:left; }

.fee-note{
  margin-top:8px;
  font-size:12px;
  color:#555;
}

/* =========================
   Responsive (SP)
========================= */
@media (max-width:900px){
.sp_fixd {
display: block;
        position: fixed;
        bottom: 0;
        width: -webkit-fill-available;
}
.fade-in {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.4s ease, transform 0.4s ease;
  pointer-events: none; /* 非表示時は触れない */
}

.fade-in.is-show {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}


  .site-header-top{
    flex-direction:column;
    align-items:flex-start;
  }

  .tel-block{
    display:none;
    text-align:left;
  }

  .hero-banner{
    flex-direction:column;
    align-items:flex-start;
  }

  .hero-banner-img{
    align-self:stretch;
    justify-content:center;
  }

  .cta-call-box{
    flex-direction:column;
    align-items:flex-start;
  }

  .cta-call-tel{ text-align:center;
width: 100%;
    
 }

  .mv-inner{ height:220px; }
  .mv-slide{ height:220px; }

  .mv-copy-main{
    width:290px;
    font-size:18px;
    padding:8px 20px;
  }

  .mv-copy-sub{
    font-size:14px;
    padding:4px 16px;
  }

  .mv-arrow{
    width:32px;
    height:32px;
    font-size:18px;
  }

  /* =========================
     ? SP蝗ｺ螳咾TA?井ｸ翫?襍､蟶ｯ??
  ========================= */
  .sp-fixed-cta{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:999;
    background:#c63a3a;
    text-align:center;
  }

  .sp-fixed-cta a{
    display:block;
    padding:10px 8px;
    color:#fff;
    font-size:14px;
    font-weight:700;
  }

  /* =========================
     ? 繝上Φ繝舌?繧ｬ繝ｼ?壼承荳雁崋螳夲ｼ?SP縺ｮ縺ｿ??
  ========================= */
  .global-nav{ display:none; } /* PC繝翫ン繧担P縺ｧ縺ｯ髫?縺? */

  .hamburger{
    display:grid;
    place-items:center;
    position: fixed;
    top: 0px;
    right: 0px;
    z-index: 3000; /* drawer繧医ｊ荳? */
    width: 40px;
    height: 40px;
    border: 0;
    background: #fff;
    box-shadow: 0 10px 24px rgba(0,0,0,0.18);
    cursor: pointer;
  }

  .hamburger__line{
    display:block;
    width:22px;
    height:2px;
    background:#234553;
    margin:3px 0;
    transition:transform .2s ease, opacity .2s ease;
  }

  .hamburger.is-open .hamburger__line:nth-child(1){ transform: translateY(5px) rotate(45deg); }
  .hamburger.is-open .hamburger__line:nth-child(2){ opacity:0; }
  .hamburger.is-open .hamburger__line:nth-child(3){ transform: translateY(-5px) rotate(-45deg); }

  /* 繝峨Ο繝ｯ繝ｼ */
  .drawer{
    display:block;
    position:fixed;
    inset:0;
    z-index:2000;
    pointer-events:none;
  }

  .drawer__backdrop{
    position:absolute;
    inset:0;
    border:0;
    background:rgba(0,0,0,.45);
    opacity:0;
    transition:opacity .2s ease;
  }

  .drawer__panel{
    position:absolute;
    top:0; right:0;
    width:min(84vw, 340px);
    height:100%;
    background:#fff;
    transform:translateX(100%);
    transition:transform .25s ease;
    padding:16px 16px 20px;
    overflow:auto;
    box-shadow:-10px 0 24px rgba(0,0,0,.16);
  }

  .drawer.is-open{ pointer-events:auto; }
  .drawer.is-open .drawer__backdrop{ opacity:1; }
  .drawer.is-open .drawer__panel{ transform:translateX(0); }

  .drawer__head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding-bottom:10px;
    border-bottom:1px solid #eee;
    margin-bottom:10px;
  }

  .drawer__title{
    font-weight:800;
    color:#234553;
    letter-spacing:.04em;
  }

  .drawer__close{
    width:40px;
    height:40px;
    border:0;
    border-radius:10px;
    background:#f3f4f6;
    cursor:pointer;
    font-size:22px;
    line-height:1;
  }

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

  .drawer__list a{
    display:block;
    padding:12px 10px;
    border-radius:12px;
    background:#f9fafb;
    border:1px solid #eef2f7;
    color:#234553;
    font-weight:700;
  }

  .drawer__list a:hover{
    text-decoration:none;
    background:#f1f5f9;
  }

  .drawer__cta{
    margin-top:14px;
    padding-top:14px;
    border-top:1px dashed #e5e7eb;
  }

  .drawer__tel{
    display:block;
    text-align:center;
    padding:12px 10px;
    border-radius:14px;
    background:#c63a3a;
    color:#fff;
    font-weight:900;
    text-decoration:none;
    box-shadow:0 10px 24px rgba(0,0,0,0.18);
  }
.drawer__backdrop{ z-index: 1; }
.drawer__panel{ z-index: 2; }
  /* 蜿ｳ荳雁崋螳壹?繧ｿ繝ｳ縺勲V縺ｫ陲ｫ繧翫↓縺上＞繧医≧蠕ｮ隱ｿ謨ｴ?亥･ｽ縺ｿ縺ｧ?? */
  .mv-overlay{
    padding-top: 40px;
  }

  /* =========================
     ? Floating CTA?井ｸ句崋螳壹?2繝懊ち繝ｳ??
  ========================= */
  .floating-cta{
    display:flex;
    position:fixed;
    left:10px;
    right:10px;
    bottom:10px;
    z-index:1000;
    gap:10px;
  }

  .floating-cta__btn{
    flex:1 1 0;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:14px 10px;
    border-radius:14px;
    font-weight:800;
    text-decoration:none;
    box-shadow:0 10px 24px rgba(0,0,0,0.18);
  }

  .floating-cta__btn--tel{
    background:#c63a3a;
    color:#fff;
  }

  .floating-cta__btn--line{
    background:#06c755;
    color:#fff;
  }

  /* 繝壹?繧ｸ荳矩Κ縺碁國繧後↑縺?ｈ縺?ｽ咏區 */
  body{
    padding-bottom:84px;
  }

  /* 繝峨Ο繝ｯ繝ｼ髢九＞縺ｦ繧矩俣縺ｯ荳九?CTA繧帝國縺呻ｼ郁ｦ九ｄ縺吶＆蜆ｪ蜈茨ｼ? */
  .drawer.is-open ~ main .floating-cta{ display:none !important; }
  .drawer.is-open ~ main .sp-fixed-cta{ display:none !important; }

  /* 譁咎≡繝??繝悶Ν縺ｮ th 蟷? */
  .overview-table th{ width:82px; }

  /* 繝励Λ繝ｳ */
  .plan-card{ padding:16px 12px 20px; }
  .plan-main{ flex-direction:column; }
  .plan-photo{ flex-basis:auto; }

  /* 螟ｧ蝙気TA */
  .cta-large-top{
    flex-direction:column;
    text-align:center;
    gap:10px;
    padding:12px 14px;
  }

  .cta-tel{ font-size:36px; }
  .cta-24h-icon{ width:40px; height:40px; }
  .cta-op img{ display:none; width:70px; }
}


.mv-price {
    width: 90%;
    margin: auto;
    background: #FFECEC;
    border: solid 1px #ccc;
    border-radius: 7px;
    padding: 16px;
    margin-bottom: 20px;
  text-align: center;
}

/* ===== MV差し替え（mv2） ===== */
.mv2 {
  position: relative;
  overflow: hidden;
  background: #000;
}

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

.mv2__overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-end;
  background: linear-gradient(to top, rgba(0,0,0,.72), rgba(0,0,0,0));
}

.mv2__inner {
  width: 100%;
  padding: 18px 16px 16px;
  color: #fff;
}

.mv2__kicker {
  margin: 0 0 6px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .06em;
  opacity: .95;
}

.mv2__title {
  margin: 0 0 6px;
  font-size: 24px;
  line-height: 1.2;
  font-weight: 800;
}

.mv2__lead {
  margin: 0 0 12px;
  font-size: 14px;
  opacity: .95;
}

.mv2__badges {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 0 0 12px;
}

.mv2__badge {
  font-size: 12px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.16);
  border: 1px solid rgba(255,255,255,.22);
}

.mv2__actions {
  display: flex;
  gap: 10px;
}

.mv2__btn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  padding: 12px 14px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 800;
  font-size: 14px;
}

.mv2__btn--tel {
  background: #d33434;
  color: #fff;
}

.mv2__btn--ghost {
  background: rgba(255,255,255,.12);
  color: #fff;
  border: 1px solid rgba(255,255,255,.22);
}

.mv2__note {
  margin: 12px 0 0;
  font-size: 12px;
  opacity: .9;
}

/* PCで“見れる”程度の最小調整 */
@media (min-width: 768px){
  .mv2__title { font-size: 30px; }
  .mv2__inner { padding: 22px 22px 20px; }
}

/* PC：スマホ幅の枠を中央に。スクロールは通常（body） */
@media (min-width: 1024px){
  body{
    background:#f3f4f6;
  }

  .lp-frame{
    width: 630px;
    max-width: 630px;
    margin: 20px auto;
    background:#fff;
    border-radius: 18px;
    box-shadow: 0 14px 40px rgba(0,0,0,.18);
    overflow: hidden; /* 角丸を効かせるため（中は普通に伸びてOK） */
  }
}
@media (min-width: 1024px){
  /* 追従CTAを枠幅に合わせて中央固定 */
  .floating-cta,
  .sp-fixed-cta{
    left: 50%;
    transform: translateX(-50%);
    width: 430px;
    max-width: 430px;
  }
}


/* =========================
   SP強制上書き（最終行に置く）
   ========================= */
@media (max-width: 900px){
  /* SPで確実に表示させたい要素 */
  .sp-fixed-cta{ display:block !important; }
  .floating-cta{ display:flex !important; }

  /* SPの追従CTA位置を確実に */
  .floating-cta{
    position: fixed !important;
    left: 10px !important;
    right: 10px !important;
    bottom: 10px !important;
    width: auto !important;
    max-width: none !important;
    transform: none !important;
    z-index: 1000 !important;
  }

  /* PC枠用の中央寄せ指定をSPでは無効化 */
  .sp-fixed-cta{
    left: 0 !important;
    right: 0 !important;
    width: auto !important;
    max-width: none !important;
    transform: none !important;
  }

  /* SPの下余白（追従CTA分） */
  body{
    padding-bottom: 84px !important;
  }
}
/* =========================
   スマホ判定を幅じゃなく “タッチ端末” でも拾う（超重要）
   ========================= */
@media (hover: none) and (pointer: coarse) {
  /* SP想定のUIを強制 */
  .global-nav{ display:none !important; }

  .hamburger{ display:grid !important; }
  .drawer{ display:block !important; }

  .sp-fixed-cta{ display:block !important; }
  .floating-cta{ display:flex !important; }

  /* PC枠用の中央寄せを無効化（念のため） */
  .floating-cta,
  .sp-fixed-cta{
    left: 0 !important;
    right: 0 !important;
    width: auto !important;
    max-width: none !important;
    transform: none !important;
  }

  body{ padding-bottom:84px !important; }
}
/* ===== Banner base ===== */
.cta-banner{
  max-width: 760px;
  margin: 12px auto;
  padding: 12px 14px;
  border-radius: 14px;
  border: 4px solid rgba(0,0,0,.12);
  background:#fbf4ec;
  box-shadow: 0 6px 18px rgba(0,0,0,.10);

}

.cta-banner__top{
  text-align:center;
  font-weight: 800;
  letter-spacing: .06em;
  color: #6d5240;
  font-size: 25px;
  margin-bottom: 10px;
}

/* ===== Middle row ===== */
.cta-banner__mid{
  display:flex;
  align-items:center;
  gap: 0;
}

/* Red phone pill */
.cta-banner__tel{
  flex: 1 1 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 10px;
  padding: 6px 14px;
  border-radius: 13px;
  text-decoration:none;
  background:#d3593a;
}

.cta-banner__telIcon{
  width: 34px;
  height: 34px;
  display:grid;
  place-items:center;
  border-radius: 999px;
  background: rgba(255,255,255,.18);
  color: #fff;
  font-size: 18px;
}

.cta-banner__telNum{
    font-family: serif;
  color:#fff;
  font-weight: 900;
  letter-spacing: .06em;
  font-size: 48px;
  line-height: 1;
  text-shadow: 0 2px 8px rgba(0,0,0,.25);

}

/* LINE square button */
.cta-banner__line{
  flex: 0 0 92px;
  height: 58px;
  border-radius: 12px;
  text-decoration:none;
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 6px;
}

.cta-banner__lineBubble{
  width: 28px;
  height: 22px;
  border-radius: 10px;
  background: rgba(255,255,255,.95);
  position: relative;
}
.cta-banner__lineBubble::after{
  content:"";
  position:absolute;
  bottom:-6px;
  left: 7px;
  width: 0;
  height: 0;
  border: 6px solid transparent;
  border-top-color: rgba(255,255,255,.95);
}

.cta-banner__lineText{
  color:#fff;
  font-weight: 900;
  font-size: 14px;
  letter-spacing: .02em;
}

/* Bottom text */
.cta-banner__bottom{
  text-align:center;
  margin-top: 10px;
  font-weight: 800;
  color:#2b2b2b;
  font-size: 16px;
}

/* ===== Responsive ===== */
@media (max-width: 520px){
  .cta-banner{ padding: 0px 12px; }
  .cta-banner__top{ font-size: 16px; margin-bottom: 0px; }
  .cta-banner__telNum{ font-size: 24px; }
  .cta-banner__line{ flex-basis: 78px; height: 52px; }
  .cta-banner__bottom{ font-size: 14px; }
}
/* =========================
   MV直下のバナー配置（食い込み）
========================= */
.mv-after{
  position: relative;
  z-index: 20;            /* MVより上に見せる */
  margin-top: -28px;      /* ←ここでMVに食い込ませる */
}

.mv-after__inner{
  padding-top: 0;
}

/* バナー自体の上下を少し詰める（任意） */
.mv-after .cta-banner{
  margin: 0 auto;
}

/* SPは少し深めに食い込ませると気持ちいい */
@media (max-width: 768px){
  .mv-after{ margin-top: -131px; }
}

/* PC枠（lp-frame）を使ってる場合：枠内で中央に収める */
@media (min-width: 1024px){
  .lp-frame .mv-after{
    margin-top: -203px;
  }
}

.cta-banner__line img {
	width:50px;
	    border-radius: 10px;

}