:root{
  --green:#58a332;
  --orange:#f7931e;
  --text:#333;
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Noto Sans JP",sans-serif;color:var(--text);line-height:1.6;background:#fff}
img{max-width:100%;display:block}
h1,h2,h3{margin:0 0 .5em}
.inner{max-width:1100px;margin:0 auto;padding:0 20px}
.header {
	
}
/* ヘッダー全体 */
.header {
  width: 100%;
}

.hero-inner {
  max-width: 1200px;
  margin: 0 auto;
}

.hero-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

/* ロゴ */
.logo {
  font-size: 28px;
  font-weight: bold;
}

/* 右側エリア */
.header-contact {
  display: flex;
  align-items: center;
  gap: 20px;
  font-family: sans-serif;
}
.phone-text {
    line-height: 1.6em;
}
/* 電話エリア */
.phone-area {
  display: flex;
  align-items: center;
}

.phone-icon {
  font-size: 48px;
  color: #333;
  margin-right: 8px;
  margin-top: 9px;
}

.phone-number {
  font-size: 36px;
  font-weight: bold;
margin-top: 15px;
}

/* 電話補足 */
.phone-meta {
  display: flex;
  align-items: center;
  gap: 8px;
}


.time {
  font-size: 14px;
}

/* 見積もりボタン */
.estimate-btn {
background-color: #F7941D;
    color: #fff;
    padding: 18px 38px;
    border-radius: 32px;
    font-weight: bold;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Hero */
.hero{
	max-width:1400px;
	background:#fff;
	padding:20px 0;
    margin: 0 auto -63px;
}
.hero-inner{max-width:1220px;margin:0 auto;display:flex;flex-direction:column;align-items:center}
.hero-header{display:flex;justify-content:space-between;align-items:center;width:100%}
.logo{font-weight:800;font-size:20px}
.contact{
	display: flex;
}
.tel{font-size:24px;color:var(--text);text-decoration:none;font-weight:700}
.time{margin:4px 0 10px}
.badge{
background: #333;
    color: #fff;
    padding: 10px 23px;
    border-radius: 4px;
    font-size: 19px;
    margin-right: 12px;
    line-height: 45px;

}
.badge01 {
    background: #333;
    color: #fff;
    padding: 8px;
    border-radius: 8px;
    margin-top: -2px;
}
.btn-orange{background:var(--orange);color:#fff;padding:10px 20px;border-radius:25px;text-decoration:none;font-weight:bold}
.hero-content{
  width:100%;
  display:block;

  /* 高さ固定はしない。代わりに比率で固定 */
  aspect-ratio: 1220 / 563;   /* ← いまの見た目の比率に合わせる（仮） */
  height:auto;

  margin-top:20px;

  background:url(../img/mv_eco.png);
  background-size:contain;
  background-repeat:no-repeat;
  background-position:center top;
}





.hero-text{flex:1 1 50%;padding-right:20px}
.hero-text h2 span{color:var(--green);font-weight:700}
.hero-badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;padding:0;list-style:none}
.hero-badges li{background:var(--orange);color:#fff;border-radius:50%;width:90px;height:90px;display:flex;justify-content:center;align-items:center;text-align:center;font-size:.9rem;line-height:1.2;padding:8px}
.hero-image{flex:1 1 40%}


.intro{
  --bg:#fffbe9;
  position:relative;
  padding:80px 0;
  background:transparent;
  overflow:visible;      /* まずここ */
  isolation:isolate;     /* ★重なり事故を防ぐ（重要） */
}

/* 背景の四角（intro全体の色） */
.intro::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--bg);
  z-index:0;
}



/* 中身は前面 */
.intro .inner{
  position:relative;
  z-index:1;
}




.intro h2{text-align:center;color:#58338a;font-size:3rem;margin-bottom:30px}
.intro h2 .brand{color:var(--green);font-weight:700}
.intro-content{display:flex;gap:40px;flex-wrap:wrap;align-items:center;justify-content:space-between}
.intro-text{flex:1 1 55%}
.intro-text ul{list-style:none;padding:0;margin:0 0 12px}
.intro-text li{font-size:1.8rem;margin-bottom:.8em}
.highlight{color:var(--orange);font-weight:700;font-size:38px;}
.intro-image img{width:100%;max-width:320px;border-radius:50%;object-fit:cover}

/* Service */
.service{background:#fff;padding:100px 0;text-align:center}
.service h2{color:var(--green);font-size:3rem;margin-bottom:10px}
.service .sub{color:#555;margin-bottom:40px}
.service-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(251px,1fr));gap:20px;justify-items:center}
.service-item{
	width:328px;
overflow:hidden;border-radius:10px;background:#f8f8f8;box-shadow:0 2px 8px rgba(0,0,0,.1)}
.service-item img{width:100%;height:200px;object-fit:cover}
.service-item figcaption{
	background:var(--green);color:#fff;padding:10px 0;
	font-size:24px;	
font-weight:700}

/* Feature */
.feature{background:#fff;padding:100px 0;text-align:center}
.feature h2{color:var(--green);font-size:3rem;margin-bottom:10px}
.feature .lead{color:#666;margin-bottom:40px}
.feature-list {
	display:grid;grid-template-columns:repeat(auto-fit,minmax(248px,1fr));gap:24px}
.feature-item{background:#fcfae1;border-radius:12px;padding:30px 20px;position:relative;box-shadow:0 3px 8px rgba(0,0,0,.1)}
.feature-item .num{
	position:absolute;top:-18px;
	left:50%;transform:translateX(-50%);
	background:var(--green);color:#fff;
	border-radius:50%;
	width:70px;height:70px;display:flex;align-items:center;justify-content:center;font-weight:700}
.feature-item img{
	width:180px;height:auto;object-fit:contain;margin:30px auto 10px}
.feature-item h3{
	font-size:1.8rem;
	margin:10px 0;
}

/* Price */
.price-table-wrap {
border: 1px solid #ccc;
    border-radius: 12px;
    overflow: hidden;
}
.price{background:;padding:100px 0;text-align:center}
.price h2{color:var(--green);font-size:3rem;margin-bottom:10px}
.price .sub{color:#666;margin-bottom:40px}
.price-table{width:100%;border-collapse:collapse;max-width:1057px;margin:0 auto}
.price-table th,.price-table td{border:1px solid #ddd;padding:14px 10px;font-size:1.6rem}
.price-table thead{background:#1b1919e3;color:#fff;}
.price-table th.main-col{background:var(--green);color:#fff}
.price-table td.main-col{background:#f4fff0;font-weight:700;color:#333}
.price-table td.main-col .price{color:var(--orange);font-size:2.3rem;font-weight:700}
.note{color:#777;font-size:.9rem;margin-top:15px}

/* CTA */
.cta{position:relative;background:repeating-linear-gradient(45deg,#f7931e,#f7931e 10px,#f9a43b 10px,#f9a43b 20px);
	color:#fff;text-align:center;padding:42px 0;overflow:hidden;
}
.cta::after{
  content:"";
  position:absolute;
  bottom:0;
  right:0;
  width:45%;              /* ← 右どれくらい使うか */
  height:82%;
  background-image:url(../img/ope-02.png);
  background-size:cover;
  background-position:center;
  opacity:;           /* ← なじませ用 */
  pointer-events:none;
}
.cta-operator{
background:url('../img/ope-02.png');
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.cta .lead{font-size:2rem;margin-bottom:8px}
.cta-tel .tel-num{
	font-size:5.4rem;
	font-weight:700;color:#373333;text-decoration:none;
	font-family: initial;
}
.cta-tel .info{
    display: flex;
    margin-top: 6px;
    font-size: 1.3rem;
    justify-content: center;
	    text-align: left;

}
.info01 {display:none;}
.cta-buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin:22px 0 34px}
.btn-mail,.btn-line{display:inline-block;padding:14px 24px;border-radius:30px;font-weight:700;text-decoration:none;color:#fff}
.btn-mail{background:#fff;color:#f7931e}
.btn-mail:hover{background:#ffe7c6}
.btn-line{background:#00b900}
.btn-line:hover{background:#009900}
.cta-points{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:10px;padding:0;list-style:none}
.cta-points li{background:#fff;color:#f7931e;border-radius:50%;width:130px;height:130px;
	display:flex;justify-content:center;align-items:center;text-align:center;font-size:.9rem;line-height:1.2;
	padding:8px;
	z-index:999;
}

/* Flow */
.flow{background:#fff;padding:100px 0}
.flow h2{color:var(--green);text-align:center;font-size:3rem;margin-bottom:50px}
.flow-item{background:#fffbe9;border-radius:12px;padding:30px 25px;margin-bottom:30px;box-shadow:0 3px 8px rgba(0,0,0,.08)}
.flow-header{
	display:flex;
	align-items:center;
	margin-bottom:10px;
	background: #58a332;
    color: #fff;
    border-radius: 34px;
    padding: 16px;	
}
.flow-header .num{background:var(--green);color:#fff;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-weight:700;margin-right:10px}
.flow-body{display:flex;flex-wrap:wrap;align-items:center;gap:24px}
.flow-text{
	flex:1 1 55%;
	line-height: 2em;}
.flow-img{flex:1 1 40%;
	padding:16px;
}
.flow-img img{width:100%;border-radius:10px}
.flow-text span {
color:#f87f0c;
}
/* Voice */
.voice{background:#fff;padding:100px 0;text-align:center}
.voice h2{color:var(--green);font-size:3rem;margin-bottom:40px}
.voice-list{display:flex;flex-direction:column;gap:30px;max-width:1200px;margin:0 auto}
.voice-item{background:#fffbe9;border-radius:12px;padding:26px 65px;text-align:left;box-shadow:0 3px 8px rgba(0,0,0,.1)}
.voice-header{margin-bottom:8px}
.voice-header .area{display:inline-block;background:#fff;border-left:5px solid var(--orange);padding:6px 10px;font-size:.9rem;color:#333;line-height:1.4}
.voice-item h3{color:var(--orange);font-size:1.8rem;margin-bottom:12px}

/* FAQ */
.faq{background:#fff;padding:100px 0}
.faq h2{text-align:center;color:var(--green);font-size:2rem;margin-bottom:40px;position:relative}
.faq h2::after{content:"";display:block;width:120px;height:2px;background:var(--green);margin:10px auto 0}
.faq-list{max-width:800px;margin:0 auto}
.faq-item{border:1px solid var(--green);border-radius:8px;margin-bottom:10px;overflow:hidden}
.faq-question{
font-family: 'Zen Maru Gothic';
width:100%;background:#fff;border:none;text-align:left;padding:18px 20px;font-size:1.6rem;color:#333;display:flex;align-items:center;justify-content:space-between;cursor:pointer}
.q-icon{background:var(--green);color:#fff;border-radius:50%;width:26px;height:26px;display:flex;align-items:center;justify-content:center;margin-right:12px;flex-shrink:0}
.arrow{width:10px;height:10px;border-right:2px solid #333;border-bottom:2px solid #333;transform:rotate(45deg);transition:transform .3s}
.faq-item.active .arrow{transform:rotate(-135deg)}
.faq-answer{display:none;background:#f9fff8;padding:15px 25px;border-top:1px solid #d6ecd4;color:#444;font-size:.95rem;line-height:1.7}

/* Area */
.area{background:#fff;padding:100px 0}
.area h2{text-align:center;color:var(--green);font-size:2rem;margin-bottom:50px;position:relative}
.area h2::after{content:"";display:block;width:120px;height:2px;background:var(--green);margin:10px auto 0}
.area-block{background:#f6f6f6;border-radius:12px;padding:26px 24px;margin-bottom:20px}
.area-block h3{font-size:1.2rem;color:#333;font-weight:700;margin-bottom:12px}
.area-block ul{display:flex;flex-wrap:wrap;gap:8px 18px;list-style:none;padding:0;margin:0}
.area-block li{color:#444;font-size:.95rem}

/* Footer */
.footer{background:#fff;padding-top:80px;text-align:center;color:#333}
.company-info h2{font-size:1.6rem;font-weight:700;margin-bottom:24px}
.company-info dl{display:inline-grid;grid-template-columns:140px auto;gap:10px 20px;text-align:left;margin-bottom:40px}
.company-info dt{font-weight:700;color:#333}
.company-info dd{color:#555}
.copyright{background:var(--green);color:#fff;text-align:center;padding:15px 0;font-size:.9rem}


.photo-mask {
  position: relative;
width: 410px;
    height: 423px;
}

/* 背景の紫の形 */
.photo-bg {
  position: absolute;
  width: 402px;
  height: 380px;
  top: 10px;
  left: 40px; /* ← 右にズラすのが超重要 */
  background: #c7b2c8;
  border-radius: 
    62% 38% 55% 45% /
    58% 60% 40% 42%;
  z-index: 0;
}

/* 人物写真（完全な円） */
.photo-mask img {
  position: relative;
  width: 428px;
  height: 410px;
  object-fit: cover;
  border-radius: 50%;
  z-index: 1;
}




.balloon{
  --c:#f7931e;          /* 枠色 */
  --bw:4px;             /* 枠の太さ */
  display:inline-block;
  position:relative;
  padding:10px 18px;
  border:var(--bw) solid var(--c);
  border-radius:18px;
  color:var(--c);
  font-weight:700;
  line-height:1.2;
  background:transparent;
}

/* しっぽ（枠線） */
.balloon::before{
  content:"";
  position:absolute;
  left:42px;            /* しっぽ位置 */
  bottom:calc(-1 * (14px + var(--bw)));
  width:0;height:0;
  border:14px solid transparent;
  border-top-color:var(--c);   /* 外側（枠線色） */
}

/* しっぽ（内側の抜き＝背景色で塗って枠線だけに見せる） */
.balloon::after{
  content:"";
  position:absolute;
  left:42px;
  bottom:-14px;
  width:0;height:0;
  border:14px solid transparent;
  border-top-color:#fff;       /* ←背景色に合わせる（重要） */
  transform:translateY(calc(-1 * var(--bw)));
}
.balloon-hand{
  --c:#f7931e;
  --bw:4px;

  display:inline-block;
  position:relative;
  padding:12px 22px;
  color:var(--c);
  font-weight:700;
  line-height:1.25;

  border:var(--bw) solid var(--c);

  /* ★ここが肝：角を不均一に */
  border-radius:
    22px 26px 20px 28px /
    24px 20px 26px 22px;

  background:transparent;

  /* ★ほんのり歪ませる */
  transform: rotate(-1.2deg);
}

/* しっぽ（外） */
.balloon-hand::before{
  content:"";
  position:absolute;
  left:38px;
  bottom:-18px;
  width:18px;
  height:18px;
  border-left:var(--bw) solid var(--c);
  border-bottom:var(--bw) solid var(--c);
  transform:rotate(-45deg);
  background:transparent;
}

/* しっぽ（内側を抜く） */
.balloon-hand::after{
  content:"";
  position:absolute;
  left:40px;
  bottom:-14px;
  width:14px;
  height:14px;
  background:#fff; /* 背景色に合わせる */
  transform:rotate(-45deg);
}
.balloon-svg{
  color:#f7931e;
  position:relative;
  width: 230px;          /* 好きに */
  height: 92px;          /* 好きに */
padding: 10px;
}

.balloon-svg svg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}

.balloon-svg .balloon-text{
  position:relative;
  padding:14px 18px 10px;
  font-weight:700;
  line-height:1.25;
}

/* Responsive */
@media (max-width:768px){
  .hero-text{flex:1 1 100%;padding-right:0}
  .hero-image{flex:1 1 100%}
  .cta-operator{display:none}
  .price-table th,.price-table td{font-size:.9rem;padding:10px 6px}
  .price-table td.main-col .price{font-size:1.1rem}
.price {
    background: ;
    padding: 20px 10px;
    text-align: center;
}
.photo-mask {
	display:none;
}
.photo-bg {
	width:100%;
	height:auto;
}
.intro h2 {
	font-size: 2rem;
}
.highlight {
	font-size: 28px;
}
.feature h2 {
	font-size: 28px;
}
.company-info dl {
	padding: 10px;
}
.voice-item {
	padding: 26px 32px;
}
.cta-tel .tel-num {
    font-size: 2.4rem;
}
.cta .lead {
    font-size: 1.6rem;
}
    .cta::after {
        content: "";
        position: absolute;
        /* bottom: 0; */
        /* right: 0; */
        width: 31%;
        height: 30%;
        /* top: -30px; */
        z-index: 9999;
        padding-top: -16px;
    }
.cta-points li {
    background: #fff;
    color: #f7931e;
    border-radius: 50%;
    width: 110px;
    height: 110px;
}
.btn-mail, .btn-line {
    display: inline-block;
    padding: 11px 10px;
}
.cta-tel .info {
    margin-top: 6px;
    font-size: 1.4rem;
}
    .hero-content {
        width: 100%;
        display: block;
        aspect-ratio: 1220 / 563;
        height: auto;
        margin-top: 20px;
        background: url(../img/eco-mv-sp2.png);
        background-size: contain;
        background-repeat: no-repeat;
        /* background-position: center top; */
min-height: 628px;
    }
.hero {
    max-width: 1400px;
    background: #fff;
    padding: 20px 0;
    /* margin: 0 auto -63px; */
min-height: 640px;
}
.voice {
	padding:0;
}
.flow {
	padding:0;
}
.flow h2 {
    color: var(--green);
    text-align: center;
    font-size: 2rem;
    margin-bottom: 0px;
    margin: 30px 20px;
}
.feature {
    background: #fff;
    padding: 20px 0;
    text-align: center;
}
.service {
    background: #fff;
    padding: 20px 0;
    text-align: center;
}
.service h2 {
    color: var(--green);
    font-size: 2rem;
    margin-bottom: 10px;
}
.flow-header {
	justify-content: center;
}
.faq-question {
	font-size: 1rem;
}
}


/* スマホ用（768px以下） */
@media screen and (max-width: 768px) {

  .hero-header {
    flex-direction: row;
    align-items: center;
    gap: 16px;
padding: 16px
  }

  .header-contact {
    flex-direction: column;
    align-items: center;
    gap: 12px;
  }

  .phone-area {
       position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: #1acf6c;
	z-index:999;
padding: 10px;;
justify-content: center;
  }
  .phone-icon {
    color: #fff;
    font-size: 32px;
    margin: 0 8px 0 0;
  }
  .phone-number {
    font-size: 20px;
    font-weight: bold;
    color: #fff;
margin-top: 0;
  }

  .phone-meta {
    display: none;
	
 /* SPでは情報を削ってシンプルに */
  }

  .estimate-btn {
    width: 100%;
    max-width: 280px;
    justify-content: center;
        font-size: 13px;
	padding:14px;
border-radius: 22px;
  }
.logo {
	width: 142px;
}
.info01 {display:flex;margin-bottom: -24px;}
.badge_sp {
background: #000;
        color: #fff;
        padding: 7px;
        margin-right: 12px;
        border-radius: 10px;
        line-height: 34px;
}
}
/* ====== 見積りフォーム（LP用） ====== */
.estimate{
  padding: 56px 0;
  background: #f5f8f5; /* やさしい薄グリーン */
}
#estimate-form{ scroll-margin-top: 80px; } /* 固定ヘッダー対策 */

.estimate-inner{
  max-width: 980px;
  margin: 0 auto;
  padding: 0 16px;
}

.estimate-head{
  text-align: center;
  margin-bottom: 22px;
}
.estimate-kicker{
  display: inline-block;
  font-weight: 700;
  color: #2f6b3a;
  background: #e7f3ea;
  padding: 6px 12px;
  border-radius: 999px;
  margin: 0 0 10px;
  font-size: 13px;
}
.estimate-title{
  margin: 0 0 8px;
  font-size: clamp(22px, 3vw, 30px);
  letter-spacing: .02em;
}
.estimate-sub{
  margin: 0 auto;
  max-width: 44em;
  color: #444;
}

.estimate-form{
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 10px 24px rgba(0,0,0,.08);
  padding: 22px;
  border: 1px solid rgba(0,0,0,.06);
}

.ef-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 16px;
}
.ef-span2{ grid-column: 1 / -1; }

.ef-label{
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  font-size: 14px;
  margin-bottom: 6px;
}
.req{
  font-size: 12px;
  color: #fff;
  background: #e25555;
  padding: 2px 8px;
  border-radius: 999px;
}
.ef-input, .ef-textarea{
  width: 100%;
  border: 1px solid rgba(0,0,0,.14);
  border-radius: 12px;
  padding: 12px 12px;
  font-size: 15px;
  outline: none;
  background: #fff;
}
.ef-textarea{ resize: vertical; }

.ef-input:focus, .ef-textarea:focus{
  border-color: rgba(47,107,58,.55);
  box-shadow: 0 0 0 4px rgba(47,107,58,.12);
}

.ef-row{
  display: grid;
  grid-template-columns: 1fr 160px;
  gap: 10px;
}
.ef-choice, .ef-check{
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
  padding: 10px 12px;
  border: 1px solid rgba(0,0,0,.10);
  border-radius: 12px;
  background: #fafafa;
}
.ef-choice label, .ef-check label{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
}
.ef-note{
  margin: 8px 0 0;
  color: #666;
  font-size: 12px;
}

.ef-consent{
  display: flex;
  align-items: center;
  gap: 10px;
  background: #f7f7f7;
  border: 1px solid rgba(0,0,0,.10);
  border-radius: 12px;
  padding: 12px;
  font-weight: 700;
}

.ef-actions{
  margin-top: 16px;
  text-align: center;
}
.ef-submit{
  width: min(520px, 100%);
  border: none;
  border-radius: 999px;
  padding: 14px 18px;
  font-size: 16px;
  font-weight: 900;
  color: #fff;
  background: linear-gradient(135deg, #2f6b3a, #3aa654);
  box-shadow: 0 10px 18px rgba(47,107,58,.22);
  cursor: pointer;
}
.ef-submit:hover{ filter: brightness(1.02); transform: translateY(-1px); }
.ef-subactions{
  margin: 10px 0 0;
  font-size: 13px;
  color: #555;
}
.ef-subactions a{ color: #2f6b3a; font-weight: 800; text-decoration: none; }

@media (max-width: 720px){
  .estimate{ padding: 44px 0; }
  .estimate-form{ padding: 16px; }
  .ef-grid{ grid-template-columns: 1fr; }
  .ef-row{ grid-template-columns: 1fr; }
}
/* ====== /見積りフォーム ====== */
