*{box-sizing:border-box}
body{
margin:0;
font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
color:#2c2620;
background:#f7f3ee;
line-height:1.8
}

.cp-wrap{
max-width:960px;
margin:0 auto;
padding:28px 18px 80px
}

.cp-card{
background:#fff;
border-radius:22px;
box-shadow:0 18px 45px rgba(70,49,30,.08);
overflow:hidden
}

.cp-hero{
padding:42px 42px 34px;
background:linear-gradient(135deg,#3a2a20,#8a6a4d);
color:#fff
}

.cp-kicker{
font-size:13px;
letter-spacing:.12em;
opacity:.8;
margin:0 0 10px
}

.cp-title{
font-size:34px;
line-height:1.35;
margin:0
}

.cp-lead{
font-size:16px;
margin:18px 0 0;
color:rgba(255,255,255,.9)
}

.cp-img{
width:100%;
display:block;
max-height:420px;
object-fit:cover
}

.cp-body{
padding:42px
}

.cp-body h2{
font-size:24px;
margin:36px 0 14px;
padding-left:14px;
border-left:4px solid #8a6a4d;
line-height:1.45
}

.cp-body h2:first-child{
margin-top:0
}

.cp-body p{
margin:0 0 18px
}

.cp-body ul{
background:#fbf8f4;
border:1px solid #eee3d8;
border-radius:16px;
padding:20px 20px 20px 42px
}

.cp-body hr{
border:0;
border-top:1px solid #eadfd2;
margin:34px 0
}

.cp-actions{
padding:0 42px 42px
}

/* ボタン統一 */
.cp-btn{
display:flex;
align-items:center;
justify-content:center;
width:100%;
max-width:420px;
margin:40px auto 0;
padding:18px 24px;
border:none;
border-radius:999px;
background:#3a2a20;
color:#fff;
font-size:18px;
font-weight:700;
letter-spacing:.08em;
line-height:1;
text-decoration:none;
cursor:pointer;
transition:.25s;
box-sizing:border-box;
box-shadow:0 10px 22px rgba(58,42,32,.18)
}

.cp-btn:hover{
opacity:.9;
transform:translateY(-1px)
}

.cp-btn-sub{
background:#8a6a4d
}

.cp-note{
margin-top:14px;
font-size:13px;
color:#7b7168
}

.cp-form{
padding:36px 42px 42px;
background:#fff
}

.form-row{
margin-bottom:20px
}

.form-row label{
display:block;
font-weight:700;
margin-bottom:8px
}

.required{
font-size:12px;
color:#fff;
background:#8f3f2b;
border-radius:999px;
padding:2px 8px;
margin-left:6px
}

.cp-form input,
.cp-form textarea,
.cp-form select{
width:100%;
border:1px solid #ddd3c8;
border-radius:12px;
padding:13px 14px;
font-size:16px;
background:#fff
}

.cp-form textarea{
min-height:150px
}

.radio-list{
display:grid;
gap:8px
}

.radio-list label{
font-weight:400;
background:#fbf8f4;
border:1px solid #eee3d8;
padding:10px 12px;
border-radius:12px
}

.radio-list input{
width:auto;
margin-right:8px
}

.error-box{
background:#fff0f0;
border:1px solid #e6b6b6;
color:#8f2222;
padding:14px 18px;
border-radius:14px;
margin-bottom:20px
}

.thanks-box{
text-align:center;
padding:55px 30px
}

.list-card{
display:grid;
gap:16px
}

.list-item{
background:#fff;
border-radius:18px;
padding:24px;
text-decoration:none;
color:#2c2620;
box-shadow:0 10px 28px rgba(70,49,30,.06)
}

.list-item h2{
margin:0 0 8px;
font-size:22px
}

.fixed-cta{
display:none
}

/* admin */

.admin-wrap{
max-width:1180px;
margin:0 auto;
padding:28px 18px
}

.admin-card{
background:#fff;
border-radius:18px;
padding:24px;
box-shadow:0 10px 30px rgba(0,0,0,.06);
margin-bottom:18px
}

.admin-table{
width:100%;
border-collapse:collapse;
background:#fff
}

.admin-table th,
.admin-table td{
border-bottom:1px solid #eee;
padding:12px;
text-align:left;
vertical-align:top
}

.admin-nav{
display:flex;
gap:10px;
flex-wrap:wrap;
margin-bottom:18px
}

.admin-nav a,
.admin-btn{
display:inline-block;
background:#3a2a20;
color:#fff;
text-decoration:none;
border:0;
border-radius:10px;
padding:9px 14px;
cursor:pointer
}

.admin-btn.gray{
background:#777
}

.admin-form input,
.admin-form textarea,
.admin-form select{
width:100%;
border:1px solid #ddd;
border-radius:10px;
padding:10px;
font-size:15px
}

.admin-form textarea{
min-height:220px
}

.admin-grid{
display:grid;
grid-template-columns:1fr 1fr;
gap:16px
}

/* option box */

.admin-option-box{
margin:22px 0;
padding:18px;
border:1px solid #eadfcd;
border-radius:14px;
background:#fffaf3
}

.admin-option-box label{
display:block;
margin:10px 0;
font-weight:500
}

.admin-option-title{
margin:14px 0 8px;
font-weight:700;
color:#5b4630
}

/* SP */

@media(max-width:768px){

.cp-wrap{
padding:14px 12px 90px
}

.cp-card{
border-radius:18px
}

.cp-hero{
padding:30px 22px
}

.cp-title{
font-size:26px
}

.cp-body,
.cp-form,
.cp-actions{
padding:28px 22px
}

.cp-body h2{
font-size:21px
}

.cp-btn{
font-size:16px;
padding:16px 20px;
min-height:56px
}

.fixed-cta{
display:block;
position:fixed;
left:0;
right:0;
bottom:0;
padding:10px 14px;
background:rgba(255,255,255,.96);
box-shadow:0 -8px 22px rgba(0,0,0,.08);
z-index:20
}

.fixed-cta .cp-btn{
width:100%
}

.admin-grid{
grid-template-columns:1fr
}

.admin-table{
font-size:13px
}

.admin-table th:nth-child(4),
.admin-table td:nth-child(4){
display:none
}

}

/* file upload */
.cp-form input[type="file"]{
  padding:0;
  border:none;
  background:transparent;
  font-size:15px;
}

.cp-form input[type="file"]::file-selector-button{
  margin-right:14px;
  padding:12px 18px;
  border:1px solid #d8c7b6;
  border-radius:999px;
  background:#8a6a4d;
  color:#fff;
  font-size:15px;
  font-weight:700;
  cursor:pointer;
}

.cp-form input[type="file"]::-webkit-file-upload-button{
  margin-right:14px;
  padding:12px 18px;
  border:1px solid #d8c7b6;
  border-radius:999px;
  background:#8a6a4d;
  color:#fff;
  font-size:15px;
  font-weight:700;
  cursor:pointer;
}

@media(max-width:768px){
  .cp-form input[type="file"]{
    width:100%;
    font-size:14px;
    line-height:1.6;
  }

  .cp-form input[type="file"]::file-selector-button,
  .cp-form input[type="file"]::-webkit-file-upload-button{
    display:block;
    width:100%;
    margin:0 0 10px 0;
    padding:14px 16px;
    font-size:16px;
  }
}