@charset 'UTF-8';
/*!
Theme Name: asbase-theme
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: asbase-theme
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready
*/
@import url('https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c&family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&display=swap');
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%;

    box-sizing: border-box;
}

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

body
{
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 1.6rem;
    font-weight: 400;
    font-style: normal;
    line-height: 1.6;

    overflow-x: hidden;

    color: #333;
    background-image: url('../images/common/body-bk.png');
    background-repeat: no-repeat;
    background-position: top center;
    background-size: 100% auto;

    font-optical-sizing: auto;
}
body.page
{
    margin-bottom: 0 !important;
}
@media screen and (max-width: 767px)
{
    body
    {
        background-image: url('../images/common/body-bk2.png');
        background-position: top 40px center;
    }
}

h1,
h2,
h3,
h4,
h5,
h6
{
    line-height: 1.3;

    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: #f5f5f5;
}

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

abbr,
acronym
{
    cursor: help;

    border-bottom: 1px dotted #666;
}

mark,
ins
{
    text-decoration: none;

    background: #fff9c0;
}

big
{
    font-size: 125%;
}

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

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

ul,
ol
{
    margin: 0 0 1.5em 3em;
}

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;
}

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

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

figure
{
    margin: 1em 0;
}

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

a
{
    transition: opacity .2s ease;

    color: #2563eb;
}
a:visited
{
    color: #7c3aed;
}
a:hover,
a:active
{
    opacity: .7;
    outline: 0;
}
a:focus
{
    color: #1d4ed8;
    outline: thin dotted;
}

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

    padding: .6em 1em .4em;

    cursor: pointer;

    color: rgba(0, 0, 0, .8);
    border: 1px solid;
    border-color: #ddd #ddd #bbb;
    border-radius: 4px;
    background: #e6e6e6;
}
button:hover,
input[type=button]:hover,
input[type=reset]:hover,
input[type=submit]:hover
{
    border-color: #ddd #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 #ddd;
    border-radius: 4px;
}
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 #ddd;
}

textarea
{
    width: 100%;
}

/* 電話番号のリンク（tel:で始まるリンク）のスタイルをリセット */
a[href^='tel:']
{
    text-decoration: none;

    color: inherit;
}

@media (min-width: 768px)
{
    a[href^='tel:']
    {
        cursor: default;
        pointer-events: none;
    }
}
.l-page
{
    min-height: 100vh;
}

.l-header
{
    position: relative;
    position: fixed;
    z-index: 10000;
    top: 0;
    left: 0;

    width: 100%;

    transition: transform .3s ease;

    background-color: #030303;
    background-color: rgba(255, 255, 255, .9);
}
.l-header.is-hidden
{
    transform: translateY(-100%);
}
@media screen and (min-width: 768px)
{
    .l-header
    {
        padding-bottom: 16px;
    }
}
.l-header__inner
{
    display: flex;
    flex-direction: column;

    max-width: 1200px;

    margin-inline: auto;
    padding-inline: 24px;
}
@media screen and (min-width: 768px)
{
    .l-header__inner
    {
        padding-inline: 40px;
    }
}
.l-header__top
{
    display: flex;

    width: 100%;
    min-height: 70px;
    padding-right: 50px;

    align-items: center;
    justify-content: space-between;
    gap: 1.5em;
}
@media screen and (min-width: 768px)
{
    .l-header__top
    {
        min-height: auto;
        padding-right: 0;
    }
}
.l-header__branding
{
    flex-grow: 1;
}
.l-header__contact
{
    display: none;
}
.l-header__contact a:visited
{
    color: #fff !important;
}
@media screen and (min-width: 768px)
{
    .l-header__contact
    {
        display: flex;

        width: 436px;
        margin-left: auto;

        white-space: nowrap;

        align-items: center;
        gap: 20px;
        flex-shrink: 0;
    }
}
.l-header__tel
{
    display: flex;

    align-items: center;
    gap: 8px;
}
.l-header__tel-icon
{
    width: 32px;
    height: 32px;

    color: #87bd70;
}
.l-header__tel-icon i
{
    font-size: 3.2rem;
}
.l-header__tel-icon svg
{
    width: 100%;
    height: 100%;

    fill: currentColor;
}
.l-header__tel-texts
{
    display: flex;
    flex-direction: column;
}
.l-header__tel-texts p
{
    margin-bottom: 0;
}
.l-header__tel-number
{
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 1;

    text-decoration: none;
    letter-spacing: .05em;

    color: #87bd70;
}
.l-header__tel-time
{
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1;

    margin-top: 6px;

    color: #4a2e1b;
}
.l-header__bottom
{
    display: flex;

    width: 100%;

    justify-content: center;
}
.l-header__site-title
{
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1.2;

    width: 100%;
    margin: 0;
}
@media screen and (max-width: 767px)
{
    .l-header__site-title
    {
        max-width: 466px;
    }
}
.l-header__site-title a
{
    text-decoration: none;

    color: inherit;
}
.l-header__site-title a:hover,
.l-header__site-title a:focus
{
    text-decoration: underline;
}
.l-header__site-title a img
{
    height: auto;
}
@media (max-width: 1020px)
{
    .l-header__site-title a img
    {
        width: 100%;
    }
}
.l-header__site-description
{
    font-size: 1.4rem;

    margin: .25em 0 0;

    color: #666;
}

.l-wrap
{
    width: 100%;
    max-width: 1200px;

    margin-inline: auto;
    padding-inline: 24px;
}
@media screen and (min-width: 768px)
{
    .l-wrap--has-sidebar
    {
        display: grid;

        grid-template-columns: 1fr 300px;
        gap: 40px;
        align-items: start;
    }
}

.l-main
{
    min-width: 0;
}

.l-sidebar
{
    min-width: 0;
    padding: 24px;

    border: 1px solid #ddd;
    border-radius: 4px;
    background: #f5f5f5;
}

@media screen and (max-width: 767px)
{
    .l-footer
    {
        margin-bottom: 49px;
    }
}
.l-footer__banners
{
    padding: 40px 20px;
}
.l-footer__banners-inner
{
    display: flex;

    max-width: 1000px;

    margin-inline: auto;
    justify-content: center;
    gap: 30px;
}
@media screen and (max-width: 767px)
{
    .l-footer__banners-inner
    {
        flex-direction: column;

        align-items: center;
    }
}
.l-footer__banner
{
    display: block;

    max-width: 480px;

    transition: opacity .3s ease;

    box-shadow: 0 4px 10px rgba(0, 0, 0, .05);

    flex: 1;
}
.l-footer__banner:hover
{
    opacity: .8;
}
.l-footer__banner img
{
    width: 100%;
    height: auto;

    vertical-align: bottom;
}
.l-footer__main
{
    position: relative;

    padding: 60px 20px;

    background-image: url('../images/common/footer-bg-sample.jpg');
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}
.l-footer__main::before
{
    position: absolute;
    z-index: 1;

    content: '';

    background-color: rgba(255, 255, 255, .85);

    inset: 0;
}
.l-footer__inner
{
    position: relative;
    z-index: 2;

    max-width: 1000px;

    margin-inline: auto;
}
.l-footer__nav
{
    display: flex;

    margin: 0 0 50px 0;
    padding: 0;

    list-style: none;

    justify-content: center;
    flex-wrap: wrap;
}
.l-footer__nav li
{
    display: flex;

    align-items: center;
}
.l-footer__nav li a
{
    font-size: 1.4rem;
    font-weight: 700;

    padding: 0 15px;

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

    color: #333;
}
.l-footer__nav li a:hover
{
    color: #8bc34a;
}
.l-footer__nav li:not(:last-child)::after
{
    font-size: 1.2rem;

    content: '|';

    color: #999;
}
@media screen and (max-width: 767px)
{
    .l-footer__nav
    {
        display: none;
        flex-direction: column;

        margin-bottom: 40px;

        gap: 15px;
    }
    .l-footer__nav li
    {
        justify-content: center;
    }
    .l-footer__nav li:not(:last-child)::after
    {
        display: none;
    }
}
.l-footer__content
{
    display: flex;

    justify-content: space-between;
    align-items: center;
    gap: 60px;
}
@media screen and (max-width: 767px)
{
    .l-footer__content
    {
        flex-direction: column;

        gap: 40px;
    }
}
.l-footer__company
{
    width: 45%;
}
@media screen and (max-width: 767px)
{
    .l-footer__company
    {
        width: 100%;

        text-align: center;
    }
}
.l-footer__logo
{
    max-width: 340px;
    height: auto;
    margin-bottom: 15px;
}
.l-footer__address
{
    font-size: 1.4rem;

    margin-bottom: 10px;

    color: #333;
}
.l-footer__tel
{
    font-family: Arial, sans-serif;
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 1;

    margin: 0;

    color: #4a2e1b;
}
.l-footer__tel i
{
    font-size: 2.2rem;

    margin-right: 5px;
}
.l-footer__schedule
{
    width: 50%;
}
@media screen and (max-width: 767px)
{
    .l-footer__schedule
    {
        width: 100%;
    }
}
.l-footer__copyright
{
    padding: 15px 20px;

    text-align: center;

    color: #fff;
    background-color: #87bd70;
}
.l-footer__copyright p
{
    font-family: Arial, sans-serif;
    font-size: 1.2rem;

    margin: 0;

    letter-spacing: .05em;
}

.c-btn
{
    font-weight: 700;
    line-height: 1.5;

    display: inline-flex;

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

    align-items: center;
    justify-content: center;
}
.c-btn:hover
{
    opacity: .8;
}
.c-btn--green
{
    font-size: 1.4rem;

    min-width: 120px;
    padding: 8px 24px;

    letter-spacing: .05em;

    color: #fff;
    border-radius: 8px;
    background-color: #87bd70;
}
.c-btn--arrow-green
{
    font-size: 1.5rem;

    position: relative;

    min-width: 220px;
    padding: 12px 45px 12px 25px;

    letter-spacing: .05em;

    color: #fff;
    border-radius: 6px;
    background-color: #87bd70;
}
.c-btn--arrow-green:visited
{
    color: #fff !important;
}
.c-btn--arrow-green i
{
    font-size: 1.4rem;

    position: absolute;
    top: 50%;
    right: 15px;

    transform: translateY(-50%);
}
.c-btn--arrow-blue
{
    font-size: 1.5rem;

    position: relative;

    min-width: 220px;
    padding: 12px 45px 12px 25px;

    letter-spacing: .05em;

    color: #fff;
    border-radius: 6px;
    background-color: #7ab5ce;
}
.c-btn--arrow-blue:visited
{
    color: #fff !important;
}
.c-btn--arrow-blue i
{
    font-size: 1.4rem;

    position: absolute;
    top: 50%;
    right: 15px;

    transform: translateY(-50%);
}

.c-form__field
{
    display: block;

    width: 100%;
    padding: 3px;

    color: #666;
    border: 1px solid #ddd;
    border-radius: 4px;
}
.c-form__field:focus
{
    color: #111;
}
.c-form__select
{
    max-width: 100%;

    border: 1px solid #ddd;
}
.c-form__textarea
{
    width: 100%;
    padding: 3px;

    color: #666;
    border: 1px solid #ddd;
    border-radius: 4px;
}
.c-form__textarea:focus
{
    color: #111;
}

.c-nav a:hover
{
    color: #87bd70 !important;
}
.c-nav__toggle
{
    position: absolute;
    z-index: 1000;
    top: 15px;
    right: 15px;

    display: flex;

    width: 44px;
    height: 44px;
    padding: 0;

    cursor: pointer;

    border: none;
    background: none;

    align-items: center;
    justify-content: center;
}
.c-nav__hamburger
{
    display: flex;
    flex-direction: column;

    width: 28px;
    height: 20px;

    justify-content: space-between;
}
.c-nav__hamburger span
{
    display: block;

    width: 100%;
    height: 2px;

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

    background-color: #333;
}
.c-nav.is-open .c-nav__hamburger span:nth-child(1)
{
    transform: translateY(9px) rotate(45deg);
}
.c-nav.is-open .c-nav__hamburger span:nth-child(2)
{
    opacity: 0;
}
.c-nav.is-open .c-nav__hamburger span:nth-child(3)
{
    transform: translateY(-9px) rotate(-45deg);
}
.c-nav ul
{
    display: none;

    margin: 0;
    padding: 0;

    list-style: none;
}
.c-nav li
{
    position: relative;
}
.c-nav a
{
    display: block;

    padding: 16px 24px;

    text-decoration: none;

    color: #3e2020;
}
.c-nav a:hover,
.c-nav a:focus
{
    color: #2563eb;
}
.c-nav.is-open > ul
{
    position: absolute;
    z-index: 9999 !important;
    top: 100%;
    right: 0;
    left: 0;

    display: block;
    overflow-y: auto;

    height: 100vh;
    padding-bottom: 150px;

    border-top: 1px solid #ddd;
    background: #e9ebd4;
    box-shadow: 0 4px 8px rgba(0, 0, 0, .1);
}
.c-nav.is-open > ul li
{
    border-bottom: 1px dashed #fff;
}
.c-nav li.menu-item-has-children,
.c-nav li.page_item_has_children
{
    display: flex;

    flex-wrap: wrap;
    align-items: center;
}
.c-nav li.menu-item-has-children > a,
.c-nav li.page_item_has_children > a
{
    flex: 1;
}
.c-nav__sub-toggle
{
    font-size: 1.4rem;

    display: flex;

    width: 44px;
    height: 44px;
    margin-right: 5px;

    cursor: pointer;
    transition: background .3s;

    color: #3e2020;
    border: none;
    border: 1px solid rgba(0, 0, 0, .1);
    background: transparent;
    background-color: #fff;

    align-items: center;
    justify-content: center;
}
.c-nav__sub-toggle:hover,
.c-nav__sub-toggle:focus
{
    border: 1px solid rgba(0, 0, 0, .1);
    background: rgba(0, 0, 0, .05);
}
.c-nav ul ul
{
    position: static;

    display: none;

    width: 100%;
    margin: 0;
    padding-left: 15px;

    box-shadow: none;
}
.c-nav li.is-active > ul
{
    display: block;
}
@media screen and (min-width: 768px)
{
    .c-nav__toggle
    {
        display: none;
    }
    .c-nav > ul
    {
        position: static;

        display: flex !important;
        flex-direction: row;

        border-top: none;
        background: transparent;
        box-shadow: none;

        flex-wrap: wrap;
        align-items: center;
        gap: 0;
    }
    .c-nav a
    {
        padding: 8px 16px;
    }
    .c-nav li.menu-item-has-children,
    .c-nav li.page_item_has_children
    {
        position: relative;

        display: block;
    }
    .c-nav__sub-toggle
    {
        display: none;
    }
    .c-nav ul ul
    {
        position: absolute;
        z-index: 99999;
        top: 100%;
        left: 0;

        display: none;

        width: max-content;
        min-width: 200px;
        padding-left: 0;

        border-radius: 5px;
        background-color: #87bd70;
        box-shadow: 0 4px 8px rgba(0, 0, 0, .1);
    }
    .c-nav ul ul a
    {
        color: #fff;
    }
    .c-nav ul ul a:hover
    {
        color: #e9ebd4;
        color: #fff !important;
    }
    .c-nav li:hover > ul,
    .c-nav li.focus > ul
    {
        display: block;
    }
}

.comment-navigation,
.posts-navigation,
.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%;
}

.u-full-bleed
{
    width: 100vw !important;

    margin-inline: calc(50% - 50vw) !important;
}

.u-justify-center
{
    justify-content: center !important;
}

.c-section-header
{
    text-align: center;
}
.c-section-header__title
{
    font-size: 2.4rem;
    font-weight: 700;

    display: flex;
    flex-direction: column;

    margin-bottom: 15px;

    color: #4a2e1b;

    align-items: center;
    gap: 5px;
}
.c-section-header__en
{
    font-size: 1.4rem;
    font-weight: bold;

    color: #8bc34a;
}
.c-section-header__subtitle
{
    font-size: 2.2rem;
    font-weight: 700;

    margin: 0;

    color: #8bc34a;
}
@media screen and (max-width: 767px)
{
    .c-section-header__subtitle
    {
        font-size: 1.8rem;
    }
}

.c-label
{
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1;

    display: inline-flex;

    min-width: 80px;
    padding: 4px 16px;

    color: #fff;
    border-radius: 20px;

    align-items: center;
    justify-content: center;
}
.c-label--news
{
    background-color: #79b5c9;
}
.c-label--blog
{
    background-color: #8bc34a;
}

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

    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: #87bd70;

    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: #87bd70;
}

.c-schedule
{
    width: 100%;
}
.c-schedule__table
{
    width: 100%;
    margin-bottom: 10px;

    border-collapse: collapse;
}
.c-schedule__table th,
.c-schedule__table td
{
    font-size: 1.4rem;

    padding: 15px 5px;

    text-align: center;

    color: #333;
}
.c-schedule__table th
{
    font-weight: 700;

    border-bottom: 2px solid #8bc34a;
}
.c-schedule__table th:first-child
{
    text-align: left;
    white-space: nowrap;
}
.c-schedule__table th:first-child i
{
    margin-right: 5px;
}
.c-schedule__table td
{
    border-bottom: 1px solid #ddd;
}
.c-schedule__table td:first-child
{
    font-family: Arial, sans-serif;
    font-weight: 700;

    text-align: left;
}
.c-schedule__table tbody tr:last-child td
{
    border-bottom: 2px solid #79b5c9;
}
.c-schedule__note
{
    font-size: 1.1rem;

    margin: 0;

    text-align: right;

    color: #333;
}

.c-fixed-btn
{
    position: fixed;
    z-index: 999;
    top: 50%;
    right: 0;

    display: flex;
    flex-direction: column;

    transform: translateY(-50%);
}
@media screen and (max-width: 767px)
{
    .c-fixed-btn
    {
        top: auto;
        right: 0;
        bottom: 0;
        left: 0;

        flex-direction: row;

        transform: none;
    }
}
.c-fixed-btn__item
{
    display: flex;
    flex-direction: column;

    padding: 20px 15px;

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

    color: #fff;

    align-items: center;
    justify-content: center;
    gap: 10px;
}
.c-fixed-btn__item:visited,
.c-fixed-btn__item:hover
{
    opacity: .8;
    color: #fff;
}
@media screen and (max-width: 767px)
{
    .c-fixed-btn__item
    {
        flex-direction: row;

        padding: 15px;

        flex: 1;
        gap: 8px;
    }
}
.c-fixed-btn__item--blue
{
    border-top-left-radius: 8px;
    background-color: #7ab5ce;
}
@media screen and (max-width: 767px)
{
    .c-fixed-btn__item--blue
    {
        border-radius: 0;
    }
}
.c-fixed-btn__item--green
{
    border-bottom-left-radius: 8px;
    background-color: #87bd70;
}
@media screen and (max-width: 767px)
{
    .c-fixed-btn__item--green
    {
        border-radius: 0;
    }
}
.c-fixed-btn__item i
{
    font-size: 2.2rem;
}
@media screen and (max-width: 767px)
{
    .c-fixed-btn__item i
    {
        font-size: 1.8rem;
    }
}
.c-fixed-btn__text
{
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1;

    letter-spacing: .1em;

    writing-mode: vertical-rl;
    text-orientation: upright;
}
@media screen and (max-width: 767px)
{
    .c-fixed-btn__text
    {
        writing-mode: horizontal-tb;
    }
}

.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: #3e2020;
}
.c-breadcrumb ul li a
{
    text-decoration: none;

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

    content: '>';

    color: #3e2020;
}
.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: 8px;
    padding-left: 1.2em;

    color: #333;
}
.c-list li a
{
    text-decoration: none;

    color: #333;
}
.c-list li a:hover
{
    color: #7ab5ce;
}
.c-list li::before
{
    position: absolute;
    top: .6em;
    left: 0;

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

    content: '';

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

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

    transform: rotate(45deg);

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

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

    transform: rotate(-45deg);

    border-bottom: .125em solid #87bd70;
    border-left: .125em solid #87bd70;
    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: #87bd70;
    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 a:hover
{
    color: #87bd70;
}
.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: #87bd70;
    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: #333; /* 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: #87bd70;
    outline: none;
    box-shadow: 0 0 0 3px rgba(135, 189, 112, .2);
}
input.c-input.is-error,
input.c-input--error,
textarea.c-textarea.is-error,
textarea.c-textarea--error
{
    border-color: #3e2020;
    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: #333;
    border: 1px solid #ccc;
    border-radius: 4px;
    background-color: transparent; /* 背景は親に任せる */

    appearance: none; /* デフォルト矢印を消す */
}
.c-select-wrap select:focus
{
    border-color: #87bd70;
    outline: none;
    box-shadow: 0 0 0 3px rgba(135, 189, 112, .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: 768px)
{
    .c-form-group
    {
        display: flex;

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

    display: flex;

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

    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}
@media screen and (min-width: 768px)
{
    .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: #3e2020; /* 必須：アクセントカラー */
}

.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;
}

.c-pagination
{
    margin-top: 60px;
    margin-bottom: 40px;

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

    margin: 0;
    padding: 0;

    list-style: none;

    justify-content: center;
    align-items: center;
    gap: 10px;
}
@media screen and (max-width: 767px)
{
    .c-pagination ul.page-numbers
    {
        gap: 5px;
    }
}
.c-pagination ul.page-numbers li
{
    display: inline-block;
}
.c-pagination ul.page-numbers .page-numbers
{
    font-size: 1.4rem;
    font-weight: 700;

    display: flex;

    width: 45px;
    height: 45px;

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

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

    justify-content: center;
    align-items: center;
}
@media screen and (max-width: 767px)
{
    .c-pagination ul.page-numbers .page-numbers
    {
        font-size: 1.3rem;

        width: 38px;
        height: 38px;
    }
}
.c-pagination ul.page-numbers .page-numbers:hover
{
    background-color: #f5f5f5;
}
.c-pagination ul.page-numbers .page-numbers.current
{
    pointer-events: none;

    color: #fff;
    border-color: #87bd70;
    background-color: #87bd70;
}
.c-pagination ul.page-numbers .page-numbers.dots
{
    width: auto;

    pointer-events: none;

    border: none;
    background-color: transparent;
}

.p-hero-slider__inner
{
    position: relative;

    width: 90%;
    margin: 0 auto;
}
@media screen and (max-width: 767px)
{
    .p-hero-slider__inner
    {
        width: 100%;
    }
}
.p-hero-slider__list
{
    position: relative;
    z-index: 1;

    height: 70vh;
    margin: 0;
    padding: 0;

    list-style: none;
}
@media screen and (max-width: 767px)
{
    .p-hero-slider__list
    {
        height: 50vh;
    }
}
.p-hero-slider__item
{
    height: 70vh;

    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}
@media screen and (max-width: 767px)
{
    .p-hero-slider__item
    {
        height: 50vh;
    }
}
.p-hero-slider__item--01
{
    background-image: url(../images/slider/slider_01.jpg);
}
.p-hero-slider__item--02
{
    background-image: url(../images/slider/slider_02.jpg);
}
.p-hero-slider__item--03
{
    background-image: url(../images/slider/slider_03.jpg);
}
.p-hero-slider
{
    /* 矢印の設定 */
}
.p-hero-slider .slick-prev,
.p-hero-slider .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;
    border-bottom: none;
    border-left: none;
    outline: none;
    background: transparent;
}
.p-hero-slider .slick-prev
{
    left: 2.5%;

    transform: rotate(-135deg);
}
.p-hero-slider .slick-next
{
    right: 2.5%;

    transform: rotate(45deg);
}
.p-hero-slider
{
    /* ドットナビゲーションの設定 */
}
.p-hero-slider .slick-dots
{
    position: relative;
    z-index: 3;

    margin: -50px 0 0 0;

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

    margin: 0 5px;
}
.p-hero-slider .slick-dots button
{
    display: block;

    width: 8px;
    height: 8px;
    padding: 0;

    color: transparent;
    border: none;
    border-radius: 50%;
    outline: none;
    background: #fff;
}
.p-hero-slider .slick-dots .slick-active button
{
    background: #333;
}
.p-hero-slider__content
{
    position: absolute;
    z-index: 10;
    top: 0;
    left: 0;

    display: flex;
    flex-direction: column;

    width: 100%;
    height: 100%;

    text-align: center;
    pointer-events: none;

    justify-content: center;
    align-items: center;
}
.p-hero-slider__title
{
    font-family: 'Noto Serif JP', serif;
    font-size: 4.8rem;
    font-weight: 700;
    font-weight: 700;
    font-style: normal;
    line-height: 1.5;

    margin-bottom: 60px;

    letter-spacing: .1em;
    pointer-events: auto;

    color: #3e2020;
    text-shadow: 0 0 10px rgba(255, 255, 255, .8);

    font-optical-sizing: auto;
}
@media screen and (max-width: 767px)
{
    .p-hero-slider__title
    {
        font-size: 2.4rem;

        margin-bottom: 30px;
        padding: 0 15px;
    }
}
.p-hero-slider__title .font--mini
{
    font-size: 70% !important;
}
.p-hero-slider__buttons
{
    position: absolute;
    bottom: 60px;

    display: flex;

    width: 100%;

    pointer-events: auto;

    gap: 20px;
    justify-content: center;
}
@media screen and (max-width: 767px)
{
    .p-hero-slider__buttons
    {
        position: absolute;
        bottom: 20px;

        flex-direction: row;

        padding: 0 10px;

        gap: 10px;
    }
}
.p-hero-slider__btn
{
    font-size: 1.8rem;
    font-weight: 700;

    display: flex;

    width: 320px;
    height: 60px;

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

    opacity: .8;
    color: #fff;
    border-radius: 4px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, .1);

    align-items: center;
    justify-content: center;
}
.p-hero-slider__btn:hover
{
    opacity: .4;
}
.p-hero-slider__btn:visited
{
    color: #fff !important;
}
.p-hero-slider__btn--green
{
    background-color: #87bd70;
}
.p-hero-slider__btn--blue
{
    background-color: #7ab5ce;
}
@media screen and (max-width: 767px)
{
    .p-hero-slider__btn
    {
        font-size: 1.3rem;

        width: 48%;
        height: 44px;

        border-radius: 4px;
    }
}

.u-show-sp
{
    display: none;
}
@media screen and (min-width: 768px)
{
    .u-show-sp
    {
        display: block;
    }
}

.p-entry-page .entry-title
{
    font-family: 'Noto Serif JP', serif;
    font-size: 3.2rem;
    font-size: clamp(2rem, 3vw, 3rem);
    font-weight: 700;
    font-weight: 700;
    font-style: normal;
    line-height: 1.3;

    margin: 0 0 24px;
    padding-bottom: 16px;

    font-optical-sizing: auto;
}
.p-entry-page .entry-content
{
    line-height: 1.6;
}
.p-entry-page .entry-footer
{
    font-size: 1.4rem;

    margin-top: 24px;

    color: #666;
}
.p-entry-page h2
{
    font-size: clamp(1.6rem, 2.6vw, 2.6rem);
    font-weight: 700;

    position: relative;

    margin-top: 60px;
    margin-bottom: 40px;
    padding-bottom: 20px;

    text-align: center;

    color: #3e2020;
}
.p-entry-page h2::after
{
    position: absolute;
    bottom: 0;
    left: 50%;

    width: 60px;
    height: 4px;

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

    background-color: #87bd70;
}
@media screen and (max-width: 767px)
{
    .p-entry-page h2
    {
        margin-top: 40px;
        margin-bottom: 30px;
        padding-bottom: 15px;
    }
}
.p-entry-page h3
{
    font-size: clamp(1.8rem, 2.4vw, 2.4rem);
    font-weight: 700;
    line-height: 1.4;

    position: relative;

    margin-top: 50px;
    margin-bottom: 30px;
    padding-bottom: 15px;
    padding-left: 15px;

    color: #333;
    border-bottom: 1px dashed #ccc;
}
.p-entry-page h3::before
{
    position: absolute;
    top: calc(50% - 7.5px);
    left: 0;

    width: 5px;
    height: 24px;

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

    background-color: #87bd70;
}
@media screen and (max-width: 767px)
{
    .p-entry-page h3
    {
        margin-top: 40px;
        margin-bottom: 25px;
        padding-left: 12px;
    }
    .p-entry-page h3::before
    {
        height: 20px;
    }
}
.p-entry-page h4
{
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.5;

    margin-top: 40px;
    margin-bottom: 20px;

    color: #87bd70;
}
@media screen and (max-width: 767px)
{
    .p-entry-page h4
    {
        font-size: 1.6rem;

        margin-top: 30px;
        margin-bottom: 15px;
    }
}
.p-entry-page h5
{
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1.4;

    position: relative;

    margin-top: 30px;
    margin-bottom: 15px;
    padding-left: 22px;

    color: #333;
}
.p-entry-page h5::before
{
    position: absolute;
    top: calc(50% - 6px);
    left: 0;

    width: 12px;
    height: 12px;

    content: '';

    border-radius: 50%;
    background-color: #87bd70;
}
@media screen and (max-width: 767px)
{
    .p-entry-page h5
    {
        font-size: 1.6rem;

        margin-top: 25px;
        padding-left: 18px;
    }
    .p-entry-page h5::before
    {
        top: calc(50% - 5px);

        width: 10px;
        height: 10px;
    }
}
.p-entry-page .subTtl
{
    font-family: 'Noto Serif JP', serif;
    font-size: 1.8rem;
    font-weight: 700;
    font-style: normal;

    color: #3e2020;

    font-optical-sizing: auto;
}
.p-entry-page .p-history-list
{
    display: grid;

    margin-bottom: 40px;

    grid-template-columns: 160px 1fr;
    gap: 25px 40px;
    align-items: start;
}
.p-entry-page .p-history-list dt
{
    font-size: 1.4rem;
    font-weight: 700;

    margin: 0;
    padding: 8px 15px;

    text-align: center;

    color: #333;
    border-radius: 20px;
    background-color: #e9ebd4;
}
.p-entry-page .p-history-list dd
{
    font-size: 1.4rem;
    line-height: 1.8;

    margin: 0;
    padding-top: 6px;

    color: #333;
}
@media screen and (max-width: 575px)
{
    .p-entry-page .p-history-list
    {
        grid-template-columns: 1fr;
        gap: 10px;
    }
    .p-entry-page .p-history-list dt
    {
        width: fit-content;
        min-width: 120px;
    }
    .p-entry-page .p-history-list dd
    {
        margin-bottom: 20px;
        padding-top: 0;
        padding-left: 10px;
    }
}

.p-entry-post
{
    margin-bottom: 40px;
    padding-bottom: 40px;

    border-bottom: 1px solid #ddd;
}
.p-entry-post:last-of-type
{
    margin-bottom: 0;

    border-bottom: none;
}
.p-entry-post .entry-header
{
    margin-bottom: 16px;
}
.p-entry-post .entry-title
{
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.4;

    margin: 0 0 .25em;
}
.p-entry-post .entry-title a
{
    text-decoration: none;

    color: #333;
}
.p-entry-post .entry-title a:hover,
.p-entry-post .entry-title a:focus
{
    text-decoration: underline;

    color: #2563eb;
}
.p-entry-post .entry-meta
{
    font-size: 1.4rem;
    font-weight: bold;

    color: #3e2020;
}
.p-entry-post .entry-content
{
    line-height: 1.6;

    margin-top: 16px;
}
.p-entry-post .entry-footer
{
    font-size: 1.4rem;

    margin-top: 16px;

    color: #666;
}
.p-entry-post .entry-title
{
    font-family: 'Noto Serif JP', serif;
    font-size: 3.2rem;
    font-size: clamp(2rem, 3vw, 3rem);
    font-weight: 700;
    font-weight: 700;
    font-style: normal;
    line-height: 1.3;

    margin: 0 0 24px;
    padding-bottom: 16px;

    font-optical-sizing: auto;
}
.p-entry-post .single-title
{
    font-size: clamp(1.8rem, 2.6vw, 2.6rem);

    padding: 0 0 1em;

    color: #3e2020;
    border-bottom: 1px dashed #666;
}
.p-entry-post h2
{
    font-size: clamp(1.8rem, 2.6vw, 2.6rem) !important;
    font-weight: 700;

    position: relative;

    margin-top: 60px;
    margin-bottom: 40px;
    padding-bottom: 20px;

    text-align: center;

    color: #3e2020;
}
.p-entry-post h2::after
{
    position: absolute;
    bottom: 0;
    left: 50%;

    width: 60px;
    height: 4px;

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

    background-color: #7ab5ce;
}
@media screen and (max-width: 767px)
{
    .p-entry-post h2
    {
        font-size: 2.2rem;

        margin-top: 40px;
        margin-bottom: 30px;
        padding-bottom: 15px;
    }
}
.p-entry-post ol,
.p-entry-post ul
{
    margin: 0 0 0 20px;
    padding: 0;
}

/* ==========================================================================
   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: #87bd70;
}

@media (max-width: 767px)
{
    .p-entry-pager__item
    {
        font-size: 14px;
    }
    .p-entry-pager__item a
    {
        padding: 15px 5px;
    }
}
.p-page-header .entry-title
{
    font-family: 'Noto Serif JP', serif;
    font-size: 3.2rem;
    font-size: clamp(2rem, 3vw, 3rem);
    font-weight: 700;
    font-weight: 700;
    font-style: normal;
    line-height: 1.3;

    margin: 0 0 24px;
    padding-bottom: 16px;

    font-optical-sizing: auto;
}

.sticky
{
    display: block;
}

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

.updated:not(.published)
{
    display: none;
}

.page-content,
.entry-content,
.entry-summary
{
    margin: 1.5em 0 0;
}

.page-links
{
    clear: both;

    margin: 0 0 1.5em;
}

.p-page-header
{
    margin-bottom: 24px;
}
.p-page-header__title
{
    font-family: 'Noto Serif JP', serif;
    font-size: 3.2rem;
    font-size: clamp(2rem, 3vw, 3rem);
    font-weight: 700;
    font-weight: 700;
    font-style: normal;
    line-height: 1.3;

    margin: 0 0 24px;
    padding-bottom: 16px;

    font-optical-sizing: auto;
}
.p-page-header__description
{
    margin-top: .5em;

    color: #666;
}

.p-404__title
{
    font-family: 'Noto Serif JP', serif;
    font-size: 3.2rem;
    font-size: clamp(2rem, 3vw, 3rem);
    font-weight: 700;
    font-weight: 700;
    font-style: normal;
    line-height: 1.3;

    margin: 0 0 24px;
    padding-bottom: 16px;

    font-optical-sizing: auto;
}
.p-404__body
{
    margin-top: 24px;
}
.p-404 .single-title
{
    font-size: clamp(1.8rem, 2.6vw, 2.6rem);

    padding: 0 0 1em;

    color: #3e2020;
    border-bottom: 1px dashed #666;
}

.p-entry-search
{
    margin-bottom: 40px;
    padding-bottom: 40px;

    border-bottom: 1px solid #ddd;
}
.p-entry-search__title
{
    font-size: 2rem;
    font-weight: 700;

    margin-bottom: .25em;
}
.p-entry-search__meta
{
    font-size: 1.4rem;

    margin-bottom: .5em;

    color: #666;
}
.p-entry-search__summary
{
    margin-top: .5em;
}
.p-entry-search__footer
{
    font-size: 1.4rem;

    margin-top: .5em;

    color: #666;
}

.p-no-results__title
{
    font-family: 'Noto Serif JP', serif;
    font-size: 3.2rem;
    font-size: clamp(2rem, 3vw, 3rem);
    font-weight: 700;
    font-weight: 700;
    font-style: normal;
    line-height: 1.3;

    margin: 0 0 24px;
    padding-bottom: 16px;

    font-optical-sizing: auto;
}
.p-no-results__body
{
    margin-top: 24px;
}

.p-archive-list__date
{
    font-size: 1.4rem;
    font-weight: bold;

    margin-right: 1em;

    color: #87bd70;
}
.p-archive-list a:hover
{
    color: #87bd70 !important;
}

.widget
{
    margin: 0 0 1.5em;
}
.widget select
{
    max-width: 100%;
}

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

    border: none;
}

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

.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;
}

.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 .site-footer
{
    display: none;
}

.infinity-end.neverending .site-footer
{
    display: block;
}

.p-top-news
{
    padding-block: 60px;
}
.p-top-news__inner
{
    display: flex;

    max-width: 1000px;

    margin-inline: auto;
    padding-inline: 20px;
    align-items: flex-start;
    justify-content: space-between;
    gap: 60px;
}
@media screen and (max-width: 767px)
{
    .p-top-news__inner
    {
        flex-direction: column;

        align-items: center;
        gap: 30px;
    }
}
.p-top-news__header
{
    width: 200px;
    padding-top: 40px;
    padding-bottom: 10px;

    text-align: center;

    background-image: url('../images/top/news-bg.png');
    background-repeat: no-repeat;
    background-position: center top;
    background-size: contain;

    flex-shrink: 0;
}
@media screen and (max-width: 767px)
{
    .p-top-news__header
    {
        width: 100%;
    }
}
.p-top-news__heading
{
    font-size: 3.2rem;
    font-weight: 700;
    line-height: 1;

    margin-bottom: 5px;

    letter-spacing: .05em;

    color: #8bc34a;
}
.p-top-news__sub
{
    font-size: 1.4rem;
    font-weight: 700;

    margin: 0;

    color: #333;
}
.p-top-news__content
{
    width: 100%;

    flex-grow: 1;
}
.p-top-news__list
{
    margin: 0;
    padding: 0;

    list-style: none;

    border-bottom: 1px dashed #ddd;
}
.p-top-news__item
{
    border-top: 1px dashed #ddd;
}
.p-top-news__link
{
    display: flex;

    padding: 20px 0;

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

    color: inherit;

    align-items: center;
    gap: 20px;
}
.p-top-news__link:hover
{
    opacity: .7;
}
@media screen and (max-width: 767px)
{
    .p-top-news__link
    {
        flex-wrap: wrap;
        gap: 10px;
    }
}
.p-top-news__date
{
    font-family: Arial, sans-serif;
    font-size: 1.5rem;
    font-weight: 700;

    color: #333;
}
.p-top-news__title
{
    font-size: 1.5rem;
    font-weight: 400;
    line-height: 1.5;

    margin: 0;

    color: #333;
}
@media screen and (max-width: 767px)
{
    .p-top-news__title
    {
        width: 100%;
        margin-top: 5px;
    }
}

.p-top-features
{
    padding-bottom: 80px;
}
.p-top-features__inner
{
    max-width: 1000px;

    margin-inline: auto;
}
.p-top-features .c-section-header
{
    margin-top: 40px;
    margin-bottom: 50px;
}
.p-top-features__flow
{
    display: flex;

    align-items: center;
    justify-content: space-between;
    gap: 20px;
}
@media screen and (max-width: 979px)
{
    .p-top-features__flow
    {
        flex-direction: column;
    }
}
.p-top-features__item
{
    display: flex;
    flex-direction: column;

    min-height: 260px;
    padding: 20px 30px 40px;

    border-radius: 12px;

    flex: 1;
    align-items: center;
}
@media screen and (max-width: 767px)
{
    .p-top-features__item
    {
        width: 100%;
        min-height: auto;
        padding: 0 20px 20px;
    }
}
.p-top-features__item--blue
{
    background-color: #def4f8;
}
.p-top-features__item--green
{
    background-color: #e5f2cd;
}
.p-top-features__item--image
{
    background-color: transparent;
    background-image: url('../images/top/tree-bg.png');
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
.p-top-features__item-title
{
    font-size: 2rem;
    font-weight: 700;

    display: flex;

    margin-bottom: 20px;

    color: #4a2e1b;

    align-items: center;
    gap: 15px;
}
.p-top-features__item-title::before,
.p-top-features__item-title::after
{
    display: inline-block;

    width: 40px;
    height: 1px;

    content: '';

    background-color: #999;
}
.p-top-features__item-title--accent
{
    font-size: 2.4rem;

    color: #8bc34a;
}
.p-top-features__item-title--accent::before,
.p-top-features__item-title--accent::after
{
    display: none;
}
.p-top-features__item-text
{
    font-size: 1.4rem;
    line-height: 1.8;

    margin: 0;

    text-align: left;

    color: #333;
}
.p-top-features__icon
{
    font-size: 3rem;

    color: #87bd70;

    flex-shrink: 0;
}
@media screen and (max-width: 767px)
{
    .p-top-features__icon
    {
        transform: rotate(90deg);

        margin-block: 10px;
    }
}

.p-top-about
{
    overflow: hidden;

    background-image: url('../images/top/leaf-bg.png');
    background-repeat: repeat-y;
    background-position: center top;
    background-size: contain;
}
.p-top-about__block
{
    display: flex;

    width: 100%;

    align-items: stretch;
}
.p-top-about__block--reverse
{
    flex-direction: row-reverse;
}
@media screen and (max-width: 767px)
{
    .p-top-about__block
    {
        flex-direction: column-reverse;
    }
    .p-top-about__block.p-top-about__block--reverse
    {
        flex-direction: column-reverse;
    }
}
.p-top-about__content
{
    display: flex;
    flex-direction: column;

    width: 50%;
    padding: 60px 5%;

    justify-content: center;
}
@media screen and (max-width: 767px)
{
    .p-top-about__content
    {
        width: 100%;
        padding: 40px 20px 60px;
    }
}
.p-top-about__content-inner
{
    max-width: 500px;

    margin-inline: auto;
}
.p-top-about__title
{
    margin-bottom: 25px;

    text-align: left;
}
.p-top-about__text
{
    font-size: 1.5rem;
    line-height: 1.8;

    margin-bottom: 30px;

    color: #333;
}
.p-top-about__buttons
{
    display: flex;

    flex-wrap: wrap;
    gap: 15px;
}
.p-top-about__image
{
    width: 50%;
}
@media screen and (max-width: 767px)
{
    .p-top-about__image
    {
        width: 100%;
        height: 300px;
    }
}
.p-top-about__image img
{
    width: 100%;
    height: 100%;

    vertical-align: bottom;

    object-fit: cover;
}

.p-top-first-visit
{
    background-color: #e9ebd4;

    padding-block: 80px;
}
.p-top-first-visit__inner
{
    max-width: 1000px;

    margin-inline: auto;
    padding-inline: 20px;
}
.p-top-first-visit__box
{
    padding: 60px 80px;

    background-color: #fff;
}
@media screen and (max-width: 767px)
{
    .p-top-first-visit__box
    {
        padding: 40px 20px;
    }
}
.p-top-first-visit__title
{
    margin-bottom: 30px;
}
.p-top-first-visit__text
{
    font-size: 1.5rem;
    line-height: 1.8;

    margin-bottom: 40px;

    color: #333;
}
.p-top-first-visit__buttons
{
    display: flex;

    flex-wrap: wrap;
    gap: 20px;
}
@media screen and (max-width: 767px)
{
    .p-top-first-visit__buttons
    {
        flex-direction: column;

        align-items: center;
    }
    .p-top-first-visit__buttons .c-btn
    {
        width: 100%;
        max-width: 320px;
    }
}
.p-top-first-visit__info
{
    display: flex;

    margin-top: 60px;

    justify-content: space-between;
    gap: 60px;
}
@media screen and (max-width: 767px)
{
    .p-top-first-visit__info
    {
        flex-direction: column;

        gap: 40px;
    }
}
.p-top-first-visit__info-left,
.p-top-first-visit__info-right
{
    width: calc(50% - 30px);
}
@media screen and (max-width: 767px)
{
    .p-top-first-visit__info-left,
    .p-top-first-visit__info-right
    {
        width: 100%;
    }
}
.p-top-first-visit__contacts
{
    display: flex;
    flex-direction: column;

    gap: 15px;
}
.p-top-first-visit__contact-item
{
    padding: 20px;

    text-align: center;
}
.p-top-first-visit__contact-item--blue
{
    background-color: #def4f8;
}
.p-top-first-visit__contact-item--green
{
    background-color: #e5f2cd;
}
.p-top-first-visit__contact-item--yellow
{
    background-color: #f7eed3;
}
.p-top-first-visit__contact-name
{
    font-size: 1.4rem;
    font-weight: 700;

    margin-bottom: 5px;

    color: #333;
}
.p-top-first-visit__contact-tel
{
    font-family: Arial, sans-serif;
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 1;

    margin: 0;

    color: #4a2e1b;
}
.p-top-first-visit__contact-tel i
{
    font-size: 2.2rem;

    margin-right: 5px;
}
.p-top-first-visit__map-title
{
    font-size: 1.6rem;
    font-weight: 700;

    margin-bottom: 15px;

    text-align: center;

    color: #333;
}
.p-top-first-visit__map
{
    position: relative;

    width: 100%;
    height: 0;
    margin-bottom: 20px;
    padding-top: 75%;
}
.p-top-first-visit__map iframe
{
    position: absolute;
    top: 0;
    left: 0;

    width: 100%;
    height: 100%;
}
.p-top-first-visit__access
{
    font-size: 1.4rem;
    line-height: 1.6;

    color: #333;
}
.p-top-first-visit__access p
{
    margin-bottom: 10px;
}
.p-top-first-visit__access ul
{
    margin: 0;
    padding: 0;

    list-style: none;
}
.p-top-first-visit__access ul li
{
    position: relative;

    margin-bottom: 5px;
    padding-left: 1.2em;
}
.p-top-first-visit__access ul li::before
{
    font-size: 1rem;

    position: absolute;
    top: 2px;
    left: 0;

    content: '■';

    color: #8bc34a;
}

.screen-reader-text
{
    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%);
}
.screen-reader-text:focus
{
    font-size: 1.4rem;
    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: 4px;
    background-color: #f1f1f1;
    box-shadow: 0 0 2px 2px rgba(0, 0, 0, .6);

    clip-path: none;
}

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

.u-skip-link:focus
{
    z-index: 100000;
    top: 5px;
    left: 5px;
}

.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;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.u-text-left
{
    text-align: left !important;
}

.u-text-center
{
    text-align: center !important;
}

.u-text-right
{
    text-align: right !important;
}

.u-text-bold
{
    font-weight: 700 !important;
}

@media screen and (min-width: 768px)
{
    .u-hidden-pc
    {
        display: none !important;
    }
}

.u-hidden-sp
{
    display: none !important;
}
@media screen and (min-width: 768px)
{
    .u-hidden-sp
    {
        display: revert !important;
    }
}

@media screen and (min-width: 768px)
{
    .u-row-reverse
    {
        flex-direction: row-reverse !important;
    }
}

.u-inner60
{
    width: 100%;
}
@media screen and (min-width: 768px)
{
    .u-inner60
    {
        width: 60%;
        margin: 0 auto;
    }
}

.u-inner70
{
    width: 100%;
}
@media screen and (min-width: 768px)
{
    .u-inner70
    {
        width: 70%;
        margin: 0 auto;
    }
}

.u-inner80
{
    width: 100%;
}
@media screen and (min-width: 768px)
{
    .u-inner80
    {
        width: 80%;
        margin: 0 auto;
    }
}

.u-inner90
{
    width: 100%;
}
@media screen and (min-width: 768px)
{
    .u-inner90
    {
        width: 90%;
        margin: 0 auto;
    }
}

/*
.noto-sans-jp-<uniquifier> {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: <weight>;
  font-style: normal;
}


.noto-serif-jp-<uniquifier> {
  font-family: "Noto Serif JP", serif;
  font-optical-sizing: auto;
  font-weight: <weight>;
  font-style: normal;
}

.m-plus-rounded-1c-regular {
  font-family: "M PLUS Rounded 1c", sans-serif;
  font-weight: 400;
  font-style: normal;
}
  */
/*# sourceMappingURL=style.css.map */
