/*
Theme Name: KAGOO Base
Theme URI: https://www.kagoo.info/
Author: KAGOO
Description: KAGOO corporate and event site starter theme.
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 8.1
Text Domain: kagoo-base
*/
:root{--ink:#1c2530;--muted:#5c6670;--line:#e2e5e9;--accent:#184d79;--width:1080px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:system-ui,-apple-system,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;line-height:1.8}a{color:var(--accent)}.site-container{width:min(calc(100% - 36px),var(--width));margin-inline:auto}.site-header,.site-footer{border-color:var(--line);border-style:solid;border-width:0}.site-header{border-bottom-width:1px}.site-footer{margin-top:64px;padding:28px 0;border-top-width:1px;background:#f8f9fa}.header-inner{display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:76px;flex-wrap:wrap}
.site-brand{
    width: 100%;
    max-width: 300px;
}
.nav-menu{display:flex;gap:20px;list-style:none;padding:0;margin:0;flex-wrap:wrap}.nav-menu a{text-decoration:none}.site-main{min-height:55vh;padding-top:44px}.page-title{font-size:clamp(26px,4vw,38px);line-height:1.4;margin:0 0 28px}.entry-card{padding:22px 0;border-bottom:1px solid var(--line)}.entry-card h2{margin:0 0 8px;font-size:21px}.entry-meta{color:var(--muted);font-size:14px}.entry-body img{max-width:100%;height:auto}.entry-body{overflow-wrap:anywhere}.pagination{margin-top:30px}.pagination .page-numbers{margin-right:8px}.skip-link{position:absolute;left:-9999px;top:auto}.skip-link:focus{left:12px;top:12px;z-index:999;background:white;padding:8px}.screen-reader-text{position:absolute;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap}@media(max-width:640px){.header-inner{padding-block:16px;align-items:flex-start}.nav-menu{gap:10px 16px}.site-main{padding-top:26px}}

* {
    box-sizing: border-box;
}

body {
    font-family: system-ui, -apple-system, "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;
}

p {
    margin: 0 0 10px;
}



h1, .h1, h2, .h2, h3, .h3 {
    margin-top: 20px;
    margin-bottom: 10px;
    line-height: 1.2;
}

.first-entry {
    width: 100%;
    background-color: transparent;
    margin: 0 auto;
    padding: 10px;
    text-align: center;
}

.first-entry .entry-btn {
    max-width: 650px;
    height: auto;
}

.first-entry .entry-btn .btn-a {
    box-shadow: 0px 2px 5px 0px #cbcbcb;
    display: flex;
    width: auto;
    padding: 20px 70px;
    border-radius: 12px;
    font-size: 2.2em;
    font-weight: bold;
    text-decoration: none;
    color: #fff;
    border: 1px solid #d00e1b;
    border-bottom: 2px solid hsl(356, 87%, 32%);
    background-color: #d00e1b;
    background-image: linear-gradient(160deg, #f13743, #ba0d18);
}

.first-entry .entry-btn .btn-a i {
    margin-left: 10px;
}

.flow_flex {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
    width: 830px;
    max-width: 100%;
    margin: 0 auto;
    gap: 20px;
    padding: 0;
}

.flow_flex li {
    list-style-type: none;
}

.flow_flex li h4:first-of-type {
    font-size: 1.5rem;
    text-align: center;
    font-weight: bold;
    color: #fff;
    background-color: #510006;
    padding: 1rem 0;
    margin: 0;
}

.flow_flex li div {
    padding: 1rem;
    background-color: #ece9e6;
    line-height: 1;
}

.flow_flex li p {
    padding: 0;
    margin: 0 !important;
    text-align: justify;
    line-height: 1.7;
    font-size: 95%;
}

.flow_flex li img {
    margin: 1rem auto 0;
}

.flow_arrow {
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 10px 0 10px 10px;
    border-color: transparent transparent transparent #510005;
}


/* Contact Form 7 申込フォーム */
.kagoo-entry-form {
    width: 100%;
    margin: 40px auto;
    border: 1px solid #ddd;
    background: #fff;
}

.kagoo-entry-form .single_headline {
    margin: 0;
    padding: 20px;
    background: #f5f5f5;
    text-align: center;
    font-size: 24px;
    font-weight: bold;
    border-bottom: 1px solid #ddd;
}

.kagoo-entry-form .entry-form-group {
    display: grid;
    grid-template-columns: 25% 75%;
    border-bottom: 1px solid #ddd;
}

.kagoo-entry-form .entry-form-label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    flex-wrap: wrap;
    padding: 24px 18px;
    background: #f7f7f7;
    font-weight: bold;
}

.kagoo-entry-form .entry-form-label label {
    font-weight: bold;
}

.kagoo-entry-form .entry-required,
.kagoo-entry-form .entry-optional {
    display: inline-block;
    padding: 2px 7px;
    border-radius: 3px;
    font-size: 12px;
    font-weight: normal;
    color: #fff;
    white-space: nowrap;
}

.kagoo-entry-form .entry-required {
    background: #d9534f;
}

.kagoo-entry-form .entry-optional {
    background: #5bc0de;
}

.kagoo-entry-form .entry-form-input {
    min-width: 0;
    padding: 20px;
}

.kagoo-entry-form .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
}

.kagoo-entry-form input[type="text"],
.kagoo-entry-form input[type="email"],
.kagoo-entry-form input[type="tel"],
.kagoo-entry-form input[type="date"],
.kagoo-entry-form select {
    display: block;
    width: 100%;
    max-width: 100%;
    min-height: 46px;
    padding: 10px 12px;
    border: 1px solid #ccc;
    border-radius: 4px;
    background: #fff;
    color: #333;
    font-size: 16px;
    box-sizing: border-box;
}

.kagoo-entry-form input:focus,
.kagoo-entry-form select:focus {
    border-color: #66afe9;
    outline: none;
    box-shadow: 0 0 6px rgba(102, 175, 233, .35);
}

.kagoo-entry-form .entry-sub-label {
    display: block;
    margin: 0 0 8px;
    font-weight: bold;
}

.kagoo-entry-form .entry-sub-label:not(:first-child) {
    margin-top: 18px;
}

.kagoo-entry-form .wpcf7-checkbox {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 18px;
}

.kagoo-entry-form .wpcf7-list-item {
    margin: 0;
}

.kagoo-entry-form .wpcf7-list-item label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
}

.kagoo-entry-form .entry-form-submit {
    padding: 30px 20px;
    text-align: center;
    background: #f9f9f9;
}

.kagoo-entry-form input[type="submit"] {
    display: inline-block;
    width: 100%;
    max-width: 420px;
    padding: 17px 25px;
    background: #d9534f;
    color: #fff;
    font-size: 19px;
    font-weight: bold;
    border: 0;
    border-radius: 5px;
    cursor: pointer;
    margin: 0 auto;
    display: block;
}

.kagoo-entry-form input[type="submit"]:hover {
    background: #c9302c;
}

.kagoo-entry-form .wpcf7-not-valid-tip {
    margin-top: 5px;
    font-size: 13px;
}

.menu-toggle {
    display: none;
}

/* PCでは非表示 */
.event-page__action-form {
    display: none;
}

.kagoo-entry-form .entry-privacy {
    margin-bottom: 25px;
    text-align: center;
}

.kagoo-entry-form .entry-privacy .wpcf7-list-item {
    margin: 0;
}

.kagoo-entry-form .entry-privacy label {
    cursor: pointer;
}

#invitation-title[hidden] {
    display: none !important;
}



/* スマートフォン */
@media (max-width: 767px) {
   .event-page__action-form {
        display: block;
        position: fixed;
        bottom: 0;
        left: 0;
        width: 100%;
        z-index: 1000;
        padding: 10px 15px calc(10px + env(safe-area-inset-bottom));
        background: rgba(255, 255, 255, 0.95);
        box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.15);
    }

    .event-page__action-form-inner {
        max-width: 650px;
        margin: 0 auto;
    }

    .event-page-entry-action-button {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: 10px 15px;
        background: linear-gradient(160deg, #f13743, #ba0d18);
        color: #fff;
        border-radius: 8px;
        text-decoration: none;
        text-align: center;
    }

    .event-page-entry-action-button__label {
        font-size: 18px;
        font-weight: bold;
        line-height: 1.5;
    }

    .event-page-entry-action-button__label small {
        font-size: 12px;
    }

    .event-page-entry-action-button__guide {
        font-size: 11px;
    }

    /* 固定ボタンと本文の重なり防止 */
    body.single-post {
        padding-bottom: 100px;
    }

    /* 申込フォームへの移動位置を調整 */
    #entry {
        scroll-margin-top: 20px;
    }

.flow_flex {
flex-wrap: wrap;
}

.flow_arrow {
transform: rotate(90deg);
}

    .kagoo-entry-form .entry-form-group {
        grid-template-columns: 1fr;
    }

    .kagoo-entry-form .entry-form-label {
        padding: 12px 15px;
    }

    .kagoo-entry-form .entry-form-input {
        padding: 18px 15px;
    }

    .kagoo-entry-form .single_headline {
        font-size: 21px;
    }

.header-inner {
        position: relative;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
    }

    .site-logo {
        max-width: 180px;
        height: auto;
    }

    .menu-toggle {
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 5px;
        width: 44px;
        height: 44px;
        padding: 9px;
        border: none;
        background: transparent;
        cursor: pointer;
    }

    .menu-toggle span {
        display: block;
        width: 100%;
        height: 3px;
        background: #333;
        border-radius: 2px;
        transition: transform .2s, opacity .2s;
    }

    /* 開いたときに×へ変化 */
    .menu-toggle.is-active span:nth-child(1) {
        transform: translateY(8px) rotate(45deg);
    }

    .menu-toggle.is-active span:nth-child(2) {
        opacity: 0;
    }

    .menu-toggle.is-active span:nth-child(3) {
        transform: translateY(-8px) rotate(-45deg);
    }

    /* メニューは初期状態で非表示 */
    .header-nav {
        display: none;
        width: 100%;
        order: 3;
    }

    .header-nav.is-open {
        display: block;
    }

    .header-nav .nav-menu {
        display: flex;
        flex-direction: column;
        gap: 0;
        margin: 0;
        padding: 12px 0;
        list-style: none;
    }

    .header-nav .nav-menu li {
        border-bottom: 1px solid #ddd;
    }

    .header-nav .nav-menu a {
        display: block;
        padding: 14px 12px;
        text-decoration: none;
    }
}
