/* ============================================
   Energy Clinic LP v2 - Main Stylesheet
   WordPress 6.x グローバルスタイル完全上書き
   ============================================ */

/* --- WordPress強制スタイルをすべてリセット --- */
:root {
  --wp--preset--color--black: unset;
  --wp--preset--color--white: unset;
  --wp--preset--spacing--20: unset;
  --wp--style--global--content-size: unset;
  --wp--style--global--wide-size: unset;
}
*, *::before, *::after {
  box-sizing: border-box !important;
}
/* WordPressのbody余白・パディングをリセット */
body.wp-singular,
body.single,
body.page,
body.home,
body {
  margin: 0 !important;
  padding: 0 !important;
  background: #fff !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
}
/* WordPress 6.x が追加するwrapper要素をリセット */
.wp-site-blocks,
.entry-content,
.wp-block-post-content,
.is-layout-flow,
.is-layout-constrained {
  padding: 0 !important;
  margin: 0 !important;
  max-width: none !important;
}
/* ブロック系の余白をリセット */
.wp-block-group,
.wp-block-columns,
.wp-block-column {
  padding: 0 !important;
  margin: 0 !important;
  gap: 0 !important;
}
/* 画像の枠線リセット */
img {
  border: none !important;
  outline: none !important;
}
/* リストのスタイルリセット */
ul, ol {
  padding-left: 0 !important;
  margin: 0 !important;
}
/* 見出しのWP強制スタイルをリセット */
h1, h2, h3, h4, h5, h6 {
  font-weight: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
  margin: 0 !important;
  padding: 0 !important;
  color: inherit !important;
}
/* リンクのWP強制スタイルをリセット */
a {
  color: inherit !important;
  text-decoration: none !important;
}
/* WordPressのalign系をリセット */
.alignwide, .alignfull, .alignleft, .alignright, .aligncenter {
  max-width: none !important;
  width: auto !important;
  float: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
/* WP6.x の :where() セレクターによる余白を上書き */
:where(p) { margin: 0 !important; }
:where(ul) { padding: 0 !important; list-style: none !important; }
:where(figure) { margin: 0 !important; }
:where(h1,h2,h3,h4,h5,h6) { margin: 0 !important; }
:where(blockquote) { margin: 0 !important; }

/* --- CSS変数 --- */
:root {
  --g0:#F4FCF7;--g1:#E6F5ED;--g2:#C8E8D6;--g3:#A2D4B8;--g4:#6BB890;--g5:#3A9B65;--g6:#2A6B47;--gd:#1A3D2B;
  --ink:#1C2B22;--body:#3D4F45;--muted:#6B7F74;--hint:#9EB0A6;
  --sun:#D4860A;--sunl:#FFF6E8;--sunm:#F5C870;
  --w:#FFFFFF;--bd:#C8E8D6;--bds:#E0F0E8;
  --gr-bg:#F0EEE9;--gr-card:#E8E5DF;--gr-step:#DEDBD4;--gr-border:#CCCAC3;
  --gr-text:#4A4845;--gr-sub:#888680;--gr-num:#AEABA4;
}

/* --- NAV --- */
#ec-nav {
  background: rgba(255,255,255,0.97) !important;
  border-bottom: 1px solid var(--bds) !important;
  padding: 0 36px !important;
  height: 70px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 9999 !important;
  backdrop-filter: blur(12px) !important;
  width: 100% !important;
  margin: 0 !important;
  max-width: none !important;
}
#ec-nav .nav-logo { display: flex !important; align-items: center !important; gap: 12px !important; }
#ec-nav .nav-logo img { height: 44px !important; width: auto !important; }
#ec-nav .nav-logo-text { display: flex !important; flex-direction: column !important; gap: 1px !important; }
#ec-nav .nav-logo-en { font-family: 'Cormorant Garamond', serif !important; font-size: 18px !important; font-weight: 600 !important; color: var(--g5) !important; letter-spacing: 1px !important; line-height: 1.1 !important; }
#ec-nav .nav-logo-jp { font-size: 11px !important; font-weight: 700 !important; color: var(--g6) !important; letter-spacing: 2px !important; opacity: .75 !important; }
#ec-nav .nav-right { display: flex !important; align-items: center !important; gap: 20px !important; }
#ec-nav .nav-note { font-size: 12px !important; color: var(--hint) !important; }
#ec-nav .nav-cta { background: var(--g5) !important; color: var(--w) !important; font-size: 12px !important; font-weight: 700 !important; padding: 10px 22px !important; border-radius: 100px !important; text-decoration: none !important; letter-spacing: .5px !important; }
#ec-nav .nav-cta:hover { background: var(--g6) !important; }

/* --- HERO --- */
.hero {
  background: linear-gradient(160deg,#EBF8F0 0%,#D8F0E4 45%,#C4E8D2 100%) !important;
  min-height: 92vh !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  position: relative !important; overflow: hidden !important;
  padding: 72px 36px 80px !important;
  margin: 0 !important; width: 100% !important;
}
.hero-lines { position: absolute !important; inset: 0 !important; background-image: linear-gradient(rgba(58,155,101,0.06) 1px,transparent 1px),linear-gradient(90deg,rgba(58,155,101,0.06) 1px,transparent 1px) !important; background-size: 72px 72px !important; }
.hero-circle1 { position: absolute !important; right: -100px !important; top: 50% !important; transform: translateY(-50%) !important; width: 520px !important; height: 520px !important; border-radius: 50% !important; border: 1px solid rgba(58,155,101,0.16) !important; }
.hero-circle2 { position: absolute !important; right: -160px !important; top: 50% !important; transform: translateY(-50%) !important; width: 680px !important; height: 680px !important; border-radius: 50% !important; border: 1px solid rgba(58,155,101,0.09) !important; }
.hero-glow { position: absolute !important; right: 0 !important; top: 30% !important; width: 360px !important; height: 360px !important; border-radius: 50% !important; background: radial-gradient(circle,rgba(107,184,144,0.14) 0%,transparent 70%) !important; }
.hero-inner { position: relative !important; z-index: 2 !important; display: grid !important; grid-template-columns: 1fr 420px !important; gap: 56px !important; max-width: 1080px !important; width: 100% !important; align-items: center !important; }
.hero-logo-wrap { margin-bottom: 24px !important; }
.hero-logo-wrap img { height: 80px !important; width: auto !important; filter: drop-shadow(0 4px 12px rgba(58,155,101,0.2)) !important; }
.hero h1 { font-family: 'Oswald', sans-serif !important; font-size: clamp(38px,5.2vw,64px) !important; font-weight: 700 !important; color: var(--ink) !important; line-height: 1.07 !important; margin-bottom: 20px !important; letter-spacing: -0.5px !important; }
.hero h1 em { color: var(--g5) !important; font-style: normal !important; }
.hero-sub { font-size: 15px !important; color: var(--body) !important; line-height: 1.9 !important; margin-bottom: 28px !important; max-width: 440px !important; }
.hero-tags { display: flex !important; gap: 8px !important; flex-wrap: wrap !important; margin-bottom: 32px !important; }
.hero-tag { background: rgba(58,155,101,0.1) !important; border: 1px solid rgba(58,155,101,0.22) !important; color: var(--g6) !important; font-size: 12px !important; font-weight: 700 !important; padding: 6px 14px !important; border-radius: 100px !important; }
.hero-points { list-style: none !important; padding: 0 !important; margin: 0 !important; }
.hero-points li { font-size: 14px !important; color: var(--body) !important; padding: 8px 0 !important; display: flex !important; align-items: center !important; gap: 12px !important; border-bottom: 1px solid rgba(58,155,101,0.1) !important; margin: 0 !important; }
.hero-points li:last-child { border-bottom: none !important; }
.chk { width: 20px !important; height: 20px !important; border-radius: 50% !important; background: var(--g5) !important; flex-shrink: 0 !important; display: flex !important; align-items: center !important; justify-content: center !important; }
.chk svg { width: 10px !important; height: 10px !important; }

/* --- FORM --- */
.form-card { background: var(--w) !important; border-radius: 20px !important; padding: 30px 26px !important; box-shadow: 0 4px 48px rgba(26,61,43,0.1) !important; border: 1px solid var(--bds) !important; }
.form-free-tag { display: inline-block !important; background: var(--sunl) !important; border: 1px solid var(--sunm) !important; color: #7A4E00 !important; font-size: 10px !important; font-weight: 700 !important; padding: 4px 14px !important; border-radius: 100px !important; margin-bottom: 14px !important; }
.form-card h3 { font-size: 18px !important; font-weight: 700 !important; color: var(--ink) !important; text-align: center !important; margin-bottom: 4px !important; }
.form-desc { font-size: 12px !important; color: var(--hint) !important; text-align: center !important; margin-bottom: 18px !important; }
.form-fallback .fg { margin-bottom: 12px !important; }
.form-fallback .fg label { display: block !important; font-size: 11px !important; font-weight: 700 !important; color: var(--muted) !important; margin-bottom: 5px !important; }
.form-fallback .fg input,
.form-fallback .fg select,
.form-fallback .fg textarea { width: 100% !important; border: 1.5px solid var(--bd) !important; border-radius: 10px !important; padding: 10px 13px !important; font-size: 13px !important; color: var(--ink) !important; background: var(--g0) !important; outline: none !important; font-family: 'Noto Sans JP', sans-serif !important; }
.form-fallback .fg input:focus,
.form-fallback .fg select:focus,
.form-fallback .fg textarea:focus { border-color: var(--g5) !important; }
.form-fallback .fg textarea { resize: vertical !important; min-height: 64px !important; }
.form-row { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 10px !important; }
.submit-btn { width: 100% !important; background: var(--g5) !important; color: var(--w) !important; font-size: 15px !important; font-weight: 900 !important; padding: 15px !important; border: none !important; border-radius: 12px !important; cursor: pointer !important; margin-top: 4px !important; letter-spacing: 1px !important; }
.submit-btn:hover { background: var(--g6) !important; }
.form-note { font-size: 10px !important; color: var(--hint) !important; text-align: center !important; margin-top: 9px !important; }

/* --- 3社バナー --- */
.three-banner { background: var(--g1) !important; border-top: 1px solid var(--bd) !important; border-bottom: 1px solid var(--bd) !important; padding: 52px 24px !important; margin: 0 !important; }
.three-inner { max-width: 960px !important; margin: 0 auto !important; }
.three-head { text-align: center !important; margin-bottom: 40px !important; }
.three-label-tag { display: inline-block !important; background: var(--g5) !important; color: var(--w) !important; font-size: 10px !important; font-weight: 700 !important; letter-spacing: 2px !important; padding: 5px 16px !important; border-radius: 100px !important; margin-bottom: 14px !important; }
.three-title { font-family: 'Oswald', sans-serif !important; font-size: clamp(22px,4vw,38px) !important; font-weight: 700 !important; color: var(--ink) !important; line-height: 1.25 !important; margin: 0 !important; }
.three-title em { color: var(--g5) !important; font-style: normal !important; }
.three-sub { font-size: 14px !important; color: var(--muted) !important; margin-top: 10px !important; line-height: 1.8 !important; }
.three-grid { display: grid !important; grid-template-columns: repeat(3,1fr) !important; gap: 16px !important; margin-bottom: 28px !important; }
.three-card { background: var(--w) !important; border: 1.5px solid var(--bd) !important; border-radius: 16px !important; padding: 24px 20px !important; text-align: center !important; position: relative !important; }
.three-card.featured-card { border-color: var(--g4) !important; border-width: 2px !important; }
.featured-badge { position: absolute !important; top: -11px !important; left: 50% !important; transform: translateX(-50%) !important; background: var(--g5) !important; color: var(--w) !important; font-size: 10px !important; font-weight: 700 !important; padding: 3px 14px !important; border-radius: 100px !important; white-space: nowrap !important; }
.three-num { font-family: 'Oswald', sans-serif !important; font-size: 34px !important; font-weight: 700 !important; color: var(--g5) !important; line-height: 1 !important; margin-bottom: 8px !important; }
.three-num span { font-size: 16px !important; }
.three-card-ttl { font-size: 14px !important; font-weight: 700 !important; color: var(--ink) !important; margin-bottom: 6px !important; }
.three-card p { font-size: 12px !important; color: var(--muted) !important; line-height: 1.75 !important; margin: 0 !important; }
.three-flow { background: var(--w) !important; border: 1.5px solid var(--bd) !important; border-radius: 16px !important; padding: 24px 32px !important; display: flex !important; align-items: center !important; justify-content: center !important; flex-wrap: wrap !important; }
.tf-step { display: flex !important; flex-direction: column !important; align-items: center !important; text-align: center !important; padding: 0 18px !important; }
.tf-dot { width: 36px !important; height: 36px !important; border-radius: 50% !important; background: var(--g1) !important; border: 1.5px solid var(--bd) !important; display: flex !important; align-items: center !important; justify-content: center !important; font-family: 'Oswald', sans-serif !important; font-size: 14px !important; font-weight: 700 !important; color: var(--g5) !important; margin-bottom: 8px !important; }
.tf-label { font-size: 11px !important; font-weight: 700 !important; color: var(--g6) !important; }
.tf-desc { font-size: 10px !important; color: var(--hint) !important; margin-top: 2px !important; }
.tf-arrow { font-size: 18px !important; color: var(--g3) !important; padding: 0 4px !important; align-self: center !important; margin-bottom: 18px !important; }

/* --- NUMBERS --- */
.numbers { background: var(--w) !important; padding: 72px 24px !important; border-bottom: 1px solid var(--bds) !important; margin: 0 !important; }
.numbers-grid { max-width: 840px !important; margin: 0 auto !important; display: grid !important; grid-template-columns: repeat(3,1fr) !important; gap: 20px !important; }
.num-card { background: var(--w) !important; border: 1.5px solid var(--bd) !important; border-radius: 20px !important; overflow: hidden !important; }
.num-card-label { background: var(--g1) !important; border-bottom: 1.5px solid var(--bd) !important; padding: 14px 16px !important; font-size: 12px !important; font-weight: 700 !important; color: var(--g6) !important; text-align: center !important; line-height: 1.5 !important; margin: 0 !important; }
.num-card.featured .num-card-label { background: var(--g4) !important; border-color: var(--g4) !important; color: var(--w) !important; }
.num-card-body { padding: 28px 16px !important; text-align: center !important; }
.num-val { font-family: 'Oswald', sans-serif !important; font-size: 50px !important; font-weight: 700 !important; color: var(--g5) !important; line-height: 1 !important; margin: 0 !important; }
.num-card.featured .num-val { color: var(--sun) !important; }
.num-val-sm { font-size: 34px !important; }
.num-unit { font-size: 26px !important; }
.num-unit-sm { font-size: 18px !important; }
.num-note { font-size: 11px !important; color: var(--hint) !important; margin-top: 6px !important; }

/* --- SUBSIDY --- */
.subsidy { background: var(--g0) !important; padding: 88px 24px !important; margin: 0 !important; }
.sec-head { text-align: center !important; margin-bottom: 52px !important; }
.sec-label { display: inline-block !important; background: var(--g1) !important; border: 1px solid var(--bd) !important; color: var(--g6) !important; font-size: 10px !important; font-weight: 700 !important; letter-spacing: 2.5px !important; padding: 5px 16px !important; border-radius: 100px !important; margin-bottom: 14px !important; }
.sec-title { font-family: 'Oswald', sans-serif !important; font-size: clamp(26px,4vw,44px) !important; font-weight: 700 !important; color: var(--ink) !important; line-height: 1.2 !important; margin: 0 !important; }
.sec-title em { color: var(--g5) !important; font-style: normal !important; }
.sec-title-sm { font-size: clamp(20px,3vw,28px) !important; }
.subsidy-merit-grid { max-width: 900px !important; margin: 0 auto 40px !important; display: grid !important; grid-template-columns: repeat(3,1fr) !important; gap: 16px !important; }
.merit-col { background: var(--w) !important; border: 1.5px solid var(--bd) !important; border-radius: 20px !important; overflow: hidden !important; }
.merit-col-head { padding: 18px 20px 16px !important; text-align: center !important; border-bottom: 1.5px solid var(--bd) !important; }
.merit-col.merit-green .merit-col-head { background: linear-gradient(135deg,#E6F5ED,#C8E8D6) !important; }
.merit-col.merit-blue .merit-col-head { background: linear-gradient(135deg,#D8EFF0,#B8DCE0) !important; }
.merit-col.merit-gold .merit-col-head { background: linear-gradient(135deg,#F0EDE6,#E0D8C8) !important; }
.merit-col-icon { width: 48px !important; height: 48px !important; border-radius: 50% !important; background: var(--w) !important; border: 1.5px solid var(--bd) !important; display: flex !important; align-items: center !important; justify-content: center !important; margin: 0 auto 10px !important; }
.merit-col-icon svg { width: 22px !important; height: 22px !important; }
.merit-col-ttl { font-size: 13px !important; font-weight: 700 !important; color: var(--ink) !important; line-height: 1.4 !important; margin: 0 !important; }
.merit-col-body { padding: 18px 20px !important; }
.merit-amount { font-family: 'Oswald', sans-serif !important; font-size: 28px !important; font-weight: 700 !important; color: var(--g5) !important; line-height: 1 !important; margin-bottom: 6px !important; }
.merit-amount-blue { color: #2A8FA0 !important; }
.merit-amount-gold { color: #8A6A2A !important; font-size: 22px !important; }
.merit-desc { font-size: 12px !important; color: var(--muted) !important; line-height: 1.7 !important; margin: 0 !important; }
.subsidy-total { max-width: 900px !important; margin: 0 auto 40px !important; background: var(--g5) !important; border-radius: 16px !important; padding: 28px 32px !important; text-align: center !important; }
.subsidy-total-label { font-size: 14px !important; font-weight: 700 !important; color: rgba(255,255,255,0.8) !important; margin-bottom: 8px !important; }
.subsidy-total-num { font-family: 'Oswald', sans-serif !important; font-size: clamp(28px,4vw,48px) !important; font-weight: 700 !important; color: var(--sunm) !important; line-height: 1 !important; margin-bottom: 8px !important; }
.subsidy-total-note { font-size: 12px !important; color: rgba(255,255,255,0.65) !important; margin: 0 !important; }
.subsidy-card { max-width: 780px !important; margin: 0 auto !important; background: var(--w) !important; border: 1.5px solid var(--bd) !important; border-radius: 24px !important; overflow: hidden !important; }
.subsidy-top { padding: 28px 32px 0 !important; text-align: center !important; }
.subsidy-tag { display: inline-block !important; background: var(--g4) !important; color: var(--w) !important; font-size: 11px !important; font-weight: 700 !important; letter-spacing: 1px !important; padding: 5px 18px !important; border-radius: 100px !important; }
.price-compare { display: flex !important; align-items: center !important; justify-content: center !important; gap: 20px !important; flex-wrap: wrap !important; padding: 28px 32px !important; }
.price-box { text-align: center !important; padding: 22px 28px !important; border-radius: 16px !important; min-width: 150px !important; }
.price-box.before { background: var(--g0) !important; border: 1.5px solid var(--bd) !important; }
.price-box.after { background: var(--g4) !important; }
.price-lbl { font-size: 11px !important; font-weight: 700 !important; margin-bottom: 8px !important; color: var(--hint) !important; margin-top: 0 !important; }
.price-box.after .price-lbl { color: rgba(255,255,255,0.8) !important; }
.price-num { font-family: 'Oswald', sans-serif !important; font-size: 44px !important; font-weight: 700 !important; line-height: 1 !important; margin: 0 !important; }
.price-box.before .price-num { color: var(--hint) !important; text-decoration: line-through !important; }
.price-box.after .price-num { color: var(--sunl) !important; }
.price-man { font-size: 18px !important; font-weight: 700 !important; }
.price-man-w { color: rgba(255,255,255,0.85) !important; }
.price-sub { font-size: 11px !important; color: var(--hint) !important; margin-top: 6px !important; }
.price-box.after .price-sub { color: rgba(255,255,255,0.65) !important; }
.arrow-c { width: 48px !important; height: 48px !important; border-radius: 50% !important; background: var(--sun) !important; color: var(--w) !important; font-family: 'Oswald', sans-serif !important; font-size: 22px !important; font-weight: 700 !important; display: flex !important; align-items: center !important; justify-content: center !important; flex-shrink: 0 !important; }
.subsidy-detail { display: grid !important; grid-template-columns: repeat(3,1fr) !important; border-top: 1.5px solid var(--bd) !important; background: var(--bd) !important; gap: 1px !important; }
.sd-item { background: var(--w) !important; padding: 20px 16px !important; text-align: center !important; }
.sd-val { font-size: 15px !important; font-weight: 700 !important; color: var(--g6) !important; margin: 0 !important; }
.sd-key { font-size: 11px !important; color: var(--hint) !important; margin-top: 3px !important; }

/* --- CASES --- */
.cases { background: var(--w) !important; padding: 88px 24px !important; margin: 0 !important; }
.cases-grid { max-width: 960px !important; margin: 0 auto !important; display: grid !important; grid-template-columns: repeat(auto-fit,minmax(280px,1fr)) !important; gap: 24px !important; }
.case-card { background: var(--w) !important; border: 1.5px solid var(--bd) !important; border-radius: 20px !important; overflow: hidden !important; transition: transform .25s,box-shadow .25s !important; }
.case-card:hover { transform: translateY(-5px) !important; box-shadow: 0 16px 48px rgba(42,107,71,0.1) !important; }
.case-img { width: 100% !important; aspect-ratio: 16/10 !important; display: flex !important; align-items: center !important; justify-content: center !important; position: relative !important; }
.case-img-1 { background: linear-gradient(140deg,#E6F5ED 0%,#C8E8D6 100%) !important; }
.case-img-2 { background: linear-gradient(140deg,#EAF5E8 0%,#C4DFC4 100%) !important; }
.case-img-3 { background: linear-gradient(140deg,#E8F0F7 0%,#C0D0E8 100%) !important; }
.case-price-badge { position: absolute !important; top: 12px !important; right: 12px !important; background: var(--ink) !important; color: var(--w) !important; border-radius: 12px !important; padding: 10px 14px !important; text-align: center !important; min-width: 88px !important; }
.badge-before { font-size: 10px !important; color: rgba(255,255,255,0.45) !important; text-decoration: line-through !important; display: block !important; }
.badge-arrow { font-size: 10px !important; color: var(--sunm) !important; font-weight: 700 !important; display: block !important; }
.badge-after { font-family: 'Oswald', sans-serif !important; font-size: 22px !important; font-weight: 700 !important; color: var(--sunm) !important; line-height: 1.1 !important; display: block !important; }
.badge-man { font-size: 12px !important; font-weight: 700 !important; }
.case-body { padding: 20px !important; }
.case-type { display: inline-block !important; background: var(--g1) !important; border: 1px solid var(--bd) !important; color: var(--g6) !important; font-size: 10px !important; font-weight: 700 !important; padding: 3px 12px !important; border-radius: 100px !important; margin-bottom: 10px !important; }
.case-title-text { font-size: 16px !important; font-weight: 700 !important; color: var(--ink) !important; margin-bottom: 7px !important; margin-top: 0 !important; }
.case-desc { font-size: 13px !important; color: var(--muted) !important; line-height: 1.75 !important; margin-bottom: 14px !important; margin-top: 0 !important; }
.case-specs { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
.spec-item { background: var(--g0) !important; border-radius: 8px !important; padding: 9px 11px !important; }
.spec-key { font-size: 10px !important; color: var(--hint) !important; display: block !important; }
.spec-val { font-size: 13px !important; font-weight: 700 !important; color: var(--g6) !important; display: block !important; }

/* --- COMPARISON --- */
.comparison { background: var(--g1) !important; padding: 88px 24px !important; margin: 0 !important; }
.comp-inner { max-width: 800px !important; margin: 0 auto !important; }
.comp-alone { background: var(--gr-bg) !important; border: 1.5px solid var(--gr-border) !important; border-radius: 20px !important; overflow: hidden !important; }
.comp-alone-head { background: var(--gr-card) !important; border-bottom: 1.5px solid var(--gr-border) !important; padding: 22px 28px !important; display: flex !important; align-items: center !important; gap: 16px !important; }
.comp-alone-head-icon { width: 40px !important; height: 40px !important; border-radius: 50% !important; background: var(--gr-bg) !important; border: 1px solid var(--gr-border) !important; display: flex !important; align-items: center !important; justify-content: center !important; flex-shrink: 0 !important; }
.comp-alone-head-text h3 { font-family: 'Oswald', sans-serif !important; font-size: 18px !important; font-weight: 700 !important; color: var(--gr-text) !important; margin: 0 !important; }
.comp-alone-head-text p { font-size: 12px !important; color: var(--gr-sub) !important; margin-top: 3px !important; margin-bottom: 0 !important; }
.comp-alone-steps { padding: 16px 28px 8px !important; display: flex !important; flex-direction: column !important; }
.comp-alone-step { display: flex !important; align-items: flex-start !important; gap: 16px !important; padding: 15px 0 !important; border-bottom: 1px solid var(--gr-border) !important; position: relative !important; margin: 0 !important; }
.comp-alone-step:last-child { border-bottom: none !important; }
.comp-alone-steps .comp-alone-step:not(:last-child)::before { content: '' !important; position: absolute !important; left: 13px !important; top: 43px !important; width: 1px !important; height: calc(100% - 14px) !important; background: var(--gr-border) !important; }
.comp-step-circle { width: 28px !important; height: 28px !important; border-radius: 50% !important; background: var(--gr-step) !important; border: 1px solid var(--gr-border) !important; display: flex !important; align-items: center !important; justify-content: center !important; font-family: 'Oswald', sans-serif !important; font-size: 12px !important; font-weight: 700 !important; color: var(--gr-num) !important; flex-shrink: 0 !important; margin-top: 2px !important; position: relative !important; z-index: 1 !important; }
.comp-alone-step-label { font-size: 14px !important; font-weight: 700 !important; color: var(--gr-text) !important; display: block !important; }
.comp-alone-step-desc { font-size: 12px !important; color: var(--gr-sub) !important; margin-top: 3px !important; line-height: 1.7 !important; display: block !important; }
.pain-pill { display: inline-block !important; margin-top: 7px !important; background: rgba(140,80,80,0.12) !important; border: 1px solid rgba(160,90,90,0.25) !important; color: #9B5A5A !important; font-size: 10px !important; font-weight: 700 !important; padding: 2px 10px !important; border-radius: 100px !important; }
.comp-alone-footer { background: var(--gr-card) !important; border-top: 1.5px solid var(--gr-border) !important; padding: 28px 32px !important; text-align: center !important; }
.alone-footer-main { font-family: 'Oswald', sans-serif !important; font-size: clamp(20px,3.5vw,28px) !important; font-weight: 700 !important; color: var(--gr-text) !important; line-height: 1.25 !important; margin: 0 !important; }
.alone-footer-sub { font-size: 13px !important; color: var(--gr-num) !important; margin-top: 8px !important; margin-bottom: 0 !important; }
.bridge { display: flex !important; flex-direction: column !important; align-items: center !important; }
.bridge-stem { width: 2px !important; height: 32px !important; background: linear-gradient(to bottom,var(--gr-border),var(--g4)) !important; }
.bridge-title { width: 100% !important; border-radius: 16px !important; overflow: hidden !important; border: 2px solid var(--g4) !important; box-shadow: 0 8px 32px rgba(58,155,101,0.15) !important; }
.bridge-title-bg { background: linear-gradient(135deg,#C8E8D6 0%,#D8F0E2 40%,#BFE8D2 70%,#A8D9BE 100%) !important; padding: 24px 48px 20px !important; position: relative !important; overflow: hidden !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 20px !important; }
.bridge-title-bg::before { content: '' !important; position: absolute !important; inset: 0 !important; background-image: linear-gradient(rgba(58,155,101,0.07) 1px,transparent 1px),linear-gradient(90deg,rgba(58,155,101,0.07) 1px,transparent 1px) !important; background-size: 28px 28px !important; }
.bridge-logo { position: relative !important; z-index: 1 !important; height: 60px !important; width: auto !important; }
.bridge-text-block { position: relative !important; z-index: 1 !important; text-align: left !important; }
.bridge-en { font-family: 'Cormorant Garamond', serif !important; font-style: italic !important; font-size: 13px !important; color: var(--g6) !important; letter-spacing: 3px !important; margin-bottom: 6px !important; opacity: .8 !important; display: block !important; }
.bridge-jp { font-family: 'Oswald', sans-serif !important; font-size: clamp(22px,3.5vw,34px) !important; font-weight: 700 !important; color: var(--ink) !important; letter-spacing: 1px !important; line-height: 1.1 !important; margin: 0 !important; }
.bridge-jp em { color: var(--g6) !important; font-style: normal !important; }
.bridge-sub { font-size: 13px !important; color: var(--g6) !important; margin-top: 8px !important; opacity: .85 !important; display: block !important; }
.bridge-arrow { display: flex !important; flex-direction: column !important; align-items: center !important; padding: 6px 0 0 !important; }
.bridge-arrow-shaft { width: 3px !important; height: 28px !important; background: var(--g4) !important; border-radius: 2px 2px 0 0 !important; }
.bridge-arrow-head { width: 0 !important; height: 0 !important; border-left: 22px solid transparent !important; border-right: 22px solid transparent !important; border-top: 28px solid var(--g4) !important; }
.comp-ec { background: var(--w) !important; border: 2px solid var(--g3) !important; border-radius: 20px !important; overflow: hidden !important; }
.comp-ec-steps { padding: 20px 28px 8px !important; display: flex !important; flex-direction: column !important; }
.comp-ec-step { display: flex !important; align-items: flex-start !important; gap: 16px !important; padding: 15px 0 !important; border-bottom: 1px solid var(--bds) !important; position: relative !important; margin: 0 !important; }
.comp-ec-step:last-child { border-bottom: none !important; }
.comp-ec-steps .comp-ec-step:not(:last-child)::before { content: '' !important; position: absolute !important; left: 13px !important; top: 43px !important; width: 1px !important; height: calc(100% - 14px) !important; background: var(--g2) !important; }
.comp-ec-circle { width: 28px !important; height: 28px !important; border-radius: 50% !important; background: var(--g5) !important; display: flex !important; align-items: center !important; justify-content: center !important; font-family: 'Oswald', sans-serif !important; font-size: 12px !important; font-weight: 700 !important; color: var(--w) !important; flex-shrink: 0 !important; margin-top: 2px !important; position: relative !important; z-index: 1 !important; }
.comp-ec-step-label { font-size: 14px !important; font-weight: 700 !important; color: var(--ink) !important; display: block !important; }
.comp-ec-step-desc { font-size: 12px !important; color: var(--muted) !important; margin-top: 3px !important; line-height: 1.7 !important; display: block !important; }
.merit-pill-g { display: inline-block !important; margin-top: 7px !important; background: var(--g1) !important; border: 1px solid var(--g3) !important; color: var(--g6) !important; font-size: 10px !important; font-weight: 700 !important; padding: 2px 10px !important; border-radius: 100px !important; }
.comp-ec-footer { background: var(--g2) !important; border-top: 2px solid var(--g3) !important; padding: 28px 32px !important; text-align: center !important; }
.ec-footer-main { font-family: 'Oswald', sans-serif !important; font-size: clamp(20px,3.5vw,28px) !important; font-weight: 700 !important; color: var(--ink) !important; line-height: 1.25 !important; margin: 0 !important; }
.ec-footer-main em { color: var(--g5) !important; font-style: normal !important; }
.ec-footer-sub { font-size: 13px !important; color: var(--muted) !important; margin-top: 8px !important; margin-bottom: 0 !important; }

/* --- WHY --- */
.why { background: var(--w) !important; padding: 88px 24px !important; margin: 0 !important; }
.why-grid { max-width: 920px !important; margin: 0 auto !important; display: grid !important; grid-template-columns: repeat(auto-fit,minmax(240px,1fr)) !important; gap: 20px !important; }
.why-card { background: var(--g0) !important; border: 1.5px solid var(--bd) !important; border-radius: 20px !important; padding: 28px 24px !important; }
.why-icon-wrap { width: 46px !important; height: 46px !important; background: var(--g1) !important; border: 1.5px solid var(--bd) !important; border-radius: 12px !important; display: flex !important; align-items: center !important; justify-content: center !important; margin-bottom: 14px !important; }
.why-icon-wrap svg { width: 22px !important; height: 22px !important; }
.why-card h3 { font-size: 16px !important; font-weight: 700 !important; color: var(--ink) !important; margin-bottom: 8px !important; margin-top: 0 !important; }
.why-card p { font-size: 13px !important; color: var(--muted) !important; line-height: 1.8 !important; margin: 0 !important; }

/* --- FLOW --- */
.flow { background: var(--g1) !important; padding: 88px 24px !important; margin: 0 !important; }
.flow-steps { max-width: 700px !important; margin: 0 auto !important; }
.flow-step { display: flex !important; gap: 20px !important; padding: 28px 0 !important; border-bottom: 1px solid var(--bd) !important; align-items: flex-start !important; margin: 0 !important; }
.step-num { font-family: 'Oswald', sans-serif !important; font-size: 40px !important; font-weight: 700 !important; color: var(--g3) !important; line-height: 1 !important; min-width: 52px !important; margin: 0 !important; }
.step-pill { display: inline-block !important; background: var(--g5) !important; color: var(--w) !important; font-size: 10px !important; font-weight: 700 !important; letter-spacing: 1px !important; padding: 3px 12px !important; border-radius: 100px !important; margin-bottom: 8px !important; }
.step-body h3 { font-size: 17px !important; font-weight: 700 !important; color: var(--ink) !important; margin-bottom: 5px !important; margin-top: 0 !important; }
.step-body p { font-size: 13px !important; color: var(--muted) !important; line-height: 1.75 !important; margin: 0 !important; }

/* --- CTA --- */
.cta-banner { background: linear-gradient(150deg,#C4E8D2 0%,#D8F0E4 60%,#EBF8F0 100%) !important; padding: 88px 24px !important; text-align: center !important; position: relative !important; overflow: hidden !important; margin: 0 !important; }
.cta-deco { position: absolute !important; inset: 0 !important; background-image: linear-gradient(rgba(58,155,101,0.05) 1px,transparent 1px),linear-gradient(90deg,rgba(58,155,101,0.05) 1px,transparent 1px) !important; background-size: 64px 64px !important; }
.cta-inner { position: relative !important; z-index: 2 !important; }
.cta-logo-wrap { display: flex !important; align-items: center !important; justify-content: center !important; gap: 14px !important; margin-bottom: 20px !important; }
.cta-logo-wrap img { height: 56px !important; width: auto !important; }
.cta-logo-en { font-family: 'Cormorant Garamond', serif !important; font-size: 22px !important; font-weight: 600 !important; color: var(--g5) !important; letter-spacing: 2px !important; line-height: 1 !important; display: block !important; }
.cta-logo-jp { font-size: 12px !important; font-weight: 700 !important; color: var(--g6) !important; letter-spacing: 2px !important; margin-top: 2px !important; opacity: .7 !important; display: block !important; }
.cta-banner h2 { font-family: 'Oswald', sans-serif !important; font-size: clamp(28px,5vw,48px) !important; font-weight: 700 !important; color: var(--ink) !important; margin-bottom: 12px !important; margin-top: 0 !important; }
.cta-banner h2 em { color: var(--sun) !important; font-style: normal !important; }
.cta-banner > .cta-inner > p { color: var(--body) !important; font-size: 14px !important; margin-bottom: 32px !important; margin-top: 0 !important; }
.cta-btn { display: inline-block !important; background: var(--g5) !important; color: var(--w) !important; font-size: 16px !important; font-weight: 900 !important; padding: 18px 52px !important; border-radius: 100px !important; text-decoration: none !important; letter-spacing: 1px !important; box-shadow: 0 8px 24px rgba(58,155,101,0.28) !important; }
.cta-btn:hover { background: var(--g6) !important; }
.cta-sub { margin-top: 14px !important; font-size: 12px !important; color: var(--muted) !important; display: block !important; }

/* --- FOOTER --- */
#ec-footer { background: linear-gradient(160deg,#C8E8D6 0%,#DCF0E6 100%) !important; padding: 48px 24px !important; text-align: center !important; border-top: 1px solid var(--bd) !important; margin: 0 !important; }
.footer-logo-wrap { display: flex !important; align-items: center !important; justify-content: center !important; gap: 14px !important; margin-bottom: 16px !important; }
.footer-logo-wrap img { height: 52px !important; width: auto !important; }
.footer-logo-en { font-family: 'Cormorant Garamond', serif !important; font-size: 22px !important; font-weight: 600 !important; color: var(--g5) !important; letter-spacing: 2px !important; line-height: 1 !important; display: block !important; }
.footer-logo-jp { font-size: 13px !important; font-weight: 700 !important; color: var(--g6) !important; letter-spacing: 2px !important; margin-top: 3px !important; opacity: .7 !important; display: block !important; }
.footer-links { display: flex !important; justify-content: center !important; gap: 24px !important; margin: 20px 0 !important; flex-wrap: wrap !important; }
.footer-links a { font-size: 12px !important; color: var(--muted) !important; text-decoration: none !important; }
.footer-copy { font-size: 12px !important; color: var(--hint) !important; margin: 0 !important; }

/* --- アニメーション --- */
.fade-up { opacity: 0 !important; transform: translateY(24px) !important; transition: opacity .65s ease, transform .65s ease !important; }
.fade-up.visible { opacity: 1 !important; transform: translateY(0) !important; }

/* --- レスポンシブ --- */
@media (max-width: 700px) {
  .hero-inner { grid-template-columns: 1fr !important; gap: 32px !important; }
  .form-row { grid-template-columns: 1fr !important; }
  .numbers-grid { grid-template-columns: 1fr !important; }
  .three-grid { grid-template-columns: 1fr !important; }
  .subsidy-merit-grid { grid-template-columns: 1fr !important; }
  .subsidy-detail { grid-template-columns: 1fr !important; }
  .bridge-title-bg { flex-direction: column !important; gap: 12px !important; padding: 24px !important; }
  .bridge-text-block { text-align: center !important; }
  #ec-nav { padding: 0 16px !important; }
  #ec-nav .nav-note { display: none !important; }
}

/* ============================================
   Contact Form 7 スタイル上書き
   ============================================ */

/* CF7のデフォルトスタイルをリセット */
.wpcf7 { margin: 0 !important; padding: 0 !important; }
.wpcf7 form { margin: 0 !important; }
.wpcf7 p { margin: 0 0 12px !important; }
.wpcf7 br { display: none !important; }

/* ラベル */
.wpcf7 label,
.wpcf7 .wpcf7-form-control-wrap label {
  display: block !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  color: var(--muted) !important;
  margin-bottom: 5px !important;
  letter-spacing: .3px !important;
}

/* テキスト・メール・電話入力 */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="number"],
.wpcf7 select,
.wpcf7 textarea {
  width: 100% !important;
  border: 1.5px solid var(--bd) !important;
  border-radius: 10px !important;
  padding: 10px 13px !important;
  font-size: 13px !important;
  font-family: 'Noto Sans JP', sans-serif !important;
  color: var(--ink) !important;
  background: var(--g0) !important;
  outline: none !important;
  box-shadow: none !important;
  transition: border-color .2s, background .2s !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}
.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="tel"]:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
  border-color: var(--g5) !important;
  background: var(--w) !important;
}
.wpcf7 textarea {
  resize: vertical !important;
  min-height: 64px !important;
}

/* 送信ボタン */
.wpcf7 input[type="submit"],
.wpcf7 .wpcf7-submit {
  width: 100% !important;
  background: var(--g5) !important;
  color: var(--w) !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  padding: 15px !important;
  border: none !important;
  border-radius: 12px !important;
  cursor: pointer !important;
  margin-top: 4px !important;
  letter-spacing: 1px !important;
  font-family: 'Noto Sans JP', sans-serif !important;
  transition: background .2s !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}
.wpcf7 input[type="submit"]:hover,
.wpcf7 .wpcf7-submit:hover {
  background: var(--g6) !important;
}

/* バリデーションエラー */
.wpcf7-not-valid-tip {
  font-size: 11px !important;
  color: #c0392b !important;
  margin-top: 4px !important;
  display: block !important;
}
.wpcf7-not-valid {
  border-color: #e74c3c !important;
}

/* 送信成功・失敗メッセージ */
.wpcf7-response-output {
  margin: 12px 0 0 !important;
  padding: 10px 14px !important;
  border-radius: 10px !important;
  font-size: 13px !important;
  border: none !important;
}
.wpcf7 .wpcf7-mail-sent-ok {
  background: var(--g1) !important;
  color: var(--g6) !important;
  border: 1px solid var(--bd) !important;
}
.wpcf7 .wpcf7-mail-sent-ng,
.wpcf7 .wpcf7-spam-blocked {
  background: #fdf0ef !important;
  color: #c0392b !important;
  border: 1px solid #f5c6c0 !important;
}

/* スピナー */
.wpcf7 .ajax-loader {
  display: none !important;
}

/* 必須マーク */
.req {
  color: #e74c3c !important;
  font-size: 11px !important;
}

/* HTMLフォーム（CF7なし時）のスタイル */
.ec-form .fg { margin-bottom: 12px !important; }
.ec-form .fg label { display: block !important; font-size: 11px !important; font-weight: 700 !important; color: var(--muted) !important; margin-bottom: 5px !important; }
.ec-form input[type="text"],
.ec-form input[type="tel"],
.ec-form select,
.ec-form textarea {
  width: 100% !important; border: 1.5px solid var(--bd) !important; border-radius: 10px !important;
  padding: 10px 13px !important; font-size: 13px !important; font-family: 'Noto Sans JP', sans-serif !important;
  color: var(--ink) !important; background: var(--g0) !important; outline: none !important;
}
.ec-form input:focus, .ec-form select:focus, .ec-form textarea:focus { border-color: var(--g5) !important; }
.ec-form textarea { resize: vertical !important; min-height: 64px !important; }

/* ============================================
   チェックボックスフォーム スタイル
   ============================================ */

.wpcf7 { margin: 0 !important; padding: 0 !important; }
.wpcf7 form { margin: 0 !important; }
.wpcf7 p { margin: 0 0 10px !important; }
.wpcf7 br { display: none !important; }

/* チェックボックスエリア */
.ec-checks {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  margin-bottom: 16px !important;
}
.ec-check-item {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 11px 14px !important;
  background: #F6FBF8 !important;
  border: 1.5px solid #E0F0E8 !important;
  border-radius: 10px !important;
  cursor: pointer !important;
  transition: border-color .15s, background .15s !important;
}
.ec-check-item:hover {
  border-color: #C8E8D6 !important;
}
.ec-check-item input[type="checkbox"] {
  display: none !important;
}
.ec-check-box {
  width: 20px !important;
  height: 20px !important;
  border-radius: 4px !important;
  border: 1.5px solid #C8E8D6 !important;
  background: #fff !important;
  flex-shrink: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: background .15s, border-color .15s !important;
  position: relative !important;
}
.ec-check-item input[type="checkbox"]:checked ~ .ec-check-box {
  background: #3A9B65 !important;
  border-color: #3A9B65 !important;
}
.ec-check-item input[type="checkbox"]:checked ~ .ec-check-box::after {
  content: '' !important;
  display: block !important;
  width: 5px !important;
  height: 9px !important;
  border: 2px solid white !important;
  border-top: none !important;
  border-left: none !important;
  transform: rotate(45deg) translate(-1px, -1px) !important;
}
.ec-check-item input[type="checkbox"]:checked ~ .ec-check-label {
  color: #1C2B22 !important;
}
.ec-check-item:has(input:checked) {
  background: #F0FAF4 !important;
  border-color: #A2D4B8 !important;
}
.ec-check-label {
  font-size: 14px !important;
  color: #3D4F45 !important;
  line-height: 1.4 !important;
}

/* フォーム行 */
.ec-form-row {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 10px !important;
  margin-bottom: 10px !important;
}
.ec-fg {
  display: flex !important;
  flex-direction: column !important;
  gap: 5px !important;
}
.ec-fg label {
  font-size: 12px !important;
  font-weight: 700 !important;
  color: #6B7F74 !important;
  display: block !important;
  margin-bottom: 5px !important;
}

/* 入力フィールド */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 select {
  width: 100% !important;
  height: 40px !important;
  border: 1.5px solid #C8E8D6 !important;
  border-radius: 10px !important;
  padding: 0 13px !important;
  font-size: 14px !important;
  font-family: 'Noto Sans JP', sans-serif !important;
  color: #1C2B22 !important;
  background: #F4FCF7 !important;
  outline: none !important;
  box-shadow: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}
.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="tel"]:focus,
.wpcf7 select:focus {
  border-color: #3A9B65 !important;
  background: #fff !important;
}

/* 送信ボタン */
.wpcf7 input[type="submit"],
.wpcf7 .wpcf7-submit,
.submit-btn {
  width: 100% !important;
  background: #3A9B65 !important;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  padding: 14px !important;
  border: none !important;
  border-radius: 12px !important;
  cursor: pointer !important;
  margin-top: 8px !important;
  letter-spacing: .3px !important;
  font-family: 'Noto Sans JP', sans-serif !important;
  -webkit-appearance: none !important;
  display: block !important;
}
.wpcf7 input[type="submit"]:hover,
.submit-btn:hover {
  background: #2A6B47 !important;
}

/* エラー・成功メッセージ */
.wpcf7-not-valid-tip {
  font-size: 11px !important;
  color: #c0392b !important;
  margin-top: 4px !important;
  display: block !important;
}
.wpcf7-not-valid { border-color: #e74c3c !important; }
.wpcf7-response-output {
  margin: 10px 0 0 !important;
  padding: 10px 14px !important;
  border-radius: 10px !important;
  font-size: 13px !important;
  border: none !important;
}
.wpcf7 .wpcf7-mail-sent-ok {
  background: #E6F5ED !important;
  color: #2A6B47 !important;
  border: 1px solid #C8E8D6 !important;
}
.wpcf7 .wpcf7-mail-sent-ng {
  background: #fdf0ef !important;
  color: #c0392b !important;
  border: 1px solid #f5c6c0 !important;
}

/* スマホ対応 */
@media (max-width: 480px) {
  .form-card { padding: 20px 16px !important; }
  .ec-form-row { grid-template-columns: 1fr !important; }
  .ec-check-label { font-size: 13px !important; }
}

/* ============================================
   v6 チェックボックス横並び修正 + 文字色強化
   ============================================ */

/* チェックボックスと文字を横一行に */
.ec-check-item {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 10px !important;
  flex-wrap: nowrap !important;
}
.ec-check-box {
  flex-shrink: 0 !important;
  align-self: center !important;
}
.ec-check-label {
  flex: 1 !important;
  white-space: normal !important;
  line-height: 1.3 !important;
  font-size: 14px !important;
  color: #2A3D32 !important;
  font-weight: 500 !important;
}

/* CF7のチェックボックスも横並びに */
.wpcf7 .ec-check-item {
  flex-direction: row !important;
  align-items: center !important;
}

/* ラベル文字を少し濃く・太く */
.ec-fg label,
.wpcf7 .ec-fg label,
.form-card .fg label,
.fg label {
  color: #3D4F45 !important;
  font-weight: 700 !important;
  font-size: 12px !important;
}

/* プレースホルダーも少し濃く */
.wpcf7 input::placeholder,
.fg input::placeholder {
  color: #7A9E8A !important;
}

/* 入力済み文字色を濃く */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 select,
.fg input,
.fg select {
  color: #1C2B22 !important;
  font-weight: 500 !important;
}

/* ============================================
   v7 直接フォーム スタイル
   ============================================ */
.ec-direct-form { margin: 0 !important; padding: 0 !important; }

.ec-check-section-label {
  font-size: 12px !important;
  font-weight: 700 !important;
  color: #6B7F74 !important;
  margin-bottom: 8px !important;
}

.ec-checks {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  margin-bottom: 16px !important;
}

/* チェックボックス行 — 完全横並び */
.ec-check-row {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 11px 14px !important;
  background: #F6FBF8 !important;
  border: 1.5px solid #E0F0E8 !important;
  border-radius: 10px !important;
  cursor: pointer !important;
  transition: border-color .15s, background .15s !important;
  width: 100% !important;
}
.ec-check-row:hover { border-color: #C8E8D6 !important; }
.ec-check-row:has(input:checked) {
  background: #F0FAF4 !important;
  border-color: #A2D4B8 !important;
}

/* ネイティブのチェックボックスを隠す */
.ec-check-row input[type="checkbox"] {
  position: absolute !important;
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
  pointer-events: none !important;
}

/* カスタムチェックボックス */
.ec-cb {
  width: 20px !important;
  height: 20px !important;
  min-width: 20px !important;
  border-radius: 4px !important;
  border: 1.5px solid #C8E8D6 !important;
  background: #fff !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: background .15s, border-color .15s !important;
  position: relative !important;
}
.ec-check-row:has(input:checked) .ec-cb {
  background: #3A9B65 !important;
  border-color: #3A9B65 !important;
}
.ec-check-row:has(input:checked) .ec-cb::after {
  content: '' !important;
  display: block !important;
  width: 5px !important;
  height: 9px !important;
  border: 2px solid white !important;
  border-top: none !important;
  border-left: none !important;
  transform: rotate(45deg) translate(-1px, -1px) !important;
}

/* ラベルテキスト */
.ec-cl {
  font-size: 14px !important;
  color: #2A3D32 !important;
  font-weight: 500 !important;
  line-height: 1.4 !important;
  flex: 1 !important;
}

.ec-divider {
  height: 1px !important;
  background: #E0F0E8 !important;
  margin: 14px 0 !important;
}

/* 入力フィールド行 */
.ec-row {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 10px !important;
  margin-bottom: 10px !important;
}
.ec-fg {
  display: flex !important;
  flex-direction: column !important;
  gap: 5px !important;
}
.ec-fg label {
  font-size: 12px !important;
  font-weight: 700 !important;
  color: #3D4F45 !important;
  display: block !important;
}
.ec-req {
  color: #e74c3c !important;
  font-size: 11px !important;
  margin-left: 2px !important;
}
.ec-fg input,
.ec-fg select {
  height: 40px !important;
  padding: 0 13px !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  border-radius: 10px !important;
  border: 1.5px solid #C8E8D6 !important;
  background: #F4FCF7 !important;
  color: #1C2B22 !important;
  width: 100% !important;
  outline: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  font-family: 'Noto Sans JP', sans-serif !important;
}
.ec-fg input:focus,
.ec-fg select:focus {
  border-color: #3A9B65 !important;
  background: #fff !important;
}
.ec-fg input::placeholder { color: #7A9E8A !important; }

/* 送信ボタン */
.ec-submit {
  width: 100% !important;
  background: #3A9B65 !important;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  padding: 14px !important;
  border: none !important;
  border-radius: 12px !important;
  cursor: pointer !important;
  margin-top: 8px !important;
  letter-spacing: .3px !important;
  font-family: 'Noto Sans JP', sans-serif !important;
  display: block !important;
  -webkit-appearance: none !important;
}
.ec-submit:hover { background: #2A6B47 !important; }

.ec-note {
  font-size: 11px !important;
  color: #9EB0A6 !important;
  text-align: center !important;
  margin-top: 8px !important;
  margin-bottom: 0 !important;
}

/* 送信完了メッセージ */
.ec-success {
  background: #E6F5ED !important;
  border: 1px solid #C8E8D6 !important;
  color: #2A6B47 !important;
  border-radius: 10px !important;
  padding: 12px 14px !important;
  font-size: 13px !important;
  margin-bottom: 16px !important;
  font-weight: 500 !important;
}

/* スマホ対応 */
@media (max-width: 480px) {
  .ec-row { grid-template-columns: 1fr !important; }
  .ec-cl { font-size: 13px !important; }
}

/* ============================================
   v8 スマホ横幅修正
   ============================================ */
@media (max-width: 768px) {
  /* ヒーローセクションの左右パディングを狭く */
  .hero { padding: 40px 12px 48px !important; }
  .hero-inner { gap: 28px !important; }

  /* フォームカードを画面幅いっぱいに */
  .form-card {
    padding: 20px 16px !important;
    border-radius: 16px !important;
    margin: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  /* フォーム内の入力を縦1列に */
  .ec-row {
    grid-template-columns: 1fr !important;
  }

  /* チェックボックスのテキストサイズ調整 */
  .ec-cl { font-size: 13px !important; }
  .ec-check-row { padding: 10px 12px !important; }
}

/* ============================================
   PAIN SECTION
   ============================================ */
.pain-section {
  position: relative !important;
  width: 100% !important;
  min-height: 420px !important;
  display: flex !important;
  align-items: center !important;
  overflow: hidden !important;
}
.pain-bg {
  position: absolute !important;
  inset: 0 !important;
  background-size: cover !important;
  background-position: center right !important;
}
.pain-overlay {
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(90deg,
    rgba(255,255,255,0.97) 0%,
    rgba(255,255,255,0.93) 45%,
    rgba(255,255,255,0.55) 70%,
    rgba(255,255,255,0.05) 100%) !important;
}
.pain-content {
  position: relative !important;
  z-index: 2 !important;
  padding: 56px 48px !important;
  max-width: 620px !important;
}
.pain-eyebrow {
  font-size: 13px !important;
  color: #6B7F74 !important;
  margin-bottom: 10px !important;
  letter-spacing: .5px !important;
}
.pain-title {
  font-family: 'Oswald', sans-serif !important;
  font-size: clamp(24px,3.5vw,38px) !important;
  font-weight: 700 !important;
  color: #1C2B22 !important;
  line-height: 1.25 !important;
  margin-bottom: 14px !important;
}
.pain-title em {
  color: #D4860A !important;
  font-style: normal !important;
}
.pain-sub {
  font-size: 14px !important;
  color: #3D4F45 !important;
  line-height: 1.8 !important;
  margin-bottom: 28px !important;
}
.pain-cards {
  display: flex !important;
  gap: 10px !important;
  flex-wrap: wrap !important;
}
.pain-card {
  background: #3A9B65 !important;
  color: white !important;
  border-radius: 12px !important;
  padding: 13px 18px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-align: center !important;
  line-height: 1.5 !important;
  min-width: 130px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

@media (max-width: 600px) {
  .pain-content { padding: 36px 20px !important; }
  .pain-cards { flex-direction: column !important; }
  .pain-card { min-width: unset !important; }
  .pain-overlay {
    background: linear-gradient(180deg,
      rgba(255,255,255,0.96) 0%,
      rgba(255,255,255,0.88) 100%) !important;
  }
}

/* v10 pain-bg 強制適用 */
.pain-section {
  isolation: isolate !important;
}
.pain-bg {
  position: absolute !important;
  inset: 0 !important;
  background-size: cover !important;
  background-position: center right !important;
  background-repeat: no-repeat !important;
  z-index: 0 !important;
}
.pain-overlay {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  background: linear-gradient(90deg,
    rgba(255,255,255,0.97) 0%,
    rgba(255,255,255,0.93) 45%,
    rgba(255,255,255,0.55) 70%,
    rgba(255,255,255,0.05) 100%) !important;
}
.pain-content {
  position: relative !important;
  z-index: 2 !important;
}

/* v11 スマホでカードを横3列に */
@media (max-width: 600px) {
  .pain-cards {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 8px !important;
    flex-direction: unset !important;
  }
  .pain-card {
    min-width: unset !important;
    padding: 10px 8px !important;
    font-size: 11px !important;
    border-radius: 10px !important;
  }
}

/* v13 pain section レイアウト調整 */
.pain-section {
  min-height: 480px !important;
}
.pain-content {
  padding: 64px 64px 64px 72px !important;
  max-width: 580px !important;
}
.pain-eyebrow {
  font-size: 14px !important;
  margin-bottom: 14px !important;
  color: #6B7F74 !important;
}
.pain-title {
  font-size: clamp(28px, 3.2vw, 44px) !important;
  line-height: 1.3 !important;
  margin-bottom: 18px !important;
}
.pain-sub {
  font-size: 15px !important;
  line-height: 1.9 !important;
  margin-bottom: 32px !important;
  color: #3D4F45 !important;
}
.pain-cards {
  gap: 12px !important;
}
.pain-card {
  padding: 14px 20px !important;
  font-size: 13px !important;
  border-radius: 12px !important;
  min-width: 140px !important;
  box-shadow: 0 4px 12px rgba(58,155,101,0.2) !important;
}

/* オーバーレイを少し薄くして画像をもっと見せる */
.pain-overlay {
  background: linear-gradient(90deg,
    rgba(255,255,255,0.95) 0%,
    rgba(255,255,255,0.88) 38%,
    rgba(255,255,255,0.4) 62%,
    rgba(255,255,255,0.0) 100%) !important;
}

@media (max-width: 768px) {
  .pain-content {
    padding: 40px 28px !important;
    max-width: 100% !important;
  }
  .pain-title {
    font-size: clamp(24px, 6vw, 32px) !important;
  }
}

/* ============================================
   v14 PAIN SECTION 全面リデザイン
   参考画像：テキストが画像中央に重なるスタイル
   ============================================ */

/* セクション全体 */
.pain-section {
  position: relative !important;
  width: 100% !important;
  min-height: 460px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* 背景画像 */
.pain-bg {
  position: absolute !important;
  inset: 0 !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  z-index: 0 !important;
}

/* 全体に薄い白オーバーレイ */
.pain-overlay {
  position: absolute !important;
  inset: 0 !important;
  background: rgba(255,255,255,0.72) !important;
  z-index: 1 !important;
}

/* テキストを中央に */
.pain-content {
  position: relative !important;
  z-index: 2 !important;
  width: 100% !important;
  max-width: 860px !important;
  margin: 0 auto !important;
  padding: 72px 48px !important;
  text-align: center !important;
}

.pain-eyebrow {
  font-size: 14px !important;
  color: #6B7F74 !important;
  margin-bottom: 16px !important;
  letter-spacing: .5px !important;
  display: block !important;
}

.pain-title {
  font-family: 'Oswald', sans-serif !important;
  font-size: clamp(26px, 3.5vw, 46px) !important;
  font-weight: 700 !important;
  color: #1C2B22 !important;
  line-height: 1.3 !important;
  margin-bottom: 16px !important;
  text-align: center !important;
}
.pain-title em {
  color: #D4860A !important;
  font-style: normal !important;
  display: block !important;
}

.pain-sub {
  font-size: 15px !important;
  color: #3D4F45 !important;
  line-height: 1.9 !important;
  margin-bottom: 32px !important;
  text-align: center !important;
}

/* カードを中央揃えで横3列 */
.pain-cards {
  display: flex !important;
  gap: 14px !important;
  justify-content: center !important;
  flex-wrap: nowrap !important;
}
.pain-card {
  background: #3A9B65 !important;
  color: white !important;
  border-radius: 12px !important;
  padding: 16px 20px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-align: center !important;
  line-height: 1.6 !important;
  flex: 1 !important;
  max-width: 200px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: 0 4px 16px rgba(58,155,101,0.25) !important;
  min-width: 0 !important;
}

/* スマホ */
@media (max-width: 600px) {
  .pain-content {
    padding: 48px 20px !important;
  }
  .pain-title {
    font-size: clamp(22px, 6vw, 30px) !important;
  }
  .pain-cards {
    gap: 8px !important;
    justify-content: center !important;
  }
  .pain-card {
    padding: 11px 8px !important;
    font-size: 11px !important;
    border-radius: 10px !important;
    max-width: unset !important;
  }
}

/* ============================================
   v15 画像比較セクション
   ============================================ */
.img-comp-section {
  background: var(--g1) !important;
  padding: 80px 24px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 0 !important;
}

/* 画像 */
.img-comp-item {
  width: 100% !important;
  max-width: 900px !important;
}
.img-comp-img {
  width: 100% !important;
  height: auto !important;
  display: block !important;
  border-radius: 20px !important;
  box-shadow: 0 8px 40px rgba(42,107,71,0.12) !important;
}

/* 中間バナー */
.img-comp-bridge {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  width: 100% !important;
  max-width: 900px !important;
  padding: 8px 0 !important;
}
.img-comp-bridge-inner {
  width: 100% !important;
  background: linear-gradient(135deg,#C8E8D6 0%,#D8F0E2 40%,#BFE8D2 70%,#A8D9BE 100%) !important;
  border: 2px solid var(--g4) !important;
  border-radius: 16px !important;
  padding: 24px 40px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 20px !important;
  position: relative !important;
  overflow: hidden !important;
  box-shadow: 0 8px 32px rgba(58,155,101,0.15) !important;
}
.img-comp-bridge-inner::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background-image: linear-gradient(rgba(58,155,101,0.07) 1px,transparent 1px),linear-gradient(90deg,rgba(58,155,101,0.07) 1px,transparent 1px) !important;
  background-size: 28px 28px !important;
}
.img-comp-logo {
  height: 64px !important;
  width: auto !important;
  position: relative !important;
  z-index: 1 !important;
  filter: drop-shadow(0 2px 8px rgba(58,155,101,0.2)) !important;
  flex-shrink: 0 !important;
}
.img-comp-bridge-text {
  position: relative !important;
  z-index: 1 !important;
  text-align: left !important;
}
.img-comp-bridge-en {
  font-family: 'Cormorant Garamond', serif !important;
  font-style: italic !important;
  font-size: 13px !important;
  color: var(--g6) !important;
  letter-spacing: 3px !important;
  margin-bottom: 6px !important;
  opacity: .8 !important;
}
.img-comp-bridge-jp {
  font-family: 'Oswald', sans-serif !important;
  font-size: clamp(24px,3.5vw,36px) !important;
  font-weight: 700 !important;
  color: var(--ink) !important;
  letter-spacing: 1px !important;
  line-height: 1.1 !important;
  margin: 0 !important;
}
.img-comp-bridge-jp em {
  color: var(--g6) !important;
  font-style: normal !important;
}
.img-comp-bridge-sub {
  font-size: 13px !important;
  color: var(--g6) !important;
  margin-top: 8px !important;
  opacity: .85 !important;
}

/* 矢印 */
.img-comp-arrow-wrap {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  padding: 6px 0 0 !important;
}
.img-comp-arrow-shaft {
  width: 3px !important;
  height: 28px !important;
  background: var(--g4) !important;
  border-radius: 2px 2px 0 0 !important;
}
.img-comp-arrow-head {
  width: 0 !important;
  height: 0 !important;
  border-left: 22px solid transparent !important;
  border-right: 22px solid transparent !important;
  border-top: 28px solid var(--g4) !important;
}

/* スマホ対応 */
@media (max-width: 600px) {
  .img-comp-section { padding: 48px 16px !important; }
  .img-comp-img { border-radius: 14px !important; }
  .img-comp-bridge-inner {
    flex-direction: column !important;
    gap: 12px !important;
    padding: 20px 20px !important;
    text-align: center !important;
  }
  .img-comp-bridge-text { text-align: center !important; }
  .img-comp-logo { height: 48px !important; }
  .img-comp-bridge-jp { font-size: clamp(20px,5vw,28px) !important; }
}

/* ============================================
   v16 画像比較セクション アップデート
   ============================================ */

/* 画像を画面端まで */
.img-comp-section {
  padding: 80px 0 !important;
}
.img-comp-head {
  text-align: center !important;
  margin-bottom: 40px !important;
  padding: 0 24px !important;
}

/* 画像を全幅に */
.img-comp-item {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
}
.img-comp-img {
  width: 100% !important;
  height: auto !important;
  display: block !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* 中間バナーも全幅 */
.img-comp-bridge {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
}

/* バナー上の縦線 */
.img-comp-line-top {
  display: flex !important;
  justify-content: center !important;
}
.img-comp-line-shaft {
  width: 3px !important;
  height: 32px !important;
  background: var(--g4) !important;
  border-radius: 2px !important;
}

/* バナー本体 */
.img-comp-bridge-inner {
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 32px 48px !important;
}

/* スマホ */
@media (max-width: 600px) {
  .img-comp-section { padding: 48px 0 !important; }
  .img-comp-head { padding: 0 16px !important; margin-bottom: 28px !important; }
  .img-comp-bridge-inner { padding: 24px 20px !important; }
}

/* ============================================
   v17 PC余白60px + バナー調整
   ============================================ */

/* PC：画像左右に60pxの余白 */
@media (min-width: 769px) {
  .img-comp-item {
    padding: 0 60px !important;
  }
  .img-comp-img {
    border-radius: 16px !important;
    box-shadow: 0 8px 40px rgba(42,107,71,0.1) !important;
  }
}

/* バナーを両端あけてスッキリ */
.img-comp-bridge-inner {
  margin: 0 60px !important;
  border-radius: 20px !important;
  padding: 28px 48px !important;
  justify-content: center !important;
  gap: 20px !important;
}

/* バナーシンプル化：ロゴ＋テキストのみ */
.img-comp-bridge-en,
.img-comp-bridge-sub {
  display: none !important;
}
.img-comp-bridge-jp {
  font-size: clamp(26px, 3.5vw, 40px) !important;
  letter-spacing: 1px !important;
}
.img-comp-logo {
  height: 56px !important;
}

/* 縦線の長さを統一 */
.img-comp-line-shaft,
.img-comp-arrow-shaft {
  width: 3px !important;
  height: 36px !important;
}

/* スマホは余白なし */
@media (max-width: 768px) {
  .img-comp-item { padding: 0 !important; }
  .img-comp-img { border-radius: 0 !important; box-shadow: none !important; }
  .img-comp-bridge-inner {
    margin: 0 20px !important;
    border-radius: 16px !important;
    padding: 22px 20px !important;
  }
}

/* ============================================
   v19 バナー横幅調整 + PC画像さらに小さく
   ============================================ */

/* バナーをコンテンツに合わせてinline-flex化 */
.img-comp-bridge-inner {
  display: inline-flex !important;
  width: auto !important;
  margin: 0 auto !important;
  /* 左右centerで表示するためにブロック化 */
}
/* 親をcenter揃えに */
.img-comp-bridge {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
}

/* PC：画像をさらに100px小さく（左右60→110px） */
@media (min-width: 769px) {
  .img-comp-item {
    padding: 0 110px !important;
  }
  .img-comp-bridge-inner {
    margin: 0 110px !important;
    width: calc(100% - 220px) !important;
    display: flex !important;
  }
}

/* スマホはそのまま */
@media (max-width: 768px) {
  .img-comp-bridge-inner {
    margin: 0 20px !important;
    width: calc(100% - 40px) !important;
    display: flex !important;
  }
}

/* pre-cta-form */
.pre-cta-form {
  background: var(--g0) !important;
  padding: 88px 24px !important;
}
.pre-cta-form-inner {
  max-width: 960px !important;
  margin: 0 auto !important;
}

/* 削減合計を赤字・大きく */
.spec-total {
  background: #fdf0ef !important;
  border: 1px solid #f5c6c0 !important;
}
.spec-total .spec-key {
  color: #c0392b !important;
  font-weight: 700 !important;
}
.spec-total .spec-val {
  color: #e74c3c !important;
  font-size: 17px !important;
  font-weight: 900 !important;
}

/* ============================================
   新比較セクション
   ============================================ */
.new-comp-wrap {
  max-width: 680px !important;
  margin: 0 auto !important;
  padding: 64px 24px !important;
}
.new-comp-head {
  text-align: center !important;
  margin-bottom: 28px !important;
}
.new-steps {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  margin-bottom: 14px !important;
}
/* 大変ステップ */
.new-step-row {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  background: #F0EEE9 !important;
  border: 1.5px solid #CCCAC3 !important;
  border-radius: 12px !important;
  padding: 12px 14px !important;
}
.new-step-num {
  width: 28px !important;
  height: 28px !important;
  border-radius: 50% !important;
  background: #DEDBD4 !important;
  border: 1.5px solid #CCCAC3 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: 'Oswald', sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  color: #888680 !important;
  flex-shrink: 0 !important;
}
.new-step-label {
  font-size: 13px !important;
  font-weight: 700 !important;
  color: #4A4845 !important;
  flex: 1 !important;
}
.new-step-pill {
  font-size: 10px !important;
  font-weight: 700 !important;
  padding: 2px 8px !important;
  border-radius: 100px !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
}
.new-pill-bad {
  background: rgba(140,80,80,0.12) !important;
  border: 1px solid rgba(160,90,90,0.25) !important;
  color: #9B5A5A !important;
}
/* 大変フッター */
.new-step-footer-bad {
  background: #E8E5DF !important;
  border: 1.5px solid #CCCAC3 !important;
  border-radius: 12px !important;
  padding: 16px 18px !important;
  text-align: center !important;
  margin-bottom: 0 !important;
}
.new-footer-main {
  font-family: 'Oswald', sans-serif !important;
  font-size: clamp(16px,3vw,20px) !important;
  font-weight: 700 !important;
  color: #4A4845 !important;
  line-height: 1.3 !important;
  margin: 0 !important;
}
.bad-em { color: #9B5A5A !important; font-style: normal !important; }
.new-footer-sub {
  font-size: 11px !important;
  color: #888680 !important;
  margin-top: 5px !important;
}
/* 矢印 */
.new-divider {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  padding: 8px 0 !important;
}
.new-div-line {
  width: 2px !important;
  height: 24px !important;
  background: #6BB890 !important;
  border-radius: 2px 2px 0 0 !important;
}
.new-div-arrow {
  width: 0 !important;
  height: 0 !important;
  border-left: 14px solid transparent !important;
  border-right: 14px solid transparent !important;
  border-top: 18px solid #6BB890 !important;
}
/* エネクリバナー */
.new-ec-banner {
  background: linear-gradient(135deg,#C8E8D6 0%,#D8F0E2 50%,#A8D9BE 100%) !important;
  border: 2px solid #6BB890 !important;
  border-radius: 16px !important;
  padding: 22px 20px !important;
  text-align: center !important;
  margin-bottom: 16px !important;
  position: relative !important;
  overflow: hidden !important;
}
.new-ec-banner::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background-image: linear-gradient(rgba(58,155,101,0.07) 1px,transparent 1px),linear-gradient(90deg,rgba(58,155,101,0.07) 1px,transparent 1px) !important;
  background-size: 20px 20px !important;
}
.new-ec-banner-tag {
  display: inline-block !important;
  background: rgba(58,155,101,0.15) !important;
  color: #2A6B47 !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 1.5px !important;
  padding: 3px 12px !important;
  border-radius: 100px !important;
  margin-bottom: 10px !important;
  position: relative !important;
  z-index: 1 !important;
}
.new-ec-banner-jp {
  font-family: 'Oswald', sans-serif !important;
  font-size: clamp(20px,4vw,26px) !important;
  font-weight: 700 !important;
  color: #1C2B22 !important;
  line-height: 1.2 !important;
  position: relative !important;
  z-index: 1 !important;
  margin: 0 !important;
}
.new-ec-banner-jp em { color: #2A6B47 !important; font-style: normal !important; }
.new-ec-banner-sub {
  font-size: 12px !important;
  color: #3A5E4A !important;
  margin-top: 6px !important;
  position: relative !important;
  z-index: 1 !important;
  opacity: .85 !important;
}
/* 良いステップ */
.new-step-good {
  background: #fff !important;
  border-color: #C8E8D6 !important;
  position: relative !important;
  overflow: hidden !important;
}
.new-step-good::before {
  content: '' !important;
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  bottom: 0 !important;
  width: 4px !important;
  background: #3A9B65 !important;
  border-radius: 4px 0 0 4px !important;
}
.new-num-good {
  background: #3A9B65 !important;
  border-color: #3A9B65 !important;
  color: #fff !important;
}
.new-step-body { flex: 1 !important; }
.new-step-merit {
  font-size: 11px !important;
  color: #3A9B65 !important;
  font-weight: 700 !important;
  margin-top: 2px !important;
}
.new-pill-good {
  background: #E6F5ED !important;
  border: 1px solid #A2D4B8 !important;
  color: #2A6B47 !important;
}
/* 良いフッター */
.new-step-footer-good {
  background: linear-gradient(135deg,#3A9B65 0%,#2A6B47 100%) !important;
  border-radius: 12px !important;
  padding: 18px 18px !important;
  text-align: center !important;
}
.new-step-footer-good .new-footer-main { color: #fff !important; }
.new-step-footer-good .new-footer-main em { color: #A8D9BE !important; font-style: normal !important; }
.new-step-footer-good .new-footer-sub { color: rgba(255,255,255,0.75) !important; }
.new-footer-cta {
  display: inline-block !important;
  margin-top: 12px !important;
  background: #D4860A !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  padding: 10px 24px !important;
  border-radius: 100px !important;
  letter-spacing: .5px !important;
  text-decoration: none !important;
}

/* ============================================
   固定ページ・投稿 コンテンツスタイル
   ============================================ */

/* 見出し */
main h1 {
  font-family: 'Noto Sans JP', sans-serif !important;
  font-size: 28px !important;
  font-weight: 700 !important;
  color: #1C2B22 !important;
  margin-bottom: 32px !important;
  padding-bottom: 16px !important;
  border-bottom: 2px solid #C8E8D6 !important;
}
main h2 {
  font-size: 22px !important;
  font-weight: 700 !important;
  color: #1C2B22 !important;
  margin: 40px 0 16px !important;
  padding: 10px 16px !important;
  border-left: 4px solid #3A9B65 !important;
  background: #F4FCF7 !important;
  border-radius: 0 8px 8px 0 !important;
}
main h3 {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #2A6B47 !important;
  margin: 32px 0 12px !important;
  padding-bottom: 6px !important;
  border-bottom: 1px solid #C8E8D6 !important;
}
main h4 {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #1C2B22 !important;
  margin: 24px 0 10px !important;
}

/* 本文 */
main p {
  font-size: 15px !important;
  line-height: 2 !important;
  color: #3D4F45 !important;
  margin-bottom: 16px !important;
}

/* リスト */
main ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 16px 0 24px !important;
}
main ul li {
  font-size: 15px !important;
  color: #3D4F45 !important;
  line-height: 1.8 !important;
  padding: 8px 0 8px 28px !important;
  border-bottom: 1px solid #E0F0E8 !important;
  position: relative !important;
}
main ul li::before {
  content: '' !important;
  position: absolute !important;
  left: 8px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 8px !important;
  height: 8px !important;
  border-radius: 50% !important;
  background: #3A9B65 !important;
}
main ol {
  padding-left: 0 !important;
  margin: 16px 0 24px !important;
  counter-reset: ec-counter !important;
  list-style: none !important;
}
main ol li {
  font-size: 15px !important;
  color: #3D4F45 !important;
  line-height: 1.8 !important;
  padding: 8px 0 8px 40px !important;
  border-bottom: 1px solid #E0F0E8 !important;
  position: relative !important;
  counter-increment: ec-counter !important;
}
main ol li::before {
  content: counter(ec-counter) !important;
  position: absolute !important;
  left: 0 !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 26px !important;
  height: 26px !important;
  border-radius: 50% !important;
  background: #3A9B65 !important;
  color: #fff !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* 表 */
main table {
  width: 100% !important;
  border-collapse: collapse !important;
  margin: 24px 0 !important;
  font-size: 14px !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  box-shadow: 0 2px 16px rgba(42,107,71,0.08) !important;
}
main table th {
  background: #3A9B65 !important;
  color: #fff !important;
  font-weight: 700 !important;
  padding: 14px 18px !important;
  text-align: left !important;
  font-size: 13px !important;
}
main table td {
  padding: 12px 18px !important;
  color: #3D4F45 !important;
  border-bottom: 1px solid #E0F0E8 !important;
  line-height: 1.7 !important;
}
main table tr:nth-child(even) td {
  background: #F4FCF7 !important;
}
main table tr:last-child td {
  border-bottom: none !important;
}

/* 引用 */
main blockquote {
  background: #F4FCF7 !important;
  border-left: 4px solid #3A9B65 !important;
  border-radius: 0 12px 12px 0 !important;
  padding: 16px 20px !important;
  margin: 24px 0 !important;
  font-size: 15px !important;
  color: #3D4F45 !important;
  line-height: 1.8 !important;
}

/* リンク */
main a {
  color: #3A9B65 !important;
  text-decoration: underline !important;
}
main a:hover {
  color: #2A6B47 !important;
}

/* 区切り線 */
main hr {
  border: none !important;
  border-top: 2px solid #C8E8D6 !important;
  margin: 40px 0 !important;
}

/* スマホ対応 */
@media (max-width: 600px) {
  main { padding: 40px 16px !important; }
  main h1 { font-size: 22px !important; }
  main h2 { font-size: 18px !important; }
  main h3 { font-size: 16px !important; }
  main table { font-size: 12px !important; }
  main table th, main table td { padding: 10px 12px !important; }
}