@charset "utf-8";

* { box-sizing: border-box; }

body {
    margin: 0;
    padding: 0;
    background: #fff2df;
    color: #333;
    font-family: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", "Yu Gothic UI", Meiryo, sans-serif;
    font-size: 18px;
    line-height: 1.8;
}

a { color: #5f7f28; text-decoration: none; }
a:hover { text-decoration: underline; }

.site-header,
.wrapper,
.site-footer {
    width: 800px;
    max-width: 95%;
    margin-left: auto;
    margin-right: auto;
}

.site-header { padding: 28px 0 14px; }
.site-title { font-size: 34px; font-weight: 700; letter-spacing: .04em; }
.site-title a { color: #4d4d4d; }
.site-copy { margin: 4px 0 12px; color: #777; font-size: 16px; }

.site-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 10px 0 18px;
}
.site-nav a {
    display: inline-block;
    padding: 7px 14px;
    background: #8fbf3d;
    color: #fff;
    border-radius: 999px;
    font-weight: 700;
    font-size: 16px;
}

.wrapper {
    background: #fff;
    padding: 26px;
    border-radius: 18px;
    box-shadow: 0 5px 20px rgba(80, 55, 20, .08);
}
.site-footer { padding: 24px 0 40px; color: #777; font-size: 14px; }
.site-footer .site-nav { margin-bottom: 12px; }

h1 { margin: 0 0 20px; padding: 0 0 12px; border-bottom: 4px solid #d9d9d9; font-size: 30px; line-height: 1.35; }
h2 { margin: 34px 0 14px; padding-left: 12px; border-left: 8px solid #8fbf3d; font-size: 24px; line-height: 1.4; }
h3 { margin: 22px 0 8px; font-size: 21px; }

.card { padding: 18px; margin: 16px 0; border: 1px solid #e5e5e5; border-radius: 14px; background: #fff; }

.area-list,
.city-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    padding: 0;
    margin: 0;
    list-style: none;
}
.area-list a,
.city-list a {
    display: block;
    padding: 11px 12px;
    border: 1px solid #ddd;
    border-radius: 12px;
    background: #fafafa;
    color: #444;
    font-weight: 700;
}
.area-list a:hover,
.city-list a:hover { background: #f2f8e7; border-color: #8fbf3d; text-decoration: none; }

.shop-line-list { padding: 0; margin: 0; list-style: none; border-top: 1px solid #eee; }
.shop-line-list li { padding: 13px 4px; border-bottom: 1px solid #eee; }
.shop-line-main { font-weight: 700; font-size: 19px; }
.shop-line-sub { color: #777; font-size: 15px; }

.review { padding: 16px 0; border-bottom: 1px solid #eee; }
.review:last-child { border-bottom: none; }
.review-meta { color: #777; font-size: 15px; }
.review-name { font-weight: 700; color: #4d4d4d; }
.review-action { font-size: 14px; text-align: right; }
.note { color: #777; font-size: 15px; }

.info-table { width: 100%; border-collapse: collapse; margin: 14px 0; }
.info-table th,
.info-table td { padding: 12px; border-bottom: 1px solid #eee; vertical-align: top; }
.info-table th { width: 26%; color: #555; background: #fafafa; text-align: left; }

.btn,
button,
input[type="submit"] {
    display: inline-block;
    padding: 11px 20px;
    border: 0;
    border-radius: 999px;
    background: #8fbf3d;
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    cursor: pointer;
}
.btn.gray,
input.gray { background: #777; }
.btn:hover,
button:hover,
input[type="submit"]:hover { opacity: .88; text-decoration: none; }

.form-table { width: 100%; border-collapse: collapse; }
.form-table th,
.form-table td { padding: 12px 0; vertical-align: top; border-bottom: 1px solid #eee; }
.form-table th { width: 28%; text-align: left; color: #555; }
input[type="text"],
input[type="password"],
textarea { width: 100%; padding: 10px 12px; border: 1px solid #ccc; border-radius: 10px; font-size: 18px; line-height: 1.6; }
textarea { min-height: 180px; }

.alert { padding: 12px 14px; margin: 12px 0; border-radius: 12px; background: #fff7d6; border: 1px solid #eadf9d; }
.breadcrumb { margin: 0 0 18px; color: #777; font-size: 15px; }

@media screen and (max-width: 640px) {
    body { font-size: 17px; }
    .wrapper { padding: 18px; border-radius: 14px; }
    .site-title { font-size: 28px; }
    h1 { font-size: 26px; }
    h2 { font-size: 22px; }
    .area-list,
    .city-list { grid-template-columns: 1fr; }
    .info-table th,
    .info-table td,
    .form-table th,
    .form-table td { display: block; width: 100%; }
    .info-table th,
    .form-table th { padding-bottom: 4px; }
    .info-table td,
    .form-table td { padding-top: 4px; }
}


.lead{font-size:1.05rem;line-height:1.9;color:#555;margin-bottom:1.4em;}
.error{background:#fff0f0;border:1px solid #d88;color:#900;padding:10px;border-radius:8px;}
.small{font-size:.9rem;color:#666;}
.form-box label{display:block;margin:0 0 16px;font-weight:bold;}
.form-box input,.form-box textarea,.form-box select,.search-box input{width:100%;box-sizing:border-box;padding:10px;border:1px solid #ccc;border-radius:8px;font-size:1rem;background:#fff;}
.form-box textarea{line-height:1.7;}
.admin-menu ul{line-height:2.2;font-size:1.1rem;}
.admin-table{width:100%;border-collapse:collapse;background:#fff;margin-top:16px;}
.admin-table th,.admin-table td{border:1px solid #ddd;padding:8px;vertical-align:top;}
.admin-table th{background:#f5f5f5;}
.search-box{display:flex;gap:10px;align-items:center;margin:12px 0 20px;}
.search-box input{flex:1;}
.search-box .btn{white-space:nowrap;}
