/* =====================================================
   マットレス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;
}





/* =====================================================
   本文共通
===================================================== */
.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{
  margin:40px 0 18px;
  padding:10px 14px;
  font-size:20px;
  font-weight:700;
  color:#4E6B5A;
  background:#f7f5ef;
  border-left:5px solid #A97B36;
  border-radius:4px;
}





.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 10px;
  padding:8px 12px;
  margin-left:12px; /* ←内側に寄せる */
  font-size:18px;
  font-weight:700;
  color:#4E6B5A;
  border-left:3px solid #4E6B5A;
}

/* ===============================
   H3のあとに続く本文も内側へ
=============================== */
h3 + p,
h3 + ul,
h3 + ol{
  margin-left:16px;
}

/* 複数段落にも対応 */
h3 ~ p,
h3 ~ ul,
h3 ~ ol{
  margin-left:16px;
}




/* ===============================
   H3を少し内側へ
=============================== */
.article-wrap h3{
  margin:28px 0 12px 18px !important;
  padding:8px 12px !important;
  font-size:20px !important;
  font-weight:700 !important;
  line-height:1.6 !important;
  color:#4E6B5A !important;
  border-left:4px solid #4E6B5A !important;
  box-sizing:border-box;
}

/* ===============================
   H3の下の本文を少し内側へ
=============================== */
.article-wrap h3 + p,
.article-wrap h3 + ul,
.article-wrap h3 + ol{
  margin-left:22px !important;
}

/* H3のあとに続く段落が複数あるとき */
.article-wrap h3 ~ p,
.article-wrap h3 ~ ul,
.article-wrap h3 ~ ol{
  margin-left:22px !important;
}



/* =====================================================
   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;
}





.article-main-visual{
  margin:20px 0 30px;
}

.article-main-visual img{
  width:100%;
  height:auto;
  border-radius:8px;
}



.article-main-visual {
  text-align: center;
}

.article-main-visual img {
  width: 80%;
}





.divider {
  width: 100%;
  height: 1px;
  background: linear-gradient(
    to right,
    transparent,
    #cfc7b5,
    transparent
  );
  margin: 50px 0;
}



.divider {
  width: 100%;
  height: 1px;
  background: #dcd6c8;
  margin: 50px 0;
}

/* 記事リンクボックス */
.article-link-box{
  margin:30px 0;
  padding:20px;
  background:#fbfaf7;
  border:1px solid #ddd4c6;
}
.article-link-box ul{
  margin:10px 0 0 20px;
}


