/* =====================================================
   マットレスLP 完全版 style.css
   ファーストビュー / 本文 / CTA / FAQ / スマホ対応
===================================================== */


/* =====================================================
   基本設定
===================================================== */
*,
*::before,
*::after{
  box-sizing:border-box;
}

:root{
  --base-main:#4E6B5A;
  --base-sub:#F5F3EE;
  --base-accent:#A97B36;
  --accent-color:#A97B36;
  --cta-color:#2F8F63;

  --text-body:#4c564f;
  --text-heading:#4E6B5A;
  --text-sub:#7f8a83;

  --bg-page:#ffffff;
  --bg-soft:#fbfaf7;
  --bg-h2:#f2efe8;
  --bg-panel:#fffdfa;
  --bg-point:#f9f7f2;

  --border-main:#c8d3cc;
  --border-light:#dce4de;
  --border-soft:#dfe7e1;
  --line-color:#c8d3cc;

  --item-btn-green:#4f9778;
  --item-btn-green2:#3f8668;
  --item-btn-border:#38755b;
  --item-btn-text:#ffffff;
  --item-btn-shadow:rgba(0,0,0,.22);
  --item-btn-glow:rgba(255,255,255,.22);
  --item-btn-focus:rgba(79,151,120,.28);

  --trial-orange:#f4a261;
  --trial-orange2:#e78b3c;
  --trial-border:#d9772b;
  --trial-text:#ffffff;
  --trial-shadow:rgba(0,0,0,.18);
  --trial-focus:rgba(244,162,97,.25);
}

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
  padding:0;
  background:var(--bg-page);
  color:var(--text-body);
  font-family:'メイリオ', Meiryo, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'ＭＳ Ｐゴシック', sans-serif;
  line-height:1.9;
}

img{
  max-width:100%;
  height:auto;
  border:0;
  vertical-align:bottom;
}

a{
  color:var(--base-main);
  text-decoration:underline;
  transition:opacity 0.2s ease, transform 0.2s ease, filter 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

a:hover{
  text-decoration:none;
  background-color:transparent;
  opacity:0.85;
}

p{
  margin:0 0 1.2em 0;
  line-height:1.95;
}

ul,
ol{
  margin:0;
  padding:0;
}

table{
  border-collapse:collapse;
  border-spacing:0;
}


/* =====================================================
   全体枠
===================================================== */
.main-content-frame-wide{
  width:100%;
  max-width:940px;
  margin:0 auto;
  padding:0 20px;
  background:#ffffff;
  border-left:1px solid var(--line-color);
  border-right:1px solid var(--line-color);
}

.lp-wrap{
  width:100%;
  max-width:900px;
  margin:0 auto;
  background:#ffffff;
}

.lp-inner{
  padding:20px 28px 56px 28px;
  color:var(--text-body);
  font-size:16px;
  line-height:1.95;
}


/* =====================================================
   H1
===================================================== */
h1{
  margin:0;
  color:var(--text-heading);
  font-size:10pt;
  line-height:1.5;
  font-family:"ＭＳ 明朝", serif;
}

.site-h1{
  margin:0 0 18px 0;
  text-align:left;
  line-height:1.5;
  font-weight:700;
}

.site-h1-top{
  display:inline-block;
  margin-bottom:8px;
  font-size:1.05rem;
  line-height:1.6;
  color:var(--base-main);
  letter-spacing:0.04em;
}

.site-h1-main{
  display:inline-block;
  font-size:2.1rem;
  line-height:1.45;
  color:#3f2e21;
  letter-spacing:0.02em;
}


/* =====================================================
   上部情報
===================================================== */
.site-tel{
  margin:0;
  font-size:1.35rem;
  font-weight:700;
  color:var(--base-main);
  white-space:nowrap;
}

.site-sub{
  margin:8px 0 0 0;
  font-size:14px;
  line-height:1.7;
  color:var(--text-sub);
}


/* =====================================================
   ファーストビュー全体
===================================================== */
.fv-shell{
  width:100%;
  border:0;
}

.fv-topline{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
  padding:20px 8px 8px;
}

.fv-topline-left{
  flex:1;
  min-width:0;
}

.fv-topline-right{
  width:auto;
  text-align:right;
  padding-top:6px;
}

.fv-kicker{
  margin:0 0 8px 0;
  font-size:0.95rem;
  line-height:1.6;
  color:var(--base-main);
  font-weight:700;
  letter-spacing:0.04em;
}

.fv-page-title{
  margin:0;
  font-size:1.9rem;
  line-height:1.4;
  font-weight:700;
  letter-spacing:0.02em;
  color:#3f2e21;
  font-family:'メイリオ', Meiryo, sans-serif;
}

.fv-top-note{
  margin:8px 0 0 0;
  font-size:0.98rem;
  line-height:1.7;
  color:var(--text-sub);
}


/* =====================================================
   画像3枚
===================================================== */
.mattress-visual{
  display:flex;
  gap:14px;
  margin:8px auto 20px;
  padding:0;
}

.mv-item{
  width:33%;
  border-radius:14px;
  overflow:hidden;
  background:#ffffff;
  border:1px solid #d9e3dd;
  box-shadow:0 4px 12px rgba(78,107,90,0.08);
}

.mv-item img{
  display:block;
  width:100%;
  height:190px;
  object-fit:cover;
  background:#ffffff;
}


/* =====================================================
   ファーストビュー本文
===================================================== */
.fv-intro-clean{
  text-align:center;
  padding:8px 20px 26px;
  margin:0 auto 20px;
}

.fv-lead-clean{
  margin:0 auto 18px;
  max-width:760px;
  font-size:1.08rem;
  line-height:1.95;
  color:var(--text-body);
}

.fv-headline-clean{
  margin:0 auto 16px;
  max-width:820px;
  font-size:2.35rem;
  line-height:1.5;
  font-weight:700;
  letter-spacing:0.02em;
  color:#3f2e21;
}

.fv-sublead-clean{
  margin:0 auto 24px;
  max-width:760px;
  font-size:1.05rem;
  line-height:1.9;
  color:var(--base-main);
}

.fv-note-clean{
  margin:0 auto;
  max-width:720px;
  font-size:0.98rem;
  line-height:1.85;
  color:#6b6b6b;
}


/* =====================================================
   ファーストビューCTA
===================================================== */
.fv-cta-row{
  display:flex;
  justify-content:center;
  gap:14px;
  margin:0 auto 18px;
  flex-wrap:wrap;
}

.fv-cta-btn{
  display:inline-block;
  min-width:280px;
  max-width:320px;
  padding:18px 16px;
  border-radius:12px;
  text-decoration:none;
  font-weight:700;
  line-height:1.6;
  color:#ffffff !important;
  transition:transform 0.2s ease, filter 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
  box-shadow:0 10px 20px rgba(47,143,99,0.18);
  text-align:center;
  opacity:1 !important;
}

.fv-cta-btn:hover{
  transform:translateY(-2px);
  filter:brightness(1.04);
  text-decoration:none;
  opacity:1 !important;
}

.fv-cta-btn span{
  display:block;
  margin-top:4px;
  font-size:0.9rem;
  font-weight:400;
  color:rgba(255,255,255,0.92) !important;
}

.fv-cta-tel{
  background:linear-gradient(180deg, #58B084 0%, var(--cta-color) 100%);
  border:1px solid #2A7D56;
  color:#ffffff !important;
}

.fv-cta-mail{
  background:linear-gradient(180deg, #b68b45 0%, var(--base-accent) 100%);
  border:1px solid #8f682b;
  color:#ffffff !important;
}


/* =========================
   トップバー
========================= */
.topbar{
  width:100%;
  margin:0 auto 30px auto;
  padding:0;
  background:linear-gradient(180deg, #eef3f0 0%, #e3ebe6 100%);
  border:1px solid #cfdad3;
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 3px 10px rgba(78,107,90,0.08);
}

/* 1段目・2段目 共通で横幅いっぱいにする */
.topbar-menu,
.topbar-sub{
  width:100%;
  table-layout:fixed;
  border-collapse:collapse;
  border-spacing:0;
}

/* 1段目 */
.topbar-menu td{
  text-align:center;
  vertical-align:middle;
  border-right:1px solid #d4ddd7;
  padding:0;
}

.topbar-menu td:last-child{
  border-right:none;
}

.topbar-menu td a{
  display:flex;
  align-items:center;
  justify-content:center;
  height:56px;
  padding:0 8px;
  color:var(--base-main);
  text-decoration:none;
  font-size:1rem;
  font-weight:700;
  line-height:1.4;
  transition:background 0.2s ease, color 0.2s ease, opacity 0.2s ease;
}

.topbar-menu td a:hover{
  background:#d7e4dc;
  color:#355243;
  opacity:1;
}

/* 2段目 */
.topbar-sub td{
  text-align:center;
  vertical-align:middle;
  padding:0;
  background:#e5ebe8;
  border-top:1px solid #cfd8d3;
  border-right:1px solid #cfd8d3;
}

.topbar-sub td:last-child{
  border-right:none;
}

.topbar-sub td a{
  display:flex;
  align-items:center;
  justify-content:center;
  height:44px;
  padding:0 6px;
  text-decoration:none;
  color:#333;
  font-size:0.85rem;
  line-height:1.4;
  transition:background 0.2s ease, color 0.2s ease, opacity 0.2s ease;
}

.topbar-sub td a:hover{
  background:#d6e2dc;
  opacity:1;
}

/* 背景だけ分ける */
.topbar-sub td{
  background:#e5ebe8;
  border-top:1px solid #cfd8d3;
}


/* =====================================================
   本文共通
===================================================== */
.lp-inner p{
  margin:0 0 1.25em 0;
}

.lp-inner p:last-child{
  margin-bottom:0;
}

.lp-inner ul,
.lp-inner ol{
  margin:0 0 1.2em 0;
}


/* =====================================================
   H2
===================================================== */
h2{
  position:relative;
  margin:42px 0 18px;
  padding:15px 16px 15px 46px;
  font-size:13pt;
  font-weight:700;
  line-height:1.4;
  color:var(--text-heading);
  background:var(--bg-h2);
  border-top:2px solid var(--border-main);
  border-bottom:2px solid var(--border-main);
  border-left:0;
  border-right:0;
  border-radius:6px;
}

h2::before{
  content:"";
  position:absolute;
  left:18px;
  top:50%;
  transform:translateY(-50%);
  border-top:7px solid transparent;
  border-bottom:7px solid transparent;
  border-left:10px solid var(--accent-color);
}

.lp-inner > h2:first-of-type{
  margin-top:8px;
}

h2 + p,
h2 + .target-call-text,
h2 + .lp-box,
h2 + .pointline,
h2 + .voice-box,
h2 + .faq-box{
  margin-top:0;
}

p + h2,
ul + h2,
ol + h2,
div + h2{
  margin-top:46px;
}


/* =====================================================
   H3
===================================================== */
h3{
  margin:28px 0 12px;
  padding:10px 12px 10px 16px;
  font-size:12pt;
  font-weight:700;
  line-height:1.45;
  color:var(--text-heading);
  border-left:5px solid var(--accent-color);
  background:transparent;
}

h3 + p,
h3 + ul,
h3 + .lp-box,
h3 + .pointline{
  margin-top:0;
}

h3 + p,
h3 ~ p{
  margin-left:8px;
}

h3 + ul,
h3 ~ ul{
  margin-left:8px;
}


/* =====================================================
   H4 / 黒背景内の見出し
===================================================== */
.lp-box2{
  margin:16px 0 26px;
  padding:18px 20px;
  background:#2f2f2f;
  border:1px solid var(--border-light);
  border-radius:12px;
  color:#ffffff;
}

.lp-box2 h4{
  color:#ffffff;
  font-size:22px;
  font-weight:700;
  line-height:1.5;
  margin:0 0 18px;
  padding-left:12px;
  border-left:4px solid #4F9778;
}

.lp-box2 p{
  color:#ffffff;
  font-size:16px;
  line-height:2;
  margin:0 0 18px;
}

.lp-box2 td{
  color:#ffffff;
}

.lp-box2 img{
  max-width:100%;
  height:auto;
}

.lp-box2 h4,
.lp-box2 p,
.lp-box2 td,
.lp-box2 li,
.lp-box2 a{
  color:#ffffff;
}

.lp-box2 a{
  color:#9adfff;
}


/* =====================================================
   ポイントライン
===================================================== */
.pointline{
  display:block;
  margin:18px 0 22px;
  padding:14px 16px;
  font-size:1.02rem;
  line-height:1.85;
  font-weight:600;
  color:#A97B36;
  background:var(--bg-point);
  border-radius:8px;
  box-shadow:0 2px 6px rgba(0,0,0,0.04);
}

span.pointline{
  display:block;
}

.pointline p{
  margin:0 0 0.8em 0;
  line-height:1.9;
}

.pointline p:last-child{
  margin-bottom:0;
}

.pointline + p,
.pointline + ul,
.pointline + .lp-box{
  margin-top:0;
}


/* =====================================================
   強調
===================================================== */
.marker{
  background:linear-gradient(transparent 58%, #f4e4ae 58%);
  font-weight:700;
}


/* =====================================================
   チェックリスト
===================================================== */
.lp-check{
  margin:0 0 1.2em 0;
  padding-left:1.2em;
  list-style-type:disc;
}

.lp-check li{
  margin:0 0 12px 0;
  padding-left:0.2em;
  line-height:1.9;
}

.lp-check li:last-child{
  margin-bottom:0;
}

.lp-check li::before{
  content:none;
}

.lp-check li::marker{
  color:var(--base-accent);
  font-size:0.9em;
}


/* =====================================================
   悩みブロック
===================================================== */
.target-call-text{
  margin:0 0 30px;
  padding:18px 20px;
  background:var(--bg-soft);
  border:1px solid var(--border-soft);
  border-radius:12px;
}

.target-call-text p{
  margin:0 0 1em 0;
}

.target-call-text ul{
  margin:0 0 1.2em 0;
}

.target-call-text p:last-child,
.target-call-text ul:last-child{
  margin-bottom:0;
}


/* =====================================================
   汎用ボックス
===================================================== */
.lp-box{
  margin:16px 0 26px;
  padding:18px 20px;
  background:#fffdfa;
  border:1px solid var(--border-light);
  border-radius:12px;
}

.lp-box p{
  margin:0 0 1em 0;
}

.lp-box ul{
  margin:0 0 1em 0;
}

.lp-box p:last-child,
.lp-box ul:last-child{
  margin-bottom:0;
}


/* =====================================================
   お客様の声
===================================================== */
.voice-box{
  margin:18px 0;
  padding:18px 20px;
  background:#fcfbf8;
  border:1px solid #e1e7e2;
  border-radius:12px;
  box-shadow:0 2px 8px rgba(78,107,90,0.05);
}

.voice-name{
  margin:0 0 10px 0;
  font-weight:700;
  color:var(--base-main);
  font-size:1rem;
  line-height:1.7;
}

.voice-box p{
  margin:0;
  line-height:1.95;
}


/* =====================================================
   ストーリー画像
===================================================== */
.story-photo{
  margin:18px auto 8px;
  text-align:center;
}

.story-photo img{
  max-width:100%;
  border:1px solid #d9e3dd;
  border-radius:10px;
  box-shadow:0 4px 12px rgba(78,107,90,0.08);
}

.story-caption{
  margin:8px 0 18px;
  text-align:center;
  font-size:0.92rem;
  line-height:1.7;
  color:var(--text-sub);
}


/* =====================================================
   FAQ
===================================================== */
.faq-box{
  margin:16px 0;
  padding:16px 18px;
  border:1px solid var(--border-light);
  background:var(--bg-panel);
  border-radius:10px;
}

.faq-q{
  margin:0 0 10px 0;
  font-weight:700;
  color:var(--text-heading);
  line-height:1.8;
}

.faq-a{
  line-height:1.9;
  color:var(--text-body);
}


/* =====================================================
   最終CTA
===================================================== */
.cta-final{
  margin:40px 0 0 0;
  padding:28px 24px;
  text-align:center;
  color:#ffffff;
  background:#4E6B5A;
  border-radius:14px;
}

.cta-final h2{
  margin:0 0 14px 0;
  padding:0;
  font-size:30px;
  line-height:1.5;
  color:#ffffff;
  background:none;
  border:0;
}

.cta-final h2::before{
  content:none;
}

.cta-final p{
  margin:12px 0;
  color:#f3f7f4;
  line-height:1.9;
}

.cta-btns{
  margin-top:24px;
}

.cta-btn{
  display:inline-block;
  width:42%;
  max-width:290px;
  margin:8px 10px;
  padding:18px 14px;
  text-decoration:none;
  border-radius:8px;
  font-weight:700;
  line-height:1.7;
  text-align:center;
  color:#ffffff !important;
  opacity:1 !important;
}

.cta-btn:hover{
  opacity:1 !important;
}

.cta-btn-tel{
  background:#2F8F63;
  color:#ffffff !important;
}

.cta-btn-mail{
  background:#A97B36;
  color:#ffffff !important;
}

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


/* =====================================================
   TOPへ戻る
===================================================== */
.gotop{
  display:block;
  width:60px;
  height:60px;
  box-sizing:border-box;
  background:#FFF;
  border:1px solid #999;
  padding-top:30px;
  text-align:center;
  letter-spacing:-1px;
  font-size:85%;
  text-decoration:none;
  color:#333;
  opacity:0.5;
  position:fixed;
  bottom:20px;
  right:20px;
  z-index:10000;
}

.gotop::before{
  content:"";
  display:block;
  border-top:2px solid #333;
  border-right:2px solid #333;
  width:25%;
  height:25%;
  top:25%;
  left:0;
  right:0;
  margin:auto;
  position:absolute;
  transform:rotate(-45deg);
}

.gotop:hover{
  opacity:1;
}


/* =====================================================
   スマホ対応
===================================================== */
@media screen and (max-width:767px){

  body{
    font-size:15px;
  }

  .main-content-frame-wide{
    padding:0 12px;
    border-left:none;
    border-right:none;
  }

  .lp-inner{
    padding:16px 14px 42px 14px;
    font-size:15px;
  }

  .site-h1{
    margin-bottom:16px;
  }

  .site-h1-top{
    font-size:0.95rem;
    line-height:1.6;
  }

  .site-h1-main{
    font-size:1.55rem;
    line-height:1.5;
  }

  .fv-topline{
    display:block;
    padding:16px 0 4px;
  }

  .fv-topline-right{
    text-align:left;
    padding-top:10px;
  }

  .fv-kicker{
    font-size:0.9rem;
  }

  .fv-page-title{
    font-size:1.5rem;
    line-height:1.5;
  }

  .fv-top-note{
    font-size:0.92rem;
  }

  .site-tel{
    font-size:1.15rem;
  }

  .site-sub{
    font-size:13px;
  }

  .mattress-visual{
    flex-direction:column;
    gap:10px;
    margin-bottom:18px;
  }

  .mv-item{
    width:100%;
  }

  .mv-item img{
    height:170px;
  }

  .fv-intro-clean{
    padding:6px 6px 18px;
  }

  .fv-lead-clean{
    font-size:0.98rem;
    line-height:1.9;
    text-align:left;
  }

  .fv-headline-clean{
    font-size:1.75rem;
    line-height:1.5;
  }

  .fv-sublead-clean{
    font-size:0.96rem;
    line-height:1.8;
    text-align:left;
  }

  .fv-cta-row{
    display:block;
  }

  .fv-cta-btn{
    display:block;
    min-width:auto;
    max-width:none;
    width:100%;
    margin:10px 0;
  }

  .fv-note-clean{
    font-size:0.92rem;
    text-align:left;
  }

  .topbar{
    margin-bottom:24px;
    border-radius:10px;
  }

  .topbar-menu td a{
    font-size:0.76rem;
    padding:10px 4px;
  }

  h2{
    margin:34px 0 16px;
    font-size:12pt;
    padding:13px 12px 13px 40px;
  }

  h2::before{
    left:14px;
  }

  h3{
    margin:24px 0 10px;
    font-size:11pt;
  }

  h3 + p,
  h3 ~ p,
  h3 + ul,
  h3 ~ ul{
    margin-left:0;
  }

  .target-call-text{
    margin:0 0 24px;
    padding:16px 14px;
  }

  .lp-box,
  .voice-box,
  .faq-box{
    padding:16px 14px;
  }

  .pointline{
    margin:16px 0 18px;
    padding:12px 13px;
    font-size:0.98rem;
  }

  .cta-final{
    padding:24px 16px;
  }

  .cta-final h2{
    font-size:24px;
  }

  .cta-btn{
    display:block;
    width:100%;
    max-width:none;
    margin:10px 0;
  }

  .gotop{
    width:52px;
    height:52px;
    padding-top:26px;
    bottom:14px;
    right:14px;
    font-size:75%;
  }
}


/* 受注生産の説明 */
.info-box{
  display:flex;
  width:100%;
  font-size:18px;
  max-width:100%;
  margin:10px auto;
  border:2px solid #4f9778;
  border-radius:6px;
  overflow:hidden;
  background:#ffffff;
}

.info-label{
  width:120px;
  flex:0 0 120px;
  background:#4f9778;
  color:#ffffff;
  font-weight:bold;
  text-align:center;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 8px;
  line-height:1.2;
}

.info-text{
  flex:1;
  width:auto;
  background:#ffffff;
  color:#2f4f43 !important;
  padding:10px 12px;
  text-align:left;
  box-sizing:border-box;
  line-height:1.8;
}


/* =========================
   商品紹介用 注文ボタン
========================= */
.item-order-wrap{
  margin:22px 0 18px;
  text-align:center;
}

@keyframes itemBtnGlow{
  0%{
    box-shadow:
      0 12px 20px var(--item-btn-shadow),
      inset 0 1px 0 var(--item-btn-glow),
      0 0 0 0 rgba(79,151,120,.00);
  }
  50%{
    box-shadow:
      0 12px 22px var(--item-btn-shadow),
      inset 0 1px 0 var(--item-btn-glow),
      0 0 18px 2px rgba(79,151,120,.18);
  }
  100%{
    box-shadow:
      0 12px 20px var(--item-btn-shadow),
      inset 0 1px 0 var(--item-btn-glow),
      0 0 0 0 rgba(79,151,120,.00);
  }
}

a.item-order-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  max-width:540px;
  box-sizing:border-box;
  padding:18px 20px;
  border-radius:18px;
  border:1px solid var(--item-btn-border);
  background:linear-gradient(180deg, var(--item-btn-green) 0%, var(--item-btn-green2) 100%);
  color:var(--item-btn-text) !important;
  text-decoration:none;
  text-align:center;
  font-size:28px;
  font-weight:bold;
  line-height:1.4;
  position:relative;
  overflow:hidden;
  box-shadow:
    0 12px 20px var(--item-btn-shadow),
    inset 0 1px 0 var(--item-btn-glow),
    0 0 0 0 rgba(79,151,120,.00);
  transition:
    transform .15s ease,
    box-shadow .25s ease,
    filter .2s ease,
    opacity .2s ease;
  animation:itemBtnGlow 4.5s ease-in-out infinite;
  opacity:1 !important;
}

a.item-order-btn::before{
  content:"";
  position:absolute;
  left:-20%;
  top:-60%;
  width:140%;
  height:120%;
  background:radial-gradient(circle at 30% 20%, rgba(255,255,255,.28) 0%, rgba(255,255,255,0) 60%);
  pointer-events:none;
}

a.item-order-btn:hover{
  filter:brightness(1.04);
  transform:translateY(-1px);
  opacity:1 !important;
}

a.item-order-btn:active{
  animation:none;
  transform:translateY(1px);
  filter:brightness(.98);
  box-shadow:
    0 7px 14px var(--item-btn-shadow),
    inset 0 1px 0 rgba(255,255,255,.18);
}

a.item-order-btn:focus{
  outline:none;
  box-shadow:
    0 0 0 3px var(--item-btn-focus),
    0 12px 20px var(--item-btn-shadow);
}


/* 値段 */
.price-text{
  text-align:center;
  font-size:24px;
  font-weight:bold;
  color:#ffffff;
  margin:16px 0 10px;
}


/* 比較表 */
.comparison-table{
  width:100%;
  border-collapse:collapse;
  margin:20px 0;
  font-size:14px;
}

.comparison-table th{
  background-color:#f5f5f5;
  padding:10px;
  border:1px solid #ddd;
  text-align:left;
}

.comparison-table td{
  padding:10px;
  border:1px solid #ddd;
}

.comparison-table tr:nth-child(even){
  background-color:#fafafa;
}


/* 流れブロック */
.flow-box{
  margin:20px 0;
}

.flow-step{
  border:1px solid #ddd;
  padding:15px;
  margin-bottom:15px;
  border-radius:8px;
  background-color:#fafafa;
}

.flow-step h4{
  margin-bottom:8px;
  font-size:16px;
}

.catch-copy{
  font-size:60%;
  color:#666;
}


/* 7) 区切り線 */
.hr1{
  width:90%;
  margin:16px auto;
  border-top:2px dotted var(--border-main);
}


/* マーカー（やさしい強調） */
.marker2{
  color:#2f4f43;
  background:linear-gradient(transparent 72%, #f3e3a1 72%);
  padding:0 2px;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
  font-weight:700;
}

/* 少し強めの注意 */
.marker2-strong{
  color:#2f4f43;
  background:linear-gradient(transparent 72%, #ffd6d6 72%);
  padding:0 2px;
  font-weight:700;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}

/* ---------- 黒背景内でも info-box を白にしない保険 ---------- */
.lp-box2 .info-box,
.lp-box2 .info-text,
.lp-box2 .info-text *,
.lp-box2 .marker2,
.lp-box2 .marker2-strong{
  color:#2f4f43;
}


/* =========================
   お試しボタン（オレンジ・完全版）
========================= */
.trial-btn-wrap{
  margin:22px 0 18px;
  text-align:center;
}

@keyframes trialBtnGlow{
  0%{
    box-shadow:
      0 10px 18px var(--trial-shadow),
      inset 0 1px 0 rgba(255,255,255,.2),
      0 0 0 0 rgba(244,162,97,.0);
  }
  50%{
    box-shadow:
      0 12px 20px var(--trial-shadow),
      inset 0 1px 0 rgba(255,255,255,.2),
      0 0 14px 2px rgba(244,162,97,.18);
  }
  100%{
    box-shadow:
      0 10px 18px var(--trial-shadow),
      inset 0 1px 0 rgba(255,255,255,.2),
      0 0 0 0 rgba(244,162,97,.0);
  }
}

a.trial-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  max-width:540px;
  padding:18px 20px;
  border-radius:18px;
  border:1px solid var(--trial-border);
  background:linear-gradient(180deg, var(--trial-orange) 0%, var(--trial-orange2) 100%);
  color:var(--trial-text) !important;
  text-decoration:none;
  text-align:center;
  font-size:26px;
  font-weight:bold;
  line-height:1.4;
  position:relative;
  overflow:hidden;
  box-shadow:
    0 10px 18px var(--trial-shadow),
    inset 0 1px 0 rgba(255,255,255,.2);
  transition:
    transform .15s ease,
    box-shadow .25s ease,
    filter .2s ease,
    opacity .2s ease;
  animation:trialBtnGlow 4.5s ease-in-out infinite;
  opacity:1 !important;
}

a.trial-btn::before{
  content:"";
  position:absolute;
  left:-20%;
  top:-60%;
  width:140%;
  height:120%;
  background:radial-gradient(circle at 30% 20%, rgba(255,255,255,.28) 0%, rgba(255,255,255,0) 60%);
  pointer-events:none;
}

a.trial-btn span{
  display:block;
  font-size:14px;
  font-weight:normal;
  margin-top:6px;
  opacity:0.9;
}

a.trial-btn:hover{
  transform:translateY(-1px);
  filter:brightness(1.05);
  opacity:1 !important;
}

a.trial-btn:active{
  animation:none;
  transform:translateY(1px);
  filter:brightness(.98);
  box-shadow:
    0 6px 12px var(--trial-shadow),
    inset 0 1px 0 rgba(255,255,255,.18);
}

a.trial-btn:focus{
  outline:none;
  box-shadow:
    0 0 0 3px var(--trial-focus),
    0 10px 18px var(--trial-shadow);
}


.contact-form {
  width: 96%;
  max-width: 760px;
  margin: 0 auto;
}

.contact-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 14px;
}

.contact-table td {
  vertical-align: top;
}

.contact-label {
  width: 28%;
  background: #f5f5f5;
  color: #588d67;
  font-weight: bold;
  padding: 16px 18px;
  border-radius: 8px 0 0 8px;
  font-size: 16px;
  line-height: 1.6;
}

.contact-input {
  background: #ffffff;
  padding: 12px 16px;
  border-radius: 0 8px 8px 0;
  box-shadow: 0 0 0 1px #d8e2db inset;
}

.contact-input input[type="text"],
.contact-input textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid #cfd8d3;
  border-radius: 6px;
  font-size: 16px;
  color: #333333;
  background: #ffffff;
  box-sizing: border-box;
  outline: none;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.contact-input input[type="text"]:focus,
.contact-input textarea:focus {
  border-color: #588d67;
  box-shadow: 0 0 0 3px rgba(88, 141, 103, 0.12);
}

.contact-input textarea {
  resize: vertical;
  min-height: 160px;
}

.contact-btn-wrap {
  text-align: center;
  margin-top: 18px;
}

.contact-btn {
  background: #588d67;
  color: #ffffff;
  border: none;
  padding: 14px 34px;
  font-size: 16px;
  font-weight: bold;
  border-radius: 999px;
  cursor: pointer;
  transition: background 0.3s ease, transform 0.2s ease;
}

.contact-btn:hover {
  background: #4a7857;
  transform: translateY(-1px);
}

.contact-btn:active {
  transform: translateY(0);
}

.fv-cta-btn {
  display: inline-block;
  text-align: center;
  text-decoration: none;
  padding: 16px 28px;
  border-radius: 12px;
  font-weight: bold;
  font-size: 16px;
  line-height: 1.4;
  transition: all 0.25s ease;
  cursor: pointer;
}


.fv-cta-btn {
  display: inline-block;
  text-align: center;
  text-decoration: none;
  padding: 16px 28px;
  border-radius: 12px;
  font-weight: bold;
  font-size: 16px;
  line-height: 1.4;
  transition: all 0.25s ease;
  cursor: pointer;
}

/* オレンジ（やわらかめ） */
.fv-cta-mail {
  background: linear-gradient(135deg, #f4a261, #e76f51);
  color: #ffffff;
  border: none;
}

/* サブテキスト */
.fv-cta-btn span {
  display: block;
  font-size: 12px;
  font-weight: normal;
  opacity: 0.9;
  margin-top: 4px;
}

/* ホバー */
.fv-cta-mail:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(231, 111, 81, 0.25);
}

/* 押したとき */
.fv-cta-mail:active {
  transform: translateY(0);
}



.site-footer {
  width: 100%;
  margin-top: 40px;
  font-size: 14px;
}





/* メインの帯 */
.footer-main {
  background: linear-gradient(to right, #5a4a3f, #8b7d73);
  color: #ffffff;
  text-align: center;
  padding: 14px 10px;
  font-weight: bold;
  border-bottom: 4px solid #3f342d;
  letter-spacing: 0.5px;
}

.footer-main a {
  color: #ffffff;
  text-decoration: none;
}

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

/* 下のby */
.footer-sub {
  text-align: right;
  padding: 6px 12px;
  font-size: 12px;
  color: #888888;
}

.footer-sub a {
  color: #888888;
  text-decoration: none;
}

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


/* =====================================================
   追加整理版：お問い合わせ・注文フォーム・注文ボタン
===================================================== */

/* お問い合わせページ専用 */
.contact-wrap{
  margin:34px 0 60px 0;
}

.contact-heading{
  text-align:center;
  margin:0 0 28px 0;
}

.contact-heading h2{
  margin-bottom:14px;
}

.contact-heading p{
  margin:0;
  color:#6f7a73;
  line-height:1.9;
}

.contact-box{
  margin:0 0 22px 0;
  padding:24px 22px 24px 22px;
  border:1px solid #d7dfd9;
  background:#ffffff;
  border-radius:10px;
  box-shadow:0 2px 8px rgba(78,107,90,0.05);
}

.contact-box h3{
  margin:0 0 12px 0;
  color:#4E6B5A;
}

.contact-box p{
  margin:0 0 10px 0;
  line-height:1.95;
}

.contact-note{
  margin-top:6px;
  font-size:13px;
  color:#6f7a73;
  line-height:1.8;
}

.contact-btn{
  display:block;
  width:100%;
  max-width:460px;
  margin:18px auto 0 auto;
  padding:16px 18px;
  text-align:center;
  text-decoration:none;
  color:#ffffff;
  font-weight:bold;
  line-height:1.6;
  border-radius:10px;
  box-sizing:border-box;
  transition:opacity 0.2s ease;
}

.contact-btn:hover{
  opacity:0.9;
  text-decoration:none;
}

.contact-btn-line{
  background:#06C755;
}

.contact-btn-mail{
  background:#4E6B5A;
}

.contact-btn-tel{
  background:#A97B36;
}

.contact-btn span{
  display:block;
  font-size:13px;
  font-weight:normal;
  margin-top:4px;
  opacity:0.95;
}

.contact-bottom-note{
  margin-top:20px;
  font-size:13px;
  line-height:1.9;
  color:#6f7a73;
  text-align:center;
}


/* =====================================================
   注文フォーム
===================================================== */
.order-form-table{
  border-collapse:separate;
  border-spacing:1px;
  background:#cccccc;
}

.order-form-table td{
  vertical-align:middle;
}

.order-form-table input[type="text"],
.order-form-table textarea{
  width:100%;
  padding:12px 14px;
  font-size:16px;
  line-height:1.6;
  border:1px solid #cfd8d3;
  border-radius:6px;
  box-sizing:border-box;
  color:#333333;
  background:#ffffff;
  font-family:'メイリオ', Meiryo, sans-serif;
}

.order-form-table input[type="text"]{
  height:52px;
}

.order-form-table textarea{
  min-height:140px;
  resize:vertical;
}

.order-form-table input[type="radio"]{
  transform:scale(1.15);
  margin-right:8px;
}


/* =====================================================
   ファーストビューCTAの整理
===================================================== */
.fv-cta-btn{
  display:inline-block;
  text-align:center;
  text-decoration:none;
  padding:18px 16px;
  border-radius:12px;
  font-weight:700;
  line-height:1.6;
  cursor:pointer;
}

.fv-cta-btn span{
  display:block;
  margin-top:4px;
  font-size:12px;
  font-weight:normal;
  opacity:0.9;
}

.fv-cta-mail{
  background:linear-gradient(180deg, #b68b45 0%, var(--base-accent) 100%);
  border:1px solid #8f682b;
  color:#ffffff !important;
}

.fv-cta-mail:hover{
  transform:translateY(-2px);
}

.fv-cta-mail:active{
  transform:translateY(0);
}


/* =====================================================
   フッター
===================================================== */
.site-footer{
  width:100%;
  margin-top:40px;
  font-size:14px;
}

.footer-main{
  background:linear-gradient(to right, #5a4a3f, #8b7d73);
  color:#ffffff;
  text-align:center;
  padding:14px 10px;
  font-weight:bold;
  border-bottom:4px solid #3f342d;
  letter-spacing:0.5px;
}

.footer-main a{
  color:#ffffff;
  text-decoration:none;
}

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

.footer-sub{
  text-align:right;
  padding:6px 12px;
  font-size:12px;
  color:#888888;
}

.footer-sub a{
  color:#888888;
  text-decoration:none;
}

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


/* =====================================================
   注文ボタン
===================================================== */
.order-btn{
  display:inline-block !important;
  padding:16px 40px !important;
  font-size:20px !important;
  font-weight:bold !important;
  color:#ffffff !important;
  background:linear-gradient(180deg, #3cb371 0%, #2e8b57 100%) !important;
  border:none !important;
  border-radius:10px !important;
  cursor:pointer !important;
  box-shadow:0 4px 10px rgba(0,0,0,0.15) !important;
  transition:all 0.2s ease !important;
  font-family:'メイリオ', Meiryo, sans-serif !important;
}

.order-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 6px 14px rgba(0,0,0,0.2);
}

.order-btn:active{
  transform:translateY(1px);
  box-shadow:0 2px 6px rgba(0,0,0,0.2);
}




.product-area{
  background:#111111;
  padding:30px;
  border-radius:10px;
  color:#ffffff;
}



.item-order-btn{
  display:block;
  width:100%;
  max-width:700px;
  margin:0 auto;

  padding:18px 20px;
  background:#2F8F63;
  color:#fff;
  text-decoration:none;
  font-size:18px;
  font-weight:bold;
  border-radius:8px;

  box-sizing:border-box;
  text-align:center;
}



