@charset "UTF-8";

/*!
Theme Name: Cocoon Child
Description: Cocoon専用の子テーマ
Theme URI: https://wp-cocoon.com/
Author: わいひら
Author URI: https://nelog.jp/
Template: cocoon-master
Version: 1.1.3
*/

/* ==========================================
   PPM 共通
========================================== */

body{
    font-size:16px;
}

/* 種目タグ */
.match-tag{
    display:inline-block;
    padding:4px 10px;
    border-radius:999px;
    color:#fff;
    font-size:11px;
    font-weight:700;
    line-height:1.2;
}

.match-tag-men{
    background:#2f9af3;
}

.match-tag-women{
    background:#ff5c92;
}

.match-tag-mixed{
    background:#41a76c;
}

.match-tag-parent{
    background:#b21aec;
}

.main {
    padding: 24px 32px 32px 32px;
    border-radius:16px !important;
}

.sidebar {
    padding: 24px 32px 32px 32px;
    border-radius:16px !important;
}

/* ==========================================
   ボタン
========================================== */

.match-button{
    display:inline-block;
    padding:8px 16px;
    margin-top:6px;
    border-radius:8px;
    background:#333333;
    color:#fff;
    font-weight:bold;
    text-decoration:none;
}

.match-button:hover{
    color:#fff;
    opacity:.85;
}

/* ==========================================
   検索フォーム
========================================== */

.match-search-box{
    margin:0 0 36px;
    padding:12px 24px 18px 24px;
    border:1px solid #e5e5e5;
    border-radius:10px;
    background:#f9fafb;
}

.match-search-box h2{
    margin:0 0 6px;
    font-size:20px;
    font-weight:bold;
}

.match-search-form{
    display:grid;
    grid-template-columns:
        minmax(0,1fr)
        minmax(0,1.2fr)
        minmax(0,1.2fr)
        120px;
    gap:12px;
    align-items:end;
}

.match-search-form select{
    width:100%;
    height:52px;
    padding:0 48px 0 16px;
    border:1px solid #ddd;
    border-radius:8px;
    background:#fff;
    font-size:15px;
    appearance:none;
    -webkit-appearance:none;
    -moz-appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 11'%3E%3Cpath d='M2 2l7 7 7-7' fill='none' stroke='%23333' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 18px center;
    background-size:18px 11px;
}

.match-search-form button{
    width:100%;
    height:52px;
    padding: 0 24px 0 12px;
    border:none;
    border-radius:6px;
    background:#1e73be;
    color:#fff;
    font-weight:bold;
    cursor:pointer;
}

.match-search-form button:hover{
    opacity:.85;
}

.match-search-status{
    margin:6px 0 28px;
    padding:10px 14px;
    border-radius:6px;
    background:#f3f8fc;
    font-size:14px;
}

/* ==========================================
   開催月
========================================== */

.match-month-box{
    margin-bottom:30px;
}

.match-month-box h2{
    margin-bottom:4px;
}

.match-month-box ul{
    margin:0;
}

/* ==========================================
   大会一覧カード
========================================== */

.match-card{
    position:relative;
    display:block;
    padding:12px 56px 12px 22px;
    margin-bottom:18px;
    border:1px solid #ddd;
    border-radius:14px;
    background:#fff;
    transition:background .2s ease;
}

.match-card:hover{
    background:#f7f7f7;
}

.match-card::after{
    content:"";
    position:absolute;
    top:50%;
    right:24px;
    width:12px;
    height:22px;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 18'%3E%3Cpath d='M2 2l7 7-7 7' fill='none' stroke='%23333' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:center;
    background-size:contain;
    transform:translateY(-50%);
    transition:transform .2s ease;
}

.match-card:hover::after{
    transform:translateY(-50%) translateX(4px);
}

.match-info{
    width:100%;
}

.match-list-date{
    margin:0 0 4px;
    color:#555;
    font-size:16px;
}

.match-card-tags{
    display:flex;
    flex-wrap:wrap;
    gap:6px;   /* 縦 横 */
    margin:0 0 6px;
}

.match-info h2{
    display:-webkit-box;
    margin:0 0 2px;
    overflow:hidden;
    font-size:24px;
    line-height:1.35;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
}

.match-info h2 a{
    text-decoration:none;
}

.match-area{
    margin:0 0 6px;
    color:#555;
}

.match-info p{
    margin-top:0;
}

/* ==========================================
   大会詳細ページ
========================================== */

.match-page{
    font-size:16px;
}

/* パンくず */
.match-breadcrumb{
    margin:0 0 10px;
    color:#888;
    font-size:12px;
}

.match-breadcrumb a{
    color:#888;
    text-decoration:none;
}

.match-breadcrumb a:hover{
    color:#1e73be;
    text-decoration:underline;
}

/* 上部の日付 */
.match-main-date{
    margin:0 0 4px;
    color:#777;
    font-size:14px;
    font-weight:500;
}

/* 大会名 */
.match-page > h1{
    margin-bottom:16px;
    font-size:32px;
    line-height:1.4;
}

/* KV直下の本文 */
.match-kv + p{
    font-size:16px;
}

/* 小見出し */
.match-page > h2,
.match-map h2{
    font-size:24px;
    line-height:1.4;
}

/* KV */
/* 登録画像あり：16:9 */
.match-kv.has-image{
    width:100%;
    aspect-ratio:16 / 9;
    margin:24px 0;
    overflow:hidden;
    border-radius:12px;
    background:#f5f5f5;
}

.match-kv.has-image img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
}

/* 共通画像：1000×250（4:1） */
.match-kv.no-image{
    width:100%;
    aspect-ratio:4 / 1;
    margin:12px 0;
    overflow:hidden;
    border-radius:12px;
    background:#f5f5f5;
}

.match-kv.no-image img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
}

/* 大会基本情報 */
.match-page .match-info{
    margin-top:4px;
    border-top:none;
}

.match-info-row{
    display:grid;
    grid-template-columns:160px 1fr;
    gap:20px;
    padding:12px 0;
    border-bottom:1px dashed #eee;
    font-size:16px;
}

.match-info-row:last-child{
    border-bottom:none;
}

.match-info-label{
    font-weight:700;
}

.match-info-value{
    line-height:1.8;
}

/* 会場住所 */
.venue-address{
    margin-top:2px;
    color:#777;
    font-size:12px;
    line-height:1.5;
    font-weight:400;
}

/* 会場マップ */
.match-map{
    margin-top:32px;
}

.match-map iframe{
    display:block;
    width:100%;
    border:0;
    border-radius:12px;
}

/* ==========================================
   タブレット・スマホ
========================================== */

@media screen and (max-width:834px){

    body,
    .match-page{
        font-size:14px;
    }

    /* 検索フォーム */
    .match-search-box{
        padding:18px;
    }

    .match-search-form{
        grid-template-columns:1fr;
    }

    .match-search-form button{
        width:100%;
    }

    /* 大会一覧カード */
    .match-card{
        padding:12px 42px 12px 16px;
        margin-bottom:12px;
        border-radius:10px;
    }

    .match-card::after{
        right:16px;
        width:10px;
        height:19px;
    }

    .match-info h2{
        font-size:20px;
        line-height:1.4;
    }

    .match-list-date{
        font-size:14px;
    }

    .match-tag{
        padding:3px 8px;
        font-size:10px;
    }

    /* 詳細ページ */
    .match-page > h1{
        font-size:24px;
    }

    .match-page > h2,
    .match-map h2{
        font-size:18px;
    }

    .match-breadcrumb{
        font-size:10px;
    }

    .match-main-date{
        font-size:12px;
    }

    .match-kv + p{
        font-size:14px;
    }

    .match-info-row{
        grid-template-columns:1fr;
        gap:0px;
        padding:8px 0;
        font-size:16px;
    }

    .venue-address{
        font-size:10px;
    }

    .match-button{
        box-sizing:border-box;
        width:100%;
        text-align:center;
    }
}

/* ==========================================
   小さいスマホ
========================================== */

@media screen and (max-width:480px){

    .match-search-box{
        padding: 10px 16px 16px 16px;
    }

    .match-card{
        padding:10px 38px 10px 14px;
    }

    .match-card::after{
        right:13px;
        width:9px;
        height:17px;
    }

    .match-archive .match-info h2{
    font-size:18px !important;
}

    main.main{
        padding: 16px 16px 24px 16px !important;
    }


    .match-page > h1{
    margin-bottom:8px;
    font-size:20px;
    line-height:1.4;
}
    
    .match-section-title{
        margin:16px 0 0px !important;
    }

}
/* ==========================================
   大会一覧ページ：文字サイズ
========================================== */

/* 「大会を探す」 */
.match-archive .match-search-box h2{
    font-size:20px;
}

/* プルダウン */
.match-archive .match-search-form select{
    font-size:14px;
}

/* 検索ボタン */
.match-archive .match-search-form button{
    font-size:16px;
}

/* 「開催月で探す」 */
.match-archive .match-month-box h2{
    font-size:20px;
}

/* 月別リンク */
.match-archive .match-month-box a{
    font-size:14px;
}

/* 「大会情報一覧」 */
.match-archive > h1{
    font-size:24px;
}

/* カードの日付 */
.match-archive .match-list-date{
    font-size:12px;
}

/* 大会名 */
.match-archive .match-info h2{
    font-size:20px;
}

/* エリア */
.match-archive .match-area{
    font-size:14px;
}

/* 会場名 */
.match-archive .match-info > p:not(.match-list-date):not(.match-card-tags):not(.match-area){
    font-size:14px;

}

/* ==========================================
   一覧カード：エリア・会場
========================================== */

.match-card-meta{
    display:flex;
    align-items:center;
    gap:6px;
}

.match-card-meta .match-area{
    margin:0;
    color:#999;
    font-size:12px;
}

.match-card-meta .match-venue{
    margin:0;
    font-size:13px;
}

.match-card-meta .match-venue::before{
    content:"｜";
    margin-right:2px;
    color:#ccc;
}

@media screen and (max-width:834px){

    .match-card-meta{
        display:flex;
        align-items:center;
        gap:4px;
        flex-wrap:wrap;
    }

    .match-card-meta .match-area{
        margin:0;
        font-size:10px;
    }

    .match-card-meta .match-venue{
        font-size:11px;
    }

    .match-card-meta .match-venue::before{
        content:"｜";
        margin-right:2px;
        color:#ccc;
    }
}

/* ==========================================
   開催月リンク
========================================== */

.match-month-box ul{
    display:flex;
    flex-wrap:wrap;
    gap:10px 8px;
    margin:0;
    padding:0;
    list-style:none;
}

.match-month-box li{
    margin:0;
    position:relative;
    padding-right:8px;
    margin-right:8px;
}

.match-month-box a{
    display:block;
    font-size:14px;
    text-decoration:none;
}

.match-month-box a:hover{
    text-decoration:underline;
}

.match-month-box li:not(:last-child)::after{
    content:"";
    position:absolute;
    top:50%;
    right:0;
    transform:translateY(-50%);
    width:1px;
    height:18px;
    background:#ddd;
}


/* スマホも横並び */
@media screen and (max-width:834px){

    .match-month-box ul{
        display:flex;
        flex-wrap:wrap;
        gap:8px 6px;
    }

}

/* ==========================================
   スマホ検索フォーム調整
========================================== */

@media screen and (max-width:834px){

    .match-search-form{
        grid-template-columns:1fr 1fr;
        gap:8px;
    }

    .match-search-form select,
    .match-search-form button{
        height:40px;
    }

    .match-search-form select{
        padding:0 38px 0 12px;
        background-position:right 14px center;
        font-size:14px;
    }

    /* 種目は横幅いっぱい */
    .match-search-form select[name="event"]{
        grid-column:1 / -1;
    }

    /* 検索ボタンも横幅いっぱい */
    .match-search-form button{
        grid-column:1 / -1;
        font-size:14px;
    }
}

/* ==========================================================
   大会投稿フォーム
========================================================== */

.match-submit-page{
    max-width:760px;
    margin:0 auto;
}

.match-submit-page h1{
    margin-bottom:12px;
    font-size:32px;
}

.match-submit-page > p{
    margin-bottom:10px;
    color:#555;
    font-size:16px;
    line-height:1.8;
}

/* フィールド共通 */
.match-submit-page .acf-field{
    margin-bottom:28px;
}

.match-submit-page .acf-field .acf-label{
    margin-bottom:5px;
}

/* 各フィールド上部の項目名だけに適用 */
.match-submit-page .acf-field .acf-label > label{
    margin-bottom:0;
    color:#333;
    font-size:20px;
    font-weight:700;
}

.match-submit-page .acf-required{
    color:#e53935;
}

/* 補足テキスト */
.match-submit-page .acf-field .description,
.match-submit-page .acf-field .acf-instructions{
    margin:6px 0 10px;
    color:#777;
    font-size:12px;
    font-weight:400;
    line-height:1.6;
}

/* 入力欄共通 */
.match-submit-page .acf-input input[type="text"],
.match-submit-page .acf-input input[type="email"],
.match-submit-page .acf-input input[type="url"],
.match-submit-page .acf-input input[type="date"],
.match-submit-page .acf-input input[type="number"],
.match-submit-page .acf-input input[type="tel"],
.match-submit-page .acf-input select{
    box-sizing:border-box;
    width:100%;
    height:40px;
    padding:0 14px;
    border:2px solid #dcdcdc;
    border-radius:8px;
    background-color:#fff;
    color:#333;
    font-size:16px;
    line-height:40px;
    transition:border-color .2s ease, box-shadow .2s ease;
}

.match-submit-page .acf-input textarea{
    box-sizing:border-box;
    width:100%;
    padding:12px 14px;
    border:2px solid #dcdcdc;
    border-radius:8px;
    background:#fff;
    color:#333;
    font-size:16px;
    line-height:1.6;
    resize:vertical;
    transition:border-color .2s ease, box-shadow .2s ease;
}

/* フォーカス */
.match-submit-page .acf-input input:focus,
.match-submit-page .acf-input select:focus,
.match-submit-page .acf-input textarea:focus{
    outline:none;
    border-color:#1e73be;
    box-shadow:0 0 0 3px rgba(30,115,190,.12);
}

/* セレクト矢印 */
.match-submit-page .acf-input select{
    appearance:none;
    -webkit-appearance:none;
    -moz-appearance:none;
    padding-right:38px;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23333' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 14px center;
    background-size:14px 8px;
}

/* 種目 */
.match-submit-page .acf-field[data-name="event"] .categorychecklist-holder{
    max-height:none;
    padding:0;
    border:none;
}

/* 送信ボタン */
.match-submit-page .acf-form-submit{
    margin-top:12px;
}

.match-submit-page .acf-form-submit input{
    width:100%;
    height:54px;
    border:none;
    border-radius:8px;
    background:#1e73be;
    color:#fff;
    font-size:18px;
    font-weight:700;
    cursor:pointer;
    transition:background .2s ease;
}

.match-submit-page .acf-form-submit input:hover{
    background:#185f9c;
}

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

    .match-submit-page h1{
        font-size:28px;
    }

    .match-submit-page > p{
        font-size:16px;
    }

    .match-submit-page .acf-field label,
    .match-submit-page .acf-field .acf-label label{
    font-size:16px;
    }

    .match-submit-page .acf-input input[type="text"],
    .match-submit-page .acf-input input[type="email"],
    .match-submit-page .acf-input input[type="url"],
    .match-submit-page .acf-input input[type="date"],
    .match-submit-page .acf-input input[type="number"],
    .match-submit-page .acf-input input[type="tel"],
    .match-submit-page .acf-input select,
    .match-submit-page .acf-input textarea{
        font-size:14px;
    }

    .match-submit-page .acf-form-submit input{
        height:48px;
        font-size:16px;
    }
}


/* ==========================================
   投稿完了メッセージ
========================================== */

.match-submit-page .acf-notice,
.match-submit-page .acf-error-message,
.match-submit-page .updated{
    margin:0 0 24px;
    padding:16px 20px;
    border:none;
    border-radius:10px;
    background:#f3f3f3;
    color:#333;
    font-size:20px;
    font-weight:700;
    line-height:1.5;
}

/* ==========================================
   投稿フォームの横幅を区切り線に合わせる
========================================== */

.match-submit-page .acf-fields > .acf-field{
    padding-left:0;
    padding-right:0;
}

.match-submit-page .acf-input,
.match-submit-page .acf-label{
    width:100%;
}

.match-submit-page .acf-input input,
.match-submit-page .acf-input select,
.match-submit-page .acf-input textarea{
    width:100%;
    max-width:none;
}

/* ==========================================
   種目チェックボックス
========================================== */

.match-submit-page
.acf-field[data-name="event"]
.acf-checkbox-list label{
    display:inline-flex;
    align-items:center;
    width:auto;
    margin:0;
    gap:8px;
}

.match-submit-page
.acf-field[data-name="event"]
.acf-checkbox-list input[type="checkbox"]{
    flex:0 0 auto;
    width:18px;
    height:18px;
    margin:0;
}

.match-submit-page
.acf-field[data-name="event"]
.acf-checkbox-list > li{
    margin-bottom:10px;
}

.match-submit-page
.acf-field[data-name="event"]
.acf-checkbox-list ul.children{
    margin:8px 0 0 28px;
}

/* ==========================================
   投稿成功メッセージ
========================================== */

.match-submit-page .match-submit-success{
    margin:0 0 32px;
    padding:20px 24px;
    border:2px solid #6fae2f;
    border-radius:10px;
    background:#fff;
    color:#5d9824;
    font-size:20px;
    font-weight:700;
    line-height:1.5;
}

.match-submit-page .match-submit-success p{
    margin:0;
    color:#5d9824;
    font-size:20px;
    font-weight:700;
}

/* ==========================================
   投稿エラーメッセージ
========================================== */

.match-submit-page .acf-notice.-error,
.match-submit-page .acf-error-message{
    margin:0 0 24px;
    padding:16px 20px;
    border:2px solid #d93025;
    border-radius:10px;
    background:#fff;
    color:#d93025;
    font-size:20px;
    font-weight:700;
    line-height:1.5;
}

.match-submit-page .acf-notice.-error p,
.match-submit-page .acf-error-message p{
    margin:0;
    color:#d93025;
    font-size:20px;
    font-weight:700;
}

.match-submit-page .acf-notice.-error .acf-notice-dismiss{
    color:#d93025;
}

/* 種目の文字サイズ */
.match-submit-page
.acf-field[data-name="event"]
.acf-checkbox-list label{
    font-size:16px;
    font-weight:400;
}

/* URLアイコンを上下中央に */
.match-submit-page .acf-url i{
    top:50%;
    transform:translateY(-50%);
}

.field-description{
    font-size:12px;
    color:#777;
    line-height:1.5;
    margin:0 0 14px;
}

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

    /* ページタイトル */
    .match-submit-page h1{
        font-size:24px;
    }

    /* 説明文 */
    .match-submit-page h1 + p,
    .match-submit-page h1 + p + p{
        font-size:14px;
        line-height:1.7;
    }

    /* 全フィールドタイトル */
    .match-submit-page .acf-label label,
    .match-submit-page .acf-field label,
    .match-submit-page .acf-label{
        font-size:18px !important;
    }

    /* 補足説明（画像・メール・種目など全部） */
    .match-submit-page .field-description,
    .match-submit-page .acf-input p,
    .match-submit-page .acf-description,
    .match-submit-page .description{
        font-size:10px !important;
        line-height:1.5;
    }

}

/* 必須ラベル */
.acf-required{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-left:6px;

    font-size:10px;
    line-height:1;
    color:#e53935;
    border:1px solid #e53935;
    border-radius:4px;
    padding:3px 7px;

    vertical-align:middle;
    position:relative;
    top:1px;   /* ←これで少し上に移動 */
}

/* ==========================================
   大会一覧・エリアページ 共通レイアウト
========================================== */

/* /match/・都道府県・市区町村ページを共通化 */
.match-archive > h1{
    margin:0 0 12px;
    font-size:24px;
    line-height:1.4;
}

/* 検索ボックス */
.match-archive .match-search-box{
    margin:0 0 12px;
}

/* 開催月 */
.match-archive .match-month-box{
    margin:0 0 16px;
    padding:0 24px;
}

.match-archive .match-month-box h2{
    margin:0 0 2px;
}

.match-archive .match-month-box ul{
    display:flex;
    flex-wrap:wrap;
    gap:2px 8px;
    margin:0;
    padding:0;
    list-style:none;
}

.match-archive .match-month-box li{
    position:relative;
    margin:0 4px 0 0;
    padding-right:4px;
}

.match-archive .match-month-box li:not(:last-child)::after{
    content:"";
    position:absolute;
    top:50%;
    right:0;
    width:1px;
    height:18px;
    background:#ddd;
    transform:translateY(-50%);
}

.match-archive .match-month-box a{
    display:block;
    font-size:14px;
    text-decoration:none;
}

.match-archive .match-month-box a:hover{
    text-decoration:underline;
}

/* タブレット・スマホ */
@media screen and (max-width:834px){

    .match-archive .match-month-box{
        padding-left:18px;
        padding-right:18px;
    }

    .match-archive .match-month-box ul{
        gap:2px 4px;
    }

    /* /match/・都道府県・市区町村のすべてで12px */
    .match-archive .match-month-box a{
        font-size:12px !important;
    }
}

/* 小さいスマホ */
@media screen and (max-width:480px){

    .match-archive .match-month-box{
        padding-left:15px;
        padding-right:15px;
    }
}

    .match-archive .match-month-box li{
    padding-right:0px;
}

/* 種目詳細・備考 */
.match-event-notes{
    margin-top:14px;
    padding:16px 20px;
    border-radius:14px;
    background:#f5f5f5;
    color:#333;
    font-size:14px;
    line-height:1.8;
}

@media screen and (max-width:767px){

    .match-event-notes{
        margin-top:10px;
        padding:14px 16px;
        border-radius:10px;
        font-size:12px;
    }
}

/* プレースホルダーの文字色 */
::placeholder{
    color:#bdbdbd;
    opacity:1;
}

/* Safari */
::-webkit-input-placeholder{
    color:#bdbdbd;
}

/* Edge */
::-ms-input-placeholder{
    color:#bdbdbd;
}

/* スマホ入力時の自動拡大・横はみ出し防止 */
@media screen and (max-width:767px){

    .match-submit-page input:not([type="file"]):not([type="checkbox"]):not([type="radio"]),
    .match-submit-page select,
    .match-submit-page textarea{
        box-sizing:border-box;
        width:100%;
        max-width:100%;
        font-size:16px !important;
    }

    .match-submit-page input[type="file"]{
        max-width:100%;
        font-size:16px;
    }

}

.match-submit-main{
    display:block;
}

.match-submit-note{
    display:block;
    margin-top:8px;
    font-size:14px;
    line-height:1.8;
    color:#666;
    font-weight:400;
}

/* ファイル選択ボタン */
.match-submit-page input[type="file"]{
    font-size:14px;
}

.match-submit-page input[type="file"]::file-selector-button{
    font-size:12px;
    padding:6px 9px;
    margin-right: 10px;
    border:1px solid #ccc;
    border-radius:4px;
    background:#f7f7f7;
    cursor:pointer;
}

@media screen and (max-width:767px){

    .match-submit-page input[type="file"]{
        font-size:14px;
    }

    .match-submit-page input[type="file"]::file-selector-button{
        font-size:12px;
        padding:6px 8px;
    }

}

/* フォーム上部のエラー集計だけ非表示 */
.match-submit-page .acf-form > .acf-notice.-error{
    display:none !important;
}

/* 各入力欄のエラーメッセージ */
.match-submit-page .acf-field .acf-notice.-error{
    margin:8px 0 10px;
    padding:8px 12px;
    border:1px solid #e53935;
    border-radius:6px;
    background:#fff5f5;
}

.match-submit-page .acf-field .acf-notice.-error p{
    margin:0;
    color:#d32f2f;
    font-size:13px;
    line-height:1.5;
    font-weight:600;
}

/* 大会情報更新完了メッセージ */
.match-edit-success{
    margin:0 0 32px;
    padding:20px 24px;
    border:2px solid #5ca62d !important;
    border-radius:12px;
    background:#fff !important;
    color:#4d8d1f !important;
    font-size:20px;
    font-weight:700;
    line-height:1.6;
}

.match-edit-success p{
    margin:0;
    color:#4d8d1f !important;
    font-size:20px;
    font-weight:700;
    line-height:1.6;
}

.match-edit-success strong{
    color:#4d8d1f !important;
}

.match-edit-success small{
    display:block;
    margin-top:8px;
    color:#666 !important;
    font-size:14px;
    font-weight:400;
    line-height:1.7;
}

/* フォーム間調整 */
.acf-fields > .acf-field {
    border-top-style: dashed !important;
    padding: 12px 0px 20px 0px !important;
    
}

.acf-fields > .acf-field:first-child,
.acf-field[data-name="_post_title"]{
    border-top:none !important;
}


/* 小さいスマホ */
@media screen and (max-width:480px){

    .acf-fields > .acf-field {
    padding: 8px 0px 16px 0px !important;
}
}

/* ==========================================
   PPM アクセントカラー統一
   メインカラー：#ED4C4C
========================================== */

/* 投稿・編集フォームの項目名 左アクセント */
.match-submit-page .acf-field > .acf-label > label,
.match-edit-page .acf-field > .acf-label > label{
    position:relative;
    display:inline-flex;
    align-items:center;
    min-height:24px;
    padding-left:16px;
}

.match-submit-page .acf-field > .acf-label > label::before,
.match-edit-page .acf-field > .acf-label > label::before{
    content:"";
    position:absolute;
    top:50%;
    left:0;
    width:6px;
    height:24px;
    border-radius:2px;
    background:#ED4C4C;
    transform:translateY(-50%);
}

/* 投稿・編集フォームの送信ボタン */
.match-submit-page .acf-form-submit input[type="submit"],
.match-edit-page .acf-form-submit input[type="submit"]{
    background:#ED4C4C !important;
    border-color:#ED4C4C !important;
    color:#fff !important;
}

.match-submit-page .acf-form-submit input[type="submit"]:hover,
.match-edit-page .acf-form-submit input[type="submit"]:hover{
    background:#D93F3F !important;
    border-color:#D93F3F !important;
}

/* 大会検索フォームの検索ボタン */
.match-search-form button,
.match-search-form input[type="submit"]{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:4px;

    background:#333333 !important;
    border-color:#333333 !important;
    color:#fff !important;
    transition:opacity .2s ease;
}

.match-search-form button::before{
    content:"";
    display:block;
    width:24px;
    height:24px;
    flex:0 0 24px;

    background-color:#fff;
    -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10.5 3a7.5 7.5 0 1 0 4.77 13.29l4.22 4.22 1.42-1.42-4.22-4.22A7.5 7.5 0 0 0 10.5 3Zm0 2a5.5 5.5 0 1 1 0 11 5.5 5.5 0 0 1 0-11Z'/%3E%3C/svg%3E");
    mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10.5 3a7.5 7.5 0 1 0 4.77 13.29l4.22 4.22 1.42-1.42-4.22-4.22A7.5 7.5 0 0 0 10.5 3Zm0 2a5.5 5.5 0 1 1 0 11 5.5 5.5 0 0 1 0-11Z'/%3E%3C/svg%3E");

    -webkit-mask-repeat:no-repeat;
    mask-repeat:no-repeat;
    -webkit-mask-position:center;
    mask-position:center;
    -webkit-mask-size:contain;
    mask-size:contain;
}

.match-search-form button:hover,
.match-search-form input[type="submit"]:hover{
    opacity:.85;
}

/* Cocoon標準検索フォームの検索ボタン */
.search-submit,
.search-box input[type="submit"],
.widget_search input[type="submit"]{
    background:#ED4C4C !important;
    border-color:#ED4C4C !important;
    color:#fff !important;
}

.search-submit:hover,
.search-box input[type="submit"]:hover,
.widget_search input[type="submit"]:hover{
    background:#D93F3F !important;
    border-color:#D93F3F !important;
}

/* 入力中のフォーカス */
.match-submit-page .acf-input input:focus,
.match-submit-page .acf-input select:focus,
.match-submit-page .acf-input textarea:focus,
.match-edit-page .acf-input input:focus,
.match-edit-page .acf-input select:focus,
.match-edit-page .acf-input textarea:focus{
    border-color:#666;
    box-shadow:0 0 0 3px rgba(0,0,0,.08);
}

/* スマホではアクセントを少し小さく */
@media screen and (max-width:767px){

    .match-submit-page .acf-field > .acf-label > label,
    .match-edit-page .acf-field > .acf-label > label{
        min-height:20px;
        padding-left:14px;
    }

    .match-submit-page .acf-field > .acf-label > label::before,
    .match-edit-page .acf-field > .acf-label > label::before{
        width:5px;
        height:20px;
    }
}


/* 地図ボタン */
.match-map-button{
    display:block;
    width:100%;
    margin-top:12px;
    padding:8px 16px;
    box-sizing:border-box;

    background:#fff;
    border:2px solid #ED4C4C;
    border-radius:8px;

    color:#ED4C4C;
    font-weight:700;
    text-align:center;
    text-decoration:none;

    transition:.2s;
}

.match-map-button:hover{
    opacity:.85;
    color:#ED4C4C;
}


/* 大会基本情報 見出し */
.match-section-title{
    display:flex;
    align-items:flex-end;
    width:100%;
    margin:16px 0 8px;
}

.match-section-title span{
    display:inline-block;
    flex-shrink:0;
    padding:10px 20px;
    border-radius:12px 12px 0 0;
    background:#ED4C4C;
    color:#fff;
    font-size:22px;
    font-weight:700;
    line-height:1.3;
    white-space:nowrap;
}

/* 見出しの下端から続く赤い線 */
.match-section-title::after{
    content:"";
    flex:1;
    height:3px;
    background:#ED4C4C;
}

/* 以前の三角形を確実に消す */
.match-section-title span::after{
    content:none;
}

/* スマホ */
@media screen and (max-width:767px){

    .match-section-title{
        margin:16px 0 6px;
    }

    .match-section-title span{
        padding:9px 16px;
        border-radius:10px 10px 0 0;
        font-size:18px;
    }

    .match-section-title::after{
        height:3px;
    }
}