.contact__head,
.contact__body {
    border-radius: 3rem;
    -webkit-box-shadow: 0 0 6px rgba(0, 103, 117, .3);
    box-shadow: 0 0 6px rgba(0, 103, 117, .3);
    background-color: #fff
}

.contact__head {
    text-align: center
}

@media screen and (min-width: 750px) {
    .contact__head {
        margin-top: 10rem;
        padding: 3rem 6rem
    }
}

@media screen and (max-width: 749px) {
    .contact__head {
        margin-top: 5rem;
        padding: 2rem
    }
}

.contact__head__heading,
.contact__body__heading {
    text-align: center;
    font-size: 2rem
}

.contact__tel {
    background: linear-gradient(290deg, rgb(0, 165, 189) 0%, rgb(0, 161, 187) 7%, rgb(0, 151, 184) 13%, rgb(0, 134, 177) 18%, rgb(0, 111, 169) 23%, rgb(0, 97, 164) 25%, rgb(0, 111, 169) 32%, rgb(0, 134, 177) 47%, rgb(0, 151, 184) 62%, rgb(0, 161, 187) 79%, rgb(0, 165, 189) 100%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: rgba(0, 0, 0, 0);
    color: #0061a4;
    display: inline-block;
    position: relative;
    font-weight: bold;
    font-family: "Jost", "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
    margin: .5rem 0
}

@media screen and (max-width: 749px) {
    .contact__tel {
        font-size: 3.2rem
    }
}

@media screen and (min-width: 750px) {
    .contact__tel {
        font-size: 4.8rem
    }
}

.contact__time .cat {
    font-size: 1.2rem;
    color: #00a5bd;
    border: 1px solid #00a5bd;
    border-radius: .4rem;
    margin-right: .8rem
}

@media screen and (max-width: 749px) {
    .contact__time .cat {
        padding: .4rem 1.2rem
    }
}

@media screen and (min-width: 750px) {
    .contact__time .cat {
        padding: .8rem 1.2rem
    }
}

.contact__time .time {
    font-size: 1.4rem
}

@media screen and (min-width: 750px) {
    .contact__body {
        margin-top: 8rem;
        padding: 6rem clamp(5rem, 7.1vw, 10rem)
    }
}

@media screen and (max-width: 749px) {
    .contact__body {
        margin-top: 4rem;
        padding: 3rem 2rem
    }
}

.contact__body__heading {
    margin-bottom: 2.5rem
}

.contact__body__kome {
    border-bottom: 1px solid #dedede;
    padding-bottom: 1.6rem;
    margin-bottom: 3.2rem
}

.contact__body__kome__txt {
    max-width: 85rem;
    margin: 0 auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end;
    font-size: 1.2rem
}

.contact__body__kome__txt::before {
    content: "";
    margin-right: .8rem;
    min-width: .6rem;
    height: .6rem;
    background: #00a5bd;
    border-radius: 50%
}

/* ==== Radio (custom) ==== */
.form__radio { 
    display: none; 
  }
  
  .form__radio + label {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    cursor: pointer;
  }
  
  /* ボタン本体（外枠） */
  .form__radio + label::before {
    content: "";
    flex-shrink: 0;
    width: 1.5em;
    height: 1.5em;
    background: #fff;
    border: 1px solid #dedede;
    border-radius: 50%;
    display: inline-block;
    margin-right: 1.5rem;
  }
  
  /* 選択時の外枠色 */
  .form__radio:checked + label::before {
    border-color: #00a5bd;
  }
  
  /* 内側ドット */
  .form__radio + label::after {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translate(0.35em, -50%);
    width: 0.8em;
    height: 0.8em;
    background: #00a5bd;
    border-radius: 50%;
    opacity: 0;
    transition: opacity .2s;
  }
  .form__radio:checked + label::after { opacity: 1; }
  
  /* フォーカス時 */
  .form__radio:focus-visible + label::before {
    box-shadow: 0 0 0 3px rgba(0,165,189,.25);
  }
  
  /* リストの余白 */
  .form__radioList > li + li { 
    margin-top: 0.8rem; 
  }
  
/* ==== その他の自由入力 ==== */
.form__radioWrap {
    display: block; /* 縦配置 */
  }
  
  .form__radioWrap .form__inputText--other {
    display: none;
    margin-top: .6rem;
    /* 幅は「残りスペース」に自動フィット */
    width: calc(100% - (1.5em + 1.5rem));
    margin-left: calc(1.5em + 1.5rem); 
    /* ラジオ丸＋その右の余白分をずらして「その他」の文字と同じ開始位置に */
    box-sizing: border-box;
  }
  
  .form__radioWrap .form__radio:checked ~ .form__inputText--other {
    display: block;
  }
  
  /* radio 入力欄のエラー調整 */
.error-msg-radio {
    color: #c00;             /* 赤 */
    margin-top: .4rem;
    margin-left: calc(1.5em + 1.5rem); /* ラジオボタンと同じインデント */
  }
.error-message {
    display: none;
    color: red;
    font-size: 1.3rem;
    margin-top: 0.5rem;
  }
  
/* 特定のID formError にだけ text-align: center を適用 */
#formError {
    text-align: center;
    margin: 2.5rem;
}

/* 左右2カラム */ 
.downloadTwoCol {
    display: grid;
    grid-template-columns: 1fr;
    gap: clamp(20px, 3vw, 40px);
    margin-top: clamp(24px, 4vw, 48px);
}
@media (min-width: 750px) { 
    .downloadTwoCol { 
        grid-template-columns: 1fr 1.4fr;
        align-items: start;
    }
} 
/* ========== Download 2col 左カラム ========== */ 
.downloadTwoCol__left{
    display: grid;
    gap: 20px;
} 
/* タイトル */ 
.downloadTwoCol__title{ 
    font-weight: 700;
    color: #111827;
    letter-spacing: .02em;
    line-height: 1.4;
    margin: 0;
}
@media (min-width: 750px){ 
    .downloadTwoCol__title{
        font-size: 2.2rem;
    }
}
@media (max-width: 749px){
    .downloadTwoCol__title{
        font-size: 1.8rem;
    }
}
/* メイン画像（サムネ） */
.downloadTwoCol__image{
    border: 1px solid #eef2f4;
    border-radius: 16px;
    padding: 10px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(0,103,117,.10);
}
.downloadTwoCol__image img{
    display: block;
    width: 100%;
    height: auto;
    border-radius: 10px;
}
/* 説明 */
.downloadTwoCol__descText{
    color: #475467;
    font-size: 1.5rem;
    line-height: 1.9;
    padding: 10px;
    margin: 0;
}
 /* サブ画像（2枚） */
 .downloadTwoCol__image_sub{
    display: grid;
    grid-template-columns: 1fr; /* 常に1列（PCでも縦並び） */
    gap: 30px; /* 画像間の余白*/ 
    margin-top: 10px; /* セクションとの間 */
}
.downloadTwoCol__image_sub img{
    display: block;
    width: 100%;
    height: auto;
    border: 1px solid #eef2f4;
    border-radius: 12px;
    background: #fff;
    padding: 6px; /* ここが視覚的な“白フチ”。*/
    box-shadow: 0 6px 14px rgba(0,103,117,.10);
}
/* 最後の画像の下マージンを感じさせない */
.downloadTwoCol__image_sub img:last-child{
    margin-bottom: 0;
}
/* スマホ */
@media (max-width: 749px){
    .downloadTwoCol__image_sub{
        gap: 10px;
        margin-top: 10px;
    }
    .downloadTwoCol__image_sub img{
        padding: 5px;
        border-radius: 10px;
    }
}
/* 余白調整：左カラム全体の下に少し余白 */
.downloadTwoCol__left + *{
    margin-top: 8px;
}
/* ===== 右側（フォームカード） ===== */
.downloadTwoCol__form .contact__body {
    margin-top: 0;
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 0 10px rgba(0,0,0,.12);
    padding: clamp(16px, 2.4vw, 32px);
}
/* 右カラム見出しの間隔調整（任意） */ 
.downloadTwoCol__form .contact__body__heading {
    margin-top: 0;
}