/*======================================
  趣味コース申込フォーム
  /css/form/hoby.css
  濃いグリーン × 淡いグリーン × ゴールド
======================================*/

#hobby-form .hobby-form-box {
    background: linear-gradient(180deg, #f7fbf8 0%, #eef8ef 100%);
    border: 2px solid #cfe3d2;
    border-radius: 26px;
    padding: 52px 50px;
    box-shadow: 0 14px 36px rgba(13, 106, 70, 0.15);
    color: #263a31;
}

/* タイトル部分 */
#hobby-form .hobby-form-header {
    text-align: center;
    margin-bottom: 44px;
    padding: 40px 30px;
    border-radius: 24px;
    background:
        linear-gradient(135deg, rgba(7, 72, 48, .96), rgba(13, 106, 70, .95) 48%, rgba(46, 155, 104, .92)),
        linear-gradient(135deg, #074830, #0d6a46, #2e9b68);
    color: #ffffff;
    box-shadow: 0 11px 30px rgba(13, 106, 70, .28);
    position: relative;
    overflow: hidden;
}

#hobby-form .hobby-form-header::before {
    content: "";
    position: absolute;
    inset: 14px;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 18px;
    pointer-events: none;
}

#hobby-form .hobby-form-header::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 5px;
    background: linear-gradient(90deg, transparent, #d6b45d, transparent);
}

#hobby-form .hobby-form-kira {
    color: #d6b45d;
    font-size: 1.8rem;
    letter-spacing: 15px;
    margin-bottom: 14px;
    animation: hobbyTwinkle 2.4s infinite ease-in-out;
}

@keyframes hobbyTwinkle {
    0%,100% { opacity: .45; transform: scale(1); }
    50% { opacity: 1; transform: scale(1.06); }
}

#hobby-form .hobby-form-label {
    color: #d6b45d;
    font-size: .95rem;
    letter-spacing: .12em;
    margin-bottom: 10px;
}

#hobby-form .hobby-form-header h2 {
    color: #ffffff;
    font-size: 2.25rem;
    font-weight: bold;
    margin: 0 0 16px;
    line-height: 1.45;
    text-shadow: 0 2px 10px rgba(0,0,0,.18);
}

#hobby-form .hobby-form-header p {
    color: #edf8f1;
    line-height: 1.95;
    margin: 0;
    font-size: 1.05rem;
}

/* 各セクション */
#hobby-form .hobby-form-section {
    background: #ffffff;
    border: 1px solid #cfe3d2;
    border-left: 7px solid #0d6a46;
    border-radius: 20px;
    padding: 34px 34px 36px;
    margin-bottom: 30px;
    box-shadow: 0 8px 22px rgba(13, 106, 70, .08);
}

#hobby-form .hobby-form-section h3 {
    color: #0d6a46;
    font-size: 1.55rem;
    font-weight: bold;
    margin: 0 0 22px;
    padding-bottom: 15px;
    border-bottom: 1px solid #dbece0;
}

#hobby-form .hobby-form-section h3 i {
    color: #2e9b68;
    margin-right: 10px;
}

#hobby-form .hobby-note,
#hobby-form .hobby-small {
    color: #52685b;
    font-size: 1.04rem;
    line-height: 1.9;
}

#hobby-form .hobby-alert {
    color: #0d6a46;
    background: #f0faf3;
    border-left: 4px solid #2e9b68;
    border-radius: 10px;
    padding: 12px 14px;
    line-height: 1.9;
    margin: 10px 0 14px;
    font-size: 1.03rem;
}

#hobby-form .hobby-field {
    margin-bottom: 28px;
}

#hobby-form .hobby-field:last-child {
    margin-bottom: 0;
}

#hobby-form .hobby-field > label {
    display: block;
    color: #263a31;
    font-size: 1.18rem;
    font-weight: bold;
    margin-bottom: 12px;
}

#hobby-form .hissu {
    display: inline-block;
    color: #ffffff;
    background: linear-gradient(135deg, #0d6a46, #2e9b68);
    border-radius: 999px;
    padding: 5px 12px;
    font-size: .86rem;
    margin-left: 8px;
    box-shadow: 0 3px 8px rgba(13, 106, 70, .2);
}

/* 入力欄 */
#hobby-form input[type="text"],
#hobby-form input[type="email"],
#hobby-form input[type="tel"],
#hobby-form select.sel {
    width: 100%;
    height: 62px;
    box-sizing: border-box;
    background: #ffffff;
    border: 2px solid #b9dcc4;
    border-radius: 14px;
    padding: 16px 18px;
    color: #263a31;
    font-size: 1.12rem;
    box-shadow: 0 5px 14px rgba(13, 106, 70, .07);
    transition: all .25s ease;
}

#hobby-form textarea {
    width: 100%;
    box-sizing: border-box;
    background: #ffffff;
    border: 2px solid #b9dcc4;
    border-radius: 14px;
    padding: 16px 18px;
    color: #263a31;
    font-size: 1.1rem;
    min-height: 170px;
    resize: vertical;
    box-shadow: 0 5px 14px rgba(13, 106, 70, .07);
    transition: all .25s ease;
}

#hobby-form input[type="text"]:focus,
#hobby-form input[type="email"]:focus,
#hobby-form input[type="tel"]:focus,
#hobby-form textarea:focus,
#hobby-form select.sel:focus {
    outline: none;
    border-color: #0d6a46;
    background: #f8fffa;
    box-shadow: 0 0 0 5px rgba(46, 155, 104, .16);
}

/* 選択カード */
#hobby-form .hobby-choice-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

#hobby-form .hobby-experience-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

#hobby-form .hobby-choice {
    position: relative;
}

#hobby-form .hobby-choice input[type="radio"],
#hobby-form .hobby-choice input[type="checkbox"] {
    position: absolute;
    opacity: 0;
}

#hobby-form .hobby-choice label {
    display: block;
    cursor: pointer;
    background: #f5fcf7;
    border: 2px solid #cfe3d2;
    border-radius: 16px;
    padding: 18px 20px 18px 56px;
    color: #263a31;
    font-weight: bold;
    font-size: 1.08rem;
    line-height: 1.55;
    transition: all .22s ease;
    min-height: 58px;
}

#hobby-form .hobby-choice label::before {
    content: "";
    position: absolute;
    left: 20px;
    top: 21px;
    width: 22px;
    height: 22px;
    border: 2px solid #74b98b;
    background: #ffffff;
    box-sizing: border-box;
}

#hobby-form .hobby-choice input[type="radio"] + label::before {
    border-radius: 50%;
}

#hobby-form .hobby-choice input[type="checkbox"] + label::before {
    border-radius: 6px;
}

#hobby-form .hobby-choice input:checked + label {
    border-color: #0d6a46;
    background: linear-gradient(180deg, #f6fff8 0%, #e7f8ec 100%);
    color: #0d6a46;
    box-shadow: 0 7px 18px rgba(13, 106, 70, .18);
}

#hobby-form .hobby-choice input:checked + label::before {
    background: #0d6a46;
    border-color: #0d6a46;
    box-shadow: inset 0 0 0 5px #ffffff;
}

#hobby-form .hobby-choice label:hover {
    border-color: #2e9b68;
    transform: translateY(-1px);
}

#hobby-form .hobby-choice-title {
    display: block;
    font-size: 1.15rem;
    margin-bottom: 5px;
}

#hobby-form .hobby-choice-text {
    display: block;
    color: #52685b;
    font-size: .94rem;
    font-weight: normal;
    line-height: 1.65;
}

/* ボタン */
#hobby-form .hobby-submit {
    text-align: center;
    margin-top: 48px;
}

#hobby-form .hobby-submit input[type="submit"],
#hobby-form .hobby-submit input[type="reset"] {
    border-radius: 999px;
    min-width: 190px;
    height: 66px;
    padding: 0 32px;
    font-weight: bold;
    font-size: 1.15rem;
    cursor: pointer;
    transition: all .25s ease;
    -webkit-appearance: none;
    appearance: none;
}

#hobby-form .hobby-submit input[type="submit"] {
    color: #ffffff;
    border: none;
    min-width: 290px;
    background: linear-gradient(135deg, #074830, #0d6a46 52%, #2e9b68);
    box-shadow: 0 10px 24px rgba(13, 106, 70, .34);
}

#hobby-form .hobby-submit input[type="reset"] {
    color: #0d6a46;
    background: #ffffff;
    border: 2px solid #b9dcc4;
    margin-left: 14px;
}

#hobby-form .hobby-submit input[type="submit"]:hover,
#hobby-form .hobby-submit input[type="reset"]:hover {
    opacity: .9;
    transform: translateY(-2px);
}

@media (max-width: 768px) {
    #hobby-form .hobby-form-box {
        padding: 28px 18px;
        border-radius: 20px;
    }

    #hobby-form .hobby-form-header {
        padding: 30px 18px;
        margin-bottom: 34px;
    }

    #hobby-form .hobby-form-header h2 {
        font-size: 1.6rem;
    }

    #hobby-form .hobby-form-header p {
        font-size: 1rem;
    }

    #hobby-form .hobby-form-kira {
        letter-spacing: 8px;
        font-size: 1.25rem;
    }

    #hobby-form .hobby-form-section {
        padding: 22px 16px 24px;
        margin-bottom: 26px;
    }

    #hobby-form .hobby-form-section h3 {
        font-size: 1.25rem;
    }

    #hobby-form .hobby-choice-grid,
    #hobby-form .hobby-experience-grid {
        grid-template-columns: 1fr;
    }

    #hobby-form .hobby-choice label {
        padding: 16px 16px 16px 50px;
        font-size: 1rem;
    }

    #hobby-form .hobby-choice label::before {
        left: 18px;
        top: 19px;
        width: 20px;
        height: 20px;
    }

    #hobby-form input[type="text"],
    #hobby-form input[type="email"],
    #hobby-form input[type="tel"],
    #hobby-form select.sel {
        height: 56px;
        padding: 14px 16px;
        font-size: 1rem;
    }

    #hobby-form textarea {
        min-height: 145px;
        padding: 14px 16px;
        font-size: 1rem;
    }

    #hobby-form .hobby-submit input[type="submit"],
    #hobby-form .hobby-submit input[type="reset"] {
        width: 100%;
        min-width: 0;
        height: 58px;
        margin: 8px 0;
        font-size: 1.05rem;
    }
}

/*----------------------------------------
  送信ボタン上の注意書き
----------------------------------------*/

#hobby-form .hobby-submit-note{
    margin:0 auto 18px;
    text-align:center;
    font-size:1.05rem;
    font-weight:bold;
    color:#0d6a46;
    line-height:1.8;
}

#hobby-form .attention-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    width:16px;
    height:16px;

    margin-right:8px;

    border-radius:50%;
    background:#e60023;
    color:#ffffff;

    font-size:12px;
    font-weight:bold;
    line-height:1;

    vertical-align:middle;

    box-shadow:0 2px 6px rgba(230,0,35,.25);

    animation:attentionPulse 1.8s infinite;
}

@media (max-width:768px){

    #hobby-form .attention-icon{
        width:16px;
        height:16px;
        font-size:12px;
    }

}

@keyframes attentionPulse{

    0%,100%{
        transform:scale(1);
    }

    50%{
        transform:scale(1.15);
    }

}

@media(max-width:768px){

    #hobby-form .hobby-submit-note{
        font-size:.95rem;
        line-height:1.6;
        margin-bottom:16px;
    }

    #hobby-form .attention-icon{
        width:16px;
        height:16px;
        font-size:15px;
    }

}

/*====================================================
  趣味コースフォーム
  文字・入力欄・ボタンを一回り大きく
====================================================*/

/* セクション余白 */
#hobby-form .hobby-form-section{
    padding:42px 42px 44px;
}

/* セクションタイトル */
#hobby-form .hobby-form-section h3{
    font-size:2rem;
    margin-bottom:28px;
}

/* ラベル */
#hobby-form .hobby-field>label{
    font-size:1.35rem;
    margin-bottom:14px;
}

/* 説明文 */
#hobby-form .hobby-note,
#hobby-form .hobby-small,
#hobby-form .hobby-alert{
    font-size:1.15rem;
    line-height:1.9;
}

/* 入力欄 */
#hobby-form input[type="text"],
#hobby-form input[type="email"],
#hobby-form input[type="tel"],
#hobby-form select.sel{
    height:72px;
    padding:18px 22px;
    font-size:1.22rem;
}

/* テキストエリア */
#hobby-form textarea{
    min-height:220px;
    padding:20px 22px;
    font-size:1.2rem;
}

/* ラジオ・チェックカード */
#hobby-form .hobby-choice label{
    padding:24px 24px 24px 64px;
    font-size:1.2rem;
    min-height:72px;
}

/* ラジオ丸 */
#hobby-form .hobby-choice label::before{
    width:24px;
    height:24px;
    left:24px;
    top:26px;
}

/* カードタイトル */
#hobby-form .hobby-choice-title{
    font-size:1.3rem;
}

/* カード説明 */
#hobby-form .hobby-choice-text{
    font-size:1.08rem;
}

/* 必須マーク */
#hobby-form .hissu{
    font-size:.95rem;
    padding:6px 14px;
}

/* ボタン */
#hobby-form .hobby-submit input[type="submit"],
#hobby-form .hobby-submit input[type="reset"]{
    height:74px;
    font-size:1.28rem;
    border-radius:50px;
}

/* 注意書き */
#hobby-form .hobby-submit-note{
    font-size:1.18rem;
    margin-bottom:24px;
}

/*==============================
  スマホ
==============================*/
@media(max-width:768px){

    #hobby-form .hobby-form-section{
        padding:28px 20px;
    }

    #hobby-form .hobby-form-section h3{
        font-size:1.55rem;
    }

    #hobby-form .hobby-field>label{
        font-size:1.2rem;
    }

    #hobby-form .hobby-note,
    #hobby-form .hobby-small,
    #hobby-form .hobby-alert{
        font-size:1rem;
    }

    #hobby-form input[type="text"],
    #hobby-form input[type="email"],
    #hobby-form input[type="tel"],
    #hobby-form select.sel{
        height:60px;
        font-size:1.05rem;
    }

    #hobby-form textarea{
        min-height:170px;
        font-size:1.05rem;
    }

    #hobby-form .hobby-choice label{
        min-height:60px;
        padding:18px 18px 18px 56px;
        font-size:1.05rem;
    }

    #hobby-form .hobby-choice label::before{
        width:20px;
        height:20px;
        left:18px;
        top:20px;
    }

    #hobby-form .hobby-submit input[type="submit"],
    #hobby-form .hobby-submit input[type="reset"]{
        height:64px;
        font-size:1.1rem;
    }

    #hobby-form .hobby-submit-note{
        font-size:1rem;
    }
}