@charset 'UTF-8';
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
html
{
    line-height: 1.15;

    -webkit-text-size-adjust: 100%;
}

body
{
    margin: 0;
}

main
{
    display: block;
}

h1
{
    font-size: 2em;

    margin: .67em 0;
}

hr
{
    overflow: visible;

    box-sizing: content-box;
    height: 0;
}

pre
{
    font-family: monospace, monospace;
    font-size: 1em;
}

a
{
    background-color: transparent;
}

abbr[title]
{
    text-decoration: underline;
    text-decoration: underline dotted;

    border-bottom: none;
}

b,
strong
{
    font-weight: bolder;
}

code,
kbd,
samp
{
    font-family: monospace, monospace;
    font-size: 1em;
}

small
{
    font-size: 80%;
}

sub,
sup
{
    font-size: 75%;
    line-height: 0;

    position: relative;

    vertical-align: baseline;
}

sub
{
    bottom: -.25em;
}

sup
{
    top: -.5em;
}

img
{
    border-style: none;
}

button,
input,
optgroup,
select,
textarea
{
    font-family: inherit;
    font-size: 100%;
    line-height: 1.15;

    margin: 0;
}

button,
input
{
    overflow: visible;
}

button,
select
{
    text-transform: none;
}

button,
[type=button],
[type=reset],
[type=submit]
{
    -webkit-appearance: button;
}

button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner
{
    padding: 0;

    border-style: none;
}

button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring
{
    outline: 1px dotted ButtonText;
}

fieldset
{
    padding: .35em .75em .625em;
}

legend
{
    display: table;

    box-sizing: border-box;
    max-width: 100%;
    padding: 0;

    white-space: normal;

    color: inherit;
}

progress
{
    vertical-align: baseline;
}

textarea
{
    overflow: auto;
}

[type=checkbox],
[type=radio]
{
    box-sizing: border-box;
    padding: 0;
}

[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button
{
    height: auto;
}

[type=search]
{
    outline-offset: -2px;

    -webkit-appearance: textfield;
}

[type=search]::-webkit-search-decoration
{
    -webkit-appearance: none;
}

::-webkit-file-upload-button
{
    font: inherit;

    -webkit-appearance: button;
}

details
{
    display: block;
}

summary
{
    display: list-item;
}

template
{
    display: none;
}

[hidden]
{
    display: none;
}

*,
*::before,
*::after
{
    box-sizing: inherit;
}

html
{
    box-sizing: border-box;
}

html
{
    font-size: 62.5%;
}

body
{
    overflow-x: hidden;
}
body.page
{
    margin-bottom: 0 !important;
}

body,
button,
input,
select,
optgroup,
textarea
{
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;
    font-size: 1.6rem;
    line-height: 1.5;

    color: #404040;
}

h1,
h2,
h3,
h4,
h5,
h6
{
    clear: both;
}

p
{
    margin-bottom: 1.5em;
}

dfn,
cite,
em,
i
{
    font-style: italic;
}

blockquote
{
    margin: 0 1.5em;
}

address
{
    margin: 0 0 1.5em;
}

pre
{
    font-family: 'Courier 10 Pitch', courier, monospace;
    line-height: 1.6;

    overflow: auto;

    max-width: 100%;
    margin-bottom: 1.6em;
    padding: 1.6em;

    background: #eee;
}

code,
kbd,
tt,
var
{
    font-family: monaco, consolas, 'Andale Mono', 'DejaVu Sans Mono', monospace;
}

abbr,
acronym
{
    cursor: help;

    border-bottom: 1px dotted #bbb;
}

mark,
ins
{
    text-decoration: none;

    background: #fff9c0;
}

big
{
    font-size: 125%;
}

body
{
    background: #fff;
}

hr
{
    height: 1px;
    margin-bottom: 1.5em;

    border: 0;
    background-color: #ccc;
}

ul,
ol
{
    margin: 0 0;
}

ul
{
    list-style: disc;
}

ol
{
    list-style: decimal;
}

li > ul,
li > ol
{
    margin-bottom: 0;
    margin-left: 1.5em;
}

dt
{
    font-weight: 700;
}

dd
{
    margin: 0 1.5em 1.5em;
}

embed,
iframe,
object
{
    max-width: 100%;
}

img
{
    max-width: 100%;
    height: auto;
}

figure
{
    margin: 1em 0;
}

table
{
    width: 100%;
    margin: 0 0 1.5em;
}

a
{
    color: #4169e1;
}

a:visited
{
    color: #800080;
}

a:hover,
a:focus,
a:active
{
    color: #191970;
}

a:focus
{
    outline: thin dotted;
}

a:hover,
a:active
{
    outline: 0;
}

button,
input[type=button],
input[type=reset],
input[type=submit]
{
    line-height: 1;

    padding: .6em 1em .4em;

    color: rgba(0, 0, 0, .8);
    border: 1px solid;
    border-color: #ccc #ccc #bbb;
    border-radius: 3px;
    background: #e6e6e6;
}

button:hover,
input[type=button]:hover,
input[type=reset]:hover,
input[type=submit]:hover
{
    border-color: #ccc #bbb #aaa;
}

button:active,
button:focus,
input[type=button]:active,
input[type=button]:focus,
input[type=reset]:active,
input[type=reset]:focus,
input[type=submit]:active,
input[type=submit]:focus
{
    border-color: #aaa #bbb #bbb;
}

input[type=text],
input[type=email],
input[type=url],
input[type=password],
input[type=search],
input[type=number],
input[type=tel],
input[type=range],
input[type=date],
input[type=month],
input[type=week],
input[type=time],
input[type=datetime],
input[type=datetime-local],
input[type=color],
textarea
{
    padding: 3px;

    color: #666;
    border: 1px solid #ccc;
    border-radius: 3px;
}

input[type=text]:focus,
input[type=email]:focus,
input[type=url]:focus,
input[type=password]:focus,
input[type=search]:focus,
input[type=number]:focus,
input[type=tel]:focus,
input[type=range]:focus,
input[type=date]:focus,
input[type=month]:focus,
input[type=week]:focus,
input[type=time]:focus,
input[type=datetime]:focus,
input[type=datetime-local]:focus,
input[type=color]:focus,
textarea:focus
{
    color: #111;
}

select
{
    border: 1px solid #ccc;
}

textarea
{
    width: 100%;
}

.l-wrapper
{
    display: flex;
    flex-direction: column;

    min-height: 100vh;
    padding: 0;
}

.l-header
{
    height: 60px;
    padding: 0;

    background-color: #1e90ff;
}
@media screen and (min-width: 37.5em)
{
    .l-header
    {
        height: 80px;
    }
}
.l-header__inner
{
    display: flex;
    /* justify-content: space-between; はあってもなくても大丈夫です */

    min-height: 70px;

    align-items: stretch;
}

.l-main
{
    flex: 1;
}

.l-main__inner
{
    max-width: 1100px;
    margin: 0 auto;
    padding: .5em;
}
@media screen and (min-width: 64em)
{
    .l-main__inner
    {
        padding: 0;
    }
}

#l-main[tabindex='-1']:focus
{
    outline: 0;
}

.l-footer
{
    padding: 10px 5px;

    text-align: center;

    color: #fff;
    background-color: #2c3033;
}

.c-skip-link:focus
{
    font-size: .875rem;
    font-weight: 700;
    line-height: normal;

    z-index: 100000;
    top: 5px;
    left: 5px;

    display: block;
    clip: auto !important;

    width: auto;
    height: auto;
    padding: 15px 23px 14px;

    text-decoration: none;

    color: #21759b;
    border-radius: 3px;
    background-color: #f1f1f1;
    box-shadow: 0 0 2px 2px rgba(0, 0, 0, .6);

    clip-path: none;
}

.c-widget
{
    margin: 0 0 1.5em;
}
.c-widget select
{
    max-width: 100%;
}
.c-section-title
{
    font-size: 2.4rem;
    font-weight: bold;

    text-align: center;

    color: #333;
}

.c-section-title--typeA
{
    position: relative;

    padding-bottom: 1.6rem;
}
.c-section-title--typeA::before
{
    position: absolute;
    bottom: 0;
    left: 50%;

    width: 160px;
    height: 4px;

    content: '';
    transform: translateX(-50%);

    background: #ccc;
}
.c-section-title--typeA::after
{
    position: absolute;
    bottom: 0;
    left: 50%;

    width: 36px;
    height: 4px;

    content: '';
    transform: translateX(-50%);

    background: #1e90ff;
}

/* ==========================================================================
     Component - Page Top Button (接頭辞 c-page-top)
     ========================================================================== */
.c-page-top
{
    position: fixed;
    z-index: 900;
    right: 20px;
    bottom: 84px;

    visibility: hidden;

    transition: opacity .3s ease, visibility .3s ease, transform .3s ease;
    transform: translateY(20px);

    opacity: 0;
}
.c-page-top.is-active
{
    visibility: visible;

    transform: translateY(0);

    opacity: 1;
}
.c-page-top a
{
    display: flex;

    width: 50px;
    height: 50px;

    text-decoration: none;

    color: #fff;
    background-color: #2c3033;

    justify-content: center;
    align-items: center;
}
.c-page-top a::before
{
    width: 10px;
    height: 10px;
    margin-top: 4px;

    content: '';
    transform: rotate(-45deg);

    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
}
.c-page-top a:hover
{
    transform: scale(1.1);

    background-color: #1e90ff;
}

.c-breadcrumb
{
    margin: 16px 0;
}
.c-breadcrumb ul
{
    font-size: 1.2rem;

    display: flex;

    margin: 0;
    padding: 0;

    list-style: none;

    flex-wrap: wrap;
}
.c-breadcrumb ul li
{
    color: #ccc;
}
.c-breadcrumb ul li a
{
    text-decoration: none;

    color: #ccc;
}
.c-breadcrumb ul li::after
{
    margin: 0 10px;

    content: '>';

    color: #ccc;
}
.c-breadcrumb ul li:last-child::after
{
    display: none;
}

/* ==========================================================================
   Component - List (接頭辞 c-list)
   ========================================================================== */
.c-list
{
    margin: 0 0;
    padding: 0;

    list-style: none;
}
.c-list li
{
    line-height: 1.6;

    position: relative;

    margin-bottom: 16px;
    padding-left: 1.2em;

    color: #404040;
}
.c-list li::before
{
    position: absolute;
    top: .6em;
    left: 0;

    width: .375em;
    height: .375em;

    content: '';

    border-radius: 50%;
    background-color: #1e90ff;
}
.c-list--arrow li::before
{
    top: .7em;

    width: .4em;
    height: .4em;

    transform: rotate(45deg);

    border-top: .125em solid #1e90ff;
    border-right: .125em solid #1e90ff;
    border-radius: 0;
    background-color: transparent;
}
.c-list--check li::before
{
    top: .7em;

    width: .6em;
    height: .3em;

    transform: rotate(-45deg);

    border-bottom: .125em solid #1e90ff;
    border-left: .125em solid #1e90ff;
    border-radius: 0;
    background-color: transparent;
}
.c-list--border li
{
    padding-bottom: 8px;
    padding-left: 0;

    border-bottom: 1px dotted #ccc;
}
.c-list--border li::before
{
    content: none;
}
.c-list--border li:last-child
{
    border-bottom: none;
}
.c-list--note
{
    font-size: 1.4rem;

    color: #666;
}
.c-list--note li
{
    padding-left: 1.2em;
}
.c-list--note li::before
{
    font-size: 1em;

    top: 0;

    width: auto;
    height: auto;

    content: '※';

    background: none;
}
.c-list--ol-main
{
    width: 100%;

    counter-reset: number;
}
.c-list--ol-main li
{
    display: flex;

    padding: .7em 0 .7em 0;

    border-bottom: 2px dotted #ddd;

    justify-content: flex-start;
}
.c-list--ol-main li:last-child
{
    border-bottom: none;
}
.c-list--ol-main li::before
{
    font-size: 115%;
    font-weight: bold;
    line-height: 1;

    position: static;

    width: auto;
    height: auto;
    margin-top: .25em;
    margin-right: .5em;

    content: counter(number, decimal-leading-zero);
    counter-increment: number;
    white-space: nowrap;

    color: #1e90ff;
    background: none;
}
.c-list--ul-main
{
    width: 100%;
}
.c-list--ul-main li
{
    display: flex;

    padding: .7em 0 .7em 0;

    border-bottom: 2px dotted #ddd;

    justify-content: flex-start;
}
.c-list--ul-main li:last-child
{
    border-bottom: none;
}
.c-list--ul-main li::before
{
    font-size: 100%;
    font-weight: bold;
    line-height: 1.6;

    position: static;

    width: auto;
    height: auto;
    margin-top: .1em;
    margin-right: .5em;

    content: '■';
    transform: scale(.7);

    color: #1e90ff;
    background: none;
}

/* ==========================================================================
   Component - Form (接頭辞 c-form, c-input 等)
   ========================================================================== */
/* general.scss の input[type="text"] 等（詳細度11点）に打ち勝つため、
   "input.c-input"（詳細度11点）のようにタグ名＋クラス名で記述 */
/* --- 1. テキスト入力・テキストエリア共通 --- */
input.c-input,
textarea.c-textarea
{
    font-size: 1.6rem;
    line-height: 1.5;

    width: 100%;
    padding: 12px 16px; /* general.scssの3pxを上書き */

    transition: border-color .3s ease, box-shadow .3s ease;

    color: #404040; /* general.scssの#666を上書き */
    border: 1px solid #ccc;
    border-radius: 4px; /* 4px */
    background-color: #fff;

    appearance: none; /* OS標準スタイルを解除 */
}
input.c-input::placeholder,
textarea.c-textarea::placeholder
{
    color: #bbb;
}
input.c-input:focus,
textarea.c-textarea:focus
{
    border-color: #1e90ff;
    outline: none;
    box-shadow: 0 0 0 3px rgba(30, 144, 255, .2);
}
input.c-input.is-error,
input.c-input--error,
textarea.c-textarea.is-error,
textarea.c-textarea--error
{
    border-color: red;
    background-color: #fff;
}
input.c-input--xs,
textarea.c-textarea--xs
{
    max-width: 80px;
}
input.c-input--sm,
textarea.c-textarea--sm
{
    max-width: 160px;
}
input.c-input--md,
textarea.c-textarea--md
{
    max-width: 240px;
}
input.c-input--lg,
textarea.c-textarea--lg
{
    max-width: 400px;
}
input.c-input--auto,
textarea.c-textarea--auto
{
    display: inline-block;

    width: auto;
}

/* --- 2. テキストエリア固有設定 --- */
textarea.c-textarea
{
    min-height: 160px;

    resize: vertical; /* 横方向のリサイズを禁止 */
    vertical-align: top;
}

/* --- 3. セレクトボックス --- */
.c-select-wrap
{
    position: relative;

    width: 100%;
    max-width: 400px; /* 必要に応じて調整 */

    border-radius: 4px;
    background-color: #fff;
}
.c-select-wrap::after
{
    position: absolute;
    top: 50%;
    right: 15px;

    width: 10px;
    height: 7px;

    content: '';
    transform: translateY(-50%);
    pointer-events: none; /* クリックを下のselectに通す */

    background-color: #666;

    clip-path: polygon(0 0, 100% 0, 50% 100%); /* 下向き三角 */
}
.c-select-wrap select
{
    font-size: 1.6rem;

    width: 100%;
    padding: 12px 40px 12px 16px; /* 矢印の分、右余白を多めに */

    cursor: pointer;

    color: #404040;
    border: 1px solid #ccc;
    border-radius: 4px;
    background-color: transparent; /* 背景は親に任せる */

    appearance: none; /* デフォルト矢印を消す */
}
.c-select-wrap select:focus
{
    border-color: #1e90ff;
    outline: none;
    box-shadow: 0 0 0 3px rgba(30, 144, 255, .2);
}
.c-select-wrap select::-ms-expand
{
    display: none;
}

/* --- 4. ラジオボタン & チェックボックス --- */
.c-radio,
.c-check
{
    display: inline-flex;

    margin-right: 24px;
    margin-bottom: 16px;

    cursor: pointer;

    align-items: center;
}
.c-radio input,
.c-check input
{
    width: auto;
    margin: 0 8px 0 0;
    padding: 0;

    cursor: pointer;
    transform: scale(1.2); /* 少し大きくして押しやすく */

    border: none;
    border-radius: 0;
    background: none;
}
.c-radio span,
.c-check span
{
    font-size: 1.6rem;
    line-height: 1.4;
}

/* --- 5. フォームグループ（レイアウト） --- */
.c-form-group
{
    margin-bottom: 24px;
    padding-bottom: 24px;

    border-bottom: 1px solid #eee;
}
.c-form-group:last-child
{
    margin-bottom: 0;

    border-bottom: none;
}
@media screen and (min-width: 48em)
{
    .c-form-group
    {
        display: flex;

        align-items: flex-start; /* ラベルを上揃え */
    }
}
.c-form-group__label
{
    font-weight: bold;

    display: flex;

    width: 100%;
    margin-bottom: 8px;

    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}
@media screen and (min-width: 48em)
{
    .c-form-group__label
    {
        width: 240px; /* PCでのラベル幅 */
        margin-bottom: 0;
        padding-top: 12px; /* 入力欄との高さ合わせ */

        flex-shrink: 0;
    }
}
.c-form-group__body
{
    width: 100%;

    flex: 1;
}
.c-form-group__body p
{
    font-size: 1.4rem;

    margin-top: 5px;

    color: #666;
}

/* --- 6. 必須・任意バッジ --- */
.c-badge-required,
.c-badge-any
{
    font-size: 1.1rem;
    line-height: 1;

    display: inline-block;

    padding: 4px 6px;

    vertical-align: middle;
    white-space: nowrap;

    color: #fff;
    border-radius: 4px;
}

.c-badge-required
{
    background-color: red; /* 必須：アクセントカラー */
}

.c-badge-any
{
    background-color: #999; /* 任意：グレー */
}

/* --- 7. 送信ボタン周辺 --- */
.c-form-actions
{
    margin-top: 40px;

    text-align: center;
}
.c-form-actions input[type=submit]
{
    cursor: pointer;

    border: none;
}

/* ==========================================================================
   Component - Search Form (検索フォーム)
   ========================================================================== */
.c-search-form
{
    width: 100%;
}
.c-search-form__inner
{
    display: flex;

    gap: 8px;
    align-items: stretch;
}
.c-search-form .c-input
{
    flex: 1;
}
.c-search-form .c-btn,
.c-search-form .c-form-actions input[type=submit],
.c-form-actions .c-search-form input[type=submit]
{
    width: auto;
    padding: 0 1.5em;

    flex-shrink: 0;
}

.screen-reader-text
{
    position: absolute;

    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);

    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;

    word-wrap: normal !important;

    border: 0;

    clip-path: inset(50%);
}

/* ==========================================================================
   Component - Button (接頭辞 c-btn)
   ========================================================================== */
.c-btn,
.c-form-actions input[type=submit]
{
    font-size: 14px;
    font-size: clamp(14px, 13.0909090909px + .2424242424vw, 16px);
    font-weight: 700;
    line-height: 1.5;

    position: relative;

    display: inline-flex;

    padding: 1em 2em;

    cursor: pointer;
    transition: all .3s ease;
    text-decoration: none;

    color: #fff;
    border: 2px solid transparent;
    border-radius: 4px;
    background-color: #00388d;

    align-items: center;
    justify-content: center;
}

.c-btn:hover,
.c-form-actions input[type=submit]:hover
{
    text-decoration: none;

    opacity: .8;
    color: #fff;
}

.c-btn--sm
{
    width: 100%;
}

@media screen and (min-width: 768px)
{
    .c-btn--sm
    {
        width: 100%;
        max-width: 240px;
        padding: .8em 1.5em;
    }
}
.c-btn--md,
.c-form-actions input[type=submit]
{
    width: 100%;
}

@media screen and (min-width: 768px)
{
    .c-btn--md,
    .c-form-actions input[type=submit]
    {
        width: 100%;
        max-width: 400px;
    }
}
.c-btn--lg
{
    width: 100%;
}

@media screen and (min-width: 768px)
{
    .c-btn--lg
    {
        font-size: 1.8rem;

        width: 100%;
        max-width: 600px;
    }
}
.c-btn--xl
{
    width: 100%;
}

@media screen and (min-width: 768px)
{
    .c-btn--xl
    {
        font-size: 2rem;

        width: 100%;
        max-width: 720px;
        padding: 1.2em 3em;
    }
}
.c-btn--accent
{
    background-color: #d94f00;
}

.c-btn--accent:hover
{
    color: #fff;
}

.c-btn--outline
{
    color: #00388d;
    border-color: #00388d;
    background-color: transparent;
}

.c-btn--outline:hover
{
    opacity: 1;
    color: #fff;
    background-color: #00388d;
}

.c-btn--round
{
    border-radius: 50px;
}

.c-btn--arrow
{
    padding-right: 3em;
}

.c-btn--arrow::after
{
    position: absolute;
    top: 50%;
    right: 1.5em;

    width: 6px;
    height: 6px;

    content: '';
    transition: transform .3s ease;
    transform: translateY(-50%) rotate(45deg);

    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
}

.c-btn--arrow:hover::after
{
    transform: translateY(-50%) rotate(45deg) translateX(3px);
}

.p-gnav
{
    display: none;
}
@media screen and (min-width: 64em)
{
    .p-gnav
    {
        display: inline-block;
        display: flex;

        margin-left: auto; /* ✨【追加】左側の余白を最大にして、メニューを右端に押しやる */
        padding-right: 24px;

        align-items: center;
    }
}
.p-gnav ul
{
    display: flex;

    margin: 0;
    padding: 0;

    list-style: none;

    gap: 30px;
}
.p-gnav ul a
{
    text-decoration: none;

    color: #fff;
}
.p-gnav ul ul
{
    position: absolute;
    z-index: 99999;
    top: 100%;
    left: -999em;

    float: left;

    box-shadow: 0 3px 3px rgba(0, 0, 0, .2);
}
.p-gnav ul ul ul
{
    top: 0;
    left: -999em;
}
.p-gnav ul ul li:hover > ul,
.p-gnav ul ul li.is-focus > ul
{
    left: auto;

    display: block;
}
.p-gnav ul ul a
{
    width: 200px;
}
.p-gnav ul li:hover > ul,
.p-gnav ul li.is-focus > ul
{
    left: auto;
}
.p-gnav li
{
    position: relative;
}
.p-gnav a
{
    display: block;

    text-decoration: none;
}
.p-gnav--open .p-gnav__menu
{
    display: block;
}

.p-gnav__toggle
{
    display: block;
}

@media screen and (min-width: 37.5em)
{
    .p-gnav__toggle
    {
        display: none;
    }
    .p-gnav ul
    {
        display: flex;
    }
}
@media screen and (max-width: 63.9375em)
{
    .p-gnav
    {
        position: fixed;
        z-index: 101;

        display: flex;
        visibility: hidden;
        overflow-y: auto;
        flex-direction: column;

        padding-top: 80px;

        transition: opacity .4s cubic-bezier(.22, 1, .36, 1), visibility .4s cubic-bezier(.22, 1, .36, 1), transform .4s cubic-bezier(.22, 1, .36, 1);
        transform: translateX(100%);

        opacity: 0;
        background-color: #1e90ff;

        inset: 0;
    }
    .p-gnav.is-active
    {
        visibility: visible;

        transform: translateX(0);

        opacity: 1;
    }
    .p-gnav ul
    {
        flex-direction: column;

        width: 100%;
        max-width: 520px;
        margin: 0 auto;
        padding: 0;

        gap: 0;
    }
    .p-gnav li
    {
        width: 100%;

        border-bottom: 1px solid rgba(255, 255, 255, .2);
    }
    .p-gnav a
    {
        font-size: 1.6rem;

        padding: 14px 20px;

        color: #fff;
    }
    .p-gnav a:hover,
    .p-gnav a:focus
    {
        color: #1e90ff !important;
        background-color: #fff;
    }
    .p-gnav a:visited
    {
        color: #fff;
    }
}
.p-hamburger
{
    position: fixed;
    z-index: 102;
    top: 0;
    right: 0;

    display: flex;
    flex-direction: column;

    width: 60px;
    height: 60px;
    padding: 0;

    cursor: pointer;

    border: none;
    background-color: #2b3033;

    justify-content: center;
    align-items: center;
    gap: 4px;
}
@media screen and (min-width: 37.5em)
{
    .p-hamburger
    {
        width: 80px;
        height: 80px;
    }
}
@media screen and (min-width: 64em)
{
    .p-hamburger
    {
        display: none;
    }
}
.p-hamburger__line
{
    display: block;

    width: 24px;
    height: 2px;

    transition: transform .4s cubic-bezier(.22, 1, .36, 1), opacity .4s cubic-bezier(.22, 1, .36, 1);

    border-radius: 2px;
    background-color: #fff;
}
.p-hamburger__label
{
    font-size: .96rem;
    line-height: 1;

    display: block;

    letter-spacing: .05em;

    color: #fff;
}
.p-hamburger.is-active .p-hamburger__line:nth-child(1)
{
    transform: translateY(6px) rotate(-45deg);
}
.p-hamburger.is-active .p-hamburger__line:nth-child(2)
{
    opacity: 0;
}
.p-hamburger.is-active .p-hamburger__line:nth-child(3)
{
    transform: translateY(-6px) rotate(45deg);
}

.p-drawer
{
    position: fixed;
    z-index: 101;

    visibility: hidden;

    padding-top: calc(80px + 44px);

    transition: opacity .4s cubic-bezier(.22, 1, .36, 1), visibility .4s cubic-bezier(.22, 1, .36, 1), transform .4s cubic-bezier(.22, 1, .36, 1);
    transform: translateX(100%);

    opacity: 0;
    background-color: #1e90ff;

    inset: 0;
}
@media screen and (min-width: 64em)
{
    .p-drawer
    {
        display: none;
    }
}
.p-drawer.is-active
{
    visibility: visible;

    transform: translateX(0);

    opacity: 1;
}
.p-drawer__close
{
    position: absolute;
    z-index: 1;
    top: 80px;
    right: 0;
    left: 0;

    display: flex;

    height: 44px;
    padding: 0;

    cursor: pointer;

    border: none;
    border-top: 1px solid rgba(255, 255, 255, .15);
    border-bottom: 1px solid rgba(255, 255, 255, .15);
    background: rgba(0, 0, 0, .2);

    align-items: center;
    justify-content: center;
    gap: 8px;
}
.p-drawer__close-icon
{
    position: relative;

    display: block;

    width: 18px;
    height: 18px;

    flex-shrink: 0;
}
.p-drawer__close-icon::before,
.p-drawer__close-icon::after
{
    position: absolute;
    top: 50%;
    left: 0;

    width: 100%;
    height: 2px;

    content: '';

    border-radius: 2px;
    background-color: #fff;
}
.p-drawer__close-icon::before
{
    transform: translateY(-50%) rotate(45deg);
}
.p-drawer__close-icon::after
{
    transform: translateY(-50%) rotate(-45deg);
}
.p-drawer__close-label
{
    font-size: 1.2rem;
    line-height: 1;

    display: block;

    letter-spacing: .1em;

    color: #fff;
}
.p-drawer__list
{
    overflow-y: auto;

    max-width: 520px;
    height: 100%;
    margin: 0 auto;
    padding: 0;

    list-style: none;
}
.p-drawer__item
{
    border-bottom: 1px solid rgba(255, 255, 255, .2);
}
.p-drawer__link
{
    font-size: 1.6rem;

    display: block;

    padding: 14px 20px;

    transition: background-color .3s ease, color .3s ease;
    text-decoration: none;

    color: #fff;
}
.p-drawer__link:hover,
.p-drawer__link:focus
{
    color: #1e90ff !important;
    background-color: #fff;
}
.p-drawer__link:visited
{
    color: #fff;
}
.p-drawer__item--has-sub .p-drawer__checkbox
{
    display: none;
}
.p-drawer__item--has-sub .p-drawer__label
{
    font-size: 1.6rem;

    display: flex;

    padding: 14px 20px;

    cursor: pointer;
    transition: background-color .3s ease, color .3s ease;

    color: #fff;

    justify-content: space-between;
    align-items: center;
}
.p-drawer__item--has-sub .p-drawer__label:hover
{
    color: #1e90ff;
    background-color: #fff;
}
.p-drawer__item--has-sub .p-drawer__label::after
{
    width: 8px;
    height: 8px;

    content: '';
    transition: transform .3s ease;
    transform: rotate(45deg);

    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;

    flex-shrink: 0;
}
.p-drawer__item--has-sub .p-drawer__checkbox:checked + .p-drawer__label::after
{
    transform: rotate(-135deg);
}
.p-drawer__item--has-sub .p-drawer__sub
{
    overflow: hidden;

    max-height: 0;
    padding: 0;

    list-style: none;

    transition: max-height .35s ease;

    background-color: rgba(0, 0, 0, .15);
}
.p-drawer__item--has-sub .p-drawer__checkbox:checked ~ .p-drawer__sub
{
    max-height: 500px;
}
.p-drawer__sub-link
{
    font-size: 1.6rem;

    display: block;

    padding: 10px 20px 10px 36px;

    transition: color .3s ease;
    text-decoration: none;

    color: rgba(255, 255, 255, .85);
}
.p-drawer__sub-link:hover
{
    color: #fff;
}

.p-drawer-overlay
{
    position: fixed;
    z-index: 100;

    visibility: hidden;

    transition: opacity .3s ease, visibility .3s ease;

    opacity: 0;
    background-color: rgba(0, 0, 0, .5);

    inset: 0;
}
.p-drawer-overlay.is-active
{
    visibility: visible;

    opacity: 1;
}
@media screen and (min-width: 64em)
{
    .p-drawer-overlay
    {
        display: none;
    }
}

.p-site-branding
{
    height: 100%;
    margin-right: 60px;
}
.p-site-branding__title
{
    line-height: 1;

    width: 100%;
    height: 60px;
    margin: 0;

    background: #fff;
}
@media screen and (min-width: 37.5em)
{
    .p-site-branding__title
    {
        height: 80px;
    }
}
.p-site-branding__title a
{
    display: flex; /* ✨変更: blockからflexに */

    height: 100%; /* ✨追加: 親のh1(80px)の高さに合わせる */

    align-items: center; /* ✨追加: 縦中央揃えにする */
}
.p-site-branding__title img
{
    display: block;

    width: 100%;
    height: auto;
}
@media screen and (min-width: 37.5em)
{
    .p-site-branding__title img
    {
        max-width: 100%;

        vertical-align: middle;
    }
}
.custom-logo-link
{
    display: inline-block;
}

.post,
.page
{
    margin: 0 0 1.5em;
}

.sticky
{
    display: block;
}

.p-entry__title
{
    font-size: clamp(2.2rem, 3vw, 3rem);
    font-weight: bold;

    color: #fff;
}
.p-entry__meta
{
    font-size: 1.4rem;
    font-weight: bold;

    text-align: right;

    color: #1e90ff;
}
.p-entry__content
{
    margin: 1.5em 0 0;
}
.p-entry__content a
{
    color: #404040;
}
.p-entry__content a:hover
{
    color: #d00b17;
}
.p-entry__content a:visited
{
    color: #404040;
}
.p-entry__summary
{
    margin: 1.5em 0 0;
}
.p-entry__page-links
{
    clear: both;

    margin: 0 0 1.5em;
}
.p-entry__single
{
    margin-bottom: 50px;
    padding: 15px 15px;

    border-radius: 0;
    background-color: #fff;
    box-shadow: 0 0 4px 0 #d4d4d4;
}
@media screen and (min-width: 48em)
{
    .p-entry__single
    {
        padding: 15px 30px;
    }
}
.p-entry__single > h1
{
    font-size: clamp(2rem, 3.2vw, 3.2rem);

    margin-bottom: 80px;
}
.p-entry__single > h2
{
    font-size: clamp(1.8rem, 2.4vw, 2.4rem);

    padding: 5px .5em .5em;

    border-bottom: 1px dashed #404040;
    border-left: 5px solid #1e90ff;
}
.p-entry__single > h3::before
{
    font-size: 100%;

    margin-right: 10px;

    content: '■';

    color: #1e90ff;
}
.p-entry__single p
{
    line-height: 1.8;

    margin-bottom: 1em;
}
.p-entry__single ol,
.p-entry__single ul
{
    margin-bottom: 24px;
}
.p-entry__contentBox
{
    margin-bottom: 50px;
    padding: 15px 15px;

    border-radius: 0;
    background-color: #fff;
    box-shadow: 0 0 4px 0 #d4d4d4;
}
@media screen and (min-width: 48em)
{
    .p-entry__contentBox
    {
        padding: 15px 30px;
    }
}
.p-entry__contentBox > *
{
    max-width: 100% !important; /* 幅制限も解除する場合 */
    margin-right: auto !important;
    margin-left: 0 !important;
}
@media (max-width: 767px)
{
    .p-entry__contentBox .wp-block-image.alignright,
    .p-entry__contentBox .wp-block-image.alignleft
    {
        display: block;
        float: none !important;
        clear: both;

        width: 100% !important;
        max-width: 100% !important;
        margin: 0 auto 20px !important;
    }
    .p-entry__contentBox .wp-block-image.alignright img,
    .p-entry__contentBox .wp-block-image.alignleft img
    {
        width: 100% !important;
        height: auto !important;
    }
}
.p-entry__contentBox h2
{
    font-size: clamp(2.2rem, 3vw, 3rem);

    padding: .2em .5em .5em;

    border-bottom: 1px dashed #404040;
    border-left: 5px solid #1e90ff;
}
.p-entry__contentBox h3::before
{
    font-size: 100%;

    margin-right: 10px;

    content: '■';

    color: #1e90ff;
}
.p-entry__contentBox p
{
    line-height: 1.8;

    margin-bottom: 1em;
}
.p-entry__contentBox2
{
    margin-bottom: 50px;
    padding: 15px 15px;

    border-radius: 20px;
    background-color: #fff;
    box-shadow: 0 0 4px 0 #d4d4d4;
}
@media screen and (min-width: 48em)
{
    .p-entry__contentBox2
    {
        padding: 15px 30px;
    }
}
.p-entry__contentBox2 > *
{
    max-width: 100% !important; /* 幅制限も解除する場合 */
    margin-right: 0 !important;
    margin-left: auto !important;
}
.p-entry__contentBox2 h2
{
    font-size: clamp(2.2rem, 3.6vw, 3.6rem);
}
.p-entry__contentBox2 p
{
    line-height: 1.8;

    margin-bottom: 1em;
}
.p-entry__media-box
{
    margin-top: 30px;

    gap: 40px;
}
@media (max-width: 767px)
{
    .p-entry__media-box.p-entry__reverse
    {
        display: flex !important;
        flex-direction: column-reverse !important;
    }
    .p-entry__reverse > .wp-block-column
    {
        margin-top: 0 !important;
        margin-bottom: 25px !important;
    }
}

.p-column
{
    display: flex !important;

    gap: 40px;
    align-items: flex-start;
}
@media (max-width: 767px)
{
    .p-column
    {
        flex-direction: column !important;

        gap: 30px;
    }
}
@media (min-width: 768px)
{
    .p-column--ratio-4-6 .p-column__left
    {
        width: calc(40% - 20px) !important;

        flex: 0 0 calc(40% - 20px) !important;
    }
    .p-column--ratio-4-6 .p-column__right
    {
        width: calc(60% - 20px) !important;

        flex: 0 0 calc(60% - 20px) !important;
    }
}
@media (min-width: 768px)
{
    .p-column--ratio-3-7 .p-column__left
    {
        flex: 0 0 calc(30% - 20px) !important;
    }
    .p-column--ratio-3-7 .p-column__right
    {
        flex: 0 0 calc(70% - 20px) !important;
    }
}
@media (min-width: 768px)
{
    .p-column--ratio-3-col > .p-column__item
    {
        width: calc(33.333% - 26.666px) !important;

        flex: 0 0 calc(33.333% - 26.666px) !important;
    }
}
@media (max-width: 767px)
{
    .p-column__left,
    .p-column__right,
    .p-column__item
    {
        width: 100% !important;

        flex: 0 0 auto !important;
    }
}
.editor-styles-wrapper .p-column > .block-editor-inner-blocks > .block-editor-block-list__layout
{
    display: flex !important;

    gap: 40px;
}
@media (max-width: 767px)
{
    .editor-styles-wrapper .p-column > .block-editor-inner-blocks > .block-editor-block-list__layout
    {
        flex-direction: column !important;
    }
}

/* ==========================================================================
   Project - Archive List (接頭辞 p-)
   ========================================================================== */
.p-archive-list__link
{
    display: flex;

    transition: color .2s ease;
    text-decoration: none;

    color: #404040;

    align-items: baseline;
    gap: 1em;
}
.p-archive-list__link:hover
{
    color: #1e90ff;
}
@media (max-width: 767px)
{
    .p-archive-list__link
    {
        flex-wrap: wrap;
        gap: .3em .8em;
    }
}
.p-archive-list__date
{
    font-size: 1.4rem;

    white-space: nowrap;

    color: #888;

    flex-shrink: 0;
}
.p-archive-list__cat
{
    font-size: 1.2rem;

    padding: .1em .6em;

    white-space: nowrap;

    color: #fff;
    border-radius: 3px;
    background-color: #1e90ff;

    flex-shrink: 0;
}
.p-archive-list__title
{
    font-weight: bold;
    line-height: 1.5;
}

/* ==========================================================================
   Project - Entry Pager (接頭辞 p-)
   ========================================================================== */
.p-entry-pager
{
    margin: 40px 0;
}
.p-entry-pager__inner
{
    display: flex;

    border-top: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
    background-color: #fff;
}
.p-entry-pager__item
{
    width: 33.333%;

    text-align: center;
}
.p-entry-pager__item--prev,
.p-entry-pager__item--back
{
    border-right: 1px solid #ccc;
}
.p-entry-pager__item a
{
    font-weight: bold;

    display: flex;

    box-sizing: border-box;
    width: 100%;
    min-height: 60px;
    padding: 20px 10px;

    transition: all .3s ease;
    text-decoration: none;

    color: #333;

    justify-content: center;
    align-items: center;
}
.p-entry-pager__item a:hover
{
    color: #fff;
    background-color: #1e90ff;
}

@media (max-width: 767px)
{
    .p-entry-pager__item
    {
        font-size: 14px;
    }
    .p-entry-pager__item a
    {
        padding: 15px 5px;
    }
}
.p-entry-meta__time.updated:not(.published)
{
    display: none;
}

/* ==========================================================================
   Project - Archive List (接頭辞 p-)
   ========================================================================== */
.p-archive-list__link
{
    display: flex;

    transition: color .2s ease;
    text-decoration: none;

    color: #404040 !important;

    align-items: baseline;
    gap: 1em;
}
.p-archive-list__link:hover
{
    color: #d00b17 !important;
}
.p-archive-list__link:visited
{
    color: #1e90ff;
}
@media (max-width: 767px)
{
    .p-archive-list__link
    {
        flex-wrap: wrap;
        gap: .3em .8em;
    }
}
.p-archive-list__date
{
    font-size: 1.4rem;

    white-space: nowrap;

    color: #888;

    flex-shrink: 0;
}
.p-archive-list__cat
{
    font-size: 1.2rem;

    padding: .1em .6em;

    white-space: nowrap;

    color: #fff;
    border-radius: 3px;
    background-color: #1e90ff;

    flex-shrink: 0;
}
.p-archive-list__title
{
    font-weight: bold;
    line-height: 1.5;
}

.l-main .comment-navigation,
.l-main .posts-navigation,
.l-main .post-navigation
{
    margin: 0 0 1.5em;
}

.comment-navigation .nav-links,
.posts-navigation .nav-links,
.post-navigation .nav-links
{
    display: flex;
}

.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous
{
    flex: 1 0 50%;
}

.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next
{
    text-align: end;

    flex: 1 0 50%;
}

.p-page-content
{
    margin: 1.5em 0 0;
}

.comment-content a
{
    word-wrap: break-word;
}

.bypostauthor
{
    display: block;
}

/* ==========================================================================
   Component - Pagination (接頭辞 c-pagination)
   ========================================================================== */
.c-pagination
{
    margin-top: 16px;

    text-align: center;
}
.c-pagination ul.page-numbers
{
    display: flex;

    width: auto !important;
    height: auto !important;
    margin: 0 auto !important;
    padding: 0 !important;

    list-style: none !important;

    border: none !important;
    background: transparent !important;

    justify-content: center;
    align-items: center;
    gap: 8px;
}
.c-pagination ul.page-numbers li
{
    margin: 0 !important;
    padding: 0 !important;

    list-style-type: none !important;

    border: none !important;
    background: transparent !important;
}
.c-pagination ul.page-numbers li .page-numbers
{
    font-size: 1.6rem;
    line-height: 1;

    display: flex;

    box-sizing: border-box;
    width: 40px;
    height: 40px;

    transition: all .3s ease;
    text-decoration: none;

    color: #404040;
    border: 1px solid #ddd;
    border-radius: 4px;
    background: #fff;

    justify-content: center;
    align-items: center;
}
.c-pagination ul.page-numbers li .page-numbers.current
{
    pointer-events: none;

    color: #fff !important;
    border: 1px solid #fff !important;
    background-color: #1e90ff !important;
}
.c-pagination ul.page-numbers li .page-numbers:not(.current):not(.dots):hover
{
    color: #fff !important;
    border-color: #1e90ff;
    background-color: #1e90ff;
}
.c-pagination ul.page-numbers li .page-numbers.dots
{
    pointer-events: none;

    border: none !important;
    background: transparent !important;
}

/* ==========================================================================
     Component - Page Top Button (接頭辞 c-page-top)
     ========================================================================== */
.c-page-top
{
    position: fixed;
    z-index: 900;
    right: 20px;
    bottom: 78.5px;

    visibility: hidden;

    transition: opacity .3s ease, visibility .3s ease, transform .3s ease;
    transform: translateY(20px);

    opacity: 0;
}
.c-page-top.is-active
{
    visibility: visible;

    transform: translateY(0);

    opacity: 1;
}
.c-page-top a
{
    display: flex;

    width: 50px;
    height: 50px;

    text-decoration: none;

    color: #fff;
    background-color: #2c3033;

    justify-content: center;
    align-items: center;
}
.c-page-top a::before
{
    width: 10px;
    height: 10px;
    margin-top: 4px;

    content: '';
    transform: rotate(-45deg);

    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
}
.c-page-top a:hover
{
    transform: scale(1.1);

    background-color: #1e90ff;
}

/* ==========================================================================
     Component - Accordion / FAQ (接頭辞 c-accordion)
     ========================================================================== */
.c-accordion
{
    border-top: 1px solid #ddd;
}
.c-accordion__item
{
    border-bottom: 1px solid #ddd;
}
.c-accordion__header
{
    font-size: 1.6rem;
    font-weight: bold;

    position: relative;

    display: block;

    width: 100%;
    padding: 20px 50px 20px 20px;

    cursor: pointer;
    transition: background-color .3s ease;
    text-align: left;

    border: none;
    background: #fff;
}
.c-accordion__header:hover
{
    background-color: #f9f9f9;
}
.c-accordion__header::after,
.c-accordion__header::before
{
    position: absolute;
    top: 50%;
    right: 20px;

    width: 16px;
    height: 2px;

    content: '';
    transition: transform .3s ease;
    transform: translateY(-50%);

    background-color: #404040;
}
.c-accordion__header::after
{
    transform: translateY(-50%) rotate(90deg);
}
.c-accordion__header.is-active::after
{
    transform: translateY(-50%) rotate(0deg);

    opacity: 0;
}
.c-accordion__body
{
    overflow: hidden;

    height: 0;

    transition: height .3s ease, opacity .3s ease;

    opacity: 0;
    background-color: #f8f9fa;
}
.c-accordion__body.is-open
{
    opacity: 1;
}
.c-accordion__body-inner
{
    line-height: 1.6;

    padding: 20px;
}

/* ==========================================================================
     Component - Badge / Tag (接頭辞 c-badge)
     ========================================================================== */
.c-badge
{
    font-size: 1.2rem;
    font-weight: bold;
    line-height: 1;

    display: inline-block;

    padding: 4px 10px;

    vertical-align: middle;
    white-space: nowrap;

    color: #fff;
    border-radius: 100px;
    background-color: #999;
}
.c-badge--new
{
    background-color: red;
}
.c-badge--main
{
    background-color: #1e90ff;
}
.c-badge--outline
{
    color: #1e90ff;
    border: 1px solid #1e90ff;
    background-color: #fff;
}

.c-badge-list
{
    margin: 0;
    padding: 0;

    list-style: none;
}
.c-badge-list__item
{
    font-size: 16px;

    display: flex;

    margin-bottom: 15px;

    align-items: center;
    gap: 20px;
}
@media (max-width: 767px)
{
    .c-badge-list--large .c-badge-list__item
    {
        flex-direction: column;

        align-items: flex-start;
        gap: 10px;
    }
}
.c-badge-list__label
{
    font-size: 14px;
    font-weight: bold;

    display: inline-flex;

    width: 100px;
    height: 32px;

    color: #fff;
    border-radius: 16px;
    background: #333;

    justify-content: center;
    align-items: center;
    flex-shrink: 0;
}
@media (min-width: 768px)
{
    .c-badge-list--large .c-badge-list__label
    {
        width: 200px;
    }
}
@media (max-width: 767px)
{
    .c-badge-list--large .c-badge-list__label
    {
        width: 100%;
    }
}
.c-badge-list__text
{
    flex: 1;
}

/* ==========================================================================
     Component - 料金テーブル
     ========================================================================== */
.c-fee-table table
{
    font-size: 16px;

    width: 100% !important;

    table-layout: fixed;
    border-collapse: collapse !important;

    border: none !important;
}
.c-fee-table tr
{
    border-top: none !important;
    border-right: none !important;
    border-bottom: 1px solid #ccc !important;
    border-left: none !important;
}
.c-fee-table th,
.c-fee-table td
{
    line-height: 1.5;

    padding: 15px !important;

    vertical-align: middle !important;

    border: none !important;
}
.c-fee-table th
{
    font-weight: normal !important;

    width: 40% !important;

    text-align: center !important;

    background-color: #eee !important;
}
.c-fee-table td
{
    padding-right: 30px !important;

    text-align: right !important;

    background-color: #fff !important;
}
.c-fee-table tr:last-child th,
.c-fee-table tr:last-child td
{
    font-weight: bold !important;

    color: #b00 !important;
}

/* ==========================================================================
   Component - Button (接頭辞 c-btn)
   ========================================================================== */
.c-btn-arrow
{
    margin-bottom: 1.5rem !important;

    text-align: center;
}
.c-btn-arrow a,
.c-btn-arrow.wp-block-button__link
{
    font-weight: bold;

    position: relative;

    display: inline-flex !important;
    overflow: hidden;

    box-sizing: border-box !important;
    width: 100%;
    max-width: 320px;
    min-height: 60px;
    padding: 10px 30px !important;

    transition: background-color .3s, opacity .3s;
    text-decoration: none !important;

    color: #333 !important;
    border: 1px solid #1e90ff !important;
    border-radius: 100px !important;
    background-color: #eee !important;

    justify-content: center;
    align-items: center;
    gap: 15px;
}
.c-btn-arrow a::after,
.c-btn-arrow.wp-block-button__link::after
{
    width: 0;
    height: 0;

    content: '';
    transition: transform .3s ease;

    border-width: 6px 0 6px 8px;
    border-style: solid;
    border-color: transparent transparent transparent #1e90ff;

    flex-shrink: 0;
}
.c-btn-arrow a:hover,
.c-btn-arrow.wp-block-button__link:hover
{
    opacity: .8;
    background-color: #f5f5f5 !important;
}
.c-btn-arrow a:hover::after,
.c-btn-arrow.wp-block-button__link:hover::after
{
    transform: translateX(5px);
}

.c-btn-arrow--dark a,
.c-btn-arrow--dark.wp-block-button__link
{
    color: #fff !important;
    border: none !important;
    background-color: #333 !important;
}
.c-btn-arrow--dark a::after,
.c-btn-arrow--dark.wp-block-button__link::after
{
    border-color: transparent transparent transparent #fff;
}

.c-btn-group .block-editor-block-list__layout,
.c-btn-group.wp-block-buttons
{
    display: flex !important;

    gap: 20px !important;
    flex-wrap: wrap !important;
    justify-content: flex-start;
}

.p-content
{
    display: flow-root;

    background-image: url(../images/common/site-contentWrap.png);
    background-repeat: no-repeat;
    background-position: top left;

    flex: 1;
}

.sliderWrap
{
    position: relative;

    width: 100%;
    margin: 0 0 40px;

    background: #fff;
}
@media screen and (min-width: 48em)
{
    .sliderWrap
    {
        width: 80%;
        margin: 40px auto 40px;
    }
}

.sliderTxt
{
    font-family: 'Noto Sans JP', sans-serif;
    font-size: clamp(1.4rem, 4vw, 2rem);
    font-weight: 600;
    font-style: normal;

    position: absolute;
    z-index: 2;
    bottom: 0;
    left: 0;

    padding: .8em 1.2em;

    text-align: center;

    color: #fff;
    background-color: #1e90ff;

    font-optical-sizing: auto;
}
@media screen and (min-width: 48em)
{
    .sliderTxt
    {
        font-size: clamp(2rem, 3vw, 3rem);

        left: -40px;

        padding: 1.5em 2em;
    }
}
@media screen and (min-width: 64em)
{
    .sliderTxt
    {
        font-size: clamp(2rem, 3.6vw, 3.6rem);

        left: -80px;
    }
}

.slider
{
    position: relative;
    z-index: 1;

    height: 56.25vw;
}
@media screen and (min-width: 48em)
{
    .slider
    {
        height: 80vh;
    }
}
.slider .slick-list,
.slider .slick-track,
.slider .slick-slide,
.slider .slick-slide > div
{
    height: 100%;
}

.slider-item
{
    width: 100%;
    height: 56.25vw;

    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}
@media screen and (min-width: 48em)
{
    .slider-item
    {
        height: 100vh;
    }
}

.slider-item01
{
    background-image: url(../images/slider/img_01.jpg);
}

.slider-item02
{
    background-image: url(../images/slider/img_02.jpg);
}

.slider-item03
{
    background-image: url(../images/slider/img_03.jpg);
}

.slick-prev,
.slick-next
{
    position: absolute;
    z-index: 3;
    top: 42%;

    width: 25px;
    height: 25px;

    cursor: pointer;

    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    outline: none;
}
.slick-prev::before,
.slick-next::before
{
    display: none;
}

.slick-prev
{
    left: 2.5%;

    transform: rotate(-135deg);
}

.slick-next
{
    right: 2.5%;

    transform: rotate(45deg);
}

.slick-dots
{
    position: relative;
    z-index: 3;

    margin: -50px 0 0 0;

    text-align: center;
}
.slick-dots li
{
    display: inline-block;

    margin: 0 5px;
}
.slick-dots li button
{
    padding: 0;

    border: none;
    outline: none;
    background: transparent;
}
.slick-dots li button::before
{
    font-size: 0;

    display: block;

    width: 8px;
    height: 8px;

    content: '';

    opacity: 1;
    border-radius: 50%;
    background: #fff;
}
.slick-dots .slick-active button::before
{
    background: #333;
}

.p-top-lead
{
    margin-bottom: 0;
    padding: .5em;

    background: #fff;
}
@media screen and (min-width: 48em)
{
    .p-top-lead
    {
        margin-bottom: 100px;
    }
}

.p-top-menu
{
    min-height: 40px !important;
    margin-top: 0;
    padding: 1em 0;

    background: #1e90ff;
}
@media screen and (min-width: 48em)
{
    .p-top-menu
    {
        margin-top: 100px;
    }
}
.p-top-menu__inner
{
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 16px;
}
.p-top-menu__list
{
    display: grid;

    margin: 0;
    padding: 0;

    list-style: none;

    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}
@media screen and (min-width: 48em)
{
    .p-top-menu__list
    {
        margin-top: -70px;

        grid-template-columns: repeat(4, 1fr);
        gap: 24px;
    }
}
.p-top-menu__item
{
    display: flex;

    padding: 0;

    background-color: #eee;
    background-image: url(../images/common/menuBk.png);
    background-repeat: no-repeat;
    background-position: right 3px bottom 3px;
}
.p-top-menu__link
{
    font-size: clamp(1.8rem, 2.2vw, 2.2rem);

    display: flex;

    width: 100%;
    min-height: 120px;
    padding: 24px 16px;

    transition: opacity .3s;
    text-decoration: none;

    color: #333 !important;

    align-items: center;
    justify-content: center;
}
.p-top-menu__link:hover
{
    opacity: .7;
}
.p-top-menu__number
{
    font-family: 'Noto Serif JP', serif;
    font-size: clamp(2rem, 2.4vw, 2.4rem);
    font-weight: 600;

    display: inline-block;

    margin-right: 10px;

    vertical-align: middle;

    color: #1e90ff;
}
.p-top-menu__text
{
    display: flex;

    align-items: center;
    justify-content: center;
}

.p-top-access
{
    padding: 30px 0 60px;
}
.p-top-access__container
{
    display: flex;
    flex-direction: column;

    gap: 30px;
}
@media screen and (min-width: 48em)
{
    .p-top-access__container
    {
        flex-direction: row;

        align-items: flex-start;
        gap: 60px;
    }
}
.p-top-access__info
{
    flex: 1;
}
.p-top-access__item
{
    margin-bottom: 20px;
    padding-bottom: 20px;

    border-bottom: 1px dotted #ccc;
}
.p-top-access__item:last-child
{
    margin-bottom: 0;

    border-bottom: none;
}
.p-top-access__label
{
    font-size: 1.8rem;
    font-weight: bold;
    line-height: 1.2;

    margin-bottom: 8px;

    color: #1e90ff;
}
.p-top-access__text
{
    font-size: 1.6rem;
    line-height: 1.6;

    color: #333;
}
.p-top-access__map
{
    width: 100%;
}
@media screen and (min-width: 48em)
{
    .p-top-access__map
    {
        width: 50%;
    }
}
.p-top-access__iframe-wrapper
{
    position: relative;

    width: 100%;
    padding-top: 75%;
}
.p-top-access__iframe-wrapper iframe
{
    position: absolute;
    top: 0;
    left: 0;

    width: 100% !important;
    height: 100% !important;
}
.p-top-access__guide
{
    margin-top: 40px;
}
.p-top-access__guide-row
{
    display: flex;
    flex-direction: column;

    margin-bottom: 20px;

    gap: 20px;
}
@media screen and (min-width: 48em)
{
    .p-top-access__guide-row
    {
        flex-direction: row;
    }
}
.p-top-access__guide-item
{
    padding: 15px;

    border-radius: 15px;
    background-color: #f0f0f0;

    flex: 1;
}
@media screen and (min-width: 48em)
{
    .p-top-access__guide-item
    {
        padding: 30px;
    }
}
.p-top-access__guide-item--full
{
    width: 100%;
}
.p-top-access__guide-title
{
    font-size: 2rem;
    font-weight: bold;

    margin-bottom: 15px;

    color: #1e90ff;
}
.p-top-access__guide-text
{
    font-size: 1.5rem;
    line-height: 1.8;

    margin-bottom: 10px;
}
.p-top-access__guide-text:last-of-type
{
    margin-bottom: 0;
}
.p-top-access__guide-note
{
    font-size: 1.4rem;
    line-height: 1.6;

    margin-top: 20px;
}

.p-top-news
{
    background-color: #f0f0f0;
}
.p-top-news__inner
{
    display: flex;
    flex-direction: column;

    max-width: 1000px;
    margin: 0 auto;
}
@media screen and (min-width: 48em)
{
    .p-top-news__inner
    {
        flex-direction: row;
    }
}
.p-top-news__header
{
    display: flex;
    flex-direction: column;

    width: 100%;
    padding: 20px;

    text-align: center;

    color: #fff;
    background-color: #1e90ff;

    gap: 15px;
    justify-content: space-between;
    align-items: center;
    flex-shrink: 0;
}
@media screen and (min-width: 48em)
{
    .p-top-news__header
    {
        width: 200px;
        padding: 40px 20px;

        gap: 0;
    }
}
.p-top-news__title
{
    font-size: 2.8rem;
    font-weight: bold;

    letter-spacing: .05em;
}
.p-top-news__link
{
    font-size: 1.3rem;

    padding-bottom: 2px;

    transition: opacity .3s;
    text-decoration: none;

    color: #fff;
    border-bottom: 1px solid rgba(255, 255, 255, .5);
}
.p-top-news__link:hover
{
    opacity: .7;
}
.p-top-news__link:visited
{
    color: #fff;
}
.p-top-news__content
{
    padding: 30px 20px;

    flex-grow: 1;
}
@media screen and (min-width: 48em)
{
    .p-top-news__content
    {
        padding: 40px 60px;
    }
}
.p-top-news__list
{
    margin: 0;
    padding: 0;

    list-style: none;
}
.p-top-news__item
{
    border-bottom: 1px dotted #999;
}
.p-top-news__item:first-child
{
    border-top: none;
}
.p-top-news__item-link
{
    display: flex;
    flex-direction: column;

    padding: 15px 0;

    transition: color .3s;
    text-decoration: none;

    color: #333;

    gap: 5px;
}
.p-top-news__item-link:hover
{
    color: #1e90ff;
}
@media screen and (min-width: 48em)
{
    .p-top-news__item-link
    {
        flex-direction: row;

        gap: 0;
    }
}
.p-top-news__date
{
    font-family: Arial, sans-serif;
    font-weight: bold;

    width: 120px;

    color: #1e90ff;

    flex-shrink: 0;
}
.p-top-news__item-title
{
    line-height: 1.5;

    flex-grow: 1;
}

.u-mt-xs
{
    margin-top: 8px !important;
}

.u-mb-xs
{
    margin-bottom: 8px !important;
}

.u-my-xs
{
    margin-top: 8px !important;
    margin-bottom: 8px !important;
}

.u-pt-xs
{
    padding-top: 8px !important;
}

.u-pb-xs
{
    padding-bottom: 8px !important;
}

.u-py-xs
{
    padding-top: 8px !important;
    padding-bottom: 8px !important;
}

.u-p-xs
{
    padding: 8px !important;
}

.u-mt-sm
{
    margin-top: 16px !important;
}

.u-mb-sm
{
    margin-bottom: 16px !important;
}

.u-my-sm
{
    margin-top: 16px !important;
    margin-bottom: 16px !important;
}

.u-pt-sm
{
    padding-top: 16px !important;
}

.u-pb-sm
{
    padding-bottom: 16px !important;
}

.u-py-sm
{
    padding-top: 16px !important;
    padding-bottom: 16px !important;
}

.u-p-sm
{
    padding: 16px !important;
}

.u-mt-md
{
    margin-top: 24px !important;
}

.u-mb-md
{
    margin-bottom: 24px !important;
}

.u-my-md
{
    margin-top: 24px !important;
    margin-bottom: 24px !important;
}

.u-pt-md
{
    padding-top: 24px !important;
}

.u-pb-md
{
    padding-bottom: 24px !important;
}

.u-py-md
{
    padding-top: 24px !important;
    padding-bottom: 24px !important;
}

.u-p-md
{
    padding: 24px !important;
}

.u-mt-lg
{
    margin-top: 40px !important;
}

.u-mb-lg
{
    margin-bottom: 40px !important;
}

.u-my-lg
{
    margin-top: 40px !important;
    margin-bottom: 40px !important;
}

.u-pt-lg
{
    padding-top: 40px !important;
}

.u-pb-lg
{
    padding-bottom: 40px !important;
}

.u-py-lg
{
    padding-top: 40px !important;
    padding-bottom: 40px !important;
}

.u-p-lg
{
    padding: 40px !important;
}

.u-mt-xl
{
    margin-top: 80px !important;
}

.u-mb-xl
{
    margin-bottom: 80px !important;
}

.u-my-xl
{
    margin-top: 80px !important;
    margin-bottom: 80px !important;
}

.u-pt-xl
{
    padding-top: 80px !important;
}

.u-pb-xl
{
    padding-bottom: 80px !important;
}

.u-py-xl
{
    padding-top: 80px !important;
    padding-bottom: 80px !important;
}

.u-p-xl
{
    padding: 80px !important;
}

.u-sr-only
{
    position: absolute !important;

    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);

    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;

    word-wrap: normal !important;

    border: 0;

    clip-path: inset(50%);
}

.u-full-bleed
{
    width: 100vw;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
}

.alignleft
{
    /*rtl:ignore*/
    float: left;
    /*rtl:ignore*/

    margin-right: 1.5em;
    margin-bottom: 1.5em;
}

.alignright
{
    /*rtl:ignore*/
    float: right;

    margin-bottom: 1.5em;
    /*rtl:ignore*/
    margin-left: 1.5em;
}

.aligncenter
{
    display: block;
    clear: both;

    margin-right: auto;
    margin-bottom: 1.5em;
    margin-left: auto;
}

.wp-caption
{
    max-width: 100%;
    margin-bottom: 1.5em;
}
.wp-caption img[class*=wp-image-]
{
    display: block;

    margin-right: auto;
    margin-left: auto;
}
.wp-caption .wp-caption-text
{
    margin: .8075em 0;
}

.wp-caption-text
{
    text-align: center;
}

.p-entry__content .wp-smiley,
.p-page-content .wp-smiley,
.comment-content .wp-smiley
{
    margin-top: 0;
    margin-bottom: 0;
    padding: 0;

    border: none;
}

.gallery
{
    display: grid;

    margin-bottom: 1.5em;

    grid-gap: 1.5em;
}

.gallery-item
{
    display: inline-block;

    width: 100%;

    text-align: center;
}

.gallery-columns-2
{
    grid-template-columns: repeat(2, 1fr);
}

.gallery-columns-3
{
    grid-template-columns: repeat(3, 1fr);
}

.gallery-columns-4
{
    grid-template-columns: repeat(4, 1fr);
}

.gallery-columns-5
{
    grid-template-columns: repeat(5, 1fr);
}

.gallery-columns-6
{
    grid-template-columns: repeat(6, 1fr);
}

.gallery-columns-7
{
    grid-template-columns: repeat(7, 1fr);
}

.gallery-columns-8
{
    grid-template-columns: repeat(8, 1fr);
}

.gallery-columns-9
{
    grid-template-columns: repeat(9, 1fr);
}

.gallery-caption
{
    display: block;
}

.infinite-scroll .posts-navigation
{
    display: none;
}
.infinite-scroll.neverending .l-footer
{
    display: none;
}

.infinity-end.neverending .l-footer
{
    display: block;
}
/*# sourceMappingURL=style.css.map */
