@charset "UTF-8";
/* ===== 新デザイン用 カラーパレット（白ベース×黒×赤 / 柔らか地域密着） ===== */
:root {
    --kc-base: #ffffff;
    --kc-soft: #f7f3f0;      /* 温かみのあるオフホワイト */
    --kc-soft2: #f1eae5;     /* 一段濃いベージュ */
    --kc-ink: #1a1a1a;       /* ほぼ黒（見出し・強調） */
    --kc-text: #2b2b2b;      /* 本文 */
    --kc-red: #c5362f;       /* 柔らかい温かみのある赤 */
    --kc-red-deep: #9e2924;  /* 深い赤 */
    --kc-red-soft: #f4e2e0;  /* 赤の淡い背景 */
    --kc-line: #e7ddd6;      /* 罫線 */
}
/* 共通部分 */
body {
    background: #fff;
    color: #2b2b2b;
    overflow: hidden;
    font-size: 15px;
    font-size: clamp(16px, 0.8vw, 21px);
    letter-spacing: .05em;
    counter-reset: number 0 counter-reset1 counter-reset2;
}
a, .post-content a {
    color: #2b2b2b;
}
.font-type2, .headline-font-type {
    font-family: "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
}
p, .post-content p {
    font-size: 0.9em;
    font-weight: 400;
    line-height: 2;
}
.post-content ul {
    font-size: 0.9em;
    list-style: none;
}
.post-content ul li{
    position: relative;
}
.breadcrumb-wrapper {
    background: none;
}
.breadcrumb.inner {
    font-size: 0.8em;
    width: fit-content;
    display: block;
    height: 35px;
    line-height: 35px;
}
.breadcrumb li a, .breadcrumb li {
    color: #fff;
}
.signage {
    height: 330px;
    position: relative;
    z-index: 0;
}
.signage:before{
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    content: "";
    background: rgba(0,0,0,0.3);
}
.signage-title.headline-font-type, .signage-title-sub {
    text-align: center;
    text-shadow: none;
}
.signage-title.headline-font-type {
    letter-spacing: .1em;
    margin-bottom: 15px;
    font-size: 3.5em !important;
    font-weight: 400;
    font-family: "Dosis", sans-serif;
}
.signage-title-sub {
    font-size: 0.9em !important;
    line-height: 1;
    font-weight: 400;
}
@media only screen and (max-width: 768px) {
    .signage {
        height: 180px;
    }
    .signage-title.headline-font-type {
        font-size: 2em !important;
    }
    .signage-title-sub {
        font-size: 0.7em !important;
    }
}
/* 共通部分 END */
/* ナビ */
.home .header::before {
    content: '';
    position: absolute;
    background: #000;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    opacity: 0.15;
    z-index: 1;
}
.header-bar {
    z-index: 50;
    box-shadow: 0 2px 18px rgba(0, 0, 0, 0.06);
    background: rgba(255, 255, 255, 0.96) !important;
    backdrop-filter: saturate(1.1) blur(6px);
    border-bottom: 1px solid var(--kc-line);
}
.logo-image {
    top: 0;
    left: 0;
    width: 330px;
    height: auto;
    padding: 20px 20px 20px 95px;
    background: #fff;
    box-sizing: border-box;

    background: url(img/5b852d31484f3afb01b985193b18c14c.png) left 10px center no-repeat;
    background-size: 75px auto;
}
img.h_logo {
    width: 100%;
}
.global-nav {
    padding-right: 0;
}
.header-bar-inner {
    width: 100%;
    max-width: unset;
    z-index: 100;
}
.global-nav > ul > li > a {
    font-size: 16px;
    font-weight: 400;
    line-height: 89px;
    padding: 0 45px 0 0;
    position: relative;
    text-align: center;
    transition: all 0.5s;
    color: var(--kc-ink);
    font-family: "Dosis", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
}
.global-nav > ul > li > a::before {
    content: "";
    left: 0;
    width: 0;
    height: 2px;
    top: 25px;
    background: var(--kc-red);
    position: absolute;
    transition: all 0.5s;
    z-index: 1;
}
.global-nav > ul > li > a:hover::before, .global-nav .current-menu-item > a::before {
    width: calc(100% - 46px);
}
.global-nav > ul > li > a::after {
    position: relative;
    text-align: center;
    display: block;
    bottom: 27px;
    line-height: 1;
    font-size: 11px;
    font-weight: 400;
    letter-spacing: .05em;
    color: var(--kc-red);
}

.global-nav > ul > li > a span {
    position: relative;
    text-align: center;
    display: block;
    bottom: 27px;
    line-height: 1;
    font-size: 11px;
    font-weight: 400;
    letter-spacing: .05em;
    color: var(--kc-red);
}
.global-nav > ul > li.global-menu-home > a::after {
    content: "ホーム";
}
.global-nav > ul > li.global-menu-menu > a::after {
    content: "メニュー";
}
.global-nav > ul > li.global-menu-flow > a::after {
    content: "ご利用の流れ";
}
.global-nav > ul > li.global-menu-faq > a::after {
    content: "よくある質問";
}
.global-nav > ul > li.global-menu-information > a::after {
    content: "店舗概要";
}
.global-nav > ul > li.global-menu-contact > a::after {
    content: "お問い合わせ";
}
.global-nav a:hover, .global-nav .current-menu-item > a {
    color: var(--kc-red);
}
.global-nav .sub-menu {
    left: auto;
    right: 0px !important;
}
.global-nav .sub-menu a {
    font-size: 14px;
    font-weight: 400;
    color: var(--kc-ink);
    background: #fff !important;
    border-bottom: 1px solid var(--kc-line);
}
.global-nav .sub-menu a:hover {
    color: #fff !important;
    background: var(--kc-red) !important;
}
.global-nav .sub-menu a:hover::before {
    content: none;
}
@media only screen and (max-width: 1200px) {
    .logo-image {
        top: 0;
        left: -15px;
        width: 120px;
        padding: 10px 12px 12px 10px;
    }
    .header-bar {
        border-bottom: 1px solid var(--kc-line);
    }
    .global-nav-button {
        border-left: 0px;
        background: none;
    }
    .global-nav-button:before {
        color: var(--kc-ink);
    }
    .global-nav-button:hover:before {
        color: #c5362f;
    }
    .global-nav > ul > li > a {
        font-size: 12px;
        letter-spacing: 1px;
        text-shadow: none;
        text-align: center;
        padding: 11px 0;
        line-height: 1.4;
        height: auto;
        display: -webkit-flex;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
    }
    .global-nav > ul > li > a::after {
        position: static;
        bottom: auto;
        text-align: center;
        line-height: 1.3;
        padding-left: 0;
        display: block;
        width: 100%;
        margin-top: 3px;
    }
    .global-nav > ul > li > a span{
        position: static;
        bottom: auto;
        text-align: center;
        line-height: 1.3;
        padding-left: 0;
        display: block;
        width: 100%;
        margin-bottom: 3px;
    }
    .global-nav a {
        background: #fff;
        color: var(--kc-ink) !important;
        border-bottom: 1px solid var(--kc-line);
    }
    .global-nav .sub-menu a {
        font-size: 11px;
        background: var(--kc-soft) !important;
        color: var(--kc-ink) !important;
    }
    .global-nav a:hover, .global-nav .sub-menu a:hover {
        background: var(--kc-red) !important;
        color: #fff !important;
    }
    .global-nav > ul > li > a:hover::before, .global-nav .current-menu-item > a::before {
        content: none;
    }
    .global-nav .menu-item-has-children > a:before {
        content: none !important;
    }
}
@media only screen and (max-width: 820px) {
    img.s_logo {
        width: 100%;
    }
}
/* ナビ END */
/* YouTube コントロールバー非表示 */
.mb_YTPBar {
    display: none !important;
}
/* YouTube コントロールバー非表示 */
/* トップ・フッター */
.header-youtube-overlay {
    background: linear-gradient(-70deg, #ffffff 0%, #5c473b 60%);
    opacity: 0.25;
}
.fv-zoom {
    transform: scale(1);
    transform-origin: 50% 50%;
    will-change: transform;
    animation: kcKenBurns 16s ease-out infinite alternate;
}
@keyframes kcKenBurns {
    from { transform: scale(1); }
    to   { transform: scale(1.14); }
}
.top-slider-content {
    border-radius: 0;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    display: -webkit-flex;
    display: flex;
    width: 100% !important;
    height: 100% !important;
    /*background: linear-gradient(100deg, rgba(0, 0, 0, 0.22) 0%, rgba(0, 0, 0, 0.08) 44%, rgba(0, 0, 0, 0) 74%);*/
}
.top-slider-content-inner, .top-slider-content-inner:hover {
    background: none;
}
.top-slider-content-inner {
    width: 100% !important;
    height: 100% !important;
    box-sizing: border-box;
    margin: 0 auto;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    display: -webkit-flex;
    display: flex;
}
.top-slider-content-inner:after {
    content: none;
}
.front-slider-box {
    width: 86%;
    max-width: 1150px;
    margin: 0 auto;
    text-align: left;
}
.front-copy-text {
    color: #fff;
    position: relative;
}
.front-copy-label {
    display: inline-block;
    font-family: "Dosis", sans-serif;
    font-size: clamp(11px, 1vw, 14px);
    font-weight: 600;
    letter-spacing: .3em;
    color: #fff;
    padding: 9px 18px 8px;
    margin-bottom: 28px;
    border: 1px solid rgba(255, 255, 255, 0.55);
    border-radius: 999px;
    opacity: 0;
    animation: kcFadeUp 1.1s ease 0.1s both;
}
.front-copy-text h2 {
    font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
    font-size: clamp(30px, 4.6vw, 62px);
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: .045em;
    margin-bottom: 30px;
    text-shadow: 0 6px 30px rgba(0, 0, 0, 0.45);
    opacity: 0;
    animation: kcFadeUp 1.2s ease 0.32s both;
}
.front-copy-text h2 .kc-accent {
    color: #ec6a60;
    position: relative;
}
.front-copy-text p {
    display: block;
    font-size: clamp(13px, 1.15vw, 17px);
    font-weight: 400;
    line-height: 2;
    letter-spacing: .06em;
    padding-left: 24px;
    position: relative;
    text-shadow: 0 2px 14px rgba(0, 0, 0, 0.55);
    opacity: 0;
    animation: kcFadeUp 1.2s ease 0.54s both;
}
.front-copy-text p::before {
    content: "";
    position: absolute;
    left: 0;
    top: 16px;
    width: 14px;
    height: 2px;
    background: var(--kc-red);
}
.top-slider-wrapper::before {
    content: '';
    position: absolute;
    width: 2px;
    height: 40px;
    background: var(--kc-red);
    bottom: 0;
    left: 50%;
    z-index: 10;
    transition: 0.5s;
    animation: kcLineGrow 2.4s ease-in-out infinite;
}
.top-slider-wrapper::after {
    content: 'SCROLL';
    position: absolute;
    color: #fff;
    text-align: center;
    width: 100%;
    left: 0;
    bottom: 50px;
    font-size: 15px;
    font-weight: 400;
    letter-spacing: 0.15em;
    line-height: 1;
    z-index: 2;
    font-family: "Dosis", sans-serif;
    transition: 0.8s;
}
.top-slider-wrapper:hover::before {
    height: 30px;
}
.top-slider-wrapper:hover::after {
    bottom: 40px;
}
#content01::before {
    width: 2px;
    height: 40px;
    background: var(--kc-red);
    position: absolute;
    content: '';
    display: block;
    transition: 0.5s;
    left: 50%;
    animation: kcLineGrow 2.4s ease-in-out infinite;
}
.front_original01 {
    padding: 6em 0 5em;
    position: relative;
    z-index: 0;
}
.front-original01__title h2::before {
    content: "CONCEPT";
    display: block;
    font-size: 0.42em;
    letter-spacing: .25em;
    font-weight: 600;
    color: var(--kc-red);
    font-family: "Dosis", sans-serif;
    margin-bottom: 18px;
    padding-left: 46px;
    position: relative;
}
.front-original01__title h2::after {
    content: "";
    position: absolute;
    left: 0;
    top: 9px;
    width: 34px;
    height: 2px;
    background: var(--kc-red);
}
.front-original01-inner {
    width: 86%;
    max-width: 1150px;
    margin: 0 auto;
}
.front-original01__title {
    width: 35%;
    box-sizing: border-box;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    display: -webkit-flex;
    display: flex;
}
.front-original01__text {
    width: 65%;
    padding-left: 2.5em;
    box-sizing: border-box;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    display: -webkit-flex;
    display: flex;
}
.front-original01__title h2 {
    font-size: 1.9em;
    font-weight: 600;
    line-height: 1.9;
    text-align: left;
    position: relative;
    color: var(--kc-ink);
    font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
}
.front-original01__text p {
    margin-bottom: 20px;
    width: 100%;
}
.front-original01__text p:last-of-type {
    margin-bottom: 0;
}
.content02 {
    background: none;
}
.content02-inner {
    width: 86%;
    padding: 0;
    padding-bottom: 130px;
}
.content02-item {
    padding: 0;
    margin-left: 3%;
    width: 33.3333%;
    box-sizing: border-box;
    position: relative;
    background: #fff;
    border: 1px solid var(--kc-line);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 14px 36px rgba(26, 26, 26, 0.06);
    transition: transform 0.45s ease, box-shadow 0.45s ease;
}
.content02-item:hover {
    transform: translateY(-8px);
    box-shadow: 0 22px 50px rgba(197, 54, 47, 0.16);
}
.content02-item::before {
    counter-increment: number 1;
    content: "SERVICE."counter(number) "";
    position: absolute;
    font-size: 0.8em;
    font-weight: 600;
    letter-spacing: .08em;
    line-height: 1;
    text-align: center;
    font-family: "Dosis", sans-serif;
    color: #fff;
    background: var(--kc-red);
    padding: 8px 15px 7px;
    border-radius: 999px;
    top: 16px;
    left: 16px;
    z-index: 2;
    box-shadow: 0 6px 16px rgba(197, 54, 47, 0.35);
}
.content02-img {
    width: 100%;
    height: auto;
    margin: 0 auto;
    overflow: hidden;
    position: relative;
    z-index: 0;
}
.content02-img img {
    width: 100%;
    transition: transform 0.7s ease;
    aspect-ratio: 350/240;
    object-fit: cover;
}
.content02-item:hover .content02-img img {
    transform: scale(1.07);
}
.content02-text__box {
    padding: 26px 24px 30px;
}
.content02-title, .content02-text {
    color: #2b2b2b;
}
.content02-title {
    font-size: 1.1em;
    line-height: 1.5;
    font-weight: 600;
    margin-bottom: 20px;
    text-align: left;
}
.content02-item:nth-of-type(2) {
    top: 0;
}
.content02-item:nth-of-type(3) {
    top: 0;
}
.content02-text {
    line-height: 2;
}
.content02-button {
    font-size: 1em;
    font-weight: 400;
    font-family: "Dosis", sans-serif;
    text-align: left;
    width: 100%;
    max-width: 220px;
    height: 50px;
    line-height: 55px;
    position: relative;
    margin: 15px 0 0;
    color: #2b2b2b;
    background: none;
    border-bottom: 1px solid #2b2b2b;
    padding: 0 2px;
    box-sizing: border-box;
    transition: 0.5s;
    z-index: 1;
}
.content02-button::after {
    content: '\e910';
    position: absolute;
    font-size: 0.7em;
    right: 1px;
    font-family: 'design_plus';
}
.content02-button::before {
    width: 0;
    height: 1px;
    position: absolute;
    content: '';
    background: #c5362f;
    left: 0;
    bottom: -1px;
    transition: 0.8s;
}
.content02-button:hover {
    color: #2b2b2b;
    background: none;
}
.content02-button:hover::before {
    width: 100%;
}
.content02-button:hover {
    padding-left: 12px;
}
.front_original02 {
    padding: 6em 0 7em;
    background: var(--kc-soft);
    position: relative;
    z-index: 0;
}
.front_original02::before {
    content: "GREETING";
    position: absolute;
    top: 0.4em;
    left: 7%;
    font-size: 5.5em;
    font-weight: 700;
    letter-spacing: .04em;
    line-height: 1;
    color: #fff;
    opacity: 0.6;
    font-family: "Dosis", sans-serif;
    pointer-events: none;
    z-index: -1;
}
.front-original02-inner {
    width: 86%;
    max-width: 1200px;
    margin: 0 auto;
}
.front-original02__text {
    width: 45%;
    padding-right: 2.5em;
    box-sizing: border-box;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    display: -webkit-flex;
    display: flex;
}
.front-original02__img {
    width: 55%;
    box-sizing: border-box;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    display: -webkit-flex;
    display: flex;
}
.front-original02__img {
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 14px 14px 0 #fff, 16px 16px 0 var(--kc-red);
}
.front-original02__img img {
    border-radius: 16px;
}
.front-original02__text h2 {
    font-size: 1.6em;
    font-weight: 600;
    margin-bottom: 30px;
    line-height: 1.7;
    width: 100%;
    color: var(--kc-ink);
    font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
}
.front-original02__text p {
    margin-bottom: 20px;
    width: 100%;
}
.front-original02__text p:last-child {
    margin-bottom: 0;
}
.front_original03 {
    position: relative;
    z-index: 0;
}
.front_original03::before {
    content: '';
    position: absolute;
    display: block;
    background: #f3f0ea;
    width: 100%;
    height: 90%;
    top: 0;
    left: 0;
    z-index: -2;
}
.front-original03-inner {
    width: 86%;
    max-width: 1200px;
    margin: 0 auto;
}
.third-box {
    width: calc(33.3333% - 20px);
    margin-right: 30px;
    position: relative;
    background: #fff;
    padding: 32px 28px 34px;
    border-radius: 16px;
    box-sizing: border-box;
    box-shadow: 0 16px 40px rgba(26, 26, 26, 0.07);
    transition: transform 0.45s ease, box-shadow 0.45s ease;

    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
}
.third-box:hover {
    transform: translateY(-8px);
    box-shadow: 0 24px 54px rgba(197, 54, 47, 0.15);
}
.third-box:last-of-type {
    margin-right: 0;
    margin-bottom: 0;
}
.third-box:nth-of-type(2) {
    top: 0;
}
.third-box:nth-of-type(3) {
    top: 0;
}
.third-box::before {
    counter-increment: counter-reset1;
    content: "POINT."counter(counter-reset1) "";
    display: inline-block;
    font-size: 0.85em;
    font-weight: 600;
    letter-spacing: .08em;
    margin-bottom: 16px;
    padding: 7px 15px 6px;
    border-radius: 999px;
    font-family: "Dosis", sans-serif;
    color: #fff;
    background: var(--kc-red);
    box-shadow: 0 6px 16px rgba(197, 54, 47, 0.3);
}
.front-third-text {
    margin-bottom: 20px;
}
.front-third-img{
    margin-top: auto;
}
.front-third-img img {
    aspect-ratio: 640/420;
    object-fit: cover;
    border-radius: 12px;
}
h3.third_title {
    font-size: 1.25em;
    font-weight: 600;
    line-height: 1.6;
    margin-bottom: 15px;
    width: 100%;
    color: var(--kc-ink);
    font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
}
.front_topics {
    padding: 10em 0 5em;
}
.front-topics-inner {
    width: 86%;
    max-width: 1150px;
    margin: 0 auto;
}
h2.front_topics_title {
    font-size: 3.5em;
    letter-spacing: .05em;
    margin-bottom: 40px;
    padding-bottom: 22px;
    font-family: "Dosis", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
    font-weight: 500;
    color: var(--kc-ink);
    position: relative;
}
h2.front_topics_title::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 56px;
    height: 3px;
    background: var(--kc-red);
}
h2.front_topics_title span {
    margin-top: 15px;
    font-size: 0.3em;
    letter-spacing: .08em;
    margin-left: 15px;
    color: var(--kc-red);
}
h2.headline-primary {
    display: none;
}
.footer-gallery-title, .align1 {
    display: none;
}
.footer {
    margin-top: 0;
    color: #fff;
    background: var(--kc-ink);
}
.footer_contact_sec {
    padding: 4em 0;
}
.footer_contact_inner {
    width: 86%;
    max-width: 1150px;
    margin: 0 auto;
    display: block;
}
.footer_contact_bg {
    width: 50%;
    box-sizing: border-box;
}
.footer_menu_bg {
    width: 50%;
    padding-left: 10em;
    box-sizing: border-box;
}
h2.footer_logo {
    font-size: 1.5em;
    font-weight: 400;
    font-family: "Dosis", sans-serif;
    margin-bottom: 20px;
}
dl.address_body {
    width: auto;
    font-size: 0.8em;
    line-height: 1.6;
    display: flex;
    margin-bottom: 8px;
}
dl.address_body:last-of-type {
    margin-bottom: 30px;
}
dt.address_title {
    width: 15%;
}
dd.address_text {
    width: 85%;
}
address.footer_tel {
    font-size: 2.3em;
    font-weight: 500;
    font-style: normal;
    letter-spacing: 2px;
    margin-bottom: 15px;
    font-family: "Dosis", sans-serif;
}
span.footer_tel_sub {
    font-size: 0.5em;
    margin-right: 4px;
    letter-spacing: 1px;
}
p.footer-con-caution {
    font-size: 0.75em;
    width: fit-content;
    position: relative;
    line-height: 1.5;
    padding-left: 15px;
    margin-bottom: 5px;
    box-sizing: border-box;
}
p.footer-con-caution:last-of-type {
    margin-bottom: 0;
}
p.footer-con-caution::before {
    content: '※';
    position: absolute;
    left: 0;
    color: #ff5353;
}
ul.sns__links {
    width: 100%;
    max-width: 280px;
    display: flex;
}
li.sns__links-item {
    width: 33.3333%;
    margin-right: 15px;
}
li.sns__links-item:last-child {
    margin-right: 0;
}
a.footer_sns {
    display: block;
    text-align: center;
    color: #fff;
}
a.footer_sns::before {
    content: "";
    font-family: design_plus;
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: auto;
    color: #fff;
    font-size: 16px;
    width: 35px;
    height: 35px;
    border-radius: 100%;
    transition: all 0.5s;
    z-index: 1;
}
a.footer_line_but::before {
    content: '\e909';
    background: #00b900;
}
a.footer_insta_but::before {
    content: "\ea92";
    background-image: linear-gradient(45deg, #ffd75f, #ff0357);
}
a.footer_mail_but::before {
    content: '\f0e0';
    color: #c5362f;
    background: #f3f0ea;
}
a.footer_sns:hover {
    background: none;
}
a.footer_line_but:hover {
    color: #00b900;
}
a.footer_insta_but:hover {
    color: #ff0357;
}
a.footer_mail_but:hover {
    color: #c5362f;
}
a.footer_sns:hover::before {
    opacity: 0.8;
}
a.footer_sns span {
    margin-top: 8px;
    text-align: center;
    display: block;
    font-size: 13px;
    font-weight: 400;
    font-family: "Dosis", sans-serif;
}
h3.footer_menu_title {
    font-size: 1.5em;
    font-weight: 400;
    font-family: "Dosis", sans-serif;
    margin-bottom: 20px;
}
ul.footer-content-list-outer {
    width: 50%;
    box-sizing: border-box;
}
ul.footer-content-list-outer:last-child {
    padding-left: 20px;
    margin-bottom: 0;
}
ul.footer-content-list-outer li {
    font-size: 0.85em;
    line-height: 1.5;
    letter-spacing: 0;
    padding-left: 20px;
    margin-bottom: 10px;
    position: relative;
}
ul.footer-content-list-outer li:last-of-type {
    margin-bottom: 0;
}
ul.footer-content-list-outer li:before {
    content: '';
    position: absolute;
    width: 8px;
    height: 1px;
    background: #fff;
    top: 9px;
    left: 0;
    transition: all 0.5s;
}
ul.footer-content-list-outer li:hover::before {
    padding-left: 8px;
}
ul.footer-content-list-outer li a{
    color: #fff;
}
ul.footer-content-list-outer li a span{
    display: none;
}
a.footer_but {
    color: #fff;
}
a.footer_but:hover {
    color: #c5362f;
}
.footer-content {
    display: none;
}
.pagetop {
    right: 10px;
    bottom: 20px;
}
.pagetop a {
    background: none;
    color: #2b2b2b;
    position: relative;
    width: 120px;
    height: auto;
    font-size: 15px;
    font-weight: 400;
    line-height: 1;
    text-align: center;
    font-family: "Dosis", sans-serif;
}
.pagetop a::before {
    content: '';
    position: absolute;
    display: block;
    background: url("/wp-content/themes/story_tcd041/img/pagetop_img.png");
    background-size: 100px auto;
    background-repeat: no-repeat;
    background-position: center;
    width: 100px;
    height: 100px;
    text-align: center;
    right: 0;
    top: auto;
    z-index: -1;
    transition: all 0.8s ease 0s;
}
.pagetop a:hover {
    color: #2b2b2b;
    background: none;
}
.pagetop a:hover::before {
    bottom: 10px;
}
.copyright {
    font-size: 10px;
}
.footer-bar01, .footer-bar01-inner, .copyright {
    background: none;
}
@media only screen and (max-width: 1200px) {
    .header-youtube {
        height: calc(80vh - 80px);
    }
}
@media only screen and (max-width: 970px) {
    .header-youtube, .header-video, .top-slider {
        height: calc(100svw*9/16);
    }
    .front-original01__title {
        width: 100%;
        margin-bottom: 1.5em;
    }
    .front-original01__text {
        width: 100%;
        padding-left: 0;
    }
    .front-original01__title h2 {
        text-align: left;
        line-height: 1.5;
        width: 100%;
    }
    .front-original01__title h2 br {
        display: contents;
    }
    .content02-inner {
        display: block;
    }
    .content02-item {
        width: 100%;
        margin-left: 0;
    }
    .front_original02 {
        padding: 3em 0 5em;
    }
    .front-original02__text, .front-original02__img {
        width: 100%;
    }
    .front-original02__text {
        padding-right: 0;
        margin-bottom: 2em;
    }
    .front-original02__text h2 br {
        display: contents;
    }
    .front_original03::before {
        height: 90%;
    }
    .third-box {
        width: 100%;
        margin-right: 0;
        margin-bottom: 24px;
    }
    .third-box:last-of-type {
        margin-bottom: 0;
    }
    .footer_menu_bg {
        padding-left: 5em;
    }
    dl.address_body {
        display: block;
    }
    dt.address_title, dd.address_text {
        width: 100%;
    }
    .dp-footer-bar {
        background: #c5362f !important;
        border-top: 1px solid #fff !important;
    }
    .dp-footer-bar-item + .dp-footer-bar-item {
        border-left: 1px solid #fff !important;
    }
    .dp-footer-bar a {
        color: #fff;
    }
    .dp-footer-bar-item {
        font-size: 11px;
    }
    .dp-footer-bar-icon:before {
        font-weight: 500;
    }
    .icon-file-text:before {
        content: "\e909";
    }
    .icon-share-alt:before {
        content: "\ea92";
    }
}
@media only screen and (max-width: 768px) {
    .header-youtube, .header-video, .top-slider {
        /*height: calc(100vh - 55px);*/
    }
    .front-copy-label,
    .front-copy-text p{
        display: none;
    }
    .top-slider-wrapper::before {
        height: 20px;
    }
    .top-slider-wrapper::after {
        font-size: 10px;
        bottom: 30px;
    }
    #content01::before {
        height: 20px;
    }
    .front_original01 {
        padding: 3em 0;
    }
    .front-original01__title h2 {
        font-size: 1.4em;
    }
    .content02-inner {
        padding-bottom: 100px;
    }
    #content01::before {
        height: 20px;
    }
    .content02-inner {
        padding-bottom: 100px;
    }
    .front-original02__text h2 {
        font-size: 1.2em;
        margin-bottom: 15px;
    }
    .front-original02__text p {
        margin-bottom: 10px;
    }
    .front_topics {
        padding: 8em 0 3em;
    }
    h2.front_topics_title {
        font-size: 2.5em;
        margin-bottom: 20px;
    }
    .footer_contact_sec {
        padding: 2em 0;
    }
    .footer_contact_bg, .footer_menu_bg {
        width: 100%;
    }
    .footer_menu_bg {
        padding-left: 0;
        margin-top: 2em;
    }
    .social-nav {
        width: 90%;
        margin: auto;
    }
    .pagetop {
        bottom: 80px !important;
    }
    .pagetop a {
        width: 80px;
        font-size: 11px;
    }
    .pagetop a::before {
        width: 80px;
        height: 80px;
        background-size: 80px auto;
    }
}
@media only screen and (max-width: 500px) {
    .header-youtube, .header-video, .top-slider {
        /*height: calc(60vh - 60px);*/
    }
}
@media only screen and (max-height: 400px) {
    .top-slider {
        /*height: 100vh;*/
    }
}
/* トップ・フッター END */
/* 固定ページ */
.page .post-header {
    margin: 0px;
}
.content_inner {
    width: 86%;
    max-width: 1150px;
    margin: 0px auto;
    padding: 100px 0;
    box-sizing: border-box;
    position: relative;
}
.post-content h2 {
    font-size: 1.6em;
    line-height: 1.8;
    margin-bottom: 30px;
    padding-top: 0;
    font-weight: 400;
    text-align: center;
}
.post-content h2::after {
    content: "";
    display: block;
    background: #c5362f;
    width: 30px;
    height: 1px;
    margin: 20px auto 0;
}
.post-content h3 {
    font-size: 1.2em;
    font-weight: 600;
    padding: 0;
    margin-bottom: 10px;
    line-height: 1.5;
    color: #c5362f;
}
.post-content h4 {
    font-size: 1.2em;
    margin-bottom: 15px;
    line-height: 1.5;
    font-weight: 600;
    padding: 0;
}
.post-content table {
    margin: 0;
}
.post-content th, .post-content td {
    font-size: 0.95em;
    font-weight: 400;
    vertical-align: middle;
    line-height: 1.8;
    padding: 22px 2px 18px;
    background: none;
    border: 0;
    border-bottom: 1px #c5362f solid;
}
.post-content th {
    width: 20%;
    text-align: left;
    border-right: none;
}
.post-content td {
    border-left: none;
}
@media only screen and (max-width: 1200px) {
    .content_inner {
        padding: 80px 0;
    }
}
@media only screen and (max-width: 970px) {
    .post-content th, .post-content td {
        padding: 14px 4px 10px;
        line-height: 1.5;
        display: block;
        box-sizing: border-box;
        border-color: #c5362f;
        margin-top: -1px;
        width: 100% !important;
    }
    .post-content th {
        border-bottom: none;
        padding-bottom: 0;
    }
    .post-content td {
        border-top: none;
    }
}
@media only screen and (max-width: 768px) {
    .content_inner {
        padding: 50px 0;
    }
    .post-content h2 {
        font-size: 1.4em;
        line-height: 1.5;
        margin-bottom: 20px;
    }
    .post-content h2::after {
        width: 20px;
        margin-top: 12px;
    }
}
/* 固定ページ END */
/* お知らせ */
.archive.category .main, .post-template-default .main, .blog .main {
    padding-bottom: 100px;
}
h2.archive-title {
    font-weight: 400;
    color: #2b2b2b;
}
.archive-header {
    margin: 90px 0px 40px;
}
.article03 {
    background: #fff;
    box-sizing: border-box;
    border: 1px solid var(--kc-line);
    border-radius: 12px;
    overflow: hidden;
    transition: transform 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease;
}
.article03:hover {
    transform: translateY(-6px);
    border-color: var(--kc-red);
    box-shadow: 0 18px 40px rgba(197, 54, 47, 0.12);
}
.article03-content {
    padding: 16px 16px 18px;
}
.article03-title {
    font-size: 0.8em;
    font-weight: 400;
    line-height: 1.5;
    color: #2b2b2b;
}
.article03-category-item:hover, .article03 a:hover .article03-title {
    text-decoration: none;
}
.post-category {
    font-weight: 300;
}
.post-title, .post-meta {
    color: #2b2b2b;
    font-weight: 500;
}
.nav-links01 {
    border-top: 1px solid #c5362f;
    border-bottom: 1px solid #c5362f;
}
.nav-links01-previous + .nav-links01-next {
    border-left: 1px solid #c5362f;
}
.article01-title a {
    font-size: 0.9em;
    font-weight: 500;
    color: #2b2b2b;
}
.nav-links01-previous a::before, .nav-links01-next a::after {
    font-size: 15px;
    font-weight: 500;
}
.post-meta-box {
    background: #f3f0ea;
}
.post-meta-box-item::before {
    color: #2b2b2b;
}
.primary {
    width: 100%;
}
.headline-bar {
    color: #2b2b2b;
    font-weight: 500;
    background: #f3f0ea;
}
@media only screen and (max-width: 1200px) {
    .archive.category .main, .post-template-default .main {
        padding-bottom: 80px;
    }
    .article03-title {
        margin: 0;
    }
}
@media only screen and (max-width: 970px) {
    .post-meta-box-item {
        padding: 8px 0px 8px 20px;
        margin-left: 15px;
    }
}
@media only screen and (max-width: 768px) {
    .archive.category .main, .post-template-default .main {
        padding-bottom: 30px;
    }
    .archive-header {
        margin: 50px 0px 30px;
    }
    h2.archive-title {
        font-size: 25px !important;
    }
    h1.post-title {
        font-size: 1.2em !important;
    }
    .nav-links01-previous a::before, .nav-links01-next a::after {
        color: #2b2b2b;
    }
    .article04-title {
        font-size: 15px;
    }
    .nav-links01 {
        border: 1px solid #c5362f;
    }
}
@media only screen and (max-width: 500px) {
    .post-title, .post-meta {
        text-align: left;
    }
    .article03-title {
        font-size: 10px;
        margin-top: 0;
    }
}
/* お知らせ END */
/* コンテンツ 共通 */
.flex-inner {
    display: -webkit-flex;
    display: flex;
    flex-wrap: wrap;
}
p.caution {
    line-height: 1.5;
    margin-bottom: 5px;
    padding-left: 15px;
    position: relative;
    box-sizing: border-box;
}
p.caution:last-of-type {
    margin-bottom: 0;
}
p.caution::before {
    content: '※';
    position: absolute;
    left: 0;
    color: #ff5353;
}
span.caution {
    position: relative;
    padding-left: 17px;
    line-height: 1.8;
    box-sizing: border-box;
    display: inline-block;
}
/*span.caution::before {
    content: '※';
    position: absolute;
    left: 0;
    top: 0;
    color: #ff5353;
}*/
ul.list {
    margin: 0;
    list-style: none;
}
ul.list li {
    padding-left: 18px;
    line-height: 1.8;
    margin-bottom: 8px;
    box-sizing: border-box;
    position: relative;
}
ul.list li:last-child {
    margin-bottom: 0;
}
ul.list li::before {
    content: '';
    position: absolute;
    background: #c5362f;
    width: 7px;
    height: 7px;
    top: 9px;
    left: 0;
}
ul.list.caution_list li::before {
    content: '※';
    background: none;
    top: 0;
}
/* コンテンツ 共通 END */
/* メニュー */
.menu_sec:nth-of-type(1) {
    background: #f3f0ea;
}
.menu_sec h2 {
    text-align: left;
}
.menu_sec h2::after {
    margin-left: 0;
}
.open_price {
    max-width: 850px;
    margin: auto;
    padding: 20px 25px;
    border: 1px dashed #c5362f;
    background: #fff;
    box-sizing: border-box;
}
.open_price h2 {
    font-size: 1.3em;
    font-weight: 600;
    text-align: center;
    margin-bottom: 10px;
}
.open_price h2::after {
    content: none;
}
.open_price p {
    margin-bottom: 0;
}
span.off {
    color: #ff5353;
    font-weight: 600;
}
.menu_box {
    margin-bottom: 70px;
}
.course_box, .area_box {
    margin-bottom: 40px;
}
.menu_box:last-of-type, .course_box:last-of-type {
    margin-bottom: 0;
}
.menu_box p {
    margin-bottom: 10px;
}
.menu_box p:last-child {
    margin-bottom: 0;
}
.table_scroll {
    overflow: auto;
    white-space: nowrap;
}
p.scroll_text {
    display: none;
    line-height: 1.5;
    margin-bottom: 10px;
}
p.caution.price-first_caution {
    margin-bottom: 20px;
}
p.caution.price-first_caution span {
    font-weight: 600;
}
span.free {
    color: #ff5353;
}
p.caution.area-price_caution {
    margin-top: 12px;
}
ul.feature_list {
    padding: 20px 25px;
    margin-bottom: 20px;
    background: #f3f0ea;
    box-sizing: border-box;
}
p.case_text {
    font-size: 1em;
    font-weight: 600;
    line-height: 1.8;
}
ul.shampoo_course_list {
    display: -webkit-flex;
    display: flex;
    flex-wrap: wrap;
}
ul.shampoo_course_list li {
    width: 20%;
    font-size: 1em;
    line-height: 1.5;
    padding: 15px;
    border: 1px solid #fff;
    background: #f3f0ea;
    box-sizing: border-box;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    display: -webkit-flex;
    display: flex;
    margin-bottom: 0;
}
ul.shampoo_course_list li::before {
    content: none;
}
.price_tbl thead th {
    padding: 12px 18px 8px;
    font-weight: 600;
    color: #fff;
    background: #c5362f;
    text-align: center;
}
.price_tbl th, .price_tbl td {
    padding: 22px 18px 18px;
}
.price_tbl th {
    width: 25%;
    font-weight: 600;
}
.price_tbl td {
    text-align: center;
}
.price_tbl th span {
    font-weight: 400;
    font-size: 0.9em;
    display: block;
    margin-top: 10px;
}
span.caution.price_caution {
    display: inline-block;
    margin-top: 0;
}
.special_tbl td {
    text-align: left;
}
.special_tbl th {
    width: 15%;
}
@media only screen and (max-width: 970px) {
    .price_tbl th, .price_tbl td {
        display: revert;
    }
    .price_tbl th {
        border-bottom: 1px solid #c5362f;
    }
    p.scroll_text.ipad_only {
        display: block;
    }
}
@media only screen and (max-width: 768px) {
    .menu_box {
        margin-bottom: 40px;
    }
    .course_box, .area_box {
        margin-bottom: 20px;
    }
    ul.shampoo_course_list li {
        width: 50%;
    }
    p.scroll_text {
        display: block;
    }
}
/* メニュー END */
/* お客様の声 */
.voice_box {
    padding-bottom: 50px;
    margin-bottom: 50px;
    border-bottom: 1px solid #c5362f;
    box-sizing: border-box;
}
.voice_box:last-of-type {
    padding-bottom: 0;
    margin-bottom: 0;
    border: 0;
}
.voice_box h2 {
    font-size: 1.3em;
    line-height: 1.5;
    margin-bottom: 25px;
    padding-left: 45px;
    padding-top: 4px;
    text-align: left;
    position: relative;
}
.voice_box h2::before {
    content: '\e916';
    position: absolute;
    font-family: "design_plus";
    font-size: 35px;
    line-height: 0.8;
    color: #c5362f;
    top: 0;
    left: 0;
}
.voice_box h2::after {
    content: none;
}
.voice_box p {
    margin-bottom: 20px;
}
.voice_box p:last-child {
    margin-bottom: 0;
}
@media only screen and (max-width: 767px) {
    .voice_box {
        padding-bottom: 30px;
        margin-bottom: 30px;
    }
    .voice_box h2 {
        padding-top: 8px;
        padding-left: 40px;
        margin-bottom: 15px;
    }
    .voice_box h2::before {
        font-size: 33px;
    }
    .voice_box p {
        line-height: 2;
        margin-bottom: 10px;
    }
}
/* お客様の声 END */
/* ごあいさつ */
.greeting_sec h2 {
    text-align: left;
}
.greeting_sec h2::after {
    margin-left: 0;
}
.greeting_box {
    margin-bottom: 80px;
}
.greeting_inner {
    margin-bottom: 30px;
}
.greeting_box:last-of-type, .greeting_inner:last-of-type {
    margin-bottom: 0;
}
.greeting__img {
    width: 40%;
    padding-right: 2.5em;
    box-sizing: border-box;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    display: -webkit-flex;
    display: flex;
    z-index: -1;
}
.greeting__text {
    width: 60%;
    box-sizing: border-box;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    display: -webkit-flex;
    display: flex;
}
.greeting__text h2, .greeting__text h3, .greeting__text p {
    width: 100%;
}
.greeting__text h3 span {
    font-size: 0.64em;
    margin-left: 10px;
    color: #2b2b2b;
}
.greeting__text p {
    margin-bottom: 20px;
}
.greeting__text p:last-of-type {
    margin-bottom: 0;
}
.profile_box {
    margin-top: 40px;
    padding: 20px 25px;
    background: #f3f0ea;
    box-sizing: border-box;
}
.greeting_two {
    width: calc(50% - 25px);
    margin-right: 50px;
}
.greeting_two:nth-of-type(2) {
    margin-right: 0;
    margin-bottom: 0;
}
ul.list.profile_list li {
    padding-left: 0;
}
ul.list.profile_list li::before {
    content: none;
}
@media only screen and (max-width: 768px) {
    .greeting_box {
        margin-bottom: 40px;
    }
    .greeting_inner {
        margin-bottom: 20px;
    }
    .greeting__text p {
        margin-bottom: 12px;
    }
    .greeting__img {
        width: 100%;
        padding-right: 0;
    }
    .greeting__text {
        width: 100%;
        margin-top: 1em;
    }
    .profile_box {
        margin-top: 20px;
        padding: 20px;
    }
    .greeting_two {
        width: 100%;
        margin-right: 0;
        margin-bottom: 20px;
    }
}
/* ごあいさつ END */
/* ご利用の流れ */
.flow_sec .content_inner {
    max-width: 900px;
}
.flow {
    padding-left: 70px;
    padding-top: 10px;
    padding-bottom: 40px;
    position: relative;
    box-sizing: border-box;
    z-index: 0;
}
.flow:last-of-type {
    padding-bottom: 0;
}
.flow::before {
    counter-increment: number 1;
    content: counter(number)"";
    position: absolute;
    text-align: center;
    width: 45px;
    height: 55px;
    line-height: 50px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    font-size: 35px;
    font-weight: 400;
    font-family: "Dosis", sans-serif;
    color: #c5362f;
    background: #fff;
    box-sizing: border-box;
    top: 0;
    left: 0;
    z-index: 0;
}
.flow::after {
    content: '';
    position: absolute;
    top: 0;
    left: 22px;
    width: 1px;
    height: 100%;
    background: #c5362f;
    z-index: -1;
}
.flow:last-of-type::after {
    display: none;
}
.flow h2 {
    font-size: 1.3em;
    font-weight: 600;
    line-height: 1.5;
    margin-bottom: 15px;
    text-align: left;
}
.flow h2::after {
    content: none;
}
.flow p {
    margin-bottom: 0;
}
.flow-caution_box {
    margin-top: 15px;
    padding: 20px;
    background: #f3f0ea;
    box-sizing: border-box;
}
@media only screen and (max-width: 768px) {
    .flow {
        padding-top: 7px;
        padding-left: 55px;
        padding-bottom: 25px;
    }
    .flow::before {
        width: 35px;
        height: 45px;
        line-height: 40px;
        font-size: 30px;
    }
    .flow::after {
        left: 17px;
    }
}
/* ご利用の流れ END */
/* pono号 */
.car_inner {
    margin-bottom: 70px;
}
.car_inner:last-of-type {
    margin-bottom: 0;
}
.car_text {
    width: 55%;
    box-sizing: border-box;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    display: -webkit-flex;
    display: flex;
}
.car_img {
    width: 45%;
    box-sizing: border-box;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    display: -webkit-flex;
    display: flex;
}
.car_text h2 {
    font-size: 1.3em;
    font-weight: 600;
    margin-bottom: 20px;
    text-align: left;
    width: 100%;
}
.car_text h2::after {
    content: none;
}
.car_text p {
    margin-bottom: 12px;
    width: 100%;
}
.car_text p:last-child {
    margin-bottom: 0;
}
.car_inner:nth-of-type(odd) .car_text {
    margin-left: 45%;
    padding-left: 2.5em;
}
.car_inner:nth-of-type(even) .car_text {
    padding-right: 2.5em;
}
.car_inner:nth-of-type(odd) .car_img {
    margin-left: -100%;
}
.car_inner:nth-of-type(odd) .car_img img {
    box-shadow: -4px 4px 0 #fff, -5px 5px 0 #c5362f;
}
.car_inner:nth-of-type(even) .car_img img {
    box-shadow: 4px 4px 0 #fff, 5px 5px 0 #c5362f;
}
@media only screen and (max-width: 768px) {
    .car_inner {
        margin-bottom: 40px;
    }
    .car_text {
        width: 100%;
        margin-bottom: 1em;
    }
    .car_inner:nth-of-type(odd) .car_text {
        margin-left: 0;
        padding-left: 0;
    }
    .car_inner:nth-of-type(even) .car_text {
        padding-right: 0;
    }
    .car_img {
        width: 100%;
    }
    .car_inner:nth-of-type(odd) .car_img {
        margin-left: 0;
    }
    .car_text h2 {
        margin-bottom: 15px;
    }
}
/* pono号 END */
/* よくある質問のスタイルはファイル下部の「よくある質問」ブロックに統合 */
/* 店舗概要 */
.info_sec .content_inner {
    max-width: 900px;
}
table.info_tbl th {
    width: 25%;
}
span.caution.info_caution {
    font-size: 0.85em;
    display: block;
}
/* 店舗概要 END */
/* コンタクトフォーム */
.wpcf7 {
    border: none;
    background: none;
    max-width: 800px;
    margin: 0 auto !important;
}
.wpcf7 form {
    margin: 0;
}
table.contact_form th, table.contact_form td {
    font-size: 16px;
    padding: 30px 0;
}
table.contact_form th {
    padding-right: 15px;
    font-weight: 400;
}
.wpcf7 input, .wpcf7 textarea {
    padding: 20px;
    border: 1px solid #c8c8c8;
    background: #ffffff;
    color: #1d1d1d;
}
.wpcf7 .wpcf7-not-valid {
    background: #1d1d1d;
    border-color: #be0504;
}
span.any {
    background: #e8e8e8;
    font-size: 0.7em;
    padding: 2px 5px;
    margin-left: 10px;
}
span.required {
    background: #e63e3e;
    color: #ffffff;
    font-size: 0.7em;
    padding: 2px 5px;
    margin-left: 10px;
}
.wpcf7 select, .wpcf7 .wpcf7-list-item-label {
    font-size: 14px;
}
span.wpcf7-list-item {
    display: block;
    margin: 0;
    font-weight: 400;
}
.wpcf7 input.wpcf7-submit {
    width: 400px;
    line-height: 1em;
    height: 70px;
    font-weight: 700;
    font-size: 20px;
    font-family: 'Jaldi', "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
    background: none;
    color: #1d1d1d;
    box-sizing: border-box;
    border: 1px solid #1d1d1d !important;
}
.wpcf7 input.wpcf7-submit:hover {
    background: #1d1d1d;
    color: #ffffff;
}
@media only screen and (max-width: 991px) {
    table.contact_form th {
        width: 30%;
    }
}
@media only screen and (max-width: 767px) {
    .wpcf7 input.wpcf7-submit {
        width: 80%;
    }
}
@media only screen and (max-width: 485px) {
    table.contact_form th, table.contact_form td {
        display: block;
    }
    table.contact_form th {
        width: 100%;
        text-align: center;
        padding: 10px 0 0;
    }
    table.contact_form td {
        padding-top: 5px;
        padding-bottom: 25px;
    }
    .wpcf7 input.wpcf7-submit {
        width: 100%;
    }
    .wpcf7 select, .wpcf7 .wpcf7-list-item-label {
        font-size: 12px;
    }
}
/* END コンタクトフォーム */

/* メッセージ（全幅背景＋中央フレーム） */
.front_message {
    position: relative;
    z-index: 0;
    padding: 7em 0;
    background-color: var(--kc-ink);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
    overflow: hidden;
}
.front_message::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(20, 20, 20, 0.55);
    z-index: -1;
}
.front-message-inner {
    width: 86%;
    max-width: 760px;
    margin: 0 auto;
}
.front-message-frame {
    position: relative;
    background: rgba(255, 255, 255, 0.97);
    border-radius: 18px;
    padding: 4.2em 3.5em 4em;
    text-align: center;
    box-shadow: 0 28px 70px rgba(0, 0, 0, 0.35);
}
.front-message-frame::before {
    content: "";
    position: absolute;
    inset: 14px;
    border: 1px solid var(--kc-red);
    border-radius: 12px;
    pointer-events: none;
}
.front-message-label {
    display: inline-block;
    font-family: "Dosis", sans-serif;
    font-size: 0.85em;
    font-weight: 600;
    letter-spacing: .3em;
    color: var(--kc-red);
    margin-bottom: 22px;
    position: relative;
    padding-bottom: 14px;
}
.front-message-label::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 30px;
    height: 2px;
    background: var(--kc-red);
}
.front-message-title {
    font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
    font-size: 1.85em;
    font-weight: 600;
    line-height: 1.7;
    letter-spacing: .04em;
    color: var(--kc-ink);
    margin-bottom: 28px;
}
.front-message-text {
    font-size: 0.95em;
    line-height: 2.2;
    letter-spacing: .04em;
    color: var(--kc-text);
    margin-bottom: 34px;
}
.front-message-button {
    display: inline-block;
    font-size: 0.95em;
    font-weight: 500;
    letter-spacing: .08em;
    color: #fff;
    background: var(--kc-red);
    padding: 16px 48px;
    border-radius: 999px;
    box-shadow: 0 12px 26px rgba(197, 54, 47, 0.35);
    transition: transform 0.4s ease, background 0.4s ease, box-shadow 0.4s ease;
}
.front-message-button span {
    position: relative;
    padding-right: 22px;
}
.front-message-button span::after {
    content: "\e910";
    font-family: "design_plus";
    font-size: 0.8em;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    transition: transform 0.4s ease;
}
.front-message-button:hover {
    color: #fff;
    background: var(--kc-red-deep);
    transform: translateY(-4px);
    box-shadow: 0 18px 34px rgba(197, 54, 47, 0.45);
}
.front-message-button:hover span::after {
    transform: translateY(-50%) translateX(5px);
}
@media only screen and (max-width: 970px) {
    .front_message {
        padding: 5em 0;
        background-attachment: scroll;
    }
}
@media only screen and (max-width: 768px) {
    .front_message {
        padding: 3.5em 0;
    }
    .front-message-frame {
        padding: 3em 1.6em 3.2em;
    }
    .front-message-frame::before {
        inset: 10px;
    }
    .front-message-title {
        font-size: 1.4em;
        line-height: 1.65;
    }
    .front-message-text {
        font-size: 0.9em;
        line-height: 2;
        text-align: left;
    }
    .front-message-button {
        padding: 14px 32px;
        width: 100%;
        box-sizing: border-box;
    }
}
/* メッセージ END */
/* 追跡表示 */
.fix_but {
    display: block;
    position: fixed;
    right: 0;
    bottom: 40%;
    width: 80px;
    z-index: 100;
}
a.fix-but-inner {
    width: 100%;
    height: 80px;
    position: relative;
    background: #c5362f;
    box-sizing: border-box;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    display: -webkit-flex;
    display: flex;
    z-index: 0;
    transition: all 0.5s;
}
a.fix-line-but {
    background: #00b900;
}
a.fix-insta-but {
    background: linear-gradient(45deg, #ffd75f, #ff0357);
}
a.fix-but-inner:hover {
    background: #c5362f;
}
a.fix-but-inner span {
    display: block;
    text-align: center;
    color: #fff;
    font-weight: 600;
    font-size: 0.7em;
    letter-spacing: 1px;
    margin-top: 35px;
    font-family: "Dosis", sans-serif;
}
a.fix-but-inner::before {
    font-family: "design_plus";
    position: absolute;
    display: block;
    margin-bottom: 15px;
    font-size: 25px;
    color: #fff;
}
a.fix-but-inner.fix-line-but::before {
    content: "\e909";
}
a.fix-but-inner.fix-insta-but::before {
    content: "\ea92";
}
@media only screen and (max-width: 1200px) {
    .fix_but {
        bottom: 30%;
    }
}
@media only screen and (max-width: 767px) {
    .fix_but {
        display: none;
    }
}
/* ブログ記事の画像 */
.single .post-content img {
    width: auto;
}
/* メニューページ */
.title-hosoku {
    font-size: 0.6em;
    margin-left: 1.5em;
}
/* レスポンシブ別の改行 */
.sp-br {display: none;}
.tb-br {display: none;}
.pc-br {display: block;}
@media only screen and (max-width: 767px) {
    .tb-br {display: block;}
    .pc-br {display: none;}
}
@media only screen and (max-width: 485px) {
    .sp-br {display: block;}
    .tb-br {display: none;}
}
/* スマホ動画 */
video {display:block;}
#bg-video {
    right:0;
    bottom:0;
    z-index:-1;
}
#main-image {
    background-color: rgba(0, 0, 0, 0);
}
video {
    min-height: 20%;
    min-height: 20vh;
    min-width: 20%;
    min-width: 20vw;
    width:100%;
    height:auto;
    background: url('https://trimmingcar-pono.com/wp-content/uploads/2024/03/main_img-scaled.jpg') no-repeat;
    background-attachment: fixed;
    background-position: center center;
}
@media only screen and (max-width: 1200px){
    .top-slider-wrapper::after {
        display: none;
    }
}
@media only screen and (max-width: 1200px){
    .logo-image {
        top: 0;
        left: -15px;
        width: 160px;
        padding: 1px 6px 0px 60px;

        background: url(img/5b852d31484f3afb01b985193b18c14c.png) left 5px center no-repeat;
        background-size: 45px auto;
    }
}


/* ============================================================
   メニュー・料金ページ
   ============================================================ */
/* 共通：セクションラベル（COURSE / PRICE / RESERVE） */
.sec-label {
    display: inline-block;
    font-family: "Dosis", sans-serif;
    font-size: 0.8em;
    font-weight: 600;
    letter-spacing: .3em;
    color: var(--kc-red);
    line-height: 1;
    position: relative;
    padding-bottom: 13px;
    margin-bottom: 18px;
}
.sec-label::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 26px;
    height: 2px;
    background: var(--kc-red);
}

/* ---------- コース紹介 ---------- */
.menu_sec {
    position: relative;
    z-index: 0;
    overflow: hidden;
}
.menu_sec .content_inner {
    max-width: 1100px;
}
.menu_sec::before {
    content: "MENU";
    position: absolute;
    top: 0.35em;
    left: 50%;
    transform: translateX(-50%);
    font-family: "Dosis", sans-serif;
    font-size: 6em;
    font-weight: 700;
    letter-spacing: .06em;
    line-height: 1;
    color: var(--kc-soft2);
    opacity: .6;
    white-space: nowrap;
    pointer-events: none;
    z-index: -1;
}
.menu-lead {
    text-align: center;
    margin-bottom: 55px;
}
.menu_sec .menu-lead h2 {
    font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
    font-size: 1.6em;
    font-weight: 600;
    line-height: 1.7;
    letter-spacing: .04em;
    color: var(--kc-ink);
    margin-bottom: 22px;
    text-align: center;
}
.menu_sec .menu-lead h2::after {
    content: none;
}
.menu_sec .menu-lead p {
    font-size: 0.95em;
    line-height: 2.1;
    margin: 0;
}

.course-list {
    display: -webkit-flex;
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
    align-items: stretch;
}
.course-card {
    flex: 1 1 380px;
    min-width: 0;
    box-sizing: border-box;
    background: #fff;
    border: 1px solid var(--kc-line);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 16px 40px rgba(26, 26, 26, 0.05);
    transition: transform 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease;
}
.course-card:hover {
    transform: translateY(-5px);
    border-color: var(--kc-red);
    box-shadow: 0 22px 48px rgba(197, 54, 47, 0.12);
}
.course-card__head {
    position: relative;
    padding: 2.2em 2.2em 1.8em;
    background: var(--kc-soft);
    border-bottom: 1px solid var(--kc-line);
    text-align: center;
}
.course-num {
    display: inline-block;
    font-family: "Dosis", sans-serif;
    font-size: 0.72em;
    font-weight: 600;
    letter-spacing: .28em;
    line-height: 1;
    color: #fff;
    background: var(--kc-red);
    border-radius: 999px;
    padding: 8px 16px 7px;
    margin-bottom: 18px;
}
.course-time {
    display: block;
    font-family: "Dosis", sans-serif;
    font-size: 2.85em;
    font-weight: 600;
    letter-spacing: .02em;
    line-height: 1;
    color: var(--kc-ink);
    margin-bottom: 8px;
}
.course-time em {
    font-style: normal;
    font-size: 0.3em;
    font-weight: 500;
    letter-spacing: .12em;
    color: var(--kc-red);
    margin-left: 4px;
}
.course-price {
    /*display: block;*/
    font-size: 0.35em;
    font-weight: 600;
    line-height: 1;
    color: var(--kc-ink);
    margin-bottom: 16px;
}
.course-price strong {
    font-family: "Dosis", sans-serif;
    font-size: 2.85em;
    font-weight: 700;
    letter-spacing: .01em;
    color: var(--kc-red);
    margin-right: 3px;
}
.course-price em {
    font-style: normal;
    font-size: 0.82em;
    font-weight: 400;
    letter-spacing: .06em;
    color: #6d6660;
    margin-left: 6px;
}
.menu_sec .course-card__head h3 {
    font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
    font-size: 1.25em;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: .04em;
    color: var(--kc-ink);
    margin: 0;
    padding: 18px 0 0;
    border-top: 1px solid var(--kc-line);
}
.menu_sec .course-card__head h3 span {
    display: block;
    font-family: "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
    font-size: 0.62em;
    font-weight: 500;
    letter-spacing: .1em;
    color: var(--kc-red);
    margin-top: 10px;
}
.course-card__body {
    padding: 2.2em 2.2em 2.4em;
}
.menu_sec .course-card__body p {
    font-size: 0.88em;
    line-height: 2.05;
    letter-spacing: .04em;
    margin-bottom: 1.4em;
}

/* コース内スペック表 */
table.menu__table {
    width: 100%;
    margin-top: 1.8em;
    border-collapse: collapse;
    border-top: 1px solid var(--kc-line);
}
.menu_sec table.menu__table th,
.menu_sec table.menu__table td {
    font-size: 0.84em;
    line-height: 1.8;
    letter-spacing: .04em;
    vertical-align: top;
    background: none;
    border: 0;
    border-bottom: 1px solid var(--kc-line);
    padding: 14px 0 13px;
}
.menu_sec table.menu__table th {
    width: 30%;
    text-align: left;
    font-weight: 600;
    color: var(--kc-red);
    padding-right: 12px;
}
.menu_sec table.menu__table td {
    color: var(--kc-text);
}
ul.menu__price--list {
    margin: 0;
}
.menu_sec ul.menu__price--list li {
    position: relative;
    padding-left: 1.4em;
    margin-bottom: 4px;
    line-height: 1.8;
}
.menu_sec ul.menu__price--list li:last-child {
    margin-bottom: 0;
}
ul.menu__price--list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.72em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--kc-red);
}
.caution__text {
    display: block;
    position: relative;
    padding-left: 1.35em;
    font-size: 0.82em;
    line-height: 1.8;
    color: #6d6660;
}
.caution__text::before {
    content: '※';
    position: absolute;
    top: 0;
    left: 0;
    color: var(--kc-red);
}

/* ---------- 料金表 ---------- */
.price_sec {
    /*background: var(--kc-soft);*/
}
.price_sec .content_inner {
    /*max-width: 900px;*/
    padding-top: 0;
    padding-bottom: 60px;
}
.price-head {
    text-align: center;
    margin-bottom: 40px;
}
.price_sec .price-head h2 {
    font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
    font-size: 1.7em;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: .06em;
    color: var(--kc-ink);
    margin: 0;
}
.price_sec .price-head h2::after {
    content: none;
}

.price-card {
    box-sizing: border-box;
    background: #fff;
    border: 1px solid var(--kc-line);
    border-radius: 16px;
    padding: 2.6em 3em 2.4em;
    box-shadow: 0 16px 40px rgba(26, 26, 26, 0.06);
}
table.price_tbl {
    width: 100%;
    border-collapse: collapse;
}
.price_sec table.price_tbl th,
.price_sec table.price_tbl td {
    background: none;
    border: 0;
    border-bottom: 1px solid var(--kc-line);
    padding: 20px 0 18px;
    vertical-align: middle;
    line-height: 1.6;
}
.price_sec table.price_tbl th {
    width: 58%;
    text-align: left;
    font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
    font-size: 1.08em;
    font-weight: 600;
    letter-spacing: .04em;
    color: var(--kc-ink);
}
.price-sub {
    display: block;
    font-family: "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
    font-size: 0.62em;
    font-weight: 400;
    letter-spacing: .06em;
    line-height: 1.5;
    color: #6d6660;
    margin-top: 6px;
}
.price_sec table.price_tbl td {
    text-align: right;
    font-size: 0.9em;
    color: var(--kc-ink);
}
.price-num {
    font-family: "Dosis", sans-serif;
    font-size: 2.1em;
    font-weight: 600;
    letter-spacing: .02em;
    line-height: 1;
    color: var(--kc-red);
    margin-right: 4px;
}
.price-tax {
    font-size: 0.85em;
    letter-spacing: .06em;
    color: #6d6660;
    margin-left: 6px;
}
.price_sec table.price_tbl tr:last-child th,
.price_sec table.price_tbl tr:last-child td {
    border-bottom: 0;
    padding-bottom: 0;
}

/* 割引バナー */
.discount-list {
    display: -webkit-flex;
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    margin-top: 30px;
    align-items: stretch;
}
.discount-card {
    flex: 1 1 320px;
    min-width: 0;
    box-sizing: border-box;
    position: relative;
    text-align: center;
    padding: 2.3em 1.8em 2.1em;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 20px 44px rgba(26, 26, 26, 0.16);
}
.discount-card--first {
    background: var(--kc-red);
}
.discount-card--area {
    background: var(--kc-ink);
}
/*.discount-card::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 4px;
    background: rgba(255, 255, 255, 0.35);
}*/
.discount-card--area::before {
    background: var(--kc-red);
}
.discount-card__label {
    display: inline-block;
    font-size: 0.78em;
    font-weight: 600;
    letter-spacing: .2em;
    line-height: 1;
    color: var(--kc-ink);
    background: #fff;
    border-radius: 999px;
    padding: 9px 20px 8px;
    margin-bottom: 18px;
}
.discount-card--first .discount-card__label {
    color: var(--kc-red-deep);
}
.price_sec p.discount-card__price {
    font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
    font-size: 1.3em;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: .06em;
    color: #fff;
    margin: 0 0 14px;
}
.price_sec p.discount-card__price strong {
    font-family: "Dosis", sans-serif;
    font-size: 1.9em;
    font-weight: 700;
    letter-spacing: .01em;
    color: #fff;
    margin: 0 4px;
}
.discount-card--area .discount-card__price strong {
    color: #ff8a80;
}
.discount-card__area {
    display: block;
    font-size: 0.68em;
    font-weight: 500;
    letter-spacing: .12em;
    color: rgba(255, 255, 255, 0.85);
    margin-bottom: 8px;
}
.price_sec p.discount-card__note {
    font-size: 0.82em;
    line-height: 1.9;
    letter-spacing: .04em;
    color: rgba(255, 255, 255, 0.78);
    margin: 0;
}

/* ---------- ご予約CTA ---------- */
.menu_cta .content_inner {
    max-width: 900px;
    padding-top: 80px;
}
.menu-cta__frame {
    box-sizing: border-box;
    text-align: center;
    background: #fff;
    border: 1px solid var(--kc-line);
    border-radius: 16px;
    padding: 3.4em 3em 3.2em;
    box-shadow: 0 16px 40px rgba(26, 26, 26, 0.05);
}
.menu_cta .menu-cta__frame h2 {
    font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
    font-size: 1.45em;
    font-weight: 600;
    line-height: 1.6;
    letter-spacing: .04em;
    color: var(--kc-ink);
    margin-bottom: 16px;
}
.menu_cta .menu-cta__frame h2::after {
    content: none;
}
.menu_cta .menu-cta__frame > p {
    font-size: 0.9em;
    line-height: 2;
    margin: 0 0 26px;
}
.menu_cta address.contact-tel {
    margin-bottom: 14px;
}
.menu_cta p.contact-time {
    margin-bottom: 20px;
}
.menu_cta p.cta-mail {
    font-size: 0.9em;
    line-height: 1.6;
    letter-spacing: .04em;
    margin: 0 0 10px;
    word-break: break-all;
}
.menu_cta p.cta-mail span {
    display: inline-block;
    font-family: "Dosis", sans-serif;
    font-size: 0.85em;
    font-weight: 600;
    letter-spacing: .16em;
    color: var(--kc-red);
    margin-right: 10px;
}
.menu_cta p.cta-mail a {
    color: var(--kc-text);
    border-bottom: 1px solid var(--kc-line);
    transition: color 0.4s ease, border-color 0.4s ease;
}
.menu_cta p.cta-mail a:hover {
    color: var(--kc-red);
    border-color: var(--kc-red);
}
.menu_cta p.cta-line {
    font-size: 0.85em;
    line-height: 1.8;
    margin: 0 0 24px;
}
.menu_cta p.menu-cta__button {
    margin: 0;
}

@media only screen and (max-width: 970px) {
    .menu_sec::before {
        font-size: 4.2em;
    }
    .course-card__head,
    .course-card__body {
        padding-left: 1.8em;
        padding-right: 1.8em;
    }
    .price-card,
    .discount-card,
    .menu-cta__frame {
        padding-left: 2em;
        padding-right: 2em;
    }
    .discount-list {
        gap: 18px;
    }
}
@media only screen and (max-width: 768px) {
    .menu_sec::before {
        display: none;
    }
    .menu-lead {
        margin-bottom: 35px;
    }
    .menu_sec .menu-lead h2 {
        font-size: 1.25em;
        line-height: 1.75;
        margin-bottom: 16px;
    }
    .menu_sec .menu-lead p {
        font-size: 0.9em;
        line-height: 2;
    }
    .course-list {
        gap: 22px;
    }
    .course-card {
        border-radius: 12px;
    }
    .course-card:hover {
        transform: none;
    }
    .course-card__head {
        padding: 1.8em 1.4em 1.5em;
    }
    .course-time {
        font-size: 2.6em;
    }
    .menu_sec .course-card__head h3 {
        font-size: 1.12em;
    }
    .course-card__body {
        padding: 1.8em 1.4em 2em;
    }
    .menu_sec .course-card__body p {
        font-size: 0.86em;
        line-height: 1.95;
    }
    .menu_sec table.menu__table th,
    .menu_sec table.menu__table td {
        display: block;
        width: 100% !important;
        box-sizing: border-box;
        padding: 0;
        border-bottom: 0;
    }
    .menu_sec table.menu__table th {
        padding: 14px 0 4px;
    }
    .menu_sec table.menu__table td {
        padding-bottom: 13px;
        border-bottom: 1px solid var(--kc-line);
    }
    .menu_sec table.menu__table tr:first-child th {
        padding-top: 12px;
    }
    .price-head {
        margin-bottom: 28px;
    }
    .price_sec .price-head h2 {
        font-size: 1.35em;
    }
    .price-card {
        padding: 1.8em 1.4em 1.6em;
        border-radius: 12px;
    }
    .price_sec table.price_tbl th,
    .price_sec table.price_tbl td {
        padding: 16px 0 14px;
    }
    .price_sec table.price_tbl th {
        width: 50%;
        font-size: 1em;
    }
    .price-num {
        font-size: 1.7em;
    }
    .price-tax {
        display: block;
        margin: 4px 0 0;
        font-size: 0.8em;
    }
    .discount-list {
        gap: 14px;
        margin-top: 22px;
    }
    .discount-card {
        padding: 1.9em 1.3em 1.8em;
        border-radius: 12px;
    }
    .price_sec p.discount-card__price {
        font-size: 1.15em;
    }
    .price_sec p.discount-card__price strong {
        font-size: 1.7em;
    }
    .price_sec p.discount-card__note {
        font-size: 0.8em;
        text-align: left;
    }
    .menu_cta .content_inner {
        padding-top: 45px;
    }
    .menu-cta__frame {
        padding: 2.4em 1.5em 2.2em;
        border-radius: 12px;
    }
    .menu_cta .menu-cta__frame h2 {
        font-size: 1.2em;
    }
    .menu_cta .menu-cta__frame > p {
        font-size: 0.88em;
        text-align: left;
        margin-bottom: 22px;
    }
    .menu_cta p.cta-mail {
        font-size: 0.85em;
    }
    .menu_cta p.cta-mail span {
        display: block;
        margin: 0 0 4px;
    }
}
/* メニュー・料金ページ END */

/* 店舗概要（company） */
.company_sec {
    position: relative;
    z-index: 0;
    overflow: hidden;
}
.company_sec .content_inner {
    max-width: 900px;
}
/* 背景ウォーターマーク（トップページと同トンマナ） */
.company_sec::before {
    content: "INFORMATION";
    position: absolute;
    top: 0.35em;
    left: 50%;
    transform: translateX(-50%);
    font-family: "Dosis", sans-serif;
    font-size: 5.6em;
    font-weight: 700;
    letter-spacing: .06em;
    line-height: 1;
    color: var(--kc-soft2);
    opacity: .6;
    white-space: nowrap;
    pointer-events: none;
    z-index: -1;
}
.company_sec .s_table {
    padding: 2.6em 3em 2.8em;
    box-sizing: border-box;
    background: #fff;
    border: 1px solid var(--kc-line);
    border-radius: 16px;
    box-shadow: 0 16px 40px rgba(26, 26, 26, 0.05);
}
table.company_tbl {
    width: 100%;
    border-collapse: collapse;
}
.company_sec table.company_tbl th,
.company_sec table.company_tbl td {
    font-size: 0.9em;
    line-height: 1.9;
    letter-spacing: .04em;
    vertical-align: middle;
    background: none;
    border: 0;
    border-bottom: 1px solid var(--kc-line);
    padding: 22px 0 20px;
}
.company_sec table.company_tbl th {
    width: 26%;
    text-align: left;
    font-weight: 600;
    color: var(--kc-ink);
    padding-left: 16px;
    position: relative;
}
.company_sec table.company_tbl th::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--kc-red);
}
.company_sec table.company_tbl td {
    color: var(--kc-text);
}
.company_sec table.company_tbl tr:last-child th,
.company_sec table.company_tbl tr:last-child td {
    border-bottom: 0;
    padding-bottom: 0;
}
.company_sec table.company_tbl a {
    color: var(--kc-text);
    border-bottom: 1px solid var(--kc-line);
    transition: color 0.4s ease, border-color 0.4s ease;
}
.company_sec table.company_tbl a:hover {
    color: var(--kc-red);
    border-color: var(--kc-red);
}
/* 電話番号 */
.company_sec .tel-link,
.company_sec .tel-link a {
    font-family: "Dosis", sans-serif;
    font-size: 1.5em;
    font-weight: 600;
    letter-spacing: .04em;
    line-height: 1.2;
    color: var(--kc-ink);
    border: 0;
}
.company_sec .tel-link a:hover {
    color: var(--kc-red);
}
.company_sec .caution.company-caution {
    display: inline-block;
    font-size: 0.82em;
    font-weight: 600;
    line-height: 1.6;
    color: var(--kc-red-deep) !important;
    background: var(--kc-red-soft);
    border-radius: 8px;
    padding: 8px 14px;
    margin-top: 12px;
}

/* 地図 */
.map_sec {
    position: relative;
    height: auto;
    line-height: 0;
    border-top: 1px solid var(--kc-line);
}
.map_sec iframe {
    display: block;
    width: 100%;
    height: 420px;
    border: 0;
    filter: grayscale(0.35) contrast(1.02);
    transition: filter 0.6s ease;
}
.map_sec:hover iframe {
    filter: grayscale(0);
}
.map_sec br {
    display: none;
}

@media only screen and (max-width: 970px) {
    .company_sec::before {
        font-size: 4em;
    }
    .company_sec .s_table {
        padding: 2em 2em 2.2em;
    }
    .company_sec table.company_tbl th,
    .company_sec table.company_tbl td {
        display: block;
        width: 100% !important;
        box-sizing: border-box;
        padding: 0;
        line-height: 1.8;
    }
    .company_sec table.company_tbl th {
        border-bottom: 0;
        padding: 20px 0 4px 16px;
    }
    .company_sec table.company_tbl th::before {
        top: 30px;
        transform: none;
    }
    .company_sec table.company_tbl td {
        padding: 0 0 18px;
    }
    .company_sec table.company_tbl tr:first-child th {
        padding-top: 0;
    }
    .company_sec table.company_tbl tr:first-child th::before {
        top: 10px;
    }
}
@media only screen and (max-width: 768px) {
    .company_sec::before {
        display: none;
    }
    .company_sec .s_table {
        padding: 1.6em 1.4em 1.8em;
        border-radius: 12px;
    }
    .company_sec table.company_tbl th,
    .company_sec table.company_tbl td {
        font-size: 0.88em;
    }
    .company_sec .tel-link,
    .company_sec .tel-link a {
        font-size: 1.35em;
    }
    .map_sec iframe {
        height: 300px;
    }
}
/* 店舗概要 END */

/* greeting */
.greeting-sec {
    position: relative;
    z-index: 0;
    overflow: hidden;
}
.greeting-sec .content_inner {
    max-width: 1100px;
}
/* 背景ウォーターマーク（トップページと同トンマナ） */
.greeting-sec::before {
    content: "GREETING";
    position: absolute;
    top: 0.35em;
    left: 50%;
    transform: translateX(-50%);
    font-family: "Dosis", sans-serif;
    font-size: 5.6em;
    font-weight: 700;
    letter-spacing: .06em;
    line-height: 1;
    color: var(--kc-soft2);
    opacity: .6;
    white-space: nowrap;
    pointer-events: none;
    z-index: -1;
}

.greeting_intro {
    align-items: center;
}
.greeting_intro-img {
    width: 42%;
    box-sizing: border-box;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 14px 14px 0 #fff, 16px 16px 0 var(--kc-red);
}
.greeting_intro-img img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 16px;
}
.greeting_intro-title {
    width: calc(58% - 3.5em);
    margin-left: 3.5em;
    box-sizing: border-box;
}

/* 見出しラベル */
.greeting-label {
    display: inline-block;
    font-family: "Dosis", sans-serif;
    font-size: 0.8em;
    font-weight: 600;
    letter-spacing: .3em;
    color: var(--kc-red);
    line-height: 1;
    position: relative;
    padding-left: 46px;
    margin-bottom: 20px;
}
.greeting-label::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 34px;
    height: 2px;
    background: var(--kc-red);
}

.greeting_intro-title h2 {
    padding: 0;
    margin: 0;
    border: none;
    font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
    font-size: 1.6em;
    font-weight: 600;
    line-height: 1.8;
    letter-spacing: .04em;
    color: var(--kc-ink);
    text-align: left;
}
.greeting_intro-title h2::after,
.greeting_intro-title h2::before {
    display: none;
}

.greeting_intro-title h3 {
    margin: 1.6em 0 0;
    padding: 0 0 0 18px;
    border: none;
    border-left: 3px solid var(--kc-red);
    font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
    font-size: 1.3em;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: .08em;
    color: var(--kc-ink);
}
span.greeting_intro-name {
    display: block;
    font-size: 0.62em;
    font-weight: 500;
    letter-spacing: .16em;
    line-height: 1;
    color: var(--kc-red);
    margin-bottom: 8px;
}

.history {
    margin-top: 1.8em;
    padding: 22px 26px 20px;
    box-sizing: border-box;
    background: var(--kc-soft);
    border-radius: 12px;
}
.greeting-sec .history h4 {
    position: relative;
    font-size: 0.95em;
    font-weight: 600;
    letter-spacing: .1em;
    line-height: 1;
    color: var(--kc-red);
    margin-bottom: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--kc-line);
}
.greeting-sec .history p {
    font-size: 0.82em;
    line-height: 1.95;
    margin: 0;
}

.greeting-text {
    max-width: 900px;
    margin: 4.5em auto 0;
    padding: 3.4em 3.2em 3.2em;
    box-sizing: border-box;
    background: #fff;
    border: 1px solid var(--kc-line);
    border-radius: 16px;
    box-shadow: 0 16px 40px rgba(26, 26, 26, 0.05);
}
.greeting-sec .greeting-text p {
    font-size: 0.92em;
    line-height: 2.15;
    letter-spacing: .04em;
    margin-bottom: 1.8em;
}
.greeting-sec .greeting-text p:last-child {
    margin-bottom: 0;
}
/* 署名 */
.greeting-sign {
    display: block;
    margin-top: 2.4em;
    padding-top: 1.6em;
    border-top: 1px solid var(--kc-line);
    text-align: right;
    font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
    font-size: 1.05em;
    font-weight: 600;
    letter-spacing: .1em;
    color: var(--kc-ink);
}
.greeting-sign span {
    font-size: 0.7em;
    font-weight: 400;
    letter-spacing: .12em;
    color: var(--kc-red);
    margin-right: 12px;
}

@media only screen and (max-width: 970px) {
    .greeting-sec::before {
        font-size: 4em;
    }
    .greeting_intro-title {
        width: calc(58% - 2em);
        margin-left: 2em;
    }
    .greeting_intro-title h2 {
        font-size: 1.35em;
        line-height: 1.7;
    }
    .greeting-text {
        padding: 2.8em 2.2em;
    }
}
@media only screen and (max-width: 768px) {
    .greeting-sec::before {
        display: none;
    }
    .greeting_intro {
        display: block;
    }
    .greeting_intro-img {
        width: 100%;
        box-shadow: 10px 10px 0 #fff, 12px 12px 0 var(--kc-red);
    }
    .greeting_intro-title {
        width: 100%;
        margin: 2.8em 0 0;
    }
    .greeting-label {
        margin-bottom: 16px;
    }
    .greeting_intro-title h2 {
        font-size: 1.25em;
        line-height: 1.75;
    }
    .greeting_intro-title h3 {
        font-size: 1.15em;
        margin-top: 1.3em;
    }
    .history {
        padding: 18px 18px 16px;
    }
    .greeting-text {
        margin-top: 3em;
        padding: 2em 1.5em;
        border-radius: 12px;
    }
    .greeting-sec .greeting-text p {
        font-size: 0.88em;
        line-height: 2;
        margin-bottom: 1.5em;
    }
    .greeting-sign {
        margin-top: 2em;
        padding-top: 1.3em;
        font-size: 1em;
    }
}
/* greeting END */

/* よくある質問 */
.faq_sec {
    position: relative;
    z-index: 0;
    overflow: hidden;
}
.faq_sec .content_inner {
    max-width: 900px;
}
/* 背景ウォーターマーク（トップページと同トンマナ） */
.faq_sec::before {
    content: "Q&A";
    position: absolute;
    top: 0.3em;
    left: 50%;
    transform: translateX(-50%);
    font-family: "Dosis", sans-serif;
    font-size: 6em;
    font-weight: 700;
    letter-spacing: .06em;
    line-height: 1;
    color: var(--kc-soft2);
    opacity: .6;
    white-space: nowrap;
    pointer-events: none;
    z-index: -1;
}
.faq {
    position: relative;
    box-sizing: border-box;
    background: #fff;
    border: 1px solid var(--kc-line);
    border-radius: 16px;
    padding: 2.2em 2.4em 2em;
    margin-bottom: 22px;
    box-shadow: 0 14px 34px rgba(26, 26, 26, 0.05);
    transition: transform 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease;
}
/*.faq:hover {
    transform: translateY(-4px);
    border-color: var(--kc-red);
    box-shadow: 0 20px 44px rgba(197, 54, 47, 0.12);
}*/
.faq:last-of-type {
    margin-bottom: 0;
    padding-bottom: 2em;
    border-bottom: 1px solid var(--kc-line);
}
.faq:last-of-type:hover {
    border-color: var(--kc-red);
}
.faq h2,
.faq p {
    position: relative;
    padding-left: 56px;
    text-align: left;
}
.faq h2 {
    font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
    font-size: 1.2em;
    font-weight: 600;
    line-height: 1.65;
    letter-spacing: .04em;
    color: var(--kc-ink);
    margin: 0 0 18px;
    padding-top: 3px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--kc-line);
}
.faq h2::after {
    content: none;
}
.faq p {
    font-size: 0.88em;
    line-height: 2.05;
    letter-spacing: .04em;
    margin-bottom: 10px;
}
.faq p:last-child {
    margin-bottom: 0;
}
p.answer {
    padding-top: 2px;
}
/* Q / A バッジ */
.faq h2::before,
p.answer::before {
    content: "Q";
    position: absolute;
    left: 0;
    top: 0;
    box-sizing: border-box;
    width: 38px;
    height: 38px;
    line-height: 38px;
    text-align: center;
    font-family: "Dosis", sans-serif;
    font-size: 20px;
    font-weight: 600;
    letter-spacing: 0;
    color: #fff;
    background: var(--kc-red);
    border: 1px solid var(--kc-red);
    border-radius: 50%;
}
p.answer::before {
    content: "A";
    line-height: 36px;
    color: var(--kc-red);
    background: #fff;
    top: -2px;
}

@media only screen and (max-width: 970px) {
    .faq_sec::before {
        font-size: 4.2em;
    }
    .faq {
        padding: 1.9em 1.9em 1.7em;
    }
}
@media only screen and (max-width: 768px) {
    .faq_sec::before {
        display: none;
    }
    .faq {
        padding: 1.6em 1.3em 1.5em;
        margin-bottom: 16px;
        border-radius: 12px;
    }
    .faq:hover {
        transform: none;
    }
    .faq:last-of-type {
        padding-bottom: 1.5em;
    }
    .faq h2,
    .faq p {
        padding-left: 42px;
    }
    .faq h2 {
        font-size: 1.08em;
        line-height: 1.6;
        margin-bottom: 15px;
        padding-bottom: 15px;
    }
    .faq p {
        font-size: 0.86em;
        line-height: 1.95;
    }
    .faq h2::before,
    p.answer::before {
        width: 30px;
        height: 30px;
        line-height: 30px;
        font-size: 16px;
    }
    p.answer::before {
        line-height: 28px;
    }
}
/* よくある質問 END */

/* contact */
.contact-sec {
    position: relative;
    z-index: 0;
    overflow: hidden;
}
.contact-sec .content_inner {
    max-width: 1040px;
}
/* 背景ウォーターマーク（トップページのGREETING等と同トンマナ） */
.contact-sec::before {
    content: "CONTACT";
    position: absolute;
    top: 0.35em;
    left: 50%;
    transform: translateX(-50%);
    font-family: "Dosis", sans-serif;
    font-size: 6em;
    font-weight: 700;
    letter-spacing: .06em;
    line-height: 1;
    color: var(--kc-soft2);
    opacity: .6;
    white-space: nowrap;
    pointer-events: none;
    z-index: -1;
}
/* リード文 */
.contact-lead {
    text-align: center;
    margin-bottom: 55px;
}
.contact-sec .contact-lead p {
    font-size: 0.95em;
    line-height: 2.1;
    letter-spacing: .04em;
    margin: 0;
}

/* カードレイアウト */
.contact-grid {
    display: -webkit-flex;
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
    align-items: stretch;
}
.contact-grid > .contact-card {
    flex: 1 1 340px;
    min-width: 0;
}
.contact-card {
    position: relative;
    box-sizing: border-box;
    background: #fff;
    border: 1px solid var(--kc-line);
    border-radius: 16px;
    padding: 3.2em 2.4em 2.8em;
    text-align: center;
    box-shadow: 0 14px 36px rgba(26, 26, 26, 0.05);
    transition: transform 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease;
}
/*.contact-card:hover {
    transform: translateY(-5px);
    border-color: var(--kc-red);
    box-shadow: 0 22px 46px rgba(197, 54, 47, 0.12);
}*/
/* 見出しラベル（TEL / LINE / MAIL） */
.contact-label {
    display: inline-block;
    font-family: "Dosis", sans-serif;
    font-size: 0.8em;
    font-weight: 600;
    letter-spacing: .3em;
    color: var(--kc-red);
    line-height: 1;
    position: relative;
    padding-bottom: 13px;
    margin-bottom: 16px;
}
.contact-label::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 26px;
    height: 2px;
    background: var(--kc-red);
}
.contact-sec .contact-card h2,
.contact-sec .mail-box h2 {
    font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
    font-size: 1.35em;
    font-weight: 600;
    line-height: 1.6;
    letter-spacing: .04em;
    color: var(--kc-ink);
    text-align: center;
    margin-bottom: 26px;
}
.contact-sec .contact-card h2::after,
.contact-sec .mail-box h2::after {
    content: none;
}

/* 電話 */
address.contact-tel {
    font-style: normal;
    font-family: "Dosis", sans-serif;
    font-size: 2em;
    font-weight: 600;
    letter-spacing: .04em;
    line-height: 1.1;
    color: var(--kc-ink);
    margin-bottom: 16px;
}
address.contact-tel a {
    color: var(--kc-ink);
    transition: color 0.4s ease;
}
address.contact-tel a:hover {
    color: var(--kc-red);
}
address.contact-tel span {
    display: inline-block;
    font-size: 0.38em;
    font-weight: 600;
    letter-spacing: .16em;
    color: var(--kc-red);
    margin-right: .5em;
    vertical-align: middle;
    transform: translateY(-0.2em);
}
p.contact-time {
    display: inline-block;
    font-size: 0.85em;
    line-height: 1.6;
    letter-spacing: .04em;
    background: var(--kc-soft);
    border-radius: 999px;
    padding: 9px 24px;
    margin: 0 0 20px;
}
p.contact-time span {
    color: var(--kc-red);
    font-weight: 600;
    margin-right: 10px;
}
p.contact-caution {
    font-size: 0.9em;
    line-height: 1.9;
    margin: 0;
}
.contact-sec .caution.company-caution {
    display: block;
    font-size: 0.85em;
    font-weight: 600;
    line-height: 1.6;
    color: var(--kc-red-deep);
    /*background: var(--kc-red-soft);*/
    border-radius: 8px;
    padding: 10px 16px;
    margin-top: 16px;
}

/* LINE */
.contact-sec .line-box p {
    font-size: 0.88em;
    line-height: 2;
    margin: 0;
}
.line-qr {
    margin: 26px 0 0;
    text-align: center;
}
.line-qr img {
    width: 200px;
    height: auto;
    padding: 12px;
    background: #fff;
    border: 1px solid var(--kc-line);
    border-radius: 12px;
    box-sizing: border-box;
}
.post-content .line-qr-placeholder {
    display: -webkit-flex;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin: 0 auto;
    box-sizing: border-box;
    padding: 8px 16px;
    background: #44be21;
    border: 1px dashed #cdbfb4;
    border-radius: 12px;
    color: #fff;
    font-size: 0.8em;
    line-height: 1.8;
    text-align: center;
    max-width: 320px;
}
.post-content .line-qr-placeholder:hover{
    opacity: 0.7;
}
.line-qr-placeholder:before{
    content: '\e909';
    font-size: 24px;
    font-family: design_plus;
}

/* メールフォーム */
.mail-box {
    margin-top: 30px;
    padding: 3.4em 3em 3em;
    box-sizing: border-box;
    background: var(--kc-soft);
    border-radius: 16px;
    text-align: center;
}
.mail-box > .wpcf7 {
    text-align: left;
}
.wpcf7 p {
    margin-bottom: 20px;
}
.contact-sec .wpcf7 input,
.contact-sec .wpcf7 textarea,
.contact-sec .wpcf7 select {
    width: 100%;
    box-sizing: border-box;
    padding: 16px 18px;
    border: 1px solid var(--kc-line);
    border-radius: 8px;
    background: #fff;
    color: var(--kc-text);
    font-size: 0.95em;
    line-height: 1.6;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.contact-sec .wpcf7 input:focus,
.contact-sec .wpcf7 textarea:focus,
.contact-sec .wpcf7 select:focus {
    outline: none;
    border-color: var(--kc-red);
    box-shadow: 0 0 0 3px rgba(197, 54, 47, 0.12);
}
.contact-sec .wpcf7 input[type="checkbox"],
.contact-sec .wpcf7 input[type="radio"] {
    width: auto;
    padding: 0;
    margin-right: 8px;
    box-shadow: none;
}
.contact-sec table.contact_form th {
    color: var(--kc-ink);
    font-weight: 600;
    letter-spacing: .04em;
    border-bottom: 1px solid var(--kc-line);
}
.contact-sec table.contact_form td {
    border-bottom: 1px solid var(--kc-line);
}
.contact-sec .wpcf7 input.wpcf7-submit {
    display: block;
    width: 100%;
    max-width: 340px;
    height: 64px;
    margin: 10px auto 0;
    padding: 0;
    line-height: 1;
    font-size: 1em;
    font-weight: 600;
    letter-spacing: .1em;
    font-family: "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
    color: #fff;
    background: var(--kc-red);
    border: 1px solid var(--kc-red) !important;
    border-radius: 999px;
    box-shadow: 0 12px 26px rgba(197, 54, 47, 0.3);
    cursor: pointer;
    transition: transform 0.4s ease, background 0.4s ease, box-shadow 0.4s ease;
}
.contact-sec .wpcf7 input.wpcf7-submit:hover {
    color: #fff;
    background: var(--kc-red-deep);
    border-color: var(--kc-red-deep) !important;
    transform: translateY(-4px);
    box-shadow: 0 18px 34px rgba(197, 54, 47, 0.4);
}

/* 注意書き */
.mail-caution {
    max-width: 900px;
    margin: 40px auto 0;
    box-sizing: border-box;
    padding: 26px 30px 24px;
    background: #fff;
    border: 1px solid var(--kc-line);
    border-left: 3px solid var(--kc-red);
    border-radius: 0 12px 12px 0;
}
.contact-sec .mail-caution h3 {
    font-size: 1.02em;
    line-height: 1.6;
    margin-bottom: 10px;
    color: var(--kc-red);
}
.contact-sec .mail-caution p {
    font-size: 0.85em;
    line-height: 1.9;
    margin: 0;
}

@media only screen and (max-width: 970px) {
    .contact-sec::before {
        font-size: 4.2em;
    }
    .contact-card {
        padding: 2.8em 2em 2.4em;
    }
    .mail-box {
        padding: 2.8em 2em 2.6em;
    }
}
@media only screen and (max-width: 768px) {
    .contact-sec::before {
        display: none;
    }
    .contact-lead {
        margin-bottom: 35px;
    }
    .contact-sec .contact-lead p {
        text-align: left;
        font-size: 0.9em;
    }
    .contact-grid {
        gap: 22px;
    }
    .contact-card {
        padding: 2.4em 1.5em 2.2em;
        border-radius: 12px;
    }
    .contact-card:hover {
        transform: none;
    }
    .contact-sec .contact-card h2,
    .contact-sec .mail-box h2 {
        font-size: 1.2em;
        margin-bottom: 20px;
    }
    address.contact-tel {
        font-size: 1.8em;
    }
    p.contact-time {
        display: block;
        border-radius: 10px;
        padding: 10px 12px;
    }
    .contact-sec .line-box p,
    p.contact-caution {
        text-align: left;
    }
    .line-qr-placeholder,
    .line-qr img {
        /*width: 170px;*/
    }
    .line-qr-placeholder {
        /*height: 170px;*/
    }
    .mail-box {
        margin-top: 22px;
        padding: 2.2em 1.4em 2.2em;
        border-radius: 12px;
    }
    .contact-sec .wpcf7 input.wpcf7-submit {
        max-width: 100%;
        height: 58px;
    }
    .mail-caution {
        margin-top: 30px;
        padding: 20px 18px 18px;
    }
}
/* contact END */

/* ============================================================
   新デザイン 仕上げ：アニメーション＆微調整（白×黒×赤）
   ============================================================ */

/* --- キーフレーム --- */
@keyframes kcLineGrow {
    0%   { transform: scaleY(0.3); transform-origin: top; opacity: .4; }
    50%  { transform: scaleY(1);   transform-origin: top; opacity: 1; }
    100% { transform: scaleY(0.3); transform-origin: bottom; opacity: .4; }
}
@keyframes kcFadeUp {
    from { opacity: 0; transform: translateY(28px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes kcFloat {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-10px); }
}
@keyframes kcPulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(197, 54, 47, 0.45); }
    70%      { box-shadow: 0 0 0 14px rgba(197, 54, 47, 0); }
}
@keyframes kcBlob {
    0%, 100% { border-radius: 46% 54% 60% 40% / 52% 44% 56% 48%; transform: translateY(0) rotate(0deg); }
    33%      { border-radius: 58% 42% 45% 55% / 44% 58% 42% 56%; transform: translateY(-12px) rotate(4deg); }
    66%      { border-radius: 42% 58% 52% 48% / 56% 46% 54% 44%; transform: translateY(-6px) rotate(-3deg); }
}
@keyframes kcBlobSlow {
    0%, 100% { border-radius: 54% 46% 43% 57% / 47% 55% 45% 53%; transform: translate(0, 0) rotate(0deg); }
    50%      { border-radius: 44% 56% 58% 42% / 56% 44% 56% 44%; transform: translate(8px, 10px) rotate(-5deg); }
}

/* --- ファーストビュー：スクロール表示の演出 --- */
.top-slider-wrapper::after {
    animation: kcFadeUp 1.4s ease both;
}
.top-slider-content-inner .front-copy-img {
    animation: kcFadeUp 1.6s ease 0.2s both;
}

/* --- ナビ：ホバーで小ラベルが赤背景に埋もれないように（SP） --- */
@media only screen and (max-width: 1200px) {
    .global-nav a:hover::after,
    .global-nav a:hover span {
        color: #fff !important;
    }
}

/* --- コンセプト：水彩画風のにじんだ装飾 --- */
.front_original01::after {
    content: "";
    position: absolute;
    right: 5%;
    bottom: 5%;
    width: 210px;
    height: 210px;
    background: radial-gradient(circle at 38% 36%, rgba(197, 54, 47, 0.17) 0%, rgba(197, 54, 47, 0.10) 40%, rgba(197, 54, 47, 0) 72%);
    border-radius: 46% 54% 60% 40% / 52% 44% 56% 48%;
    filter: blur(16px);
    opacity: 0.9;
    z-index: -1;
    pointer-events: none;
    animation: kcBlob 16s ease-in-out infinite;
}
.front_original01::before {
    content: "";
    position: absolute;
    right: 13%;
    bottom: 14%;
    width: 140px;
    height: 140px;
    background: radial-gradient(circle at 45% 45%, rgba(236, 106, 96, 0.16) 0%, rgba(236, 106, 96, 0.08) 45%, rgba(236, 106, 96, 0) 74%);
    border-radius: 54% 46% 43% 57% / 47% 55% 45% 53%;
    filter: blur(20px);
    z-index: -1;
    pointer-events: none;
    animation: kcBlobSlow 20s ease-in-out infinite;
}
@media only screen and (max-width: 768px) {
    .front_original01::after {
        width: 130px;
        height: 130px;
        right: 2%;
        filter: blur(12px);
    }
    .front_original01::before {
        width: 90px;
        height: 90px;
        filter: blur(14px);
    }
}

/* --- サービスボタン：ホバー文字を赤に --- */
.content02-button:hover {
    color: var(--kc-red);
}

/* --- TOPICS：もっと見るボタン --- */
.front_topics .button a,
.button a {
    transition: all 0.4s ease;
}

/* --- NEWS：タイトルを最大2行で省略（3行目の見切れ防止） --- */
.article02-title {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    line-height: 1.6;
    max-height: 3.2em;
}
.article02-title a {
    display: inline;
}

/* --- ページトップ：赤い丸ボタンに刷新 --- */
.pagetop a {
    width: 56px;
    height: 56px;
    line-height: 56px;
    font-size: 0;
    border-radius: 50%;
    background: var(--kc-red);
    color: #fff;
    box-shadow: 0 10px 26px rgba(197, 54, 47, 0.4);
    transition: transform 0.4s ease, background 0.4s ease;
}
.pagetop a::before {
    display: none;
}
.pagetop a::after {
    content: "\e911";
    font-family: "design_plus";
    font-size: 18px;
    color: #fff;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
.pagetop a:hover {
    background: var(--kc-red-deep);
    transform: translateY(-5px);
}

/* --- 追従ボタン：丸み＆浮き上がり --- */
a.fix-but-inner {
    border-radius: 14px 0 0 14px;
    transition: transform 0.4s ease, filter 0.4s ease;
}
a.fix-but-inner:hover {
    transform: translateX(-4px);
    filter: brightness(1.05);
}

/* --- フッター見出しの色をベースに合わせる --- */
h2.footer_logo, h3.footer_menu_title {
    color: #fff;
}

/* --- FV：キャッチコピーのアクセント下線 --- */
.front-copy-text h2 .kc-accent::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -6px;
    height: 3px;
    background: #ec6a60;
    border-radius: 2px;
    transform: scaleX(0);
    transform-origin: left;
    animation: kcUnderline 1s ease 1.1s forwards;
}
@keyframes kcUnderline {
    to { transform: scaleX(1); }
}

/* --- FV：タブレット・スマホ調整 --- */
@media only screen and (max-width: 970px) {
    .top-slider-content {
        background: linear-gradient(120deg, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0.36) 55%, rgba(0, 0, 0, 0.12) 100%);
    }
}
@media only screen and (max-width: 768px) {
    .top-slider-content {
        background: linear-gradient(180deg, rgba(0, 0, 0, 0.28) 0%, rgba(0, 0, 0, 0.22) 35%, rgba(0, 0, 0, 0.66) 100%);
    }
    .front-copy-label {
        margin-bottom: 18px;
    }
    .front-copy-text h2 {
        margin-bottom: 20px;
        line-height: 1.55;
    }
    .front-copy-text p {
        line-height: 1.9;
    }
}
.post-content .s_table{
    white-space: normal;
}
/* --- モーション低減設定への配慮 --- */
/*@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation: none !important;
        transition: none !important;
    }
}*/
/* ===== 新デザイン 仕上げ END ===== */