@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=Kaisei+Decol&family=M+PLUS+Rounded+1c&family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&family=Zen+Maru+Gothic&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: 'Zen Maru Gothic', sans-serif;
    font-size: 1.6rem;
    font-weight: 400;
    font-style: normal;
    line-height: 1.6;

    color: #333;
    background: #fff;
    background: #333;
    background-color: #faf5e8;
}
body.page
{
    margin-bottom: 0 !important;
}

a
{
    text-decoration: none;

    color: #333 !important; /* サイト全体の基本のリンク色 */
    /* ▼ 追記：訪問済みのリンクも元の色を強制的に維持する ▼ */
}
a:visited
{
    color: inherit !important; /* 親要素の色を引き継ぐ */
}

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
{
    display: flex;
    overflow-x: hidden;
    flex-direction: column;

    min-height: 100vh;

    background-image: url('../images/top/menu-bk.png'); /* CSSファイルからの相対パス */
    background-repeat: no-repeat;
    background-position: center top;
    background-size: 100% auto;
}
.l-header
{
    position: fixed;
    z-index: 10000;
    top: 0;
    left: 0;

    width: 100%;

    transition: transform .3s ease-in-out;

    background-color: #fff;
}
.l-header.is-hidden
{
    transform: translateY(-120%);
}
@media screen and (max-width: 767px)
{
    .l-header
    {
        border-bottom: 6px solid #eaddca;
        background-color: #fff;
    }
}
.l-header::after
{
    position: absolute;
    z-index: -1;
    top: 100%;
    left: 0;

    width: 100%;
    height: 40px;

    content: '';

    background-image: url('../images/common/wankyoku.svg');
    background-repeat: no-repeat;
    background-position: top center;
    background-size: 100% 100%;
}
@media screen and (max-width: 767px)
{
    .l-header::after
    {
        display: none;
    }
}
.l-header__inner
{
    display: flex;
    flex-direction: column;

    max-width: 1200px;
    padding-top: 16px;
    padding-bottom: 16px;

    margin-inline: auto;
    padding-inline: 24px;
    gap: 20px;
}
@media screen and (max-width: 767px)
{
    .l-header__inner
    {
        gap: 0;
    }
}
.l-header__top
{
    display: flex;

    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px;
}
.l-header__bottom
{
    display: flex;

    width: 100%;

    justify-content: center;
}
.l-header__branding
{
    flex-shrink: 0;
}
.l-header__site-title
{
    line-height: 1;

    margin: 0;
}
.l-header__site-title a
{
    display: inline-block;

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

    color: inherit;
}
.l-header__site-title a:hover,
.l-header__site-title a:focus
{
    opacity: .8;
}
.l-header__site-title img
{
    max-width: 250px;
    height: auto;
}

.p-header-contact
{
    display: flex;

    align-items: center;
    gap: 15px;
}
.p-header-contact__tel
{
    display: flex;
    flex-direction: column;

    padding: 8px 24px;

    text-align: center;

    color: #fff;
    border-radius: 50px;
    background-color: #e60012;

    align-items: center;
    justify-content: center;
}
.p-header-contact__tel-number
{
    font-size: 2.4rem;
    font-weight: bold;
    line-height: 1.2;

    letter-spacing: .05em;
}
.p-header-contact__tel-time
{
    font-size: 1.2rem;
    line-height: 1.2;

    margin-top: 4px;
}
.p-header-contact__btn
{
    display: flex;
    flex-direction: column;

    width: 80px;
    height: 80px;

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

    color: #fff !important;
    border-radius: 50%;
    background-color: #3ca032;

    align-items: center;
    justify-content: center;
}
.p-header-contact__btn:visited,
.p-header-contact__btn:active,
.p-header-contact__btn:focus
{
    color: #fff !important;
}
.p-header-contact__btn i,
.p-header-contact__btn svg
{
    font-size: 200%;

    color: #fff !important;
}
.p-header-contact__btn:hover
{
    opacity: .8;
    color: #fff !important;
}
.p-header-contact__btn-icon
{
    width: 28px;
    height: auto;
    margin-bottom: 4px;
}
.p-header-contact__btn-text
{
    font-size: 1.1rem;
    font-weight: bold;
}

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

    flex: 1;
    margin-inline: auto;
    padding-inline: 8px;
}
@media screen and (min-width: 768px)
{
    .l-wrap
    {
        padding-inline: 40px;
    }
}
@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;
}

/* Footer Layout
-------------------------------------------------- */
.l-footer
{
    padding: 0 20px 0;
}
@media screen and (max-width: 767px)
{
    .l-footer
    {
        padding: 0 8px 0;
    }
}
.l-footer__inner
{
    padding: 60px 40px;

    color: #fff;
    border-radius: 30px 30px 0 0;
    background-color: #df0111;
}
@media screen and (max-width: 767px)
{
    .l-footer__inner
    {
        padding: 40px 20px;

        border-radius: 20px 20px 0 0;
    }
}
.l-footer__container
{
    max-width: 1100px;
    margin: 0 auto;
}
.l-footer__nav
{
    margin-bottom: 60px;
}
@media screen and (max-width: 767px)
{
    .l-footer__nav
    {
        display: none;
    }
}
.l-footer__nav-list
{
    display: flex;

    margin: 0;
    padding: 0;

    list-style: none;

    justify-content: center;
    align-items: center;
}
.l-footer__nav-list li
{
    padding: 0 20px;

    border-right: 1px solid #fff;
}
.l-footer__nav-list li:last-child
{
    border-right: none;
}
.l-footer__nav-list li a
{
    font-size: 1.4rem;
    font-weight: 700;

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

    color: #fff !important;
}
.l-footer__nav-list li a:visited,
.l-footer__nav-list li a:active,
.l-footer__nav-list li a:hover
{
    opacity: .7;
}
.l-footer__content
{
    display: flex;

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

        gap: 50px;
    }
}
.l-footer__info
{
    width: 48%;
}
@media screen and (max-width: 767px)
{
    .l-footer__info
    {
        width: 100%;
    }
}
.l-footer__logo
{
    display: inline-block;

    margin-bottom: 30px;
    padding: 15px 30px;

    border-radius: 50px;
    background-color: #fff;
}
@media screen and (max-width: 767px)
{
    .l-footer__logo
    {
        display: table;

        margin: 0 auto 30px;
    }
}
.l-footer__logo img
{
    display: block;

    width: 280px;
    height: auto;
}
@media screen and (max-width: 575px)
{
    .l-footer__logo img
    {
        width: 200px;
    }
}
@media screen and (max-width: 767px)
{
    .l-footer__btn-wrap
    {
        margin-top: 20px;

        text-align: center;
    }
}
.l-footer__btn
{
    display: inline-flex;
}
.l-footer__btn:visited,
.l-footer__btn:hover,
.l-footer__btn:active
{
    color: #333 !important;
}
.l-footer__company
{
    display: flex;

    margin-bottom: 40px;

    border-top: 1px dashed rgba(255, 255, 255, .6);

    flex-wrap: wrap;
}
.l-footer__company dt,
.l-footer__company dd
{
    font-size: 1.4rem;
    line-height: 1.6;

    margin: 0;
    padding: 15px 0;

    border-bottom: 1px dashed rgba(255, 255, 255, .6);
}
.l-footer__company dt
{
    font-weight: 700;

    width: 25%;
}
.l-footer__company dd
{
    width: 75%;
}
@media screen and (max-width: 575px)
{
    .l-footer__company dt,
    .l-footer__company dd
    {
        width: 100%;
        padding: 10px 0;
    }
    .l-footer__company dt
    {
        padding-bottom: 0;

        border-bottom: none;
    }
}
.l-footer__btn
{
    font-size: 1.4rem;
    font-weight: 700;

    position: relative;

    display: inline-flex;

    width: 260px;
    padding: 15px 30px;

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

    color: #df0111;
    border-radius: 40px;
    background-color: #fff;

    align-items: center;
    justify-content: center;
}
.l-footer__btn:hover
{
    transform: translateY(-3px);

    opacity: .9;
}
.l-footer__btn-arrow
{
    position: absolute;
    top: 50%;
    right: 25px;

    width: 8px;
    height: 8px;

    transform: translateY(-50%) rotate(45deg);

    border-top: 2px solid #df0111;
    border-right: 2px solid #df0111;
}
.l-footer__access
{
    width: 48%;
}
@media screen and (max-width: 767px)
{
    .l-footer__access
    {
        width: 100%;
    }
}
.l-footer__access-title
{
    font-size: 2.2rem;
    font-weight: 700;

    margin-bottom: 20px;

    color: #fff;
}
.l-footer__map
{
    margin-bottom: 25px;
}
.l-footer__map iframe
{
    vertical-align: bottom;

    border-radius: 10px;
}
.l-footer__access-list
{
    margin: 0;
    padding: 0;

    list-style: none;
}
.l-footer__access-list li
{
    margin-bottom: 20px;
}
.l-footer__access-list li:last-child
{
    margin-bottom: 0;
}
.l-footer__access-list p
{
    font-size: 1.3rem;
    line-height: 1.5;

    margin: 0;
    padding-left: 35px;
}
.l-footer__access-method
{
    font-size: 1.6rem;
    font-weight: 700;

    display: flex;

    margin-bottom: 8px;

    align-items: center;
    gap: 10px;
}
.l-footer__access-method i
{
    font-size: 20px;

    width: 25px;

    text-align: center;
}
.l-footer__copyright
{
    margin-top: 60px;
    padding-top: 25px;

    text-align: center;

    border-top: 1px solid rgba(255, 255, 255, .3);
}
.l-footer__copyright small
{
    font-size: 1.2rem;

    letter-spacing: .05em;

    color: rgba(255, 255, 255, .8);
}
@media screen and (max-width: 767px)
{
    .l-footer__copyright
    {
        margin-top: 40px;
        padding-top: 20px;
    }
}

.c-btn
{
    line-height: 1;

    display: inline-block;

    padding: .6em 1em .4em;

    cursor: pointer;
    text-decoration: none;

    color: rgba(0, 0, 0, .8);
    border: 1px solid;
    border-color: #ddd #ddd #bbb;
    border-radius: 4px;
    background: #e6e6e6;
}
.c-btn:hover
{
    border-color: #ddd #bbb #aaa;
}
.c-btn:active,
.c-btn:focus
{
    border-color: #aaa #bbb #bbb;
}

#sb_instagram .sbi_follow_btn a
{
    color: #fff !important;
}

/*
.c-form {
  &__field {
    display: block;
    width: 100%;
    color: $color-text-light;
    border: 1px solid $color-border;
    border-radius: $radius-base;
    padding: 3px;

    &:focus {
      color: $color-text-lighter;
    }
  }

  &__select {
    border: 1px solid $color-border;
    max-width: 100%;
  }

  &__textarea {
    width: 100%;
    color: $color-text-light;
    border: 1px solid $color-border;
    border-radius: $radius-base;
    padding: 3px;

    &:focus {
      color: $color-text-lighter;
    }
  }
}
*/
.c-form-wrapper
{
    width: 100%;
    max-width: 800px;
    margin: 0 auto;
}

.c-form-row
{
    display: flex;
    flex-direction: column;

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

    border-bottom: 1px dashed #ddd;
}
.c-form-row:last-of-type
{
    border-bottom: none;
}
@media (min-width: 768px)
{
    .c-form-row
    {
        flex-direction: row;

        align-items: flex-start;
    }
}

.c-form-label
{
    font-weight: bold;

    display: flex;

    margin-bottom: 10px;

    align-items: center;
}
@media (min-width: 768px)
{
    .c-form-label
    {
        margin-bottom: 0;
        padding-top: 12px;

        flex: 0 0 240px;
    }
}

.c-form-badge
{
    font-size: 12px;
    font-weight: normal;
    line-height: 1;

    display: inline-block;

    margin-left: 10px;
    padding: 3px 8px;

    border-radius: 4px;
}
.c-form-badge--required
{
    color: #fff;
    background-color: #e60000;
}
.c-form-badge--optional
{
    color: #fff;
    background-color: #999;
}

.c-form-input
{
    width: 100%;

    flex: 1;
}

.c-form__field,
.c-form__textarea,
.c-form__select
{
    font-size: 16px !important;

    display: block;

    box-sizing: border-box !important; /* ★追加：余白を含めて幅100%にピシッと収める */
    width: 100% !important;
    padding: 12px 15px !important; /* ★修正：!important をつけてテーマの標準設定に打ち勝つ！ */

    transition: all .3s ease;

    color: #666;
    border: 1px solid #ddd !important;
    border-radius: 4px !important;
    background-color: #fafafa !important;

    appearance: none;
}
.c-form__field:focus,
.c-form__textarea:focus,
.c-form__select:focus
{
    color: #111;
    border-color: #3ca032 !important;
    outline: none;
    background-color: #fff !important;
    box-shadow: 0 0 0 2px rgba(60, 160, 50, .2) !important;
}
.c-form__field::placeholder,
.c-form__textarea::placeholder,
.c-form__select::placeholder
{
    color: #bbb;
}
.c-form
{
    /* テキスト入力欄とセレクトボックスの高さを強制的に一致させる */
}
.c-form__field,
.c-form__select
{
    height: 52px !important;
}
.c-form__textarea
{
    line-height: 1.6;

    min-height: 240px !important;

    resize: vertical;
}
.c-form__select
{
    padding-right: 40px;

    cursor: pointer;

    background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23333%22%20d%3D%22M7.41%208.59L12%2013.17l4.59-4.58L18%2010l-6%206-6-6%201.41-1.41z%22%2F%3E%3C%2Fsvg%3E');
    background-repeat: no-repeat;
    background-position: right 15px center;
    background-size: 16px;
}
.c-form__file
{
    display: block;

    width: 100%;
    padding: 5px 0;

    cursor: pointer;

    color: #666;
    /* ★ 「ファイルを選択」ボタン部分だけをオシャレにする魔法 */
}
.c-form__file::file-selector-button
{
    font-size: 14px;
    font-weight: bold;

    margin-right: 15px;
    padding: 10px 24px;

    cursor: pointer;
    transition: all .3s ease;

    color: #333;
    border: 1px solid #ddd;
    border-radius: 50px;
    background-color: #fff;
    box-shadow: 0 2px 4px rgba(0, 0, 0, .05);
}
.c-form__file::file-selector-button:hover
{
    color: #3ca032;
    border-color: #3ca032;
    background-color: #fafafa;
}

.wpcf7-list-item
{
    display: inline-block;

    margin: 0 20px 10px 0 !important;
}
.wpcf7-list-item input[type=radio],
.wpcf7-list-item input[type=checkbox]
{
    margin-right: 5px;

    cursor: pointer;
    transform: scale(1.2);
}

.c-form-submit
{
    margin-top: 40px;

    text-align: center;
}
.c-form-submit .c-btn-submit
{
    font-size: 18px;
    font-weight: bold;

    display: inline-flex;

    padding: 16px 80px;

    cursor: pointer;
    transition: opacity .3s ease;

    color: #fff;
    border: none;
    border-radius: 50px;
    background-color: #3ca032;
    box-shadow: 0 4px 10px rgba(0, 0, 0, .1);

    align-items: center;
    justify-content: center;
    appearance: none;
}
.c-form-submit .c-btn-submit:hover
{
    opacity: .8;
}

.wpcf7-not-valid-tip
{
    font-size: 13px !important;

    margin-top: 5px !important;

    color: #e60000 !important;
}

.wpcf7-response-output
{
    font-weight: bold;

    margin: 40px 0 0 !important;
    padding: 15px 20px !important;

    border-radius: 8px;
}

.c-form-privacy
{
    width: 100%;
    max-width: 800px;
    margin: 40px auto 0;
}
.c-form-privacy__title
{
    font-size: 16px;
    font-weight: bold;

    margin-bottom: 12px;

    text-align: center;

    color: #333;
}
.c-form-privacy__box
{
    font-size: 13px !important; /* 規約らしく少し小さめの文字 */
    line-height: 1.7 !important;

    overflow-y: scroll; /* ★縦スクロールを強制 */

    box-sizing: border-box !important;
    height: 160px; /* ★縦スクロールさせるための高さ固定 */
    padding: 20px !important;

    text-align: left !important;

    color: #666 !important;
    border: 1px solid #ddd !important;
    border-radius: 4px !important;
    background-color: #fff !important;
}
.c-form-privacy__box::-webkit-scrollbar
{
    width: 7px;
}
.c-form-privacy__box::-webkit-scrollbar-track
{
    border-radius: 0 4px 4px 0;
    background: #fafafa;
}
.c-form-privacy__box::-webkit-scrollbar-thumb
{
    border-radius: 10px;
    background: #ccc;
}
.c-form-privacy__box::-webkit-scrollbar-thumb:hover
{
    background: #aaa;
}
.c-form-privacy__box h3
{
    font-size: 14px !important;
    font-weight: bold !important;

    margin: 20px 0 8px 0 !important;

    color: #333 !important;
}
.c-form-privacy__box h3:first-of-type
{
    margin-top: 0 !important;
}
.c-form-privacy__box p
{
    margin: 0 0 10px 0 !important;
}
.c-form-privacy__box ul
{
    margin: 0 0 15px 0 !important;
    padding-left: 20px !important;

    list-style-type: disc !important;
}
.c-form-privacy__box ul li
{
    margin-bottom: 5px !important;
    padding: 0 !important;

    color: #666 !important;
    border-bottom: none !important; /* フォーム行の点線を打ち消す */
}
.c-form-privacy__check
{
    margin-top: 20px;

    text-align: center;
}
.c-form-privacy__check .wpcf7-acceptance
{
    display: inline-block;
}
.c-form-privacy__check .wpcf7-acceptance label
{
    font-size: 15px;
    font-weight: bold;

    cursor: pointer;

    color: #333;
}
.c-form-privacy__check .wpcf7-acceptance input[type=checkbox]
{
    margin-right: 8px;

    cursor: pointer;
    transform: scale(1.2); /* タップしやすいように少し拡大 */
    vertical-align: middle;
}

.wpcf7-form.is-confirm-mode
{
    /* 1. 入力欄の枠線や背景を消して、ただのテキスト風にする */
}
.wpcf7-form.is-confirm-mode .c-form__field,
.wpcf7-form.is-confirm-mode .c-form__textarea,
.wpcf7-form.is-confirm-mode .c-form__select
{
    font-weight: bold; /* 確認しやすいように太字に */

    pointer-events: none !important; /* クリックや編集を完全に無効化 */

    color: #333 !important;
    border: none !important;
    background-color: transparent !important;
    box-shadow: none !important;
}
.wpcf7-form.is-confirm-mode
{
    /* 2. セレクトボックスの矢印を消す */
}
.wpcf7-form.is-confirm-mode .c-form__select
{
    background-image: none !important;
}
.wpcf7-form.is-confirm-mode
{
    /* 3. テキストエリアのサイズ変更（右下ドラッグ）を無効化 */
}
.wpcf7-form.is-confirm-mode .c-form__textarea
{
    resize: none !important;
}
.wpcf7-form.is-confirm-mode
{
    /* 4. ラジオボタンやチェックボックスの「丸・四角」を消す */
}
.wpcf7-form.is-confirm-mode input[type=radio],
.wpcf7-form.is-confirm-mode input[type=checkbox]
{
    display: none !important;
}
.wpcf7-form.is-confirm-mode
{
    /* 5. 選択されていないラジオボタンの項目を非表示にする魔法 */
}
.wpcf7-form.is-confirm-mode .wpcf7-list-item
{
    display: none !important;
}
.wpcf7-form.is-confirm-mode .wpcf7-list-item:has(input: checked)
{
    font-weight: bold;

    display: inline-block !important;

    pointer-events: none !important;

    color: #333;
}
.wpcf7-form.is-confirm-mode
{
    /* 6. 添付ファイルの「ファイルを選択」ボタンを消す（ファイル名だけ残る） */
}
.wpcf7-form.is-confirm-mode .c-form__file::file-selector-button
{
    display: none !important;
}
.wpcf7-form.is-confirm-mode
{
    /* 7. 「必須」や「任意」のバッジを隠してスッキリさせる */
}
.wpcf7-form.is-confirm-mode .c-form-badge
{
    display: none !important;
}
.wpcf7-form.is-confirm-mode
{
    /* 個人情報保護方針のスクロール枠をただのテキスト枠にする */
}
.wpcf7-form.is-confirm-mode .c-form-privacy__box
{
    overflow-y: visible !important;

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

    border: none !important;
}

.c-btn-confirm
{
    font-size: 18px;
    font-weight: bold;

    display: inline-flex;

    padding: 16px 80px;

    cursor: pointer;
    transition: opacity .3s ease;

    color: #fff;
    border: none;
    border-radius: 50px;
    background-color: #333; /* 落ち着いた黒系 */

    align-items: center;
    justify-content: center;
}
.c-btn-confirm:hover
{
    opacity: .8;
}

.c-btn-back
{
    font-size: 18px;
    font-weight: bold;

    display: inline-flex;

    padding: 16px 40px;

    cursor: pointer;
    transition: opacity .3s ease;

    color: #fff;
    border: none;
    border-radius: 50px;
    background-color: #999; /* 戻るボタンは目立たないグレーに */

    align-items: center;
    justify-content: center;
}
.c-btn-back:hover
{
    opacity: .8;
}

.c-table-wrapper
{
    width: 100%;
    margin-bottom: 8px;
}

.c-table
{
    font-size: 100%;

    width: 100%;

    border-collapse: collapse;

    border: 3px solid #ddd3c5;
}
.c-table__row
{
    border: 0;
}
.c-table__th,
.c-table__td
{
    line-height: 1.5;

    padding: 15px;

    text-align: left;

    border: 1px solid #ddd3c5;
}
.c-table__th
{
    font-weight: bold;

    color: #333;
    background: #f2f1eb;
}
.c-table__th--w20
{
    width: 20%;
}
.c-table__th--w30
{
    width: 30%;
}
.c-table__th--w40
{
    width: 40%;
}
.c-table__td
{
    background: #fff;
}
.c-table__td ul
{
    margin: 0;
    padding-left: 24px;
}
.c-table__td ol
{
    margin-left: 16px;
    padding-left: 0;
}
.c-table__td .price
{
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 2.6rem;
    font-weight: 800;

    color: #037f6a;
}
.c-table__link
{
    text-decoration: underline;
}
.c-table__link:hover
{
    text-decoration: none;
}
@media only screen and (max-width: 768px)
{
    .c-table__row,
    .c-table__th,
    .c-table__td
    {
        display: block;

        width: 100%;
    }
    .c-table__th--w20,
    .c-table__th--w30,
    .c-table__th--w40
    {
        width: 100%;
    }
    .c-table__td
    {
        border-top: none;
    }
}

.c-nav__toggle
{
    position: absolute;
    z-index: 101;
    top: 35px;
    right: 15px;

    display: flex;

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

    cursor: pointer;

    border: none;
    border-radius: 6px;
    background-color: #df0111;

    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;
    height: 3px;

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

    border-radius: 2px;
    background-color: #fff;
}
.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: #333;
}
.c-nav a:hover,
.c-nav a:focus
{
    color: #2563eb;
}
.c-nav.is-open > ul
{
    position: absolute;
    z-index: 9999;
    top: 100%;
    right: 0;
    left: 0;

    display: block;
    overflow-y: auto;

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

    border-top: 1px solid #ddd;
    background: #fff;
    box-shadow: 0 4px 8px rgba(0, 0, 0, .1);
}
.c-nav.is-open > ul li
{
    border-bottom: 1px dashed #ccc;
}
.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: #603813;
    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;

    background: #f7eed3;
    box-shadow: none;
}
.c-nav li.is-active > ul
{
    display: block;
}
@media screen and (min-width: 980px)
{
    .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;
        justify-content: center;
        align-items: center;
        gap: 30px;
    }
    .c-nav > ul > li > a
    {
        font-size: 1.4rem;
        font-weight: bold;

        padding: 0;

        transition: opacity .3s ease;

        color: #df0111;
    }
    .c-nav > ul > li > a:hover,
    .c-nav > ul > li > a:focus
    {
        opacity: .7;
    }
    .c-nav > ul > li > a i
    {
        color: #47aa33;
    }
    .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;

        background: #f7eed3;
        box-shadow: 0 4px 8px rgba(0, 0, 0, .1);
    }
    .c-nav ul ul a
    {
        font-size: 1.4rem;
        font-weight: normal;

        padding: 16px 24px;

        color: #333;
    }
    .c-nav ul ul a:hover,
    .c-nav ul ul a:focus
    {
        opacity: 1;
        color: #2563eb;
    }
    .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%;
}

.c-nav__mobile-contact
{
    display: block;

    padding: 20px 10px 40px !important;

    border-bottom: none !important;
}
@media screen and (min-width: 980px)
{
    .c-nav__mobile-contact
    {
        display: none !important;
    }
}

.p-mobile-contact
{
    /* ★修正：横並びから「縦並び＆中央揃え」に変更 */
    display: flex !important;
    flex-direction: column !important;

    width: 100%;

    align-items: center !important;
    justify-content: center !important;
    gap: 18px !important; /* ボタンとボタンの縦の隙間（お好みで調整してください） */
}
.p-mobile-contact__tel
{
    display: flex;
    flex-direction: column;

    width: 100% !important;
    padding: 12px 25px; /* ★縦並びで見栄えが良いよう、少しふっくら厚みを持たせました */

    text-align: center;

    color: #fff;
    border-radius: 50px;
    background-color: #df0111;

    align-items: center;
    justify-content: center;
    flex: 1;
}
.p-mobile-contact__tel-number
{
    font-size: clamp(1.8rem, 4vw, 1.8rem);
    font-weight: bold;
    line-height: 1.2;

    white-space: nowrap;
    letter-spacing: .05em;
}
.p-mobile-contact__tel-number,
.p-mobile-contact__tel-number a[href^='tel:']
{
    text-decoration: none !important;

    color: #fff !important;
}
.p-mobile-contact__tel-time
{
    font-size: clamp(1.2rem, 2vw, .85rem);
    line-height: 1.3;

    margin-top: 2px;

    white-space: nowrap;
}
.p-mobile-contact__btn
{
    line-height: 1 !important;

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

    box-sizing: border-box;
    width: 65px !important;
    height: 65px !important;
    padding: 0 !important;

    text-decoration: none !important;

    color: #fff !important;
    border-radius: 50% !important;
    background-color: #3ca032 !important;

    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0;
}
.p-mobile-contact__btn i,
.p-mobile-contact__btn svg
{
    font-size: 200% !important;
    line-height: 1 !important;

    position: static !important;

    display: block !important;
    float: none !important;

    margin: 0 0 3px 0 !important;

    color: #fff !important;
}
.p-mobile-contact__btn-text
{
    font-size: .75rem !important;
    font-weight: bold !important;
    line-height: 1 !important;

    display: block !important;

    margin: 0 !important;
}

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

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

.u-full-bleedW
{
    width: 100vw !important;
    padding: 15px 0;

    background-color: #fff;

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

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

.c-breadcrumb
{
    position: relative;
    z-index: 100;

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

    display: flex;

    margin: 0;
    padding: 0;

    list-style: none;

    flex-wrap: wrap;
}
.c-breadcrumb ul li
{
    display: flex;

    color: #603813;

    align-items: center;
}
.c-breadcrumb ul li a
{
    position: relative !important;
    z-index: 10 !important;

    display: inline-block !important;

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

    color: #603813;
}
.c-breadcrumb ul li a:hover
{
    opacity: .7;
}
.c-breadcrumb ul li::after
{
    margin: 0 10px;

    content: '>';

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

/* ==========================================================================
     Component - Page Top Button (接頭辞 c-page-top)
     ========================================================================== */
.c-page-top
{
    position: fixed;
    z-index: 10000;
    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;

    text-decoration: none;

    color: #fff;

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

/* ==========================================================================
   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: #47aa33;
}
.c-list li::before
{
    position: absolute;
    top: .6em;
    left: 0;

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

    content: '';

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

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

    transform: rotate(45deg);

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

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

    transform: rotate(-45deg);

    border-bottom: .125em solid #df0111;
    border-left: .125em solid #df0111;
    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: #df0111;
    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: #df0111;
    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: #df0111;
    outline: none;
    box-shadow: 0 0 0 3px rgba(223, 1, 17, .2);
}
input.c-input.is-error,
input.c-input--error,
textarea.c-textarea.is-error,
textarea.c-textarea--error
{
    border-color: #ff5763;
    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: #df0111;
    outline: none;
    box-shadow: 0 0 0 3px rgba(223, 1, 17, .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: #ff5763; /* 必須：アクセントカラー */
}

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

/* ==========================================================================
   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);
}

.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: #df0111;
    background-color: #df0111;
}
.c-pagination ul.page-numbers .page-numbers.dots
{
    width: auto;

    pointer-events: none;

    border: none;
    background-color: transparent;
}

.c-floating-menu
{
    z-index: 9999;

    margin: 0 !important;
    padding: 0 !important;

    list-style: none;
}
.c-floating-menu a
{
    text-decoration: none !important;

    color: #fff !important;
}
.c-floating-menu a:visited,
.c-floating-menu a:active,
.c-floating-menu a:focus
{
    color: #fff !important;
}
.c-floating-menu__item--guide
{
    background-color: #3ca032;
}
.c-floating-menu__item--access
{
    background-color: #e60012;
}
.c-floating-menu__item--tel
{
    background-color: #664332;
}
@media (min-width: 768px)
{
    .c-floating-menu
    {
        position: fixed;
        top: 50%;
        right: 0;

        display: flex;
        flex-direction: column;

        transform: translateY(-50%);

        gap: 4px;
    }
    .c-floating-menu__item
    {
        position: relative; /* ★追加：中のリンクを右基準にするための準備 */

        overflow: hidden;

        width: 56px;
        height: 56px;
        margin-left: auto;

        transition: width .3s cubic-bezier(.25, .8, .25, 1);

        border-radius: 8px 0 0 8px;
        box-shadow: 0 3px 6px rgba(0, 0, 0, .16);
    }
    .c-floating-menu__item:hover
    {
        width: 180px;
    }
    .c-floating-menu__item a
    {
        position: absolute; /* ★追加：要素を浮かせて右端にピタッと固定 */
        top: 0;
        right: 0; /* ★追加：右基準で配置（これで常にアイコンが見えます） */

        display: flex;

        width: 180px;
        height: 100%;

        align-items: center;
        justify-content: flex-end;
    }
    .c-floating-menu__text
    {
        font-size: 15px;
        font-weight: bold;

        margin-right: 5px;

        white-space: nowrap;
    }
    .c-floating-menu__icon
    {
        font-size: 22px;

        display: flex;

        width: 56px;
        height: 56px;

        align-items: center;
        justify-content: center;
        flex-shrink: 0;
    }
}
@media (max-width: 767px)
{
    .c-floating-menu
    {
        position: fixed;
        bottom: 0;
        left: 0;

        display: flex;

        width: 100%;

        box-shadow: 0 -2px 10px rgba(0, 0, 0, .15);
    }
    .c-floating-menu__item
    {
        border-right: 1px solid rgba(255, 255, 255, .3);

        flex: 1;
    }
    .c-floating-menu__item:last-child
    {
        border-right: none;
    }
    .c-floating-menu__item a
    {
        display: flex;
        flex-direction: column;

        height: 65px; /* ★修正：ボタンの高さを少し広げてゆとりを持たせました */
        padding: 5px;

        align-items: center;
        justify-content: center;
        gap: 6px; /* ★追加：テキストとアイコンの間に、確実に6pxの隙間を作ります */
    }
    .c-floating-menu__text
    {
        font-size: 11px; /* 10pxだと少し潰れやすかったので1px大きくしました */
        font-weight: bold;
        line-height: 1;

        white-space: nowrap; /* テキストが途中で改行されないように保護 */
    }
    .c-floating-menu__icon
    {
        font-size: 22px;

        margin: 0; /* ★修正：間違った余白指定をリセット */
    }
}

.p-header-contact
{
    display: flex;

    margin-right: 40px;

    align-items: center;
    gap: 15px;
}
@media screen and (max-width: 767px)
{
    .p-header-contact
    {
        display: none;
    }
}
.p-header-contact__tel
{
    display: flex;
    flex-direction: column;

    padding: 8px 24px;

    text-align: center;

    color: #fff;
    border-radius: 50px;
    background-color: #df0111;

    align-items: center;
    justify-content: center;
}
.p-header-contact__tel-number
{
    font-size: 2.4rem;
    font-weight: bold;
    line-height: 1.2;

    letter-spacing: .05em;
}
.p-header-contact__tel-time
{
    font-size: 1.2rem;
    line-height: 1.2;

    margin-top: 4px;
}
.p-header-contact__btn
{
    display: flex;
    flex-direction: column;

    width: 80px;
    height: 80px;

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

    color: #fff;
    border-radius: 50%;
    background-color: #3ca032;

    align-items: center;
    justify-content: center;
}
.p-header-contact__btn i
{
    font-size: 200%;
}
.p-header-contact__btn:hover
{
    opacity: .8;
}
.p-header-contact__btn-icon
{
    width: 28px;
    height: auto;
    margin-bottom: 4px;
}
.p-header-contact__btn-text
{
    font-size: 1.1rem;
    font-weight: bold;
}

.p-top-concept
{
    padding: 0 0 150px;
}
.p-top-concept__inner
{
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 0;
}
.p-top-concept__container
{
    position: relative;
    /* 修正箇所①：120px だった一番右の数値（下部余白）を 180px に増やして文字被りを防ぐ */

    padding: 60px 0 180px;

    border: 12px solid #f2e9dc;
    border-radius: 40px;
    background-color: #fff;
}
@media screen and (max-width: 767px)
{
    .p-top-concept__container
    {
        border: 6px solid #f2e9dc;
    }
}
.p-top-concept__header
{
    position: relative;

    margin-bottom: 40px;

    text-align: center;
}
.p-top-concept__en
{
    font-size: clamp(6rem, 8vw, 10rem);
    font-weight: 700;

    position: absolute;
    z-index: 1;
    top: -30px;
    left: 50%;

    transform: translateX(-50%);

    color: rgba(139, 195, 74, .15);
}
.p-top-concept__title
{
    font-family: 'Kaisei Decol', serif;
    font-size: clamp(2rem, 3vw, 2.8rem);
    font-weight: 400;
    font-style: normal;
    line-height: 1.6;

    position: relative;
    z-index: 2;

    color: #333;
}
.p-top-concept__title .u-text-green
{
    color: #47aa33;
}
.p-top-concept__body
{
    position: relative;

    max-width: 600px;
    margin: 0 auto;
}
.p-top-concept__content
{
    font-size: 1.6rem;
    line-height: 2.2;

    text-align: center;

    color: #333;
}
.p-top-concept__content p
{
    margin-bottom: 2em;
}
.p-top-concept__content p:last-child
{
    margin-bottom: 0;
}
.p-top-concept__img
{
    position: absolute;
    z-index: 2;
    top: 50%;

    overflow: hidden;

    width: 260px;
    height: 260px;

    transform: translateY(-50%);

    border-radius: 50%;
}
.p-top-concept__img img
{
    width: 100%;
    height: 100%;

    object-fit: cover;
}
.p-top-concept__img--left
{
    left: -220px;
}
.p-top-concept__img--right
{
    top: 100px;
    right: -220px;
}
.p-top-concept__features
{
    position: absolute;
    bottom: -130px;
    /* 修正箇所②：配置の指定を書き換え、確実に中央に来るようにし、テーマの余白設定を強制リセット */
    left: 50%;

    display: flex;

    width: 100%;
    margin: 0 !important; /* ulのデフォルトマージンを確実に消す */
    padding: 0 !important; /* !importantでテーマの干渉を防ぐ */

    list-style: none;

    transform: translateX(-50%);

    justify-content: center;
    gap: 30px;
}
.p-top-concept__feature
{
    display: flex;

    width: 260px;
    height: 260px;
    padding: 20px;

    text-align: center;

    border: 10px solid #f2e9dc;
    border-radius: 50%;
    background-color: #fff;
    box-shadow: 0 4px 10px rgba(0, 0, 0, .05);

    align-items: center;
    justify-content: center;
}
.p-top-concept__feature-title
{
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1.4;

    margin-bottom: 10px;

    color: #d7000f;
}
.p-top-concept__feature-text
{
    font-size: 1.3rem;
    line-height: 1.6;

    color: #333;
}
.p-top-concept
{
    /* レスポンシブ: タブレット・スマホ */
    /* レスポンシブ: タブレット・スマホ */
}
@media screen and (max-width: 979px)
{
    .p-top-concept
    {
        padding-bottom: 30px;
    }
    .p-top-concept__container
    {
        padding: 40px 20px 40px;
    }
    .p-top-concept__img
    {
        position: static;

        width: 200px;
        height: 200px;
        margin: 20px auto;

        transform: none;
    }
    .p-top-concept__features
    {
        position: relative;
        bottom: auto;
        left: auto;

        display: flex;

        margin-top: 40px !important;

        transform: none;

        flex-wrap: wrap;
        justify-content: center;
        gap: 20px;
    }
    .p-top-concept__feature
    {
        width: calc(50% - 10px);
        max-width: 250px;
        height: auto;
        padding: 15px;

        aspect-ratio: 1/1;
    }
    .p-top-concept__feature-title
    {
        font-size: 1.5rem;

        margin-bottom: 5px;
    }
    .p-top-concept__feature-text
    {
        font-size: 1.2rem;
    }
}
@media screen and (max-width: 575px)
{
    .p-top-concept__feature
    {
        width: calc(100% - 10px);
        height: auto;
        padding: 15px;

        aspect-ratio: 1/1;
    }
}

/* News Section
-------------------------------------------------- */
.p-top-news
{
    padding: 80px 0;
}
@media screen and (max-width: 767px)
{
    .p-top-news
    {
        padding: 30px 0;
    }
}
.p-top-news__inner
{
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px;
}
.p-top-news__container
{
    display: flex;

    justify-content: space-between;
    align-items: flex-start;
    gap: 60px;
}
.p-top-news
{
    /* ------------------------------
   * 左側：ヘッダー部分
   * ------------------------------ */
}
.p-top-news__header
{
    position: relative;

    width: 25%;
    padding-top: 30px;

    text-align: center; /* ★追加：枠内の要素をすべて中央揃えにする */
}
.p-top-news__en
{
    font-size: clamp(6rem, 7vw, 8rem);
    font-weight: 700;
    line-height: 1;

    position: absolute;
    z-index: 1;
    top: 0;
    left: 50%; /* ★変更：左端固定(0)から、親要素の中央(50%)へ変更 */

    transform: translateX(-50%); /* ★追加：文字の中心がぴったり真ん中になるように調整 */
    letter-spacing: .05em;

    color: rgba(139, 195, 74, .15);
}
.p-top-news__title
{
    font-size: 2.4rem;
    font-weight: 700;

    position: relative;
    z-index: 2;

    margin-bottom: 40px;

    color: #4caf50;
}
.p-top-news__btn
{
    font-size: 1.4rem;
    font-weight: bold;

    display: inline-flex;

    width: 200px;
    margin: 0 auto; /* ★追加：ボタン自身も確実に中央に配置されるようにする */
    padding: 15px 25px;

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

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

    align-items: center;
    justify-content: space-between;
}
.p-top-news__btn:hover
{
    color: #fff !important;
    background-color: #4caf50;
}
.p-top-news__btn:hover .p-top-news__btn-arrow
{
    border-color: #fff;
}
.p-top-news__btn-arrow
{
    display: block;

    width: 8px;
    height: 8px;

    transition: border-color .3s ease;
    transform: rotate(45deg);

    border-top: 2px solid #47aa33;
    border-right: 2px solid #47aa33;
}
.p-top-news
{
    /* ------------------------------
   * 右側：リスト部分
   * ------------------------------ */
}
.p-top-news__content
{
    width: 65%;
    padding-top: 30px;
}
.p-top-news__list
{
    margin: 0;
    padding: 0;

    list-style: none;

    border-top: 1px dashed #bba18d;
}
.p-top-news__item
{
    border-bottom: 1px dashed #bba18d;
}
.p-top-news__link
{
    position: relative;

    display: flex;

    padding: 25px 40px 25px 0;

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

    color: #333;

    align-items: center;
}
.p-top-news__link:hover
{
    opacity: .7;
}
.p-top-news__meta
{
    width: 100px;

    flex-shrink: 0;
}
.p-top-news__date
{
    font-size: 1.4rem;

    color: #555;
}
.p-top-news__title-article
{
    font-size: 1.4rem;
    font-weight: normal;
    line-height: 1.6;

    margin: 0;
}
.p-top-news
{
    /* リスト右端の緑の矢印 */
}
.p-top-news__arrow
{
    position: absolute;
    top: 50%;
    right: 10px;

    width: 10px;
    height: 10px;

    transform: translateY(-50%) rotate(45deg);

    border-top: 2px solid #47aa33;
    border-right: 2px solid #47aa33;
}
.p-top-news__empty
{
    font-size: 1.4rem;

    padding: 25px 0;

    color: #666;
}
.p-top-news
{
    /* ------------------------------
   * レスポンシブ対応 (スマホ・タブレット)
   * ------------------------------ */
}
@media screen and (max-width: 767px)
{
    .p-top-news__container
    {
        flex-direction: column;

        gap: 40px;
    }
    .p-top-news__header
    {
        width: 100%;
        padding-top: 40px;

        text-align: center;
    }
    .p-top-news__en
    {
        left: 50%;

        transform: translateX(-50%);
    }
    .p-top-news__btn
    {
        margin: 0 auto;
    }
    .p-top-news__content
    {
        width: 100%;
        padding-top: 0;
    }
    .p-top-news__link
    {
        flex-direction: column;

        padding: 20px 30px 20px 0;

        align-items: flex-start;
        gap: 10px;
    }
    .p-top-news__meta
    {
        width: auto;
    }
}

/* Snacks Section (駄菓子紹介)
-------------------------------------------------- */
.p-top-snacks
{
    overflow: hidden;

    padding: 80px 0;
}
@media screen and (max-width: 767px)
{
    .p-top-snacks
    {
        padding: 30px 0;
    }
}
.p-top-snacks__inner
{
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px;
}
.p-top-snacks__title
{
    font-size: clamp(2.4rem, 4vw, 3.2rem);
    font-weight: 700;
    line-height: 1;

    display: flex;

    margin-bottom: 40px;

    color: #e60012;

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

    width: 24px; /* ★実際の装飾画像の幅に合わせて数値を変更してください */
    height: 24px; /* ★実際の装飾画像の高さに合わせて数値を変更してください */

    content: '';
    transform: translateY(-8px);

    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
.p-top-snacks__title::before
{
    background-image: url('../images/common/secTtl-bk1.png'); /* CSSファイルからの相対パス */
}
.p-top-snacks__title::after
{
    background-image: url('../images/common/secTtl-bk2.png'); /* CSSファイルからの相対パス */
}
.p-top-snacks__slider-area
{
    width: 100%;
}

/* スライダー全体のエリア調整 */
.p-snacks-slider
{
    padding: 10px 0 20px;
}
.p-snacks-slider .swiper-wrapper
{
    transition-timing-function: linear !important;
}

/* カードのデザイン (c-snack-card) */
.c-snack-card
{
    display: block;

    padding: 20px;

    transition: transform .3s ease, box-shadow .3s ease;
    text-decoration: none;

    border-radius: 20px;
    background-color: #fff;
    box-shadow: 0 4px 15px rgba(0, 0, 0, .05);
}
.c-snack-card:hover
{
    transform: translateY(-5px);

    box-shadow: 0 8px 25px rgba(0, 0, 0, .1);
}
.c-snack-card__img
{
    overflow: hidden;

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

    border-radius: 12px;

    aspect-ratio: 4/3;
}
.c-snack-card__img img
{
    width: 100%;
    height: 100%;

    transition: transform .5s ease;

    object-fit: cover;
}
.c-snack-card:hover .c-snack-card__img img
{
    transform: scale(1.05);
}
.c-snack-card__body
{
    display: flex;
    flex-direction: column;

    align-items: center;
}
.c-snack-card__title
{
    font-size: 1.6rem;
    font-weight: 700;

    overflow: hidden;

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

    text-align: left;
    white-space: nowrap;
    text-overflow: ellipsis;

    color: #ff5763;
}
.c-snack-card__btn
{
    font-size: 1.4rem;
    font-weight: bold;

    display: inline-flex;

    width: 100%;
    max-width: 180px;
    padding: 12px 20px;

    transition: all .3s ease;

    color: #666;
    border: 1px solid #df0111;
    border-radius: 30px;
    background-color: #fff;

    align-items: center;
    justify-content: center;
    gap: 15px;
}
.c-snack-card:hover .c-snack-card__btn
{
    color: #fff;
    background-color: #e60012;
}
.c-snack-card:hover .c-snack-card__btn .c-snack-card__arrow
{
    border-color: #fff;
}
.c-snack-card__arrow
{
    display: block;

    width: 6px;
    height: 6px;

    transition: border-color .3s ease;
    transform: rotate(45deg);

    border-top: 2px solid #e60012;
    border-right: 2px solid #e60012;
}

/* Service Section (ご利用シーン別カテゴリー)
-------------------------------------------------- */
.p-top-service
{
    padding: 100px 0;

    background-color: #fff;
    background-image: url('../images/top/menu-bk.png'); /* CSSファイルからの相対パス */
    background-repeat: repeat-y;
    background-position: center top;
    background-size: 100% auto;
}
.p-top-service__inner
{
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px;
}
.p-top-service__header
{
    position: relative;

    margin-bottom: 60px;

    text-align: center;
}
.p-top-service__en
{
    font-size: clamp(5rem, 8vw, 8rem);
    font-weight: 700;
    line-height: 1;

    position: absolute;
    z-index: 1;
    top: -40px;
    left: 50%;

    transform: translateX(-50%);
    letter-spacing: .05em;

    color: rgba(230, 0, 18, .08);
}
.p-top-service__title
{
    font-size: clamp(2rem, 3.5vw, 2.8rem);
    font-weight: 700;
    line-height: 1.5;

    position: relative;
    z-index: 2;

    display: inline-block; /* ★追加：要素の幅をテキストの長さにぴったり合わせる */

    margin-bottom: 25px;

    text-align: center; /* ★追加：中のテキスト（2行）を中央揃えにする */

    color: #d7000f;
}
.p-top-service__title::before,
.p-top-service__title::after
{
    position: absolute; /* ★変更：絶対配置にする */
    top: 50%; /* ★追加：上から50%の位置を基準にする */

    width: 24px;
    height: 24px;

    content: '';

    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
.p-top-service__title::before
{
    left: -35px; /* ★追加：左にずらす距離（文字との隙間） */

    transform: translateY(-50%); /* ★変更：Y軸のみ-50%ずらして完全な中央にする */

    background-image: url('../images/common/secTtl-bk1.png');
}
.p-top-service__title::after
{
    right: -35px; /* ★追加：右にずらす距離（文字との隙間） */

    transform: translateY(-50%); /* ★変更：Y軸のみ-50%ずらして完全な中央にする */

    background-image: url('../images/common/secTtl-bk2.png');
}
.p-top-service__desc
{
    line-height: 1.8;

    color: #555;
}
.p-top-service__list
{
    display: flex;

    flex-wrap: wrap;
    justify-content: center;
    gap: 30px;
}
.p-top-service__item
{
    display: flex;
    flex-direction: column;

    width: calc((100% - 60px) / 3);
    max-width: 300px;
    padding: 25px 20px;

    transition: transform .3s ease, box-shadow .3s ease;
    text-decoration: none;

    border-radius: 15px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, .05);

    align-items: center;
}
.p-top-service__item:hover
{
    transform: translateY(-5px);

    box-shadow: 0 8px 20px rgba(0, 0, 0, .15);
}
.p-top-service__item--red
{
    background-color: #d7000f;
}
.p-top-service__item--green
{
    background-color: #3b883f;
}
.p-top-service__item-title
{
    font-weight: 700;

    width: 90%;
    margin-bottom: 25px;
    padding: 8px 10px;

    text-align: center;

    color: #333;
    border-radius: 30px;
    background-color: #fff;
}
.p-top-service__item-icon
{
    display: flex;

    height: 70px;
    margin-bottom: 20px;

    align-items: center;
    justify-content: center;
}
.p-top-service__item-icon img
{
    width: auto;
    max-height: 100%;
}
.p-top-service__item-text
{
    font-weight: 700;
    line-height: 1.6;

    margin: 0;

    text-align: center;

    color: #fff;
}
.p-top-service
{
    /* ------------------------------
   * レスポンシブ対応 (スマホ・タブレット)
   * ------------------------------ */
}
@media screen and (max-width: 767px)
{
    .p-top-service__list
    {
        gap: 20px;
    }
    .p-top-service__item
    {
        width: calc((100% - 20px) / 2);
    }
}
@media screen and (max-width: 575px)
{
    .p-top-service__list
    {
        gap: 10px;
    }
    .p-top-service__item
    {
        width: calc((100% - 10px) / 2);
        padding: 20px 10px;
    }
    .p-top-service__item-title
    {
        font-size: 1.2rem;

        width: 95%;
        padding: 6px 5px;
    }
    .p-top-service__item-text
    {
        font-size: 1.2rem;
    }
    .p-top-service__item-icon
    {
        height: 50px;
        margin-bottom: 15px;
    }
}

/* LineUp Section (商品ラインナップ)
-------------------------------------------------- */
.p-top-lineup
{
    padding: 100px 0;
}
.p-top-lineup__inner
{
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px;
}
.p-top-lineup__header
{
    position: relative;

    margin-bottom: 50px;

    text-align: center;
}
.p-top-lineup__en
{
    font-size: clamp(5rem, 8vw, 8rem);
    font-weight: 700;
    line-height: 1;

    position: absolute;
    z-index: 1;
    top: -40px;
    left: 50%;

    transform: translateX(-50%);
    letter-spacing: .05em;

    color: rgba(230, 0, 18, .08);
}
.p-top-lineup__title
{
    font-size: clamp(2rem, 3.5vw, 2.8rem);
    font-weight: 700;
    line-height: 1.5;

    position: relative;
    z-index: 2;

    display: inline-block;

    margin-bottom: 20px;

    text-align: center;

    color: #d7000f;
}
.p-top-lineup__title::before,
.p-top-lineup__title::after
{
    position: absolute;
    top: 50%;

    width: 24px;
    height: 24px;

    content: '';

    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
.p-top-lineup__title::before
{
    left: -35px;

    transform: translateY(-50%);

    background-image: url('../images/common/secTtl-bk1.png');
}
.p-top-lineup__title::after
{
    right: -35px;

    transform: translateY(-50%);

    background-image: url('../images/common/secTtl-bk2.png');
}
.p-top-lineup__desc
{
    font-size: 1.4rem;
    line-height: 1.8;

    color: #333;
}
@media screen and (max-width: 575px)
{
    .p-top-lineup__desc .u-hidden-sp
    {
        display: none;
    }
}
.p-top-lineup__list
{
    display: flex;

    margin-bottom: 60px;

    flex-wrap: wrap;
    justify-content: center;
    gap: 20px;
}
.p-top-lineup__item
{
    display: flex;
    overflow: hidden;
    flex-direction: column;

    width: calc((100% - 60px) / 4);

    transition: transform .3s ease, box-shadow .3s ease;
    text-decoration: none;

    border-radius: 15px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, .08);
}
.p-top-lineup__item:hover
{
    transform: translateY(-5px);

    box-shadow: 0 8px 20px rgba(0, 0, 0, .15);
}
.p-top-lineup__img
{
    width: 100%;

    background-color: #fff;
}
.p-top-lineup__img img
{
    display: block;

    width: 100%;
    height: auto;

    object-fit: cover;
}
.p-top-lineup__name
{
    font-size: 1.5rem;
    font-weight: 700;

    margin: 0;
    padding: 15px 10px;

    text-align: center;

    color: #fff;
    background-color: #5c3a21;

    flex-grow: 1;
}
.p-top-lineup__btn-wrap
{
    text-align: center;
}
.p-top-lineup__btn
{
    font-size: 1.4rem;
    font-weight: 700;

    position: relative;

    display: inline-flex;

    width: 280px;
    padding: 15px 30px;

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

    color: #333 !important;
    border: 1px solid #d7000f;
    border-radius: 40px;
    background-color: #fff;

    align-items: center;
    justify-content: center;
}
.p-top-lineup__btn:visited
{
    color: #333 !important;
}
.p-top-lineup__btn:hover
{
    color: #fff !important;
    background-color: #d7000f;
}
.p-top-lineup__btn:hover .p-top-lineup__btn-arrow
{
    border-color: #fff;
}
.p-top-lineup__btn-arrow
{
    position: absolute;
    top: 50%;
    right: 25px;

    width: 8px;
    height: 8px;

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

    border-top: 2px solid #d7000f;
    border-right: 2px solid #d7000f;
}
.p-top-lineup
{
    /* ------------------------------
   * レスポンシブ対応 (スマホ・タブレット)
   * ------------------------------ */
}
@media screen and (max-width: 767px)
{
    .p-top-lineup__item
    {
        width: calc((100% - 20px) / 2);
    }
}
@media screen and (max-width: 575px)
{
    .p-top-lineup__list
    {
        gap: 15px;
    }
    .p-top-lineup__item
    {
        width: calc((100% - 15px) / 2);
        max-width: none;
    }
    .p-top-lineup__name
    {
        font-size: 1.2rem;

        padding: 10px 5px;
    }
    .p-top-lineup__btn
    {
        width: 100%;
        max-width: 280px;
    }
}

/* Shopping Guide Section (お買い物ガイド)
-------------------------------------------------- */
.p-top-guide
{
    padding: 100px 0;

    background-color: #fff;
}
.p-top-guide__inner
{
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px;
}
.p-top-guide__header
{
    position: relative;

    margin-bottom: 40px;

    text-align: center;
}
.p-top-guide__en
{
    font-size: clamp(5rem, 8vw, 8rem);
    font-weight: 700;
    line-height: 1;

    position: absolute;
    z-index: 1;
    top: -40px;
    left: 50%;

    transform: translateX(-50%);
    letter-spacing: .05em;

    color: rgba(230, 0, 18, .08);
}
.p-top-guide__title
{
    font-size: clamp(2rem, 3.5vw, 2.8rem);
    font-weight: 700;
    line-height: 1.5;

    position: relative;
    z-index: 2;

    display: inline-block;

    margin-bottom: 40px;

    text-align: center;

    color: #d7000f;
}
.p-top-guide__title::before,
.p-top-guide__title::after
{
    position: absolute;
    top: 50%;

    width: 24px;
    height: 24px;

    content: '';

    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
.p-top-guide__title::before
{
    left: -35px;

    transform: translateY(-50%);

    background-image: url('../images/common/secTtl-bk1.png');
}
.p-top-guide__title::after
{
    right: -35px;

    transform: translateY(-50%);

    background-image: url('../images/common/secTtl-bk2.png');
}
.p-top-guide__subtitle
{
    font-size: clamp(1.8rem, 3vw, 2.2rem);
    font-weight: 700;

    margin-bottom: 20px;

    letter-spacing: .05em;

    color: #3b883f;
}
.p-top-guide__desc
{
    font-size: 1.4rem;
    line-height: 1.8;

    color: #555;
}
@media screen and (max-width: 575px)
{
    .p-top-guide__desc .u-hidden-sp
    {
        display: none;
    }
}
.p-top-guide__btn-wrap
{
    text-align: center;
}
.p-top-guide__btn
{
    font-size: 1.4rem;
    font-weight: 700;

    position: relative;

    display: inline-flex;

    width: 280px;
    padding: 15px 30px;

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

    color: #555;
    border: 1px solid #d7000f;
    border-radius: 40px;
    background-color: #fff;

    align-items: center;
    justify-content: center;
}
.p-top-guide__btn:visited
{
    color: #555 !important;
}
.p-top-guide__btn:hover
{
    color: #fff !important;
    background-color: #d7000f;
}
.p-top-guide__btn:hover .p-top-guide__btn-arrow
{
    border-color: #fff;
}
.p-top-guide__btn-arrow
{
    position: absolute;
    top: 50%;
    right: 25px;

    width: 8px;
    height: 8px;

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

    border-top: 2px solid #d7000f;
    border-right: 2px solid #d7000f;
}
.p-top-guide
{
    /* ------------------------------
   * レスポンシブ対応 (スマホ・タブレット)
   * ------------------------------ */
}
@media screen and (max-width: 575px)
{
    .p-top-guide__title
    {
        margin-bottom: 30px;
    }
    .p-top-guide__btn
    {
        width: 100%;
        max-width: 280px;
    }
}

/* Gallery Slider Section (ジグザグギャラリー)
-------------------------------------------------- */
.p-top-gallery
{
    overflow: hidden;

    padding: 60px 0;

    background-color: #ff5763;
    background-image: radial-gradient(rgba(255, 255, 255, .2) 15%, transparent 16%), radial-gradient(rgba(255, 255, 255, .2) 15%, transparent 16%);
    background-position: 0 0, 10px 10px;
    background-size: 20px 20px;
}

.p-gallery-slider
{
    overflow: visible !important;
}
.p-gallery-slider .swiper-wrapper
{
    transition-timing-function: linear !important;

    align-items: center;
}
.p-gallery-slider__slide
{
    overflow: hidden;

    width: auto;

    -webkit-transform: translate3d(0, 0, 0);

    border-radius: 15px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, .2);

    -webkit-backface-visibility: hidden;
}
.p-gallery-slider__slide img
{
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
}
.p-gallery-slider__slide:nth-child(odd)
{
    transform: translateY(-15px);
}
.p-gallery-slider__slide:nth-child(even)
{
    transform: translateY(15px);
}
.p-gallery-slider
{
    /* レスポンシブ時の画像サイズ */
}
.p-gallery-slider__slide
{
    aspect-ratio: 4/3;
}
@media screen and (max-width: 575px)
{
    .p-gallery-slider__slide
    {
        border-radius: 10px;
    }
    .p-gallery-slider__slide:nth-child(odd)
    {
        transform: translateY(-10px);
    }
    .p-gallery-slider__slide:nth-child(even)
    {
        transform: translateY(10px);
    }
}

/* Instagram Section
-------------------------------------------------- */
.p-top-insta
{
    padding: 100px 0;

    background-color: #faf5e8;
    background-image: url('../images/top/insta-bk.png'); /* CSSファイルからの相対パス */
    background-repeat: repeat-y;
    background-position: center top;
    background-size: 100% auto;
}
.p-top-insta__inner
{
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px;
}
.p-top-insta__header
{
    position: relative;

    margin-bottom: 60px;

    text-align: center;
}
.p-top-insta__en
{
    font-size: clamp(5rem, 8vw, 8rem);
    font-weight: 700;
    line-height: 1;

    position: absolute;
    z-index: 1;
    top: -40px;
    left: 50%;

    transform: translateX(-50%);
    letter-spacing: .05em;

    color: rgba(230, 0, 18, .08);
}
.p-top-insta__title
{
    font-size: clamp(2rem, 3.5vw, 2.8rem);
    font-weight: 700;
    line-height: 1.5;

    position: relative;
    z-index: 2;

    display: inline-block;

    margin: 0;

    text-align: center;

    color: #d7000f;
}
.p-top-insta__title::before,
.p-top-insta__title::after
{
    position: absolute;
    top: 50%;

    width: 24px;
    height: 24px;

    content: '';

    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
.p-top-insta__title::before
{
    left: -35px;

    transform: translateY(-50%);

    background-image: url('../images/common/secTtl-bk1.png');
}
.p-top-insta__title::after
{
    right: -35px;

    transform: translateY(-50%);

    background-image: url('../images/common/secTtl-bk2.png');
}
.p-top-insta__badge
{
    position: absolute;
    z-index: 3;
    top: -55px;
    right: -10px;

    width: 90px;

    pointer-events: none;
}
.p-top-insta__badge img
{
    display: block;

    width: 100%;
    height: auto;
}
.p-top-insta__partner
{
    margin-top: 120px;
}
.p-top-insta
{
    /* ------------------------------
   * レスポンシブ対応 (スマホ・タブレット)
   * ------------------------------ */
}
@media screen and (max-width: 575px)
{
    .p-top-insta__header
    {
        margin-bottom: 40px;
    }
    .p-top-insta__badge
    {
        top: -35px;
        right: 0;

        width: 60px;
    }
}

/* パートナー募集バナー (インスタグラムと同じ背景上に配置)
-------------------------------------------------- */
.p-top-partner__banner
{
    position: relative;

    padding: 30px 40px;

    text-align: center;

    color: #fff;
    border-radius: 200px;
    background-color: #47aa33;
    background-image: radial-gradient(rgba(255, 255, 255, .3) 1.5px, transparent 1.5px);
    background-size: 24px 24px;
}
@media screen and (max-width: 767px)
{
    .p-top-partner__banner
    {
        padding: 50px 20px;

        border-radius: 40px;
    }
}
.p-top-partner__deco
{
    position: absolute;
    z-index: 2;
}
.p-top-partner__deco--left
{
    top: -10px;
    left: -40px;

    width: 140px;

    transform: rotate(-15deg);
}
.p-top-partner__deco--right
{
    right: -30px;
    bottom: 20px;

    width: 280px;

    transform: rotate(0deg);
}
.p-top-partner__deco--center
{
    bottom: 0;
    left: -40px;

    width: 240px;

    transform: rotate(15deg);
}
@media screen and (max-width: 767px)
{
    .p-top-partner__deco--left
    {
        top: -20px;
        left: -10px;

        width: 80px;
    }
    .p-top-partner__deco--right
    {
        right: -10px;
        bottom: -20px;

        width: 160px;
    }
    .p-top-partner__deco--center
    {
        bottom: 0;
        left: -40px;

        width: 160px;
    }
}
.p-top-partner__content
{
    position: relative;
    z-index: 1;
}
.p-top-partner__en
{
    font-size: 2rem;
    font-weight: bold;

    display: block;

    margin-bottom: 10px;

    letter-spacing: .05em;
}
.p-top-partner__title
{
    font-size: clamp(2.4rem, 4vw, 3.6rem);
    font-weight: 700;
    line-height: 1.4;

    margin-bottom: 20px;

    color: #fff;
}
.p-top-partner__desc
{
    font-size: 1.5rem;
    font-weight: 700;

    margin-bottom: 40px;
}
@media screen and (max-width: 767px)
{
    .p-top-partner__desc
    {
        font-size: 1.3rem;
        line-height: 1.6;
    }
}
.p-top-partner__btn-wrap
{
    margin-top: 30px;
}
.p-top-partner__btn
{
    font-size: 1.4rem;
    font-weight: 700;

    position: relative;

    display: inline-flex;

    width: 280px;
    padding: 15px 30px;

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

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

    align-items: center;
    justify-content: center;
}
.p-top-partner__btn:visited
{
    color: #555 !important;
}
.p-top-partner__btn:hover
{
    transform: translateY(-3px);

    opacity: .9;
    color: #4ba635 !important;
    box-shadow: 0 6px 15px rgba(0, 0, 0, .15);
}
.p-top-partner__btn-arrow
{
    position: absolute;
    top: 50%;
    right: 25px;

    width: 8px;
    height: 8px;

    transform: translateY(-50%) rotate(45deg);

    border-top: 2px solid #4ba635;
    border-right: 2px solid #4ba635;
}

.p-hero
{
    width: 100%;
    padding: 8rem 1.5em;

    text-align: center;

    background-color: #f5f5f5;
}
.p-hero__inner
{
    max-width: 800px;
    margin-right: auto;
    margin-left: auto;
}
.p-hero__title
{
    font-size: clamp(2.8rem, 5vw, 4.8rem);
    font-weight: 700;
    line-height: 1.2;

    margin: 0 0 .75em;

    color: #333;
}
.p-hero__text
{
    font-size: clamp(1.6rem, 2.5vw, 2rem);
    line-height: 1.6;

    margin: 0;

    color: #666;
}

.p-hero-static
{
    overflow: hidden;

    width: 100%;
    margin: 0;
}
.p-hero-static__inner
{
    display: flex;

    width: 100%;
    margin-right: auto;
    margin-left: auto;
    padding: 0;

    justify-content: center;
}
.p-hero-static picture
{
    display: block;

    flex-shrink: 0;
}
@media screen and (max-width: 1023px)
{
    .p-hero-static picture
    {
        width: 100%;

        flex-shrink: 1;
    }
}
.p-hero-static img
{
    width: 1690px; /* ★重要：画像の本来の幅を固定で指定 */
    max-width: none; /* ★重要：テーマ等の max-width: 100% を打ち消し、縮小を防ぐ */
    height: auto;

    flex-shrink: 0; /* ★重要：Flexbox内で要素が縮むのを防ぐ */
}
@media screen and (max-width: 1023px)
{
    .p-hero-static img
    {
        width: 100%; /* ブラウザ幅に合わせて100%にする */
        max-width: 100%; /* 親要素からはみ出さないようにする */

        flex-shrink: 1; /* 縮小を許可する（初期値に戻す） */
    }
}
.p-hero-static__title
{
    font-size: clamp(2.8rem, 5vw, 4.8rem);
    font-weight: 700;
    line-height: 1.2;

    margin: 0 0 .75em;

    color: #333;
}
.p-hero-static__text
{
    font-size: clamp(1.6rem, 2.5vw, 2rem);
    line-height: 1.6;

    margin: 0;

    color: #666;
}

.p-entry-page .entry-header
{
    position: relative;

    overflow: hidden;

    width: calc(100vw - 60px);
    margin-top: -140px !important;
    margin-bottom: 20px;
    padding: 190px 20px 60px !important;

    text-align: center;

    border-radius: 0 0 30px 30px;
    border-radius: 0 0 30px 30px !important;
    background-color: #df0111;
    background-image: radial-gradient(rgba(255, 255, 255, .1) 15%, transparent 16%), radial-gradient(rgba(255, 255, 255, .1) 15%, transparent 16%);
    background-position: 0 0, 10px 10px;
    background-size: 20px 20px;

    margin-inline: calc(50% - 50vw + 30px);
}
@media screen and (max-width: 979px)
{
    .p-entry-page .entry-header
    {
        width: calc(100vw - 40px);
        margin-top: -100px !important;
        margin-bottom: 40px;
        padding: 120px 20px 30px !important;

        border-radius: 0 0 20px 20px !important;

        margin-inline: calc(50% - 50vw + 20px);
    }
}
@media screen and (max-width: 767px)
{
    .p-entry-page .entry-header
    {
        margin-top: -100px !important;
        padding: 100px 20px 30px !important;
    }
}
.p-entry-page__en
{
    font-size: clamp(6rem, 10vw, 10rem);
    font-weight: 700;
    line-height: 1;

    position: absolute;
    z-index: 1;
    top: 68%;
    left: 50%;

    transform: translate(-50%, -50%);
    letter-spacing: .05em;
    text-transform: lowercase;

    color: rgba(255, 255, 255, .2);
}
.p-entry-page .entry-title
{
    font-size: clamp(2rem, 4vw, 3.2rem);
    font-weight: 700;
    line-height: 1.3;

    position: relative;
    z-index: 2;

    margin: 0;
    padding: 0;

    color: #fff;
    border-bottom: none;
}
.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-bottom: 40px;
    padding-bottom: 20px;

    text-align: center;

    color: red;
}
.p-entry-page .about-message-container
{
    display: flex !important;
    flex-direction: column !important;

    box-sizing: border-box;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
    padding: 0 40px 0 !important;

    background-image: url('../images/common/page-bk1.png');
    background-repeat: repeat-y;
    background-position: center top;
    background-size: 100% auto;

    align-items: center !important;
}
.p-entry-page .about-message-container .about-message-box
{
    font-family: 'Kaisei Decol', serif;
    font-size: clamp(2rem, 3.6vw, 2.4rem);
    font-weight: 400;
    font-style: normal;

    width: 100% !important;
    max-width: 1140px !important;
    margin: 0 auto 60px !important;
    padding: 35px 40px;

    text-align: center;

    border: 8px solid #e8e0d5;
    border-radius: 50px;
    background-color: #fff;
    box-shadow: 0 4px 15px rgba(0, 0, 0, .03);
}
.p-entry-page .about-message-container .about-message-box,
.p-entry-page .about-message-container .about-message-box p,
.p-entry-page .about-message-container .about-message-box h2,
.p-entry-page .about-message-container .about-message-box h3
{
    font-weight: bold !important;
    line-height: 1.6 !important;

    margin: 0 !important;

    color: #47aa33 !important;
}
.p-entry-page .about-message-container .about-message-box p + p,
.p-entry-page .about-message-container .about-message-box h2 + p
{
    margin-top: 15px !important;
}
.p-entry-page .about-message-container .about-message-text
{
    line-height: 2;

    max-width: 960px;
    margin: 0 auto 0 !important;

    text-align: center;

    color: #333;
}
.p-entry-page .about-message-container .about-message-text p
{
    margin-bottom: 2em;
}
.p-entry-page .about-message-container .about-message-text p:last-child
{
    margin-bottom: 0;
}
@media (max-width: 781px)
{
    .p-entry-page .about-message-container
    {
        padding: 50px 20px;
    }
    .p-entry-page .about-message-container .about-message-box
    {
        margin: 0 auto 40px !important;
        padding: 25px 20px;

        border-width: 5px;
        border-radius: 30px;
    }
    .p-entry-page .about-message-container .about-message-box,
    .p-entry-page .about-message-container .about-message-box p,
    .p-entry-page .about-message-container .about-message-box h2,
    .p-entry-page .about-message-container .about-message-box h3
    {
        font-size: 16px !important;
    }
    .p-entry-page .about-message-container .about-message-text
    {
        font-size: 15px;

        margin: 0 auto 50px !important;
    }
    .p-entry-page .about-message-container .about-message-text p
    {
        margin-bottom: 1.5em;
    }
}
.p-entry-page .about-feature-container
{
    max-width: 960px;
    margin: 60px auto;
    padding: 30px 40px;

    border-radius: 20px;
    background-color: #fff;
}
@media screen and (max-width: 575px)
{
    .p-entry-page .about-feature-container
    {
        margin: 0 auto 30px;
    }
}
.p-entry-page .about-feature-container .about-feature-header
{
    box-sizing: border-box;
    width: calc(50vw + 50%);
    margin-top: 20px;
    margin-bottom: 50px;
    padding: 15px 0;

    text-align: center;

    color: #fff !important;
}
.p-entry-page .about-feature-container .about-feature-lead
{
    font-family: 'Kaisei Decol', serif;
    font-size: clamp(2rem, 4vw, 3.2rem);
    font-weight: 600;

    margin-bottom: 40px;

    text-align: center;

    color: #000;
}
.p-entry-page .about-feature-container .about-feature-cols
{
    margin-bottom: 50px;
}
.p-entry-page .about-feature-container .about-feature-cols .wp-block-image img
{
    border-radius: 15px;
}
.p-entry-page .about-feature-container .about-feature-subhead
{
    font-size: 18px;
    font-weight: bold;

    margin-bottom: 10px;
}
.p-entry-page .about-feature-container .about-point-item
{
    margin-bottom: 15px;

    color: #fff !important;
    border-radius: 20px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, .1);
}
.p-entry-page .about-feature-container .about-point-item .wp-block-columns
{
    align-items: center !important;
}
.p-entry-page .about-feature-container .about-point-item .wp-block-column
{
    margin: 0 !important;
    padding: 0 !important;
}
.p-entry-page .about-feature-container .about-point-item .about-point-num
{
    font-size: 26px !important;
    font-weight: bold !important;
    font-style: italic !important;
    line-height: 1 !important;

    width: 110px;
    margin: 0 !important;

    transform: translateY(-2px);
    text-align: center;
    white-space: nowrap !important;
}
.p-entry-page .about-feature-container .about-point-item .about-point-num-yellow
{
    color: yellow !important;
}
.p-entry-page .about-feature-container .about-point-item .about-point-desc
{
    margin: 0 !important;
    padding: 15px 0 !important;

    border: none !important;

    flex: 1;
}
.p-entry-page .about-feature-container .about-point-item .about-point-desc,
.p-entry-page .about-feature-container .about-point-item .about-point-desc p
{
    font-size: 16px !important;
    font-weight: bold;
    line-height: 1.5 !important;

    margin: 0 !important;
}
.p-entry-page .about-feature-container .about-feature-footer
{
    font-size: 16px;
    font-weight: bold;

    margin-top: 40px;

    text-align: center;

    color: #000;
}
.p-entry-page .about-feature-container.theme-red .about-feature-header
{
    margin-left: calc(50% - 50vw);
    padding-left: calc(50vw - 50%);

    border-radius: 0 20px 20px 0;
    background-color: #d1121d;
}
.p-entry-page .about-feature-container.theme-red .about-feature-subhead
{
    color: #d1121d;
}
.p-entry-page .about-feature-container.theme-red .about-point-item
{
    background-color: #df0111;
}
.p-entry-page .about-feature-container.theme-green .about-feature-header
{
    margin-right: calc(50% - 50vw);
    padding-right: calc(50vw - 50%);

    border-radius: 20px 0 0 20px;
    background-color: #408639;
}
.p-entry-page .about-feature-container.theme-green .about-feature-subhead
{
    color: #408639;
}
.p-entry-page .about-feature-container.theme-green .about-point-item
{
    background-color: #378b2e;
}
@media (max-width: 781px)
{
    .p-entry-page .about-feature-container
    {
        padding: 30px 20px !important;
    }
    .p-entry-page .about-feature-container .about-feature-lead
    {
        margin-bottom: 0 !important;
    }
    .p-entry-page .about-feature-container .about-point-item .wp-block-columns
    {
        display: flex !important;
        flex-direction: column !important;

        padding: 15px !important;

        gap: 0 !important;
    }
    .p-entry-page .about-feature-container .about-point-item .about-point-num
    {
        width: 100% !important;
        margin-bottom: 5px !important;

        transform: none !important;
    }
    .p-entry-page .about-feature-container .about-point-item .about-point-desc,
    .p-entry-page .about-feature-container .about-point-item .about-point-desc p
    {
        text-align: left !important;
    }
}

.tokushoho-container
{
    max-width: 960px !important;
    margin: 0 auto 80px !important;
    padding: 60px 50px !important;

    border-radius: 30px !important;
    background-color: #fff !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, .03) !important;
}
.tokushoho-container h2.tokushoho-title
{
    font-size: 26px !important;
    font-weight: bold !important;

    display: flex !important;

    margin-bottom: 60px !important;

    text-align: center !important;

    color: #333 !important;
    border: none !important;
    background: none !important;

    align-items: center !important;
    justify-content: center !important;
    gap: 15px !important;
}
.tokushoho-container h2.tokushoho-title::before,
.tokushoho-container h2.tokushoho-title::after
{
    display: inline-block;

    width: 25px;
    height: 35px;

    content: '';

    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
.tokushoho-container h2.tokushoho-title::before
{
    background-image: url('../images/common/secTtl-bk1.png');
}
.tokushoho-container h2.tokushoho-title::after
{
    background-image: url('../images/common/secTtl-bk2.png');
}
.tokushoho-container .tokushoho-row
{
    display: flex !important;
    flex-direction: row !important;

    width: 100% !important;
    margin-bottom: 20px !important;

    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    gap: 40px !important;
}
.tokushoho-container .tokushoho-row > .wp-block-group__inner-container
{
    display: flex !important;
    flex-direction: row !important;

    width: 100% !important;

    flex-wrap: nowrap !important;
    gap: 40px !important;
    align-items: flex-start !important;
}
.tokushoho-container .tokushoho-row:last-child
{
    margin-bottom: 0 !important;
}
.tokushoho-container .tokushoho-row .tokushoho-label
{
    font-weight: bold !important;
    line-height: 1.4 !important;

    width: 240px !important;
    margin: 0 !important;
    padding: 12px 20px !important;

    text-align: center !important;

    color: #fff !important;
    border-radius: 50px !important;
    background-color: #5c3514 !important;

    align-self: flex-start !important;
    flex: 0 0 240px !important;
}
.tokushoho-container .tokushoho-row .tokushoho-data
{
    width: auto !important;
    margin: 0 !important;
    padding-top: 10px !important;

    flex: 1 !important;
}
.tokushoho-container .tokushoho-row .tokushoho-data,
.tokushoho-container .tokushoho-row .tokushoho-data p,
.tokushoho-container .tokushoho-row .tokushoho-data li
{
    font-size: 15px !important;
    line-height: 1.8 !important;

    margin-bottom: 10px !important;

    color: #333 !important;
}
.tokushoho-container .tokushoho-row .tokushoho-data ul
{
    margin-bottom: 10px !important;
    padding-left: 1.5em !important;
}
.tokushoho-container .tokushoho-row .tokushoho-data p:last-child,
.tokushoho-container .tokushoho-row .tokushoho-data ul:last-child
{
    margin-bottom: 0 !important;
}
@media (max-width: 781px)
{
    .tokushoho-container
    {
        padding: 40px 20px !important;

        border-radius: 20px !important;
    }
    .tokushoho-container h2.tokushoho-title
    {
        font-size: 20px !important;

        margin-bottom: 40px !important;

        gap: 10px !important;
    }
    .tokushoho-container h2.tokushoho-title::before,
    .tokushoho-container h2.tokushoho-title::after
    {
        width: 20px;
        height: 28px;
    }
    .tokushoho-container .tokushoho-row
    {
        flex-direction: column !important;

        margin-bottom: 35px !important;

        gap: 10px !important;
    }
    .tokushoho-container .tokushoho-row > .wp-block-group__inner-container
    {
        flex-direction: column !important;

        gap: 10px !important;
    }
    .tokushoho-container .tokushoho-row .tokushoho-label
    {
        width: 100% !important;
        padding: 10px 15px !important;

        align-self: stretch !important;
        flex: auto !important;
    }
    .tokushoho-container .tokushoho-row .tokushoho-data
    {
        width: 100% !important;
        padding: 0 10px !important;
    }
}

.p-guide-flow
{
    width: 100%;
    max-width: 1000px;
    margin: 40px auto;
    padding: 60px 80px;

    border-radius: 20px;
    background-color: #fff;
    box-shadow: 0 4px 15px rgba(0, 0, 0, .05);
}
@media (max-width: 768px)
{
    .p-guide-flow
    {
        margin: 20px auto;
        padding: 40px 20px;
    }
}
.p-guide-flow__list
{
    position: relative;

    margin: 0 !important;
    padding: 0 !important;
}
.p-guide-flow__list:last-child::before
{
    display: none;
}
.p-guide-flow__item
{
    position: relative;
    z-index: 2;

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

    margin-top: 0 !important;
    margin-bottom: 50px !important;

    flex-wrap: nowrap !important; /* PCでは1行に並べる */
    align-items: flex-start !important;
    gap: 30px !important;
}
@media (max-width: 768px)
{
    .p-guide-flow__item
    {
        margin-bottom: 40px !important;

        gap: 15px !important;
        flex-wrap: wrap !important; /* ★スマホでは折り返しを許可する */
    }
}
.p-guide-flow__item:last-child
{
    margin-bottom: 0 !important;
}
.p-guide-flow__item::before
{
    position: absolute;
    z-index: 1;
    top: 20px;
    bottom: -50px;
    left: 17px;

    width: 6px;

    content: '';

    border-radius: 5px;
    background-color: #bbb;
}
@media (max-width: 768px)
{
    .p-guide-flow__item::before
    {
        bottom: -40px;
        left: 14px; /* スマホ丸番号の中心に合わせる微調整 */
    }
}
.p-guide-flow__item:last-child::before
{
    display: none;
}
.p-guide-flow__item > .wp-block-group__inner-container
{
    display: contents !important;
}
.p-guide-flow__step
{
    font-size: 22px;
    font-weight: bold;

    position: relative;
    z-index: 2;

    display: flex !important;

    width: 40px !important;
    height: 40px !important;
    margin: 0 !important;
    padding: 0 !important;

    color: #fff;
    border-radius: 50%;
    background-color: #f7555b;
    box-shadow: 0 0 0 4px #fff;

    flex: 0 0 40px !important;
    align-items: center;
    justify-content: center;
}
@media (max-width: 768px)
{
    .p-guide-flow__step
    {
        font-size: 18px;

        width: 34px !important;
        height: 34px !important;

        flex: 0 0 34px !important;
    }
}
.p-guide-flow__content
{
    min-width: 0 !important;
    margin: 0 !important;
    padding-top: 5px;

    flex: 1 1 0 !important; /* 残りの幅をテキストエリアが使う */
}
@media (max-width: 768px)
{
    .p-guide-flow__content
    {
        flex: 1 1 calc(100% - 49px) !important; /* スマホ時: 100%から丸番号と隙間を引く */
    }
}
.p-guide-flow__subtitle
{
    font-size: 18px;
    font-weight: bold;
    line-height: 1.5;

    margin: 0 0 15px !important;

    color: #f7555b;
}
@media (max-width: 768px)
{
    .p-guide-flow__subtitle
    {
        font-size: 16px;

        margin: 0 0 10px !important;
    }
}
.p-guide-flow__text
{
    font-size: 15px;
    line-height: 1.8;

    margin: 0 !important;

    color: #333;
}
@media (max-width: 768px)
{
    .p-guide-flow__text
    {
        font-size: 14px;
    }
}
.p-guide-flow
{
    /* ★新規追加：画像のスタイル */
}
.p-guide-flow__image
{
    width: 240px !important;
    margin: 0 !important;

    flex: 0 0 240px !important; /* PCでの画像の横幅を固定 */
}
.p-guide-flow__image img
{
    display: block;

    width: 100%;
    height: auto;

    border: 1px solid #c8c8c8; /* モックアップに合わせた枠線 */
    border-radius: 4px;
}
@media (max-width: 768px)
{
    .p-guide-flow__image
    {
        width: calc(100% - 49px) !important;
        margin-top: 15px !important;
        margin-left: 49px !important; /* 丸番号(34px) + 隙間(15px) = 49px */
        /* スマホではテキストの下に回り込み、丸番号に合わせてインデントする */

        flex: 0 0 calc(100% - 49px) !important;
    }
}

.p-guide-notes
{
    margin-top: 60px !important;
    margin-bottom: 60px !important;
    padding: 80px 0 !important;

    background-color: #fff;
}
@media (max-width: 768px)
{
    .p-guide-notes
    {
        margin-top: 40px !important;
        margin-bottom: 40px !important;
        padding: 60px 0 !important;
    }
}
.p-guide-notes > .wp-block-group__inner-container
{
    display: contents !important;
}
.p-guide-notes__list
{
    max-width: 800px;
    margin: 0 auto 50px !important;
    padding: 0 !important;

    list-style: none !important;

    text-align: left !important;
}
.p-guide-notes__list li
{
    font-size: 15px;
    line-height: 1.8;

    position: relative;

    margin: 0 !important;
    padding: 20px 0 20px 35px !important;

    list-style: none !important;

    color: #333;
    border-bottom: 1px dashed #ccc !important;
}
@media (max-width: 768px)
{
    .p-guide-notes__list li
    {
        font-size: 14px;

        padding: 15px 0 15px 30px !important;
    }
}
.p-guide-notes__list li::before
{
    position: absolute;
    top: calc(20px + .9em);
    left: 0;

    width: 12px;
    height: 12px;

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

    border-radius: 2px;
    background-color: #6a9b44;
}
@media (max-width: 768px)
{
    .p-guide-notes__list li::before
    {
        top: calc(15px + .9em);

        width: 10px;
        height: 10px;
    }
}

.p-guide-contact
{
    width: 100%;
    max-width: 1000px;
    margin: 60px auto !important;
    padding: 60px 80px !important;

    border-radius: 20px;
    background-color: #fff !important;
}
@media (max-width: 768px)
{
    .p-guide-contact
    {
        margin: 40px auto !important;
        padding: 40px 20px !important;
    }
}
.p-guide-contact > .wp-block-group__inner-container
{
    display: contents !important;
}
.p-guide-contact__lead
{
    font-size: 15px;
    line-height: 1.8;

    margin: 0 auto 50px !important;

    text-align: center !important;

    color: #333;
}
@media (max-width: 768px)
{
    .p-guide-contact__lead
    {
        font-size: 14px;

        margin: 0 auto 40px !important;

        text-align: left !important;
    }
}
.p-guide-contact__columns
{
    display: flex !important;
    flex-direction: row !important;

    margin: 0 0 50px !important;

    align-items: center !important;
    justify-content: center !important;
    gap: 60px !important;
}
@media (max-width: 768px)
{
    .p-guide-contact__columns
    {
        flex-direction: column !important;

        gap: 40px !important;
    }
}
.p-guide-contact__columns > .wp-block-group__inner-container
{
    display: contents !important;
}
.p-guide-contact__info
{
    flex: 0 0 auto !important;
}
.p-guide-contact__info > .wp-block-group__inner-container
{
    display: contents !important;
}
.p-guide-contact__row
{
    display: flex !important;
    flex-direction: row !important;

    margin: 0 0 5px !important;

    align-items: center !important;
    gap: 15px !important;
}
.p-guide-contact__row > .wp-block-group__inner-container
{
    display: contents !important;
}
.p-guide-contact__badge
{
    font-size: 16px;
    font-weight: bold;

    width: 80px;
    margin: 0 !important;
    padding: 6px 20px !important;

    text-align: center;
    letter-spacing: 1px;

    color: #fff;
    border-radius: 30px !important;
    background-color: #418b38;
}
@media (max-width: 768px)
{
    .p-guide-contact__badge
    {
        font-size: 14px;

        width: 70px;
        padding: 5px 15px !important;
    }
}
.p-guide-contact__number
{
    font-family: Arial, Helvetica, sans-serif;
    font-size: 32px;
    font-weight: bold;
    line-height: 1;

    margin: 0 !important;

    color: #418b38;
}
@media (max-width: 768px)
{
    .p-guide-contact__number
    {
        font-size: 28px;
    }
}
.p-guide-contact__note
{
    font-size: 13px;

    margin: 0 0 20px 95px !important;

    color: #333;
}
@media (max-width: 768px)
{
    .p-guide-contact__note
    {
        margin: 0 0 20px 85px !important;
    }
}
.p-guide-contact__mail-wrap
{
    margin: 0 !important;

    flex: 0 0 auto !important;
}
.p-guide-contact__mail-wrap .wp-block-button__link
{
    font-size: 20px;
    font-weight: bold;

    position: relative;
    z-index: 1;

    display: flex !important;
    overflow: hidden;

    width: 340px;
    max-width: 100%;
    height: 120px;
    padding: 0 !important;

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

    color: #fff !important;
    border-radius: 10px !important;
    background-color: #ff5a60 !important;

    align-items: center !important;
    justify-content: center !important;
}
@media (max-width: 768px)
{
    .p-guide-contact__mail-wrap .wp-block-button__link
    {
        font-size: 18px;

        width: 100%;
        min-width: 280px;
        height: 100px;
    }
}
.p-guide-contact__mail-wrap .wp-block-button__link::before
{
    position: absolute;
    z-index: -1;
    top: 50%;
    left: 50%;

    width: 100px;
    height: 80px;

    content: '';
    transform: translate(-50%, -50%);

    opacity: .25;
    background-image: url('data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 24 24\' fill=\'none\' stroke=\'%23ffffff\' stroke-width=\'1.5\' stroke-linecap=\'round\' stroke-linejoin=\'round\'%3E%3Cpath d=\'M3 8l9 6 9-6\'/%3E%3Crect x=\'3\' y=\'4\' width=\'18\' height=\'16\' rx=\'2\' ry=\'2\'/%3E%3C/svg%3E');
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
.p-guide-contact__mail-wrap .wp-block-button__link:hover
{
    opacity: .8;
}

.p-inc-reason
{
    max-width: 1000px;
    margin: 60px auto !important;
    padding: 0 20px !important;

    text-align: center !important;
}
.p-inc-reason > .wp-block-group__inner-container
{
    display: contents !important;
}
.p-inc-reason__lead
{
    font-size: 16px !important;

    margin-bottom: 30px !important;

    color: #333 !important;
}
@media (max-width: 768px)
{
    .p-inc-reason__lead
    {
        font-size: 14px !important;

        margin-bottom: 20px !important;
    }
}
.p-inc-reason__catch
{
    font-size: 18px !important;
    line-height: 1.8 !important;

    margin-bottom: 30px !important;

    color: #333 !important;
}
@media (max-width: 768px)
{
    .p-inc-reason__catch
    {
        font-size: 15px !important;
    }
}
.p-inc-reason__catch strong
{
    font-size: 1.5em !important;
    font-weight: bold !important;

    margin: 0 4px !important;

    color: #df0111 !important;
}
.p-inc-reason__text
{
    font-size: 16px !important;

    margin-bottom: 40px !important;

    color: #333 !important;
}
@media (max-width: 768px)
{
    .p-inc-reason__text
    {
        font-size: 14px !important;

        margin-bottom: 30px !important;
    }
}
.p-inc-reason__box
{
    /* ★ Gridレイアウトで並べる */
    display: grid !important;

    max-width: 1000px !important;
    margin: 0 auto 40px !important;
    padding: 0 !important;

    border: none !important;
    border-radius: 0 !important;
    background-color: transparent !important;

    grid-template-columns: repeat(4, 1fr) !important;
    gap: 20px !important;
}
@media (max-width: 768px)
{
    .p-inc-reason__box
    {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 15px !important;
    }
}
.p-inc-reason__box > .wp-block-group__inner-container
{
    display: contents !important;
}
.p-inc-reason__box-item
{
    /* ★ フォント設定 */
    font-size: 18px !important;
    font-weight: bold !important;
    line-height: 1.4 !important;
    /* ★ テキストをど真ん中に配置する */

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

    margin: 0 !important;
    padding: 10px !important;

    text-align: center !important;

    color: #df0111 !important;
    border: 6px solid #e5d5c1 !important;
    border-radius: 50% !important;
    background-color: #fff !important;
    /* ★ 丸の形を作る */

    aspect-ratio: 1/1 !important;
    align-items: center !important;
    justify-content: center !important;
}
@media (max-width: 768px)
{
    .p-inc-reason__box-item
    {
        font-size: 18x !important;

        border-width: 4px !important;
    }
}
.p-inc-reason__footer
{
    font-size: 16px !important;
    line-height: 1.8 !important;

    margin: 0 !important;

    color: #333 !important;
}
@media (max-width: 768px)
{
    .p-inc-reason__footer
    {
        font-size: 14px !important;
    }
}
.p-inc-reason.theme-green .p-inc-reason__catch strong
{
    color: #47aa33 !important;
}
.p-inc-reason.theme-green .p-inc-reason__box-item
{
    color: #47aa33 !important;
}

.marker
{
    background: linear-gradient(transparent 60%, rgba(255, 242, 0, .7) 60%) !important;
}

.c-section-title
{
    font-size: clamp(2rem, 3.5vw, 2.8rem);
    font-weight: 700;
    line-height: 1.5;

    position: relative;
    z-index: 2;

    display: block !important;

    width: fit-content !important;
    margin: 0 auto 50px !important;
    padding: 0 55px !important;

    text-align: center;

    color: #333 !important;
}
.c-section-title::before,
.c-section-title::after
{
    position: absolute;
    top: 50%;

    width: 24px;
    height: 24px;

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

    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
.c-section-title::before
{
    left: 10px;

    background-image: url('../images/common/secTtl-bk1.png');
}
.c-section-title::after
{
    right: 10px;

    background-image: url('../images/common/secTtl-bk2.png');
}

.c-section-subtitle
{
    font-family: 'Kaisei Decol', serif;
    font-size: clamp(2rem, 3.6vw, 2.4rem);
    font-weight: 400;
    font-style: normal;

    text-align: center;

    color: #47aa33;
}

.c-section-lead
{
    font-size: clamp(1.6rem, 1.8vw, 1.8rem);
    font-weight: bold;
}

.c-inner
{
    width: 100%;
    max-width: 1000px !important;
    margin: 0 auto !important;
    padding: 0 20px !important;
}
.c-inner > .wp-block-group__inner-container
{
    display: contents !important;
}

.c-btn-arrow-wrap
{
    display: flex !important;

    width: 100% !important;
    margin: 0 auto !important;

    justify-content: center !important;
}
.c-btn-arrow-wrap .wp-block-button__link
{
    font-size: 16px;
    font-weight: bold;

    position: relative;

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

    width: 320px;
    max-width: 100%;
    padding: 15px 30px !important;

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

    color: #333 !important;
    border: 2px solid #e60012 !important;
    border-radius: 40px !important;
    background-color: #fff !important;

    align-items: center !important;
    justify-content: center !important;
}
@media (max-width: 768px)
{
    .c-btn-arrow-wrap .wp-block-button__link
    {
        font-size: 14px;

        width: 260px;
        padding: 12px 20px !important;
    }
}
.c-btn-arrow-wrap .wp-block-button__link::after
{
    display: inline-block;

    width: 14px;
    height: 12px;
    margin-left: 15px;

    content: '';

    background-image: url('data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 16 16\'%3E%3Cpath fill=\'%23e60012\' d=\'M9.3 1.3l-1.4 1.4 4.3 4.3H0v2h12.2l-4.3 4.3 1.4 1.4L16 8z\'/%3E%3C/svg%3E');
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
.c-btn-arrow-wrap .wp-block-button__link:hover
{
    background-color: #fff5f5 !important;
}

.c-card-links
{
    display: flex !important;
    flex-direction: row !important;

    width: 100%;
    margin: 0 auto 50px !important;

    align-items: stretch !important;
    justify-content: center !important;
    gap: 20px !important;
}
@media (max-width: 768px)
{
    .c-card-links
    {
        flex-direction: column !important;

        gap: 15px !important;
    }
}
.c-card-links > .wp-block-group__inner-container
{
    display: contents !important;
}
.c-card-links__item
{
    position: relative;

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

    margin: 0 !important;
    padding: 40px 20px 60px !important;

    transition: all .3s ease;

    border: 6px solid #e8e0d5 !important;
    background-color: #fff !important;

    flex: 1 1 0 !important;
    justify-content: center !important;
}
.c-card-links__item > .wp-block-group__inner-container
{
    display: contents !important;
}
.c-card-links__item:hover
{
    transform: translateY(-4px);

    background-color: #fffaf9 !important;
    box-shadow: 0 6px 15px rgba(0, 0, 0, .05);
}
.c-card-links__item::after
{
    position: absolute;
    bottom: 25px;
    left: 50%;

    width: 24px;
    height: 14px;

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

    background-image: url('data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 24 24\' fill=\'none\' stroke=\'%23418b38\' stroke-width=\'3\' stroke-linecap=\'round\' stroke-linejoin=\'round\'%3E%3Cpath d=\'M6 9l6 6 6-6\'/%3E%3C/svg%3E');
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
.c-card-links__text
{
    font-size: 22px !important;
    font-weight: bold !important;
    line-height: 1.6 !important;

    margin: 0 !important;

    text-align: center !important;

    color: #d1121d !important;
}
@media (max-width: 768px)
{
    .c-card-links__text
    {
        font-size: 15px !important;
    }
}
.c-card-links__text a
{
    text-decoration: none !important;

    color: inherit !important;
}
.c-card-links__text a::before
{
    position: absolute;
    z-index: 10;
    top: 0;
    left: 0;

    width: 100%;
    height: 100%;

    content: '';
}

.p-entry-post
{
    margin-bottom: 40px;
    padding-bottom: 40px;
}
.p-entry-post__title-box
{
    width: 100%;
    max-width: 1140px;
    margin: 0 auto 40px;
    padding: 35px 40px;

    text-align: center;

    border: 8px solid #e8e0d5; /* 太めのベージュ枠線 */
    border-radius: 50px; /* 大きめの角丸 */
    background-color: #fff;
    box-shadow: 0 4px 15px rgba(0, 0, 0, .03);
}
.p-entry-post__title-box .entry-title
{
    font-family: 'Kaisei Decol', serif;
    font-size: clamp(2rem, 3.6vw, 2.4rem);
    font-weight: bold;
    line-height: 1.6;

    margin: 0;

    color: #47aa33; /* 緑色などの変数 */
}
.p-entry-post__title-box .entry-meta
{
    font-size: 1.4rem;

    margin-top: 15px;

    color: #666;

    justify-content: center;
}
@media (max-width: 781px)
{
    .p-entry-post__title-box
    {
        margin-bottom: 30px;
        padding: 25px 20px;

        border-width: 5px;
        border-radius: 30px;
    }
    .p-entry-post__title-box .entry-title
    {
        font-size: 16px;
    }
}
.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;

    color: #666;
}
.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;
}

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

@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-size: 2.4rem;
    font-weight: 700;
    line-height: 1.3;
}
.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: #603813;
    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-size: 2.4rem;
    font-weight: 700;
    line-height: 1.3;

    margin-bottom: 24px;
}
.p-no-results__body
{
    margin-top: 24px;
}

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

.bypostauthor
{
    display: block;
}

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

.p-lineup-category
{
    position: relative;
    z-index: 10;

    margin-bottom: 2em;
    padding: 20px 15px;

    text-align: center;

    border-radius: 5px;
    background-color: #f9f9f9;
}
.p-lineup-category__title
{
    font-size: 18px;
    font-weight: bold;

    display: flex;

    margin-bottom: 25px;

    letter-spacing: .05em;

    color: #333;

    align-items: center;
    justify-content: center;
    gap: 15px;
}
.p-lineup-category__title::before,
.p-lineup-category__title::after
{
    display: block;

    width: 40px;
    height: 3px;

    content: '';

    border-radius: 5px;
    background-color: #47aa33;
}
.p-lineup-category__list
{
    display: flex;

    margin: 0;
    padding: 0;

    list-style: none;

    gap: 10px;
    flex-wrap: wrap;
    justify-content: center;
}
.p-lineup-category__item
{
    margin: 0;
}
.p-lineup-category__link
{
    font-size: 14px;

    display: inline-block;

    padding: 8px 16px;

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

    color: #fff !important;
    border-radius: 4px;
    background-color: #47aa33;
}
.p-lineup-category__link:visited,
.p-lineup-category__link:hover,
.p-lineup-category__link:active
{
    color: #fff !important;
}
.p-lineup-category__link--back
{
    color: #333 !important;
    background-color: #ddd;
}
.p-lineup-category__link--back:hover,
.p-lineup-category__link--back:active
{
    color: #333 !important;
}
.p-lineup-category__tags-wrap
{
    margin-top: 30px;
    padding-top: 20px;

    border-top: 1px dashed #ccc;
}
.p-lineup-category__tags-title
{
    font-size: 14px;
    font-weight: bold;

    margin-bottom: 15px;

    color: #666;
}
.p-lineup-category__tags-list
{
    display: flex;

    margin: 0;
    padding: 0;

    list-style: none;

    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
}
.p-lineup-category__tags-item
{
    margin: 0;
}
.p-lineup-category__tags-link
{
    font-size: 13px;

    display: inline-block;

    padding: 6px 16px;

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

    color: #555 !important;
    border: 1px solid #ddd;
    border-radius: 20px;
    background-color: #fff;
}
.p-lineup-category__tags-link:hover,
.p-lineup-category__tags-link:active
{
    color: #333 !important;
    border-color: #ccc;
    background-color: #f0f0f0;
}

.sort-buttons
{
    display: flex;

    margin-bottom: 2em;

    gap: 10px;
}
.sort-buttons a
{
    font-size: 14px;

    display: inline-block;

    padding: 6px 14px;

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

    color: #555 !important;
    border: 1px solid #ccc;
    border-radius: 4px;
    background-color: #fff;
}
.sort-buttons a:hover,
.sort-buttons a:active
{
    color: #111 !important;
    background-color: #f0f0f0;
}

.p-lineup-grid
{
    display: grid;

    margin-bottom: 40px;

    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}
@media screen and (max-width: 1024px)
{
    .p-lineup-grid
    {
        grid-template-columns: repeat(3, 1fr);
    }
}
@media screen and (max-width: 768px)
{
    .p-lineup-grid
    {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media screen and (max-width: 520px)
{
    .p-lineup-grid
    {
        grid-template-columns: 1fr;
    }
}

.p-lineup-card
{
    overflow: hidden;

    transition: box-shadow .3s ease, transform .3s ease;

    border-radius: 10px;
    background-color: #fff;
    box-shadow: 0 4px 10px rgba(0, 0, 0, .08);
}
.p-lineup-card:hover
{
    transform: translateY(-4px);

    box-shadow: 0 8px 16px rgba(0, 0, 0, .12);
}
.p-lineup-card__overlay
{
    position: absolute;
    z-index: 1;
    top: 0;
    left: 0;

    width: 100%;
    height: 100%;
}
.p-lineup-card__link
{
    display: flex;
    flex-direction: column;

    height: 100%;

    text-decoration: none;

    color: #333 !important;
}
.p-lineup-card__thumb
{
    position: relative;

    overflow: hidden;

    width: 100%;

    background-color: #f5f5f5;

    aspect-ratio: 4/3;
}
.p-lineup-card__thumb img
{
    position: absolute;
    top: 0;
    left: 0;

    display: block;

    width: 100% !important;
    height: 100% !important;

    object-fit: cover !important;
}
.p-lineup-card__body
{
    display: flex;
    flex-direction: column;

    padding: 15px;

    background-color: #fff;

    flex-grow: 1;
}
.p-lineup-card__title
{
    font-size: 16px;
    font-weight: bold;
    line-height: 1.4;

    margin: 0 0 10px;
}
.p-lineup-card__code
{
    font-size: 13px;

    margin: auto 0 0;

    color: #777;
}
.p-lineup-card__price
{
    font-size: 15px;
    font-weight: bold;

    margin: 0 0 10px;

    text-align: right;

    color: #df0111;
}
.p-lineup-card__tags
{
    display: flex;

    margin: 5px 0 15px;

    flex-wrap: wrap;
    gap: 8px;
}
.p-lineup-card__tag
{
    font-size: 12px;
    font-weight: bold;

    position: relative;
    z-index: 2;

    display: inline-block;

    padding: 4px 10px;

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

    color: #47aa33 !important;
    border-radius: 4px;
    background-color: #f0f0f0;
}
.p-lineup-card__tag:hover
{
    background-color: #dbdbdb;
}
.p-lineup-card__code
{
    font-size: 13px;

    margin: auto 0 0;

    color: #777;
}

.p-lineup-read
{
    max-width: 960px;
    margin: 15px auto;

    text-align: center;
}
@media screen and (max-width: 575px)
{
    .p-lineup-read
    {
        text-align: left;
    }
}

.p-page-header
{
    /*
  position: relative;
  background-color: $color-main1;
  background-image: radial-gradient(rgba(255, 255, 255, 0.1) 15%, transparent 16%), radial-gradient(rgba(255, 255, 255, 0.1) 15%, transparent 16%);
  background-size: 20px 20px;
  background-position:
    0 0,
    10px 10px;
  margin-inline: calc(50% - 50vw + 30px);
  width: calc(100vw - 60px);

  border-radius: 0 0 30px 30px;
  margin-top: -120px;

  padding: 180px 20px 40px;

  text-align: center;
  overflow: hidden;
  */
    position: relative;

    overflow: hidden;

    width: calc(100vw - 60px);
    margin-top: -140px !important;
    margin-bottom: 20px;
    padding: 190px 20px 60px !important;

    text-align: center;

    border-radius: 0 0 30px 30px;
    border-radius: 0 0 30px 30px !important;
    background-color: #df0111;
    background-image: radial-gradient(rgba(255, 255, 255, .1) 15%, transparent 16%), radial-gradient(rgba(255, 255, 255, .1) 15%, transparent 16%);
    background-position: 0 0, 10px 10px;
    background-size: 20px 20px;

    margin-inline: calc(50% - 50vw + 30px);
}
@media screen and (max-width: 979px)
{
    .p-page-header
    {
        margin-top: -60px;
        margin-bottom: 40px;
        padding: 100px 20px 30px;

        border-radius: 0 0 20px 20px;
    }
}
@media screen and (max-width: 767px)
{
    .p-page-header
    {
        margin-top: -100px;
        margin-bottom: 40px;
        padding: 100px 20px 30px;

        border-radius: 0 0 20px 20px;
    }
}
.p-page-header__en
{
    font-size: clamp(6rem, 10vw, 10rem);
    font-weight: 700;
    line-height: 1;

    position: absolute;
    z-index: 1;
    top: 68%;
    left: 50%;

    transform: translate(-50%, -50%);
    letter-spacing: .05em;
    text-transform: lowercase;

    color: rgba(255, 255, 255, .2);
}
.p-page-header__title
{
    font-size: clamp(2rem, 4vw, 3.2rem);
    font-weight: 700;
    line-height: 1.3;

    position: relative;
    z-index: 2;

    margin: 0;
    padding: 0;

    color: #fff;
    border-bottom: none;
}

.p-search-list
{
    display: flex;
    flex-direction: column;

    margin-bottom: 60px;

    gap: 15px;
}

.p-search-item
{
    overflow: hidden;

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

    border: 1px solid #e0e0e0;
    border-radius: 8px;
    background-color: #fff;
}
.p-search-item:hover
{
    border-color: #ccc;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .08);
}
.p-search-item__link
{
    display: block;

    padding: 20px 25px;

    text-decoration: none;

    color: inherit;
}
.p-search-item__header
{
    display: flex;

    margin-bottom: 12px;

    align-items: center;
    gap: 15px;
}
@media (max-width: 767px)
{
    .p-search-item__header
    {
        flex-direction: column;

        align-items: flex-start;
        gap: 10px;
    }
}
.p-search-item__badge
{
    font-size: 13px;
    font-weight: bold;

    display: inline-block;

    padding: 4px 12px;

    white-space: nowrap;

    color: #fff;
    border-radius: 50px;
}
.p-search-item__badge--lineup
{
    border: 1px solid red !important;
    background-color: #47aa33;
}
.p-search-item__badge--post
{
    background-color: #df0111;
}
.p-search-item__badge--page
{
    background-color: #666;
}
.p-search-item__title
{
    font-size: 18px;
    font-weight: bold;
    line-height: 1.4;

    margin: 0;

    color: #333;
}
.p-search-item__summary
{
    font-size: 14px;
    line-height: 1.6;

    margin: 0;

    color: #666;
}

.p-single-lineup
{
    margin: 40px auto;
    padding: 40px;

    border: 8px solid #e8e0d5; /* 太めのベージュ枠線 */
    border-radius: 15px;
    background-color: #fffaf0;
    background-color: #fff;
}
.p-single-lineup__inner
{
    max-width: 1000px;
    margin: 0 auto;
}
.p-single-lineup__header-flex
{
    display: flex;

    margin-bottom: 40px;

    gap: 40px;
}
@media (max-width: 767px)
{
    .p-single-lineup__header-flex
    {
        flex-direction: column;
    }
}
.p-single-lineup__img
{
    flex: 0 0 45%;
}
.p-single-lineup__img img
{
    width: 100%;
    height: auto;

    border-radius: 10px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, .1);
}
.p-single-lineup__summary
{
    display: flex;
    flex-direction: column;

    flex: 1;
}
.p-single-lineup__cat
{
    display: flex;

    margin-bottom: 15px;

    gap: 10px;
}
.p-single-lineup__cat span
{
    font-size: 13px;
    font-weight: bold;

    padding: 4px 15px;

    color: #fff;
    border-radius: 20px;
    background-color: #47aa33;
}
.p-single-lineup__cat a
{
    text-decoration: none !important;
}
.p-single-lineup__title
{
    font-size: 28px;
    font-weight: bold;
    line-height: 1.4;

    margin-bottom: 20px;

    color: #333;
}
.p-single-lineup__point
{
    font-size: 16px;

    margin-bottom: 10px;

    color: #555;
}
.p-single-lineup__code
{
    font-size: 14px;

    margin-bottom: 20px;

    color: #777;
}
.p-single-lineup__price-box
{
    margin-top: auto;

    text-align: right;

    color: #df0111;
}
.p-single-lineup__price
{
    font-size: 42px;
    font-weight: bold;
}
.p-single-lineup__tax
{
    font-size: 16px;
    font-weight: bold;
}
.p-single-lineup__description
{
    font-size: 18px;
    font-weight: bold;
    line-height: 1.8;

    margin-bottom: 40px;
    padding: 30px;

    color: #d1121d;
    border-radius: 10px;
    background-color: #ffeef0;
}
.p-single-lineup__tags
{
    display: flex;

    padding-top: 25px;

    border-top: 1px dashed #ccc;

    flex-wrap: wrap;
    gap: 15px;
}
.p-single-lineup__tags a
{
    font-size: 14px;

    display: inline-block;

    padding: 6px 18px;

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

    color: #666 !important;
    border: 1px solid #ddd;
    border-radius: 20px;
    background-color: #fff;
}
.p-single-lineup__tags a:hover
{
    border-color: #ccc;
    background-color: #f5f5f5;
}

.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: CSS class for a variable style
.noto-sans-jp-<uniquifier> {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: <weight>;
  font-style: normal;
}

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

M PLUS Rounded 1c: CSS class
.m-plus-rounded-1c-regular {
  font-family: "M PLUS Rounded 1c", sans-serif;
  font-weight: 400;
  font-style: normal;
}

Kaisei Decol: CSS class
.kaisei-decol-regular {
  font-family: "Kaisei Decol", serif;
  font-weight: 400;
  font-style: normal;
}

Zen Maru Gothic: CSS class
.zen-maru-gothic-regular {
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 400;
  font-style: normal;
}

*/
/*# sourceMappingURL=style.css.map */
