/*
Theme Name: My Town 2025
Author: Kajiwara Gen
Description: LP用の超軽量テーマ
Version: 1.0
*/
body {
    margin: 0;
    font-family: system-ui, -apple-system, "Segoe UI", "Hiragino Sans", "Meiryo", sans-serif;
    line-height: 1.5;
    color: #333;
}

img {
    max-width: 100%;
}
h1 {
    margin-top: 60px;
}
h2 {
    margin-top: 10px;
    background: #6FA10D;
    color: #fff !important;
    margin: 1px 1px 24px;
    padding: 10px;
    margin-bottom: 10px;
    border: none;
}
/* ロゴ */
.site-header {
    position: fixed;
    top:0;
    padding: 0 14px 4px;
    width: 100%;
    z-index: 999;
    background-color: #fff;
    display: flex;
}

.site-header .site-header-logo {
    max-width: 140px;
    height: auto;
    display: block;
    margin-top: 10px;
}

.sp-catch {
    background-color: #83AD4B;
    color: #fff;
    border-radius: 0 0 50% 50%;
    text-align: center;
    width: 200px;
    margin-left: 10px;
}

.sp-catch .small {
    font-size: 0.8em;
}

.pc-catch {
    padding: 10px 0 0 10%;
    font-size: 0.8em;
}

/* sp-gnav */
.sp-gnav {
    position: fixed;
    width: 100%;
    top:50px;
    z-index: 999;
    background-color: #fff;
    display: flex;
    padding: 0;
    margin: 0;
}

.sp-gnav li {
    background: url(assets/images/gnavi_k.gif) 50% 10% no-repeat;
    background-size: 100%;
    width: 25%;
    box-sizing: border-box;
    margin: 0;
    list-style: none;
}

.sp-gnav li:nth-of-type(2) {
    background: url(assets/images/gnavi_v.gif) 50% 10% no-repeat;
    background-size: 100%;
}

.sp-gnav li:nth-of-type(3) {
    background: url(assets/images/gnavi_r.gif) 50% 10% no-repeat;
    background-size: 100%;
}

.sp-gnav li:nth-of-type(4) {
    background: url(assets/images/gnavi_c.gif) 50% 10% no-repeat;
    background-size: 100%;
}

.sp-gnav a {
    text-decoration: none;
    color: #5d473f;
    font-size: 2.8vw;
    text-align: center;
    width: 100%;
    letter-spacing: -0.08em;
    display: block;
    margin: 10vw 0 2vw;
}

/* メインビジュアル */
.main-visual {
    position: relative;
    margin: 120px 0 0;
    padding: 20px 14px 10px;
    background: url(assets/images/mv-kanki.jpg) right/contain no-repeat;
    background-size: 47%;
}

.mv-top {
    color: #d7621c;
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 4px;
}

.mv-title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.35;
    margin-bottom: 6px;
}

.mv-text {
    font-size: 12px;
    margin-bottom: 10px;
}

.mv-badge {
    background: url(assets/images/mv-badge.png) no-repeat top center;
    width: 110px;
    background-size: 100%;
    position: absolute;
    top: 5px;
    right: 10px;
    padding: 30px 0 25px;
    line-height: 1.7em;
    font-size: 0.9rem;
    text-align: center;
    margin: 0 0 1.5em;
}

.mv-badge strong {
    font-size: 20px;
    color: #d06820;
}

/* info */
.point-row {
    padding-left: 5px;
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 8px;
}

.point-badges {
    display: flex;
    gap: 6px;
    flex: 0 0 auto;
    /* 固定幅として扱う */
}

.badge {
    background: linear-gradient(135deg, #6b4b3a, #b37f63);
    color: #fff;
    border-radius: 50%;
    width: 58px;
    height: 58px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    font-size: 12px;
    line-height: 1.1;
}

.point-sub {
    flex: 1 1 auto;
    /* 余った幅をすべて使う */
    font-size: 13px;
    line-height: 1.4;
    word-break: break-word;
    /* 長い単語でも折り返す */
}

.point-sub strong {
    color: #d7621c;
}

.campaign-banner img {
    width: 100%;
}

/* 3つの悩み */
.nayami-wrap {
    padding: 0 14px 14px;
}

.nayami-wrap h3 {
    font-size: 14px;
    margin-bottom: 10px;
}

.nayami-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
    gap: 8px;
}

.nayami-item {
    text-align: center;
    font-size: 12px;
}

.nayami-item img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto 4px;
}

/* SP固定フッタ */
.sp-sticky {
    position: fixed;
    bottom: -120px;
    left: 0;
    width: 100%;
    display: flex;
    transition: bottom 0.4s ease;
    z-index: 999;
    font-family: system-ui, "Hiragino Sans", sans-serif;
}

.sp-sticky.show {
    bottom: 0;
}

.sp-sticky-btn {
    flex: 1;
    text-align: center;
    padding: 8px 0;
    color: #fff;
    text-decoration: none;
    font-size: 14px;
    line-height: 1;
}

.sp-sticky-btn .sub {
    display: block;
    font-size: 10px;
}

.sp-sticky-btn.mail {
    background: #afab91;
    color: #fff;
}

.sp-sticky-btn.tel {
    background: #6ea343;
    color: #fff;
}

.sp-sticky-btn strong {
    font-size: 1.4em;
}

/* メインビジュアルPC */
.main-visual-pc {
    max-width: 820px;
    margin-top: 20px;
    margin-right: auto;
    margin-left: auto;
    padding-left: 5px;
}

.mv-pc {
    width: 100%;
}

/* pc-gnav */
.pc-gnav {
    display: flex;
    padding: 0;
    margin: 50px 0 0;
    justify-content: center;
}

.pc-gnav li {
    list-style: none;
}

.pc-gnav li a {
    display: block;
    padding: 10px 20px 7px;
    border-bottom: 3px solid #fff;
    text-decoration: none;
    color: #000;
}

.pc-gnav li a:hover,
.pc-gnav li a:active,
.pc-gnav li a:focus {
    border-bottom: 3px solid #05a5ab;
}


/* PC固定フッタ */
.pc-sticky {
    position: fixed;
    bottom: 0px;
    background: #fff;
    border-top: 1px solid #ddd;
    padding: 10px 20px;
    width: 100%;
    box-sizing: border-box;
}

.pc-sticky-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    max-width: 1000px;
    margin: 0 auto;
}

.pc-sticky-left {
    display: flex;
    align-items: center;
    width: 40%;
}

.pc-sticky-logo {
    display: flex;
    align-items: center;
    gap: 6px;
    padding-right: 10px;
}

.logo-box {
    background: #5aa923;
    color: #fff;
    font-weight: bold;
    font-size: 20px;
    border-radius: 4px;
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
}

.logo-title {
    font-size: 13px;
    line-height: 1.2;
}

.pc-sticky-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.pc-sticky-badges .badge-green {
    background: #7ba84f;
    color: #fff;
    font-size: 11px;
    padding: 4px 8px;
    border-radius: 3px;
    margin-right: 4px;
    white-space: nowrap;
}

.pc-sticky-right {
    display: flex;
    align-items: center;
    gap: 12px;
}

.pc-sticky-tel {
    color: #d62e1c;
    font-size: 30px;
    font-weight: bold;
    text-decoration: none;
    word-break: keep-all;
}

.pc-sticky-btn {
    background: #ef841a;
    color: #fff;
    text-decoration: none;
    padding: 6px 14px;
    border-radius: 4px;
    font-size: 12px;
    text-align: center;
    line-height: 1.3;
}

/* 通常フッター */
footer {
    margin: 50px auto 200px;
    padding: 5px;
    max-width: 820px;
}
footer ul{
    display: flex;
    padding: 0;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}
footer ul li{
    list-style-type: none;
    font-size: 0.9em;
}
footer ul li a{
    text-decoration: none;
    color: #333;
}

/* TOPに戻る */
.to-top {
  position: fixed;
  bottom: 90px;
  right: 20px;
  background: #ef841a;
  color: #fff;
  border: none;
  border-radius: 50px;
  padding: 10px 16px;
  font-size: 14px;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
  z-index: 999;
}
.to-top.show {
  opacity: 1;
  pointer-events: auto;
}

/* CTA */
.cta{
	text-align:center;
    padding: 0 14px 5px;
}
.cta .limited-info strong {
	font-size:1.2em;
	color: red;;
}
.cta-call{
  display:block;
  background:#3F51B5;;
  color:#fff;
  text-decoration:none;
  text-align:center;
  padding:20px;
  border-radius:8px;
  box-shadow:0 4px 8px rgba(0,0,0,.2);
  transition:background .2s;
}
.cta-call:hover{
    background:rgb(92, 92, 243);
}
.cta-call-pc{
  background:#3F51B5;;
  color:#fff;
    width: 300px;
    margin: auto;
}
.cta-call-pc:hover{
    background:#3F51B5;
}
.cta-call strong{
    font-size: 1.5em;
}

/* --- フォーム送信ボタン（Contact Form 7用） --- */
input[type="submit"],
button[type="submit"],
.wpcf7 input[type="submit"] {
  display: block;
  width: 100%;
  max-width: 320px; /* 好みで調整 */
  margin: 10px 0;
  padding: 18px 0;
  font-size: 1.2rem;
  font-weight: bold;
  background: #3F51B5;
  color: #fff;
  border: none;
  border-radius: 8px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
  cursor: pointer;
  transition: all 0.3s ease;
}
input[type="submit"]:hover,
button[type="submit"]:hover {
  background: rgb(92, 92, 243);;
  transform: translateY(-2px);
}

/* レスポンシブ */
.show-pc {
    display: none;
}

article {
    margin-top: 30px;
    margin-right: 10px;
    margin-left: 10px;
}

@media (min-width: 600px) {
    .show-sp {
        display: none;
    }

    .show-pc {
        display: block;
    }

    .site-header {
        position: relative;
        justify-content: space-around;
    }
    article {
        max-width: 820px;
        margin-right: auto;
        margin-left: auto;
        padding-left: 5px;
    }
}