@charset "UTF-8";

/* --------------- 次回コピー時に気を付ける点 -------------- */
/*
・ulとかbodyとかfont-sizeが1rem→1em
・WP化するためにパスを<?php echo get_template_directory_uri(); ?>に置き換えるので、置き換えられるように相対パスを揃えて記述しておく
・hoverは全て@media (hover: hover) { }でくくってやるといい
・href="/privacypolicy/" は「ルート相対パス」で、ドメイン直下のページを指します。
→ なので、どの階層のページからでも問題なく動きます。
href="privacypolicy/" （先頭に / がない）なら、現在のページの相対パスなので、
下層ページからだとパスがおかしくなりやすいです。
・JavaScriptが操作できるのは「DOMに存在する実体」だけなんです。
種類	例	DOMに存在？	JavaScriptで直接操作？
通常の要素	<div>, <li>, <span>	✅ あり	✅ できる
疑似クラス	:hover, :nth-child(2)	✅ 対象要素は実体あり	✅ 対象を取得できる
疑似要素	::before, ::after	❌ なし	❌ 直接はできない
・function.phpだと読まないよ。sがいる。
・get_header() は header.php を呼び出しますが、そのときスコープは別扱いになります。
したがって、page-contact-form.php 内で $pageTitle を定義しても、header.php で使えないのです。
解決策：global を使う（簡単・確実
・サチコのプロパティ設定。二つある。
・コメントアウトの中にphpの綴じタグをかかないように？＞








*/

/* --------------- はみ出し要素確認用 -------------- */

/* *, *::before, *::after {
    outline: 1px solid red;
} */

/* html, body {
    overflow-x: hidden;
} */


/* --------------- fonts -------------- */
@font-face {
    font-family: "Zen Kaku Gothic New";
    src: url("../fonts/Zen_Kaku_Gothic_New/ZenKakuGothicNew-Light.ttf") format("truetype");
    font-weight: 300;
    /* Light300 */
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Zen Kaku Gothic New";
    src: url("../fonts/Zen_Kaku_Gothic_New/ZenKakuGothicNew-Regular.ttf") format("truetype");
    font-weight: 400;
    /* Regular400 */
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Zen Kaku Gothic New";
    src: url("../fonts/Zen_Kaku_Gothic_New/ZenKakuGothicNew-Medium.ttf") format("truetype");
    font-weight: 500;
    /* Medium500 */
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Zen Kaku Gothic New";
    src: url("../fonts/Zen_Kaku_Gothic_New/ZenKakuGothicNew-Bold.ttf") format("truetype");
    font-weight: 700;
    /* Bold700 */
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Zen Kaku Gothic New";
    src: url("../fonts/Zen_Kaku_Gothic_New/ZenKakuGothicNew-Black.ttf") format("truetype");
    font-weight: 900;
    /* Black900 */
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Zen Maru Gothic";
    src: url("../fonts/Zen_Maru_Gothic/ZenMaruGothic-Light.ttf") format("truetype");
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Zen Maru Gothic";
    src: url("../fonts/Zen_Maru_Gothic/ZenMaruGothic-Regular.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Zen Maru Gothic";
    src: url("../fonts/Zen_Maru_Gothic/ZenMaruGothic-Medium.ttf") format("truetype");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Zen Maru Gothic";
    src: url("../fonts/Zen_Maru_Gothic/ZenMaruGothic-Bold.ttf") format("truetype");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Zen Maru Gothic";
    src: url("../fonts/Zen_Maru_Gothic/ZenMaruGothic-Black.ttf") format("truetype");
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Lato";
    src: url("../fonts/Lato/Lato-Thin.ttf") format("truetype");
    font-weight: 100;
    /* Thin100 */
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Lato";
    src: url("../fonts/Lato/Lato-Light.ttf") format("truetype");
    font-weight: 300;
    /* Light300 */
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Lato";
    src: url("../fonts/Lato/Lato-Regular.ttf") format("truetype");
    font-weight: 400;
    /* Bold400 */
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Lato";
    src: url("../fonts/Lato/Lato-Bold.ttf") format("truetype");
    font-weight: 700;
    /* Bold700 */
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Lato";
    src: url("../fonts/Lato/Lato-Black.ttf") format("truetype");
    font-weight: 900;
    /* Black900 */
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Lato";
    src: url("../fonts/Lato/Lato-ThinItalic.ttf") format("truetype");
    font-weight: 100;
    font-style: italic;
    font-display: swap;
}
@font-face {
    font-family: "Lato";
    src: url("../fonts/Lato/Lato-LightItalic.ttf") format("truetype");
    font-weight: 300;
    font-style: italic;
    font-display: swap;
}
@font-face {
    font-family: "Lato";
    src: url("../fonts/Lato/Lato-BoldItalic.ttf") format("truetype");
    font-weight: 700;
    font-style: italic;
    font-display: swap;
}
@font-face {
    font-family: "Lato";
    src: url("../fonts/Lato/Lato-BlackItalic.ttf") format("truetype");
    font-weight: 900;
    font-style: italic;
    font-display: swap;
}
@font-face {
    font-family: "Cantata One";
    src: url("../fonts/Cantata_One/CantataOne-Regular.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}


/* --------------- base & normalize -------------- */

:root {
    --sakrea-text-color: #1F1F1F;
    --sakrea-main-color: #D6A9B4;
    --sakrea-accent-color: #5C5F66;
    --sakrea-sub-color: #F7F5F4;
    --sakrea-red-color: #E29999;
    --sakrea-green-color: #B8C1A9;
    --sakrea-blown-color: #CDA97F;
    --white-color: #FFFFFF;
    --font-family-zkgn: "Zen Kaku Gothic New", sans-serif;
    --font-family-zmg: "Zen Maru Gothic", sans-serif;
    --font-family-lato: "Lato", sans-serif;
    --font-family-can: "Cantata One", serif;
    --font-size-S: .875rem;
    --font-size-M: 1rem;
    --font-size-L: 2rem;
    --inner-width: 1024px;
    --inner-width-tablet: 95%;
    --inner-width-sp: 92%;
    --pink-box-shadow: 2px 5px 10px 0px #D6A9B448;
    --black-box-shadow: 2px 4px 10px 0px #1F1F1F12;
    scroll-behavior: smooth;
}

* {
    box-sizing: border-box;
}

body,
h1,
h2,
h3,
h4,
h5,
h6,
dl,
dd,
p,
figure,
ul,
ol,
input,
textarea,
strong,
button {
    margin: 0;
    padding: 0;
    font-size: 1rem;
    font-weight: normal;
    border: none;
    outline: none;
    list-style: none;
}

body {
    color: var(--sakrea-text-color);
    font-size: var(--font-size-M);
    font-family: var(--font-family-zkgn);
    font-weight: normal;
    font-style: normal;
    font-optical-sizing: auto;
    position: relative;
    z-index: 10;
    line-height: 180%;
    --svg-width: 16px;
    --svg-aspect: 1;
    --svg-color: var(--sakrea-accent-color);
    --svg-stroke-color: var(--sakrea-accent-color);
    --svg-va: 0;
}

main {
    position: relative;
    z-index: -500;
}

.inner {
    width: var(--inner-width);
    margin: 0 auto;
}

img {
    width: 100%;
    vertical-align: bottom;
}

a {
    color: inherit;
    text-decoration: inherit;
}

a.underline-deco {
    position: relative;
    transition: all .5s cubic-bezier(0.17,0.84,0.44,1);
}

a.underline-deco::after {
    position: absolute;
    content: "";
    display: inline-block;
    width: 100%;
    height: 1px;
    background: var(--sakrea-accent-color);
    bottom: -1px;
    left: 50%;
    transform: translate(-50%, 0);
}

@media (hover: hover) {
    a.underline-deco:hover {
        opacity: .5;
    }
}

input {
    padding: 5px 10px;
}

textarea {
    resize: none;
    padding: 10px 10px;
}

button {
    color: var(--sakrea-text-color);
    font-size: var(--font-size-M);
    font-family: var(--font-family-zkgn);
    background: none;
}

address {
    font-style: normal;
}

svg {
    width: var(--svg-width);
    aspect-ratio: var(--svg-aspect);
    fill: var(--svg-color);
    stroke: var(--svg-stroke-color);
    vertical-align: var(--svg-va);
}

:is(input, textarea):focus {
    border: 2px solid var(--sakrea-main-color);
}

.no-break {
    white-space: nowrap;
}

.break-for-pc {
    display: inline-block;
}

.break-for-sp {
    display: none;
}

.element-for-pc {
    display: block;
}

.element-for-sp {
    display: none;
}

@media screen and (max-width:768px) {
    .break-for-pc {
        display: none;
    }
    .break-for-sp {
        display: inline-block;
    }
    .element-for-pc {
        display: none;
    }
    .element-for-sp {
        display: block;
    }
}


/* --------------- animation -------------- */
.hover-animate-bg-change {
  position: relative;
  display: inline-block;
  color: inherit;
  text-decoration: none;
  overflow: hidden;
}

.hover-animate-bg-change::before {
  content: "";
  position: absolute;
  left: -100%;
  bottom: 3px;
  width: 100%;
  height: 15%;
  background: #D6A9B450; /* 半透明の薄いカラー */
  transition: left 0.5s ease;
  z-index: -1;
}

@media (hover: hover) {
    .hover-animate-bg-change:hover::before {
    left: 0;
    }
}

.hover-animate-bg-change {
  position: relative;
  z-index: 1;
}


/* --------------- 初期設定レスポンシブ -------------- */
@media (max-width: 1023px) and (min-width: 769px) {
    .inner {
        width: var(--inner-width-tablet);
    }
}

@media screen and (max-width:768px) {
    .inner {
        width: var(--inner-width-sp);
    }
}


/* -------- header -------- */
.header .wrapper {
    width: 100%;
    height: 64px;
    backdrop-filter: blur(5px);
    background: #FFFFFF95;
    box-shadow: var(--pink-box-shadow);
    padding: 6px 0 12px 0;
    position: fixed;
    z-index: 1000;
}

.header .wrapper .inner {
    display: flex;
    align-items: flex-end;
    width: 88%;
    margin: 0 auto;
}

.header .header_logo-area {
    display: flex;
    align-items: flex-end;
    gap: 5px;
}

.header .header_logo-area .site-logo {
    width: 81px;
}

.header .header_logo-area p {
    font-size: .625em;
    line-height: 1.3;
    padding: 0 0 3px 0;
}

.header .header_nav-area {
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    margin-left: auto;
}

.header .header_nav-area .list {
    display: flex;
    gap: 0 45px;
    font-size: var(--font-size-S);
    line-height: 90%;
    margin: 0 0 3px 0;
}

.header .header_nav-area .list li {
    position: relative;
}

.header .header_nav-area .list li::before {
    position: absolute;
    content: "";
    display: block;
    width: 10px;
    aspect-ratio: 12 / 18;
    background: url(../images/common/icon-sakura-hanabira.webp) no-repeat center / contain;
    bottom: -1px;
    left: -13px;
}

.header .header_nav-area .list li::after {
    content: "";
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 100%;
    height: 1px;
    background: var(--sakrea-main-color);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 0.3s ease-in-out;
}

@media (hover: hover) {
    .header .header_nav-area .list li:hover::after {
        transform: scaleX(1);
    }
}

.header .header_nav-area .phone-area {
    margin-left: 28px;
    line-height: 80%;
    --svg-va: -2px;
}

.header .header_nav-area .phone-area .opening-hours {
    color: var(--sakrea-accent-color);
    font-size: .55em;
    text-align: right;
    margin: 0 0 2px 0;
}

.header .header_nav-area .phone-area .phone-number {
    color: var(--sakrea-main-color);
    font-size: .875em;
    font-weight: 700;
}

.header .header_nav-area .phone-area .phone-number svg {
    --svg-color: var(--sakrea-main-color);
    --svg-widht: 13px;
}

.header .header_nav-area .header_nav-area_btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    color: var(--sakrea-accent-color);
    font-size: .75em;
    padding: 3px 23px 3px 30px;
    margin: 0 0 0 22px;
    border-radius: 24px;
    background: linear-gradient(to bottom, #D6A9B4 0%, #F7F5F4 100%);
    transition: all 0.2s ease;
    box-shadow: 1px 2px 5px 0 #5C5F6610;
    position: relative;
}

@media (hover: hover) {
    .header .header_nav-area .header_nav-area_btn:hover {
        transform: translateY(1px);
        box-shadow: 0 1px 2px 0 #5C5F6602;
    }
}

@media (max-width: 1023px) and (min-width: 769px) {
    .header .wrapper {
        display: flex;
        padding: 6px 0;
    }
    .header .wrapper .inner {
        width: 94%;
    }
    .header .header_logo-area .site-logo {
        width: 75px;
    }
    .header .header_logo-area p {
        display: none;
    }
    .header .header_nav-area .list {
        flex-wrap: wrap;
        gap: 10px 20px;
    }
    .header .header_nav-area .list li::before {
        content: none;
    }
}

@media screen and (max-width:768px) {
    .header .wrapper {
        padding: 6px 0;
    }
    .header .header_logo-area {
        flex-direction: column;
        align-items: flex-start;
        gap: 0;
    }
    .header .header_logo-area .site-logo {
        width: 60px;
        height: 33px;
        line-height: normal;
    }
    .header .header-menu-sp {
        --svg-width: 24px;
        --svg-va: 3px;
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 0 30px;
        padding: 3px 0 0 0;
    }
    .header .header-menu-sp .header-icon-area {
        display: flex;
        gap: 0 30px;
        margin: 0 15px 0 0;
    }
    .header .header-menu-sp :is(.header-icon_mail, .header-icon_phone_in_talk) {
        display: grid;
        place-items: center;
    }
    .header .header-menu-sp :is(.header-icon_mail, .header-icon_phone_in_talk) svg {
        margin: 5px 0 0 0;
    }
    .header .header_nav-area .phone-area,
    .header .header_nav-area .header_nav-area_btn {
        display: none;
    }
    .header .wrapper .inner {
        align-items: center;
        justify-content: space-between;
        line-height: 52px;
        width: 92%;
    }
    .header .header_nav-area .list {
        justify-content: space-between;
        flex-direction: column;
        height: 50vh;
        font-size: var(--font-size-M);
        padding: 0 0 0 40px;
    }
    .header .header_nav-area .list li::before {
        width: 16px;
        bottom: -5px;
        left: -24px;
    }
    .header .header_nav-area .menu-logo-area {
        width: 50%;
        margin: 5vh auto 50px auto;
    }
}

/* --------------- hamburger / ハンバーガーメニュー用 -------------- */
.header .icon-hamburger {
    display: none;
}

@media screen and (max-width:768px) {

    .header #icon-hamburger {
        display: inline-block;
        position: relative;
        width: 30px;
        height: 24px;
        cursor: pointer;
        z-index: 1000;
    }

    .header #icon-hamburger::before {
        position: absolute;
        content: "";
        display: block;
        width: 64px;
        height: 64px;
        background: var(--sakrea-main-color);
        bottom: -20px;
        right: -16px;
    }

    .header #icon-hamburger span {
        display: inline-block;
        position: absolute;
        left: 0;
        width: 100%;
        height: 2px;
        border-radius: 2px;
        background-color: var(--white-color);
        transition: all 0.3s;
    }

    .header #icon-hamburger span:nth-of-type(1) {
        top: 2px;
    }

    .header #icon-hamburger span:nth-of-type(2) {
        top: 11px;
    }

    .header #icon-hamburger span:nth-of-type(3) {
        bottom: 2px;
    }

    .header #icon-hamburger span:nth-of-type(1) {
        animation: hamburger-bar01 .75s forwards;
    }

    @keyframes hamburger-bar01 {
        0% {
            transform: translateY(9px) rotate(45deg);
        }

        50% {
            transform: translateY(9px) rotate(0);
        }

        100% {
            transform: translateY(0) rotate(0);
        }
    }

    .header #icon-hamburger span:nth-of-type(2) {
        transition: all .25s .25s;
        opacity: 1;
    }

    .header #icon-hamburger span:nth-of-type(3) {
        animation: hamburger-bar03 .75s forwards;
    }

    @keyframes hamburger-bar03 {
        0% {
            transform: translateY(-9px) rotate(-45deg);
        }

        50% {
            transform: translateY(-9px) rotate(0);
        }

        100% {
            transform: translateY(0) rotate(0);
        }
    }

    .header #icon-hamburger.active span:nth-of-type(1) {
        animation: active-hamburger-bar01 .75s forwards;
    }

    @keyframes active-hamburger-bar01 {
        0% {
            transform: translateY(0) rotate(0);
        }

        50% {
            transform: translateY(9px) rotate(0);
        }

        100% {
            transform: translateY(9px) rotate(45deg);
        }
    }

    .header #icon-hamburger.active span:nth-of-type(2) {
        opacity: 0;
    }

    .header #icon-hamburger.active span:nth-of-type(3) {
        animation: active-hamburger-bar03 .75s forwards;
    }

    @keyframes active-hamburger-bar03 {
        0% {
            transform: translateY(0) rotate(0);
        }

        50% {
            transform: translateY(-9px) rotate(0);
        }

        100% {
            transform: translateY(-9px) rotate(-45deg);
        }
    }

    #overlay {
        position: fixed;
        top: 0;
        left: 0;
        width: 0;
        height: 0;
        background-color: #2C2C2C95;
        z-index: 5;
        opacity: 0;
        transition: opacity .3s cubic-bezier(0.17,0.84,0.44,1);
    }

    #menu {
        position: fixed;
        top: 0;
        right: -100%;
        width: 80%;
        height: 100dvh;
        background-color: var(--white-color);
        z-index: 800;
        transition: right .3s cubic-bezier(0.17,0.84,0.44,1);
    }

    .header .header_nav-area {
        display: flex;
        align-items: flex-start;
        justify-content: flex-start;
        flex-direction: column;
        gap: 0;
        padding: 30px 30px 30px 30px;
        margin: 0 0 30px 0;
        line-height: normal;
    }

    /* メニューが開いた状態のスタイル */
    body.menu-open {
        overflow: hidden;
    }

    body.menu-open #overlay {
        width: 100%;
        height: 100dvh;
        opacity: 1;
    }

    body.menu-open #menu {
        right: 0;
    }

    header .info {
        display: block;
        padding: 30px 30px 300px;
        background: var(--sakrea-accent-color);
    }

    header .info div {
        display: flex;
        gap: 0 10px;
        margin: 0 0 15px 0;
    }

    header .info svg {
        width: 16px;
        height: 16px;
        fill: var(--sakrea-accent-color);
        vertical-align: -3px;
    }

    header .info dd svg {
        width: 12px;
        height: 12px;
        vertical-align: -1px;
    }
}


/* --------------- footer -------------- */
.footer .contact-info-area {
    text-align: center;
    background: var(--sakrea-sub-color);
    padding: 58px 0 58px 0;
    position: relative;
}

/* .footer .contact-info-area::before {
    position: absolute;
    content: "";
    display: block;
    width: 1px;
    height: 150px;
    background: var(--sakrea-accent-color);
    top: 38px;
    left: 50%;
    transform: translate(-50%, 0);
} */

.footer .contact-info-area .inner {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0 75px;
}

.footer .contact-info-area :is(.mail, .phone) {
    width: 30%;
    min-width: 277px;
}

.footer .contact-info-area :is(.mail, .phone) .title {
    margin: 0 0 5px 0;
}

.footer .contact-info-area :is(.mail, .phone) .title span {
    font-weight: 700;
    position: relative;
}

.footer .contact-info-area :is(.mail, .phone) .title span::before {
    position: absolute;
    content: "";
    display: block;
    width: 28px;
    height: 13px;
    background: url(../images/common/sakrea-accent-2.webp) no-repeat center / contain;
    top: -13px;
    left: 10px;
}

.footer .contact-info-area :is(.mail-address, .phone-number) {
    --svg-width: 32px;
    --svg-va: -4px;
    font-size: var(--font-size-L);
    font-family: var(--font-family-lato);
    border-bottom: 1px dashed var(--sakrea-text-color);
    padding: 0 5px 6px 5px;
    margin: 0 0 5px 0;
}

.footer .contact-info-area :is(.mail, .phone) .opening-hours {
    font-size: .75em;
}

.footer .footer-list-area {
    color: var(--white-color);
    background: var(--sakrea-accent-color);
}

.footer .footer-list-area hgroup h2 {
    width: 120px;
    padding: 45px 0 11px 0;
    margin-inline: auto;
}

.footer .footer-list-area hgroup p {
    width: 233px;
    margin: 0 auto 78px auto;
}

.footer .footer-list-area .main-list {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 24px 90px;
    width: 516px;
    color: var(--sakrea-sub-color);
    text-align: center;
    margin: 0 auto 45px auto;
}

.footer .footer-list-area .main-list li {
    width: 112px;
}

.footer .footer-list-area .footer-contact-btn {
    display: grid;
    place-items: center;
    width: 200px;
    height: 40px;
    text-align: center;
    border: 1px solid var(--white-color);
    border-radius: 34px;
    margin: 0 auto 100px auto;
    position: relative;
}

.footer .footer-list-area .footer-contact-btn svg {
    --svg-color: var(--white-color);
    position: absolute;
    bottom: 10px;
    right: 16px;
}

.footer .footer-list-area .sub-list {
    display: flex;
    justify-content: center;
    gap: 0 55px;
    font-size: var(--font-size-S);
    text-align: center;
    padding: 0 0 100px 0;
}

.footer .footer-list-area .sub-list li a {
    text-decoration-style: solid;
    text-decoration-line: underline;
    text-underline-offset: 2px;
}

.footer .footer-copyright-area {
    color: var(--white-color);
    font-size: .75em;
    font-family: var(--font-family-can);
    text-align: center;
    background: var(--sakrea-text-color);
}

@media (max-width: 1023px) and (min-width: 769px) {
}

@media screen and (max-width:768px) {
    .footer .contact-info-area {
        padding: 55px 0 45px 0;
    }
    .footer .contact-info-area .inner {
        flex-direction: column;
        gap: 85px 0;
    }
    .footer .contact-info-area::before {
        width: 80%;
        height: 1px;
        top: 48%;
        left: 50%;
        transform: translate(-50%, 0);
    }
    .footer .contact-info-area :is(.mail, .phone) {
        min-width: 230px;
    }
    .footer .contact-info-area :is(.mail, .phone) .title {
        line-height: normal;
    }
    .footer .contact-info-area :is(.mail-address, .phone-number) {
        --svg-width: 24px;
        font-size: 1.5em;
        border-bottom: none;
        margin: 0 0 15px 0;
    }
    .footer .footer-list-area hgroup p {
        width: 60%;
        margin: 0 auto 50px auto;
    }
    .footer .footer-list-area .main-list {
        justify-content: space-between;
        gap: 25px 0;
        width: 80%;
        margin: 0 auto 50px auto;
    }
    .footer .footer-list-area .footer-contact-btn {
        width: 80%;
        height: 45px;
        font-size: var(--font-size-S);
        font-weight: 500;
    }
    .footer .footer-list-area .footer-contact-btn svg {
        bottom: 13px;
    }
    .footer .footer-list-area .sub-list {
        flex-direction: column;
        gap: 30px 0;
    }
}

/* --------------- page-header -------------- */
/* ◆critical-style-common.php内に記述（ここを編集したらそっちも編集）◆
↓minifyしたやつ


↓もともと見やすい形
:root {
--sakrea-accent-color: #5C5F66;
    --sakrea-sub-color: #F7F5F4;
}

.page-header {
  display: grid;
  place-items: center;
  letter-spacing: -.02em;
  background: url(<?php echo theme_asset('images/common/page-title-bg.webp'); ?>) no-repeat center / cover;
  padding: 118px 0 54px 0;
}

.page-header h1 {
  color: var(--sakrea-accent-color);
  font-size: 1.5em;
  position: relative;
}

.page-header h1::before {
  position: absolute;
  content: "";
  width: 2px;
  height: 28px;
  border-left: 2px dotted var(--sakrea-accent-color);
  bottom: 1px;
  left: -80px;
  rotate: -131.19deg;
}

.page-header h1::after {
  position: absolute;
  content: "";
  width: 2px;
  height: 28px;
  border-left: 2px dotted var(--sakrea-accent-color);
  top: 1px;
  right: -80px;
  rotate: -131.19deg;
}

@media (max-width: 1023px) and (min-width: 769px) {
}

@media screen and (max-width:768px) {
    .page-header h1 {
        font-size: 1.2em;
        font-weight: 500;
    }
    .page-header h1::before {
        left: -30px;
    }
    .page-header h1::after {
        right: -30px;
    }
} 


.breadcrumb {
  font-size: .75em;
  letter-spacing: -.02em;
  background: var(--sakrea-sub-color);
  padding: 3px 0 3px 0;
  margin: 0 0 100px 0;
}

.breadcrumb .separator {
    padding: 0 8px 0 8px;
}

@media screen and (max-width:768px) {
    .breadcrumb {
        margin: 0 0 50px 0;
    }
}

*/



/* --------------- scroll-btn -------------- */
.scroll-btn {
    position: fixed;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 0 5px;
    width: 85px;
    aspect-ratio: 1;
    color: var(--sakrea-accent-color);
    font-size: var(--font-size-S);
    font-family: var(--font-family-lato);
    line-height: normal;
    background: url(../images/common/to-top-btn.webp) no-repeat center / contain;
    bottom: 30px;
    right: 30px;

    transition: transform 0.4s ease, opacity 0.4s ease;
    transform: translateY(100px); /* 初期状態は下に隠す */
    opacity: 0;
    pointer-events: none;
}

.scroll-btn.active {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}

.scroll-btn svg {
    --svg-width: 20px;
    --svg-color: var(--sakrea-accent-color);
    rotate: -90deg;
}


/* --------------- chevron-for-btn -------------- */
.chevron-for-btn {
    position: absolute;
    content: "";
    display: block;
    width: 16px;
    aspect-ratio: 1;
    right: 26px;
}


/* --------------- reCAPTCHA -------------- */
.grecaptcha-badge {
    visibility: hidden;
}
.recaptcha-note {
    color: var(--sakrea-accent-color);
    font-size: var(--font-size-S);
    line-height: 150%;
    margin: 20px 0 0 0 !important;
}

.recaptcha-note a {
    text-decoration-line: underline;
    text-decoration-style: solid;
}

/* 

@media (max-width: 1023px) and (min-width: 769px) {
}

@media screen and (max-width:768px) {
}

*/
