
#km-unified-footer,
#km-unified-footer * {
    box-sizing: border-box;
}

.kmuf {
    position: relative;
    width: 100%;
    margin: 64px 0 0;
    background:
        radial-gradient(circle at 7% 10%, rgba(205,231,242,.55), transparent 22%),
        radial-gradient(circle at 92% 18%, rgba(229,238,219,.48), transparent 18%),
        #fffdf8;
    color: #183d69;
    border-top: 1px solid rgba(191,162,105,.38);
    font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN",
                 "Yu Gothic", "Meiryo", sans-serif;
    clear: both;
}

.kmuf__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 42px 34px 0;
}

.kmuf a {
    color: inherit;
    text-decoration: none;
}

.kmuf a:hover {
    opacity: .72;
}

.kmuf__brand {
    display: grid;
    grid-template-columns: minmax(260px, 1.1fr) minmax(220px, .9fr) minmax(260px, 1fr);
    align-items: center;
    gap: 28px;
    padding: 0 0 30px;
    border-bottom: 1px solid rgba(191,162,105,.32);
}

.kmuf__brand-link {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    width: fit-content;
}

.kmuf__mark {
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    border: 1px solid rgba(47,111,162,.25);
    border-radius: 50%;
    background: rgba(224,242,249,.72);
    font-size: 24px;
}

.kmuf__site-name {
    display: block;
    font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size: 23px;
    letter-spacing: .08em;
    font-weight: 600;
}

.kmuf__brand-link small,
.kmuf__bottom-brand span {
    display: block;
    margin-top: 3px;
    font-size: 10px;
    letter-spacing: .22em;
}

.kmuf__tagline {
    margin: 0;
    font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size: 22px;
    line-height: 1.65;
    letter-spacing: .09em;
}

.kmuf__lead {
    margin: 0;
    font-size: 13px;
    line-height: 1.9;
    color: #426485;
}

.kmuf__nav {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    padding: 34px 0 26px;
}

.kmuf__col {
    min-width: 0;
    padding: 0 24px;
    border-left: 1px solid rgba(191,162,105,.28);
}

.kmuf__col:first-child {
    border-left: 0;
    padding-left: 0;
}

.kmuf__col:last-child {
    padding-right: 0;
}

.kmuf__col h2 {
    margin: 0 0 14px !important;
    padding: 0 !important;
    border: 0 !important;
    background: none !important;
    color: #183d69 !important;
    font-size: 17px !important;
    line-height: 1.45 !important;
    font-weight: 700 !important;
}

.kmuf__col ul {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.kmuf__col li {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

.kmuf__col li + li {
    margin-top: 7px !important;
}

.kmuf__col li a {
    position: relative;
    display: inline-block;
    padding-left: 14px;
    font-size: 13px;
    line-height: 1.65;
    color: #365b80;
}

.kmuf__col li a::before {
    content: "›";
    position: absolute;
    left: 0;
    color: #b79456;
}

.kmuf__social-wrap {
    margin: 2px 0 0;
    padding: 26px 0 28px;
    border-top: 1px solid rgba(191,162,105,.28);
}

.kmuf__social-title {
    margin: 0 0 14px;
    text-align: center;
    font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size: 16px;
    letter-spacing: .08em;
}

.kmuf__social {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
    max-width: 860px;
    margin: 0 auto;
}

.kmuf__social a {
    min-width: 0;
    min-height: 90px;
    padding: 12px 8px 10px;
    border-left: 1px solid rgba(82,132,172,.22);
    text-align: center;
}

.kmuf__social a:first-child {
    border-left: 0;
}

.kmuf__social-icon {
    display: grid;
    place-items: center;
    width: 27px;
    height: 27px;
    margin: 0 auto 6px;
    border-radius: 8px;
    color: white;
    font-weight: 700;
    font-size: 14px;
}

.kmuf__social-icon--voicy { background: #ef7d31; }
.kmuf__social-icon--ig { background: linear-gradient(135deg,#f8b64c,#e64f8b,#7c58c7); }
.kmuf__social-icon--yt { background: #e62117; }
.kmuf__social-icon--line { background: #16bf63; border-radius: 50%; }
.kmuf__social-icon--note { background: #3a9fa8; }

.kmuf__social strong {
    display: block;
    font-family: Georgia, "Times New Roman", "Yu Mincho", serif;
    font-size: 17px;
    white-space: nowrap;
}

.kmuf__social small {
    display: block;
    margin-top: 4px;
    font-size: 10px;
    line-height: 1.45;
    color: #5f7790;
}

.kmuf__bottom {
    display: grid;
    grid-template-columns: 1.2fr .9fr 1.35fr;
    gap: 24px;
    align-items: center;
    margin: 0 -34px;
    padding: 28px 38px;
    background:
        linear-gradient(105deg, rgba(217,239,249,.96), rgba(238,246,240,.86) 58%, rgba(218,238,249,.98));
    border-top: 1px solid rgba(106,157,194,.18);
}

.kmuf__bottom p {
    margin: 0;
    line-height: 1.8;
}

.kmuf__bottom-brand strong {
    display: block;
    font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size: 22px;
    letter-spacing: .08em;
}

.kmuf__message {
    font-size: 12px;
    color: #426485;
}

.kmuf__copyright {
    padding: 13px 18px;
    background: #73acd2;
    color: #fff;
    text-align: center;
    font-size: 11px;
    letter-spacing: .02em;
}

.kmuf__sp-only { display: none; }

/* 旧フッターの非表示はJSで安全に判定します。 */

/* TOPにある新フッターは壊さない */
body.home .kmuf,
body.front-page .kmuf {
    margin-top: 0;
}

@media (max-width: 900px) {
    .kmuf__inner { padding: 34px 22px 0; }

    .kmuf__brand {
        grid-template-columns: 1fr 1fr;
    }

    .kmuf__lead {
        grid-column: 1 / -1;
    }

    .kmuf__nav {
        grid-template-columns: 1fr 1fr;
        gap: 26px 0;
    }

    .kmuf__col:nth-child(3) {
        border-left: 0;
        padding-left: 0;
    }

    .kmuf__bottom {
        margin: 0 -22px;
        padding: 24px 24px;
        grid-template-columns: 1fr 1fr;
    }

    .kmuf__message {
        grid-column: 1 / -1;
    }
}

@media (max-width: 767px) {
    .kmuf {
        margin-top: 42px;
    }

    .kmuf__inner {
        padding: 28px 18px 0;
    }

    .kmuf__brand {
        display: block;
        text-align: center;
        padding-bottom: 24px;
    }

    .kmuf__brand-link {
        justify-content: center;
        margin: 0 auto;
    }

    .kmuf__tagline {
        margin-top: 18px;
        font-size: 20px;
    }

    .kmuf__lead {
        margin-top: 12px;
        font-size: 12px;
    }

    .kmuf__sp-only { display: initial; }

    .kmuf__nav {
        grid-template-columns: 1fr 1fr;
        gap: 24px 0;
        padding: 28px 0 22px;
    }

    .kmuf__col {
        padding: 0 14px;
    }

    .kmuf__col:nth-child(odd) {
        border-left: 0;
        padding-left: 0;
    }

    .kmuf__col:nth-child(even) {
        padding-right: 0;
    }

    .kmuf__col h2 {
        font-size: 15px !important;
    }

    .kmuf__col li a {
        font-size: 12px;
    }

    .kmuf__social-wrap {
        padding: 24px 0;
    }

    .kmuf__social {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .kmuf__social a {
        min-height: 82px;
        border: 1px solid rgba(82,132,172,.18) !important;
        border-radius: 12px;
        background: rgba(255,255,255,.64);
    }

    .kmuf__social a:last-child {
        grid-column: 1 / -1;
        max-width: 50%;
        width: calc(50% - 5px);
        margin: 0 auto;
    }

    .kmuf__social strong {
        font-size: 15px;
    }

    .kmuf__bottom {
        margin: 0 -18px;
        padding: 24px 18px;
        display: block;
        text-align: center;
    }

    .kmuf__bottom > * + * {
        margin-top: 10px;
    }

    .kmuf__bottom-brand strong {
        font-size: 20px;
    }

    .kmuf__copyright {
        padding: 12px 16px;
        font-size: 10px;
        line-height: 1.6;
    }
}

@media (max-width: 430px) {
    .kmuf__nav {
        grid-template-columns: 1fr;
    }

    .kmuf__col,
    .kmuf__col:nth-child(odd),
    .kmuf__col:nth-child(even) {
        padding: 0 0 20px;
        border-left: 0;
        border-bottom: 1px solid rgba(191,162,105,.22);
    }

    .kmuf__col:last-child {
        padding-bottom: 0;
        border-bottom: 0;
    }
}


/* TOPのSNSだけがPCで細く潰れた場合の安全補正 */
@media (min-width: 768px) {
    .kmuf-top-social-repair {
        width: min(100%, 1000px) !important;
        max-width: 1000px !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .kmuf-top-social-repair > div,
    .kmuf-top-social-repair > ul {
        min-width: 0 !important;
    }

    .kmuf-top-social-repair a {
        min-width: 0 !important;
        white-space: normal !important;
    }
}


/* v1.0.7: SNS列の下でフッターを終え、水色の帯を最後に配置。 */
#km-unified-footer .kmuf__social-wrap {
    padding-bottom: 28px;
    margin-bottom: 0;
}
#km-unified-footer .kmuf__copyright {
    background: #d9edf8;
    color: #234d75;
    border-top: 1px solid rgba(108, 158, 193, .3);
    font-size: 12px;
    line-height: 1.7;
    padding: 17px 16px;
}
[data-kmuf-hidden-duplicate-footer="1"] { display: none !important; }
/* スマホでもアイコンを省かず、リンクを指で押せる大きさに。 */
@media (max-width: 767px) {
    #km-unified-footer .kmuf__social a { min-height: 82px; }
    #km-unified-footer .kmuf__copyright { font-size: 11px; }
}

/* v1.0.8: 青い鳥を含む一つだけの締め帯 */
#km-unified-footer .kmuf__closing-band {
    background: linear-gradient(160deg, #edf9ff 0%, #d9f0fd 40%, #eaf6f7 65%, #d5eaf7 100%);
    border-top: 1px solid rgba(104, 167, 206, .25);
    overflow: hidden;
}
#km-unified-footer .kmuf__closing-inner {
    max-width: 1150px;
    min-height: 132px;
    margin: 0 auto;
    padding: 22px 30px;
    display: grid;
    grid-template-columns: 90px 1fr 1fr 1.65fr;
    align-items: center;
    gap: 22px;
    color: #184f80;
}
#km-unified-footer .kmuf__bird {
    display: block;
    width: 91px;
    height: 78px;
    object-fit: contain;
}
#km-unified-footer .kmuf__closing-name strong {
    display: block;
    font-family: 'Yu Mincho', 'Hiragino Mincho ProN', serif;
    font-size: 21px;
    letter-spacing: .12em;
    white-space: nowrap;
}
#km-unified-footer .kmuf__closing-name small {
    display: block;
    font-size: 9px;
    letter-spacing: .23em;
    margin-top: 3px;
}
#km-unified-footer .kmuf__closing-tagline {
    margin: 0;
    font-family: 'Yu Mincho', 'Hiragino Mincho ProN', serif;
    font-size: 19px;
    line-height: 1.75;
}
#km-unified-footer .kmuf__closing-message {
    margin: 0;
    font-size: 13px;
    line-height: 1.9;
}
@media(max-width: 767px) {
    #km-unified-footer .kmuf__closing-inner {
        grid-template-columns: 1fr;
        gap: 10px;
        padding: 25px 18px;
        text-align: center;
    }
    #km-unified-footer .kmuf__bird { margin: 0 auto; }
    #km-unified-footer .kmuf__closing-name strong { font-size: 23px; }
    #km-unified-footer .kmuf__closing-tagline { font-size: 19px; }
    #km-unified-footer .kmuf__closing-message { font-size: 12px; }
}

/* v1.1.0: identical visible footer on every WordPress template, desktop and mobile. */
html body #km-unified-footer { display:block !important; visibility:visible !important; opacity:1 !important; width:100% !important; max-width:none !important; clear:both !important; }
html body #km-unified-footer .kmuf__social-wrap { display:block !important; visibility:visible !important; opacity:1 !important; }
html body #km-unified-footer .kmuf__social { display:grid !important; visibility:visible !important; opacity:1 !important; grid-template-columns:repeat(5,minmax(0,1fr)) !important; }
html body #km-unified-footer .kmuf__social > a { display:flex !important; flex-direction:column; align-items:center; justify-content:center; visibility:visible !important; opacity:1 !important; min-width:0; }
html body #km-unified-footer .kmuf__closing-band, html body #km-unified-footer .kmuf__bird { display:block !important; visibility:visible !important; opacity:1 !important; }
@media(max-width:767px) {html body #km-unified-footer .kmuf__social {grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:10px 0;} html body #km-unified-footer .kmuf__social > a {min-height:84px;} }

/* v1.1.1: no repeated branding above navigation; preserve only the bird closing band. */
#km-unified-footer .kmuf__inner { padding-top: 30px; }
#km-unified-footer .kmuf__nav { padding-top: 8px; }

/* v1.1.2: legacy theme footer is hidden only after the unified footer is present.
   Do not suppress article content or pagination. */
body.kmuf-unified-ready [data-kmuf-legacy] { display:none !important; }

/* v1.1.3: mobile note alignment + gentle article scroll reveal */
@media (max-width: 767px) {
    html body #km-unified-footer .kmuf__social > a:last-child {
        grid-column: auto !important;
        max-width: none !important;
        width: auto !important;
        margin: 0 !important;
    }
    html body #km-unified-footer .kmuf__social-icon--note {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        line-height: 1 !important;
        padding: 0 !important;
        margin-left: auto !important;
        margin-right: auto !important;
        transform: none !important;
    }
}

@media (prefers-reduced-motion: no-preference) {
    body.kmuf-article-motion-on .sseo-article .kmuf-reveal {
        opacity: 0;
        transform: translate3d(0, 18px, 0);
        filter: blur(1.5px);
        transition:
            opacity .72s cubic-bezier(.2,.7,.2,1),
            transform .72s cubic-bezier(.2,.7,.2,1),
            filter .72s ease;
        transition-delay: var(--kmuf-reveal-delay, 0ms);
        will-change: opacity, transform, filter;
    }
    body.kmuf-article-motion-on .sseo-article .kmuf-reveal.is-visible {
        opacity: 1;
        transform: translate3d(0, 0, 0);
        filter: blur(0);
    }
}

@media (prefers-reduced-motion: reduce), print {
    body.kmuf-article-motion-on .sseo-article .kmuf-reveal,
    body.kmuf-article-motion-on .sseo-article .kmuf-reveal.is-visible {
        opacity: 1 !important;
        transform: none !important;
        filter: none !important;
        transition: none !important;
    }
}


/* v1.2.0: article hero + evidence form suppression helpers */
.kmuf-hide-evidence-form { display:none !important; }

.kmuf-post-hero {
    position: relative;
    overflow: hidden;
    margin: 0 0 24px;
    border-radius: 24px;
    min-height: 240px;
    background: linear-gradient(135deg, #eff7fb 0%, #ffffff 56%, #f5f7fb 100%);
    box-shadow: 0 20px 48px rgba(44, 93, 123, 0.10);
    isolation: isolate;
}
.kmuf-post-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
      radial-gradient(circle at 14% 18%, rgba(212, 231, 243, .88) 0, rgba(212, 231, 243, 0) 36%),
      radial-gradient(circle at 86% 22%, rgba(227, 214, 184, .38) 0, rgba(227, 214, 184, 0) 34%),
      linear-gradient(135deg, rgba(255,255,255,.56) 0%, rgba(255,255,255,.08) 100%);
    z-index: 0;
}
.kmuf-post-hero__bg {
    position: absolute;
    inset: 0;
    background-image: var(--kmuf-hero-image);
    background-size: cover;
    background-position: center top;
    opacity: .32;
    transform: scale(1.02);
    z-index: 0;
}
.kmuf-post-hero__bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(255,255,255,.86) 0%, rgba(255,255,255,.65) 48%, rgba(255,255,255,.28) 100%);
}
.kmuf-post-hero__content {
    position: relative;
    z-index: 1;
    padding: 34px 38px;
    max-width: 740px;
}
.kmuf-post-hero__eyebrow {
    margin: 0 0 12px;
    color: #6f8fa5;
    font-size: 12px;
    letter-spacing: .16em;
    font-weight: 700;
}
.kmuf-post-hero__title {
    margin: 0;
    color: #25445a;
    font-size: clamp(24px, 3.2vw, 40px);
    line-height: 1.45;
    font-weight: 700;
}
.kmuf-post-hero__sub {
    margin: 14px 0 0;
    color: #6b7f8d;
    font-size: 15px;
    letter-spacing: .04em;
}
@media (max-width: 767px) {
    .kmuf-post-hero {
        min-height: 196px;
        margin: 0 0 18px;
        border-radius: 18px;
    }
    .kmuf-post-hero__content {
        padding: 24px 18px 22px;
    }
    .kmuf-post-hero__eyebrow {
        font-size: 10px;
        margin-bottom: 10px;
    }
    .kmuf-post-hero__title {
        font-size: 24px;
        line-height: 1.55;
    }
    .kmuf-post-hero__sub {
        font-size: 13px;
        margin-top: 12px;
    }
}
