/* ----------------------
スタイル指定 
----------------------*/
/* Google Fontsのインポート */
@import url('https://fonts.googleapis.com/css2?family=Akshar&family=Zen+Kaku+Gothic+Antique:wght@400;700&display=swap');   

/* デフォルトのスタイル(SP用 / 共通) */
*{
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}
html {
    font-size: 16px;
}
body {
    font-family: 'Akshar', 'Zen Kaku Gothic Antique', sans-serif;
    line-height: 1.8;
    letter-spacing: .1em;
    background-image: 
        url('../img/bg_sky.jpg'),
        linear-gradient(180deg, #219587 0%, /* 画像の空の青緑の開始点 */ #62a8ac 60%, /* 空の青緑の範囲を広げる */ #ffad42 85%, /* 太陽の鮮やかなオレンジの出現 */ #dc5727 100%);
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    background-blend-mode: overlay;
    min-height: 100vh;
}
.ttl-group {
    margin: 1.4em 0;
    width: 100%;
    position: relative;
}
#thanks .ttl-group {
    margin: 1.4em 0 0;
}
h1 {
    display: block;
    margin: 0 auto;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
    background-image: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.5) 80%, rgba(0,0,0,.5) 100%),url(../img/senkyou.webp);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
    border-radius: 16px;
    overflow: hidden;
    min-height: 450px;
    position: relative;
}
#thanks h1{
    border-radius: 16px 16px 0 0;
}
h1 .senkyou-ttl-text {
    position: absolute;
    bottom: 1.6em;
    left: 0;
    right: 0;
    margin: auto;
    line-height: 1.6;;
}
.senkyou-ttl-text span + span {
    margin-top: 0.6em;
}
h3.neoutopia_logo {
    width: 100px;
    margin-left: auto;
}
h3.mapotei_logo {
    width: 27vw;
    margin: 0 auto;
    position: absolute;
    top: -72px;
    left: 4.2vw;
}
.container {
    width: 100%;
    height: 100%;
    letter-spacing: .2em;
}
section.wrap {
    padding: 24px 16px;
}
input::placeholder,
textarea::placeholder {
    letter-spacing: .1em;
    color: #ccc;
}
.btn {
    background-color: #003a32;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0.5em 3em;
    margin: 0 auto;
    color: #fff;
    min-height: 48px;
    border-radius: 8px;
    letter-spacing: 0.2em;
    width: 100%;
}
.btn .en {
    display: block;
    line-height: 1;
    margin: 0.5em 0;
    letter-spacing: 0.15em;
}
button,
.btn,
a {
    transition: all 0.3s ease;
}
a {
    color: #237c79;
}
a:hover,
button:hover,
.btn:hover {
    opacity: 0.6;
}
.red {
    color: #cc0000;
}
.gray {
    color: #888;
}
.sp-only {
    display: inline;
}
.pc-only {
    display: none;
}
@media screen and (min-width: 768px) {
    .sp-only {
        display: none;
    }
    .pc-only {
        display: inline;
    }
}
small {
    color: #fff;
    margin-top: 80px;
    display: block;
    text-align: center;
}
.marker {
    background-image: linear-gradient(180deg, rgba(255, 255, 0, 0%) 50%, rgb(255 247 16) 50%);
}
.introduction {
    margin-top: 40px;
}
.introduction .en {
    margin-top: .4rem;
    color: #888;
}
@media screen and (min-width: 768px) {
    .introduction .en {
        margin-top: .8rem;
    }
}

/* HOMEとTHANKS */
#home .container {
    width: 100%;
    height: 100%;
}
#home section {
    height: 100%;
    display: flex;
    flex-flow: wrap;
    /* justify-content: space-around; ロゴ掲載許諾後*/
    flex-direction: column;
    align-items: center;
}
#thanks section {
    height: 100%;
    display: flex;
    flex-flow: wrap;
    /* justify-content: space-around; ロゴ掲載許諾後*/
    flex-direction: column;
    align-items: center;
}
#home .introduction {
    margin-top: 0;
}
#thanks .thanks-message h2 {
    margin-bottom: 1em;
    padding: 1.5em 0;
}
#thanks .thanks-message .en {
    display: block;
    margin-top: 1em;
}
#thanks .thanks-message .caution {
    margin-top: 1em;
}
#home section .inner,
#thanks section .inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
}
#home section .inner {
    gap: 40px;
}
#thanks section .inner {
    gap: 40px;
}
#home .organizer,
#thanks .organizer {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
    width: 100%;
}
#home .organizer a,
#thanks .organizer a {
    text-align: center;
    display: flex;
    width: calc(50% - 4px);
    align-items: center;
}
#home section .inner .organizer img,
#thanks section .inner .organizer img {
    width: 100%;
    max-height: 96px;
}
small {
    margin-top: 40px;
}

h1.ttl {
    color: #fff;
}
h1.ttl span {
    display: block;
}
.event-outline {
    color: #fff;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.25);
}

/* FORM */
.form-container {
    width: 100%;
    padding: 2em 16px 16px;
    background: #fff;
    border-radius: 16px;
    margin-top: 1.4em;
}
.form-container p {
    color: #566866;
}
.form-container label {
    color: #384644;
}
.form-container .radio-group label {
    color: #566866;
}
.form-container h2.form-ttl {
    margin-bottom: 24px;
    text-align: left;
    color: #384644;
    line-height: 1em;
}
.form-container *+h2 {
    margin-top: 2.4em;
}
.form-container h3, .form-container h4 {
    margin-bottom: 1em;
    color: #384644;
}
.form-container .shop_info ul {
    display: flex;
    flex-direction: column;
    gap: 0.8em;
}
.form-container .shop_info li {
    background-color: #e0eeee;
    display: flex;
    flex-direction: column;
    border-radius: 8px;
    overflow: hidden;
}
.form-container .shop_info li span.ttl {
    display: inline-block;
    background-color: #237c79;
    color: #fff;
    line-height: 1em;
    padding: .8em;
}
.form-container .shop_info li .text {
    color: #576866;
    padding: .8em;
}
.form-container .shop_info li .link-box {
    display: flex;
    flex-direction: row;
    gap: 0.8em;
    margin-top: 0.8em
}
.form-container .shop_info li .bold {
    color: #237c79;
}
.form-container .shop_info .link-box a {
    display: inline-block;
    border: 1px solid #237c79;
    color: #237c79;
    border-radius: 4px;
    padding: 0.8em;
    line-height: 1em;
    width: 100%;
    text-align: center;
    background: #f6ffff;
}
.form-container .tar {
    margin: 1.2em 0 .8em;
}
.form-container #form div+div {
    margin-top: 2.4em;
}
.form-container label {
    display: block;
    font-weight: bold;
    font-size: clamp(1rem, 0.955rem + 0.23vw, 1.125rem);
    margin-bottom: .4em;
}
.form-container input[type="text"],
.form-container input[type="email"],
.form-container textarea {
    padding: 0.5em 1em;
    letter-spacing: .1em;
    border: 1px solid #ccc;
    border-radius: 8px;
    font-size: clamp(0.875rem, 0.83rem + 0.23vw, 1rem);
    width: 100%;
}
.form-container textarea {
    height: 20em;
}
.form-container .ttl-en {
    display: block;
}
.form-container section:first-child {
    padding-top: 40px;
}
.form-container section:last-child {
    padding-bottom:40px;
}
.form-container .error-message {
    color: #cc0000;
    margin-bottom: .4em;
    display: block;
}
.form-container .attention {
    padding: 24px;
    border-radius: 8px;
    background-color: #e5f0ef;
    margin-top: 1em;
}
.form-container .attention b {
    color: #219587
}
.form-container .radio-group label {
    display: inline;
    margin: 0px;
    font-weight: normal;
    font-size: clamp(0.875rem, 0.775rem + 0.5vw, 1rem);
}
.thanks-message p + p {
    margin-top: 1em;
}
.thanks-message .red {
    color: #cc0000;
    padding-left: 1em;
    text-indent: -1em;
}
#thanks .form-container {
    padding: 16px 16px 1.4em;
    margin-top: 0;
    border-radius: 0 0 16px 16px;
}
#thanks .thanks-message + * {
    margin-top: 1.4em;
}
#thanks .btn + .btn {
    margin-top: 1em;
}
#thanks .btn.btn-second {
    background: #fff;
    border: 2px solid #003a32;
    color: #003a32;
}

/* -----PC用のスタイル----- */
@media screen and (min-width: 768px) {
    /* TOP */
    #home section:first-child,
    #thanks section:first-child {
        padding-top: 24px;
    }
    section.wrap {
        width: 100%;
        max-width: 800px;
        margin: auto;
        padding: 0;
    }
    section.wrap + section.wrap {
        margin-top: 56px;
    }
    h1 .senkyou-ttl-text {
        bottom: 40px;
    }
    .btn {
        min-width: 400px;
    }
    #home section .inner .organizer img,
    #thanks section .inner .organizer img {
        width: 100%;
        max-height: 136px;
    }   
    #home .organizer a,
    #thanks .organizer a,
    #home .organizer img,
    #thanks .organizer img {
        display: block;
    }
    h3.mapotei_logo {
        width: 160px;
        left: 16px;
    }
    .ttl-group {
        margin: 24px 0;
    }
    #thanks .ttl-group {
        margin: 24px 0 0;
    }
    .form-container {
        padding: 40px;
    }
    .form-container #form div+div {
        margin-top: 3.2em;
    }
    .form-container label {
        margin-bottom: .8em;
    }
    .form-container span#email-error {
        margin-top: .8em;
    }
    .form-container span#bento-error {
        margin-top: 1.6em;
    }
    #thanks .form-container {
        padding: 32px 48px;
    }
    small {
        margin: 60px 0 20px;
    }
}

/* -----ラジオボタン-----*/
.radio-group {
    display: flex;
    flex-wrap: wrap; /* 画面幅が狭い場合に折り返す */
    gap: 32px; /* ラジオボタン間の余白 */
    margin-top: 2em;
}
.radio-group li {
    display: flex;
    align-items: center;
    line-height: 1em;
    gap: 12px;
    flex-direction: row;
}
.radio-group input[type=radio] {
    width: 24px;
    height: 24px;
}
.radio-group label {
    font-size: clampclamp(0.875rem, 0.775rem + 0.5vw, 1rem);
}

/* PC用のスタイル調整（flex-wrapを無効化しても良いが、ここではそのまま） */
@media screen and (min-width: 768px) {
    .radio-group {
        flex-direction: column;
    }
    .radio-group label.fs-m {
         /* PCでのみmin-widthを設定し、横に広がりやすくする */
        min-width: 200px;
    }
}

/* ----------------------
フォント指定 
----------------------*/
/* サイズ */
.fs-xs {
    /* min 10px max 12px */
    font-size: clamp(0.625rem, 0.58rem + 0.23vw, 0.75rem)
}
.fs-s {
    /* min 12px max 14px */
    font-size: clamp(0.75rem, 0.705rem + 0.23vw, 0.875rem);
}
.fs-m {
    /* min 14px max 16px */
    font-size: clamp(0.875rem, 0.775rem + 0.5vw, 1rem);
}
.fs-l {
    /* min 18px max 20px */
    font-size: clamp(1.125rem, 0.989rem + 0.68vw, 1.25rem);
}
.fs-xl {
    /* min 24px max 32px */
    font-size: clamp(1.5rem, 0.977rem + 1.36vw, 2rem);
}
/* 太さ */
.bold {
    font-weight: bold;
}
/* 文字の向き */
.tal {
    text-align: left;
}
.tac {
    text-align: center;
}
.tar {
    text-align: right;
}