:root {
    --color-menu: #EEEEEC;
    --color-text: #231816;
    --color-text-sub: #534F50;
    --color-footer: #686253;
    --color-line: #5a646e;
    --color-white: #ffffff;
    --color-placeholder: #dddddd;
    --color-hover-main: #336AA7;
    --color-hover-sub: #7EA2D2;
    --color-icon-blue: #7591b5;
    --hover-opacity: 0.8;
    --hover-speed: 0.25s;
    --font-base: "Noto Sans JP", sans-serif;
    --font-about: var(--font-base);
    --font-serif: Georgia, "Times New Roman", serif;
    --sp-menu-button-size: 60px;
    --sp-menu-icon-width: 24px;
    --sp-menu-icon-height: 2px;
    --sp-menu-label-size: 0.75em;
    --sp-content-x: 24px;
    --sp-visual-x: 20px;
    --pc-header-height: 30px;
    --pc-visual-width: 50vw;
    --pc-menu-width: max(10vw, 102px);
    --pc-main-width: calc(100vw - var(--pc-visual-width) - var(--pc-menu-width));
    --pc-content-x: 30px;
    --pc-content-top: 24px;
    --section-space-sp: 64px;
    --section-space-pc: 60px;
    --section-border: 2px solid var(--color-line);
}

/* ==============================
   Base
   ============================== */

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

html,
body {
    margin: 0;
    padding: 0;
}

body {
    color: var(--color-text);
    background: var(--color-white);
    font-family: var(--font-base);
    font-weight: 400;
    line-height: 1.6;
}

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

a {
    color: inherit;
    text-decoration: none;
}

button {
    font: inherit;
}

h1,
h2,
h3,
h4 {
    margin: 0;
    color: var(--color-text);
    font-weight: 700;
    line-height: 1.25;
	font-family: var(--font-base);
}

/* ==============================
   Shared layout / components
   ============================== */

.site-header {
    position: relative;
    z-index: 100;
}

.top-message {
    width: 100%;
    height: 16px;
    padding: 0 10px;
    overflow: hidden;
    background: var(--color-line);
    color: var(--color-white);
    font-size: 4.5px;
    line-height: 16px;
    letter-spacing: 2px;
    text-align: center;
    white-space: nowrap;
}
.sns-x{
	display: none!important;
}

.menu-button {
    position: absolute;
    top: 16px;
    right: 0;
    z-index: 110;
    display: flex;
    width: var(--sp-menu-button-size);
    height: var(--sp-menu-button-size);
    padding: 0;
    border: 0;
    background: var(--color-menu);
    cursor: pointer;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

.menu-button span {
    display: block;
    width: var(--sp-menu-icon-width);
    height: var(--sp-menu-icon-height);
    background: var(--color-text);
    transform-origin: center center;
    transition: transform 0.28s ease, opacity 0.28s ease;
}

.menu-button em,
.menu-close em {
    display: block;
    color: var(--color-text);
    font-family: var(--font-serif);
    font-size: var(--sp-menu-label-size);
    font-style: normal;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0.02em;
}

.menu-button em {
    margin-top: 1px;
    transition: opacity 0.28s ease;
}

.menu-button:hover span:nth-child(1) {
    transform: translateY(-2px);
}

.menu-button:hover span:nth-child(3) {
    transform: translateY(2px);
}

.top-page,
.about-layout,
.shop-detail-layout,
.about-main,
.shop-detail-main {
    width: 100%;
    background: var(--color-white);
}

.top-page,
.about-main,
.shop-detail-main {
    padding-right: var(--sp-content-x);
    padding-left: var(--sp-content-x);
}

.c-section {
    margin: var(--section-space-sp) 0 0;
    padding-top: 16px;
    border-top: var(--section-border);
}

.c-section-title {
    margin: 0 0 28px;
    padding: 0;
    border: 0;
    color: var(--color-text);
    font-size: 20px;
    font-weight: 700;
    line-height: 1.2;
}

.c-section-title-en {
    letter-spacing: 2px;
}

.c-section-subtitle {
    margin: 0 0 12px;
    color: var(--color-text);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.4;
}

.site-footer {
    margin-top: var(--section-space-sp);
    padding: 36px 16px;
    background: var(--color-footer);
    color: var(--color-white);
    font-family: var(--font-base);
    font-size: 12px;
    line-height: 1.8;
    letter-spacing: 1px;
    text-align: center;
}

.about-main .site-footer,
.shop-detail-main .site-footer {
    margin-right: calc(-1 * var(--sp-content-x));
    margin-left: calc(-1 * var(--sp-content-x));
}

.side-menu {
    display: none;
}

/* ==============================
   Home page
   ============================== */

.main-visual {
    position: relative;
    width: 100%;
	padding:0 !important;
}

.main-visual-img {
    display: block;
    width: 100%;
    height: auto;
}

.main-visual-title {
    position: relative;
    z-index: 2;
    display: block;
    width: 94%;
    margin: -32px auto 0;
}

.instagram-section {
    padding-top: 20px;
}

.line-img,
.about-line-img,
.shop-detail-line {
    display: block;
    width: 100%;
}

.line-img {
    margin: 0 auto 20px;
}

.inst-title {
    display: block;
    width: 140px;
    margin: 0 auto 20px;
}


.shop-instagram {
	margin-top:100px;
    padding-top: 16px;
}

.shop-instagram::before {content: "";
    display: block;
    width: 56px;
    height: 3px;
    margin: 0 auto 20px;
    background: var(--color-line);
}

.shop-instagram-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: var(--color-text-sub);
    font-size: 12px;
    font-weight: 700;
}

.shop-instagram-heading > div {
    display: flex;
    align-items: center;
    gap: 6px;
}

.shop-instagram-heading .kutsushitaya-top-icon {
    width: 90px;
}

.shop-instagram-heading a img {
    width: 24px;
}

.inst-icon {
    color: var(--color-text);
    font-size: 20px;
    line-height: 1;
}

/*.shop-list.c-section {
    margin-right: var(--sp-content-x);
    margin-left: var(--sp-content-x);
}*/

.shop-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px 12px;
    margin: 0 0 40px;
}

.shop-grid article {
    margin: 0;
}

.shop-card {
    display: block;
    color: inherit;
    text-decoration: none;
    transition: opacity var(--hover-speed) ease;
}

.shop-grid img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.shop-grid p {
    margin: 5px 0 0;
    color: var(--color-text);
    font-size: 10px;
    font-weight: 700;
    line-height: 1.4;
}

.rfamiille_inst .sbi_inner_wrap{
    border-radius: 5px;
    border: solid 1px var(--color-text);
}

.rfamiille_inst #sb_instagram .sbi_photo_wrap {
	border-radius:20px;
}

.kutusita_inst>#sb_instagram .sbi_inner_wrap {
	padding:4px;
}

.kutusita_inst>#sb_instagram .sbi_photo_wrap {
	border-radius:10px;
}


#sb_instagram .sbi_caption{
	font-weight:500;
	color:var(--color-text)
}
#sb_instagram .sbi_caption_wrap{
	padding:10px;
}
#sb_instagram.sbi_small .sbi_caption_wrap{
	padding:5px 0;
}

/* ==============================
   About page
   ============================== */

.about-famille .about-main {
    font-family: var(--font-about);
}

.about-visual {
    position: relative;
    width: 100%;
    background: var(--color-white);
}

.about-visual-img {
    display: block;
    width: 100%;
    height: auto;
}

.about-visual-title {
    padding: 10px 0 22px;
    text-align: center;
}

.about-visual-title h1 {
    font-size: 27px;
    line-height: 1.15;
}

.about-visual-title p {
    margin: 6px 0 0;
    color: var(--color-text-sub);
    font-size: 12px;
    line-height: 1.4;
}

.about-message p {
    text-align: center;
}

.about-line-img {
    max-width: 375px;
    margin: 20px auto 36px;
}

.about-message h2 {
  margin: 0 auto 20px;
  font-size: 24px;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.12em;
   font-family: var(--font-base);
	text-align:center;
}

.about-message p {
    margin: 0 0 30px;
    color: var(--color-text);
    font-size: 0.875em;
    font-weight: 400;
    line-height: 1.85;
}

.about-mark {
    display: block;
    width: auto;
    height: auto;
    margin: 34px auto 22px;
    border: 0;
    background: transparent;
}

.about-mark img,
.about-mark-logo img,
.about-mark-promise img {
    display: block;
    width: 118px;
    height: auto;
    margin: 0 auto;
}

.about-mark-promise {
    margin-top: 40px;
}

.about-statement h4 {
    display: inline-block;
    margin: 0 auto 20px;
    padding: 0 0 10px;
    border-bottom: 2px solid #B6B1AE;
    color: var(--color-text-sub);
    font-size: 17px;
    line-height: 1.45;
    text-align: center;
}

.about-line-bottom {
    margin-top: 42px;
    margin-bottom: 38px;
}

.profile-list,
.history-list,
.shop-info-list {
    margin: 0;
}

.profile-list > div,
.history-list > div,
.shop-info-list > div {
    display: block;
    padding: 13px 0;
    border-bottom: 1px dotted var(--color-line);
}

.profile-list dt,
.history-list dt,
.shop-info-list dt {
    margin: 0 0 6px;
    color: var(--color-text);
    font-weight: 700;
    line-height: 1.6;
}

.profile-list dd,
.history-list dd,
.shop-info-list dd {
    margin: 0;
    color: var(--color-text);
    line-height: 1.75;
}

.profile-map {
    display: block;
    width: 100%;
    height: 210px;
    margin: 12px 0 0;
    border: 0;
}

.business-brand {
    margin: 0 0 24px;
}

.business-brand:last-child {
    margin-bottom: 0;
}

.business-brand img {
    display: block;
    width: 115px;
    height: auto;
    margin: 0 0 10px;
}

.business-brand strong {
    display: block;
    margin: 0 0 6px;
    font-size: 13px;
    font-weight: 700;
}

.business-brand p {
    margin: 0;
    font-size: 13px;
    line-height: 1.7;
}

/* ==============================
   Shop detail page
   ============================== */

.shop-detail-visual {
    position: relative;
    width: 100%;
    padding: 0;
    background: var(--color-white);
}

.shop-detail-visual-inner {
    width: 100%;
}

.shop-detail-visual-img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
	padding:20px;
}

@media (max-width: 769px) {
	.shop-detail-visual-img {
		margin-top:10px;
	}
}

.shop-detail-info {
    padding-top: 20px;
}

.shop-detail-line {
    max-width: 375px;
    margin: 0 auto 34px;
}

.shop-detail-info h1 {
    margin: 0 0 30px;
    font-size: 21px;
    line-height: 1.45;
}

.shop-info-list dt {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    font-size: 16px;
    line-height: 1.5;
}

.shop-info-list dd {
    font-size: 16px;
    font-weight: 500;
    line-height: 1.65;
}

.shop-info-icon {
    display: inline-flex;
    flex: 0 0 22px;
    align-items: center;
    justify-content: center;
    width: 22px;
    min-width: 22px;
    color: var(--color-icon-blue);
    font-size: 18px;
    line-height: 1;
}

.shop-info-icon .fa-solid {
    display: block;
    width: 1em;
    text-align: center;
}

.shop-category-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.shop-category-list li {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 4px 10px;
    border-radius: 6px;
    color: var(--color-white);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
}

.cat-interior { background: #888788; }
.cat-kitchen { background: #91a376; }
.cat-stationery { background: #7691aa; }
.cat-fashion { background: #b48a9b; }
.cat-kids { background: #b5b476; }
.cat-cosme { background: #9b92a6; }
.cat-default { background: var(--color-text-sub); }

.shop-map {
    display: block;
    width: 100%;
    height: 150px;
    margin: 30px 0 0;
    border: 0;
}

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

/* ==============================
   Hover effects
   ============================== */

.side-logo img,
.sns-icons a,
.side-banner,
.shop-card,
.shop-instagram-heading a img {
    transition: opacity var(--hover-speed) ease;
}

@media (hover: hover) and (pointer: fine) {
    .side-logo:hover img,
    .sns-icons a:hover,
    .side-banner:hover,
    .shop-card:hover,
    .shop-card:focus-visible,
    .shop-instagram-heading a:hover img {
        opacity: var(--hover-opacity);
    }
}

/* ==============================
   PC layout
   ============================== */

@media (min-width: 769px) {
    html,
    body {
        width: 100%;
        height: 100%;
        overflow: hidden;
    }

    .site-header {
        position: fixed;
        top: 0;
        left: 0;
        width: calc(100vw - var(--pc-menu-width));
        height: var(--pc-header-height);
        z-index: 100;
    }

    .top-message {
        height: var(--pc-header-height);
        line-height: var(--pc-header-height);
        font-size: 0.6em;
        letter-spacing: 3px;
    }

    .menu-button,
    .menu-close {
        display: none;
    }

    .top-page,
    .about-main,
    .shop-detail-main {
        position: fixed;
        top: var(--pc-header-height);
        left: var(--pc-visual-width);
        width: var(--pc-main-width);
        height: calc(100vh - var(--pc-header-height));
        padding: var(--pc-content-top) var(--pc-content-x) 0;
        overflow-y: auto;
        overflow-x: hidden;
        background: var(--color-white);
    }

    .main-visual,
    .about-visual,
    .shop-detail-visual {
        position: fixed;
        top: var(--pc-header-height);
        left: 0;
        width: var(--pc-visual-width);
        height: calc(100vh - var(--pc-header-height));
        overflow: hidden;
        background: var(--color-white);
    }

    .shop-detail-visual {
        padding: 0;
    }

    .shop-detail-visual-inner {
        width: 100%;
        height: 100%;
    }

    .main-visual-img {
        width: 100%;
        height: 100vh;
        padding: 0;
        object-fit: cover;
    }

    .main-visual-title {
        position: absolute;
        left: 26px;
        bottom: 24px;
        width: 92%;
        max-width: 640px;
        margin: 0;
    }

    .about-visual-img {
        width: 100%;
        height: 100vh;
        object-fit: cover;
    }

    .about-visual-title {
        padding: 20px 0 0;
    }

    .about-visual-title h1 {
        font-size: 37px;
    }

    .about-visual-title p {
        margin-top: 8px;
        font-size: 13px;
    }

    .shop-detail-visual-img {
        width: 100%;
        height: 100%;
        max-height: none;
        object-fit: cover;
    }

    .instagram-section {
        padding: 0;
    }

    .line-img,
    .about-line-img,
    .shop-detail-line {
        max-width: 520px;
    }

    .line-img,
    .inst-title {
        margin-bottom: 18px;
    }

    .inst-title {
        width: 170px;
    }

    .instagram-placeholder {
        gap: 14px;
    }

    .shop-instagram,
    .shop-list.c-section {
        margin-right: 0;
        margin-left: 0;
    }

    .shop-instagram {
        margin-top: 20px;
    }

    .shop-instagram-heading {
        margin-bottom: 10px;
        font-size: 14px;
    }

    .shop-instagram-heading img {
        width: 76px;
    }

    .shop-instagram-heading a img {
        width: 24px;
    }

    .c-section {
        margin-top: var(--section-space-pc);
    }

    .c-section-title {
        font-size: 22px;
    }

    .c-section-subtitle {
        margin-bottom: 14px;
        font-size: 14px;
    }

    .shop-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 22px 14px;
    }

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

    .about-line-img {
        margin-top: 0;
        margin-bottom: 38px;
    }

    .about-message h2 {
        margin-bottom: 20px;
    }

    .about-message p {
        line-height: 1.9;
    }

    .about-statement h4 {
        font-size: 20px;
    }

    .profile-list > div,
    .history-list > div,
    .shop-info-list > div {
        display: grid;
        grid-template-columns: 30% 1fr;
        column-gap: 16px;
        align-items: start;
    }

    .profile-list dt,
    .history-list dt,
    .shop-info-list dt {
        margin: 0;
        white-space: nowrap;
    }

    .profile-map {
        height: 112px;
    }

    .shop-detail-info {
        padding-top: 0;
    }

    .shop-detail-line {
        margin: 0 auto 48px;
    }

    .shop-detail-info h1 {
        margin-bottom: 28px;
        font-size: 24px;
        line-height: 1.4;
    }

    .shop-info-list dt,
    .shop-info-list dd {
        font-size: 15px;
    }

    .shop-map {
        height: 160px;
    }

    .site-footer {
        margin-top: var(--section-space-pc);
        padding: 42px 20px;
        font-size: 13px;
    }

    .top-page .site-footer,
    .about-main .site-footer,
    .shop-detail-main .site-footer {
        margin-right: calc(-1 * var(--pc-content-x));
        margin-left: calc(-1 * var(--pc-content-x));
    }

    .side-menu {
        display: block;
        position: fixed;
        top: 0;
        right: 0;
        z-index: 120;
        width: var(--pc-menu-width);
        height: 100vh;
        background: var(--color-menu);
    }

    .side-menu-inner {
        display: flex;
        flex-direction: column;
        align-items: center;
        width: 100%;
        min-height: 100%;
        padding: 62px 10px 18px;
        overflow-y: auto;
        text-align: center;
    }

    .side-logo {
        width: 100%;
        margin: 0 0 54px;
    }

    .side-logo img {
        display: block;
        width: 100%;
        height: auto;
        margin: 0 auto;
    }

    .side-nav {
        width: 100%;
    }

    .side-nav ul {
        display: flex;
        width: 100%;
        margin: 0;
        padding: 0;
        list-style: none;
        flex-direction: column;
        align-items: center;
        gap: 32px;
    }

    .side-nav li {
        width: 100%;
    }

    .side-nav a {
        display: block;
        color: var(--color-text);
        text-align: center;
    }

    .side-nav-icon {
        display: block;
        width: 26px;
        height: 26px;
        margin: 0 auto 5px;
        background-repeat: no-repeat;
        background-position: center center;
        background-size: contain;
        transform-origin: center center;
        transition: transform var(--hover-speed) ease;
    }

    .side-nav strong {
        display: block;
        color: var(--color-text);
        font-size: 18px;
        font-weight: 700;
        line-height: 1.05;
        white-space: nowrap;
        transition: color var(--hover-speed) ease;
    }

    .side-nav-sub {
        display: block;
        margin-top: 5px;
        color: var(--color-text-sub);
        font-size: 10px;
        font-weight: 400;
        line-height: 1.2;
        transition: color var(--hover-speed) ease;
    }

    .side-wave {
        width: 100%;
        margin: 38px 0 36px;
    }

    .side-wave img {
        display: block;
        width: min(58px, 60%);
        height: auto;
        margin: 0 auto;
    }

    .side-follow {
        width: 100%;
    }

    .followus-title {
        display: block;
        width: min(108px, 96%);
        height: auto;
        margin: 0 auto 12px;
    }

    .sns-icons {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 7px;
        margin: 0 0 13px;
    }

    .sns-icons a {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 24px;
        height: 24px;
    }

    .sns-icons img {
        display: block;
        width: 100%;
        height: auto;
    }

    .side-banner {
        display: block;
        width: min(108px, 96%);
        height: auto;
        margin: 0 auto;
    }

    .side-nav-icon-home { background-image: url("../../images/icon-home.svg"); }
    .side-nav-icon-about { background-image: url("../../images/icon-about.svg"); }
    .side-nav-icon-shop { background-image: url("../../images/icon-shop.svg"); }
    .side-nav-icon-contact { background-image: url("../../images/icon-contact.svg"); }

    .side-nav a:hover .side-nav-icon-home,
    .side-nav a:focus-visible .side-nav-icon-home { background-image: url("../../images/icon-home_hov.svg"); }

    .side-nav a:hover .side-nav-icon-about,
    .side-nav a:focus-visible .side-nav-icon-about { background-image: url("../../images/icon-about_hov.svg"); }

    .side-nav a:hover .side-nav-icon-shop,
    .side-nav a:focus-visible .side-nav-icon-shop { background-image: url("../../images/icon-shop_hov.svg"); }

    .side-nav a:hover .side-nav-icon-contact,
    .side-nav a:focus-visible .side-nav-icon-contact { background-image: url("../../images/icon-contact_hov.svg"); }

    .side-nav a:hover strong,
    .side-nav a:focus-visible strong { color: var(--color-hover-main); }

    .side-nav a:hover .side-nav-sub,
    .side-nav a:focus-visible .side-nav-sub { color: var(--color-hover-sub); }

    .side-nav li:nth-child(odd) a:hover .side-nav-icon,
    .side-nav li:nth-child(odd) a:focus-visible .side-nav-icon { transform: rotate(-5deg); }

    .side-nav li:nth-child(even) a:hover .side-nav-icon,
    .side-nav li:nth-child(even) a:focus-visible .side-nav-icon { transform: rotate(5deg); }
}

/* table-like dl blocks only: tablet uses the same stacked display as mobile */
@media (min-width: 769px) and (max-width: 1024px) {
    .profile-list > div,
    .history-list > div,
    .shop-info-list > div {
        display: block;
    }

    .profile-list dt,
    .history-list dt,
    .shop-info-list dt {
        margin: 0 0 6px;
        white-space: normal;
    }

    .shop-info-list dt {
        margin-bottom: 8px;
    }
}

/* ==============================
   SP full screen menu
   ============================== */

@media (max-width: 768px) {
    body.is-menu-open {
        overflow: hidden;
    }

    .top-message {
        position: fixed;
        top: 0;
        left: 0;
        z-index: 100;
    }

    .menu-button {
        position: fixed;
        top: 16px;
    }

    .side-menu {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 1000;
        width: 100%;
        min-height: 100vh;
        height: 100dvh;
        overflow-y: auto;
        background: var(--color-menu);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateX(100%);
        transition: opacity 0.36s ease, visibility 0.36s ease, transform 0.36s cubic-bezier(0.22, 1, 0.36, 1);
    }

    body.is-menu-open .side-menu {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateX(0);
    }

    .menu-close {
        position: fixed;
        top: 22px;
        right: 22px;
        z-index: 1002;
        width: var(--sp-menu-button-size);
        height: var(--sp-menu-button-size);
        padding: 0;
        border: 0;
        background: transparent;
        color: var(--color-text);
        cursor: pointer;
        opacity: 0;
        transform: translateY(-10px);
        transition: opacity 0.28s ease 0.12s, transform 0.28s ease 0.12s;
    }

    body.is-menu-open .menu-close {
        opacity: 1;
        transform: translateY(0);
    }

    .menu-close span {
        position: absolute;
        top: 26px;
        left: 50%;
        display: block;
        width: var(--sp-menu-icon-width);
        height: var(--sp-menu-icon-height);
        background: var(--color-text);
        transform-origin: center center;
    }

    .menu-close span:nth-child(1) {
        transform: translateX(-50%) rotate(0deg) scaleX(0);
    }

    .menu-close span:nth-child(2) {
        transform: translateX(-50%) rotate(0deg) scaleX(0);
    }

    body.is-menu-open .menu-close span:nth-child(1) {
        animation: closeLineOne 0.36s ease 0.16s forwards;
    }

    body.is-menu-open .menu-close span:nth-child(2) {
        animation: closeLineTwo 0.36s ease 0.16s forwards;
    }

    .menu-close em {
        position: absolute;
        top: 54px;
        left: 0;
        right: 0;
        text-align: center;
    }

    .menu-close:hover span:nth-child(1) {
        transform: translateX(-50%) rotate(45deg) scaleX(1.08);
    }

    .menu-close:hover span:nth-child(2) {
        transform: translateX(-50%) rotate(-45deg) scaleX(1.08);
    }

    @keyframes closeLineOne {
        0% { transform: translateX(-50%) rotate(0deg) scaleX(0); }
        100% { transform: translateX(-50%) rotate(45deg) scaleX(1); }
    }

    @keyframes closeLineTwo {
        0% { transform: translateX(-50%) rotate(0deg) scaleX(0); }
        100% { transform: translateX(-50%) rotate(-45deg) scaleX(1); }
    }

    .side-menu-inner {
        display: flex;
        width: 100%;
        min-height: 100%;
        padding: 90px 20px 150px 20px;
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .side-logo,
    .side-nav li,
    .side-wave,
    .side-follow {
        opacity: 0;
        transform: translateY(14px);
    }

    body.is-menu-open .side-logo,
    body.is-menu-open .side-nav li,
    body.is-menu-open .side-wave,
    body.is-menu-open .side-follow {
        animation: menuItemFadeUp 0.42s ease forwards;
    }

    body.is-menu-open .side-logo { animation-delay: 0.12s; }
    body.is-menu-open .side-nav li:nth-child(1) { animation-delay: 0.18s; }
    body.is-menu-open .side-nav li:nth-child(2) { animation-delay: 0.24s; }
    body.is-menu-open .side-nav li:nth-child(3) { animation-delay: 0.30s; }
    body.is-menu-open .side-nav li:nth-child(4) { animation-delay: 0.36s; }
    body.is-menu-open .side-wave { animation-delay: 0.42s; }
    body.is-menu-open .side-follow { animation-delay: 0.48s; }

    @keyframes menuItemFadeUp {
        0% { opacity: 0; transform: translateY(14px); }
        100% { opacity: 1; transform: translateY(0); }
    }

    .side-logo {
        width: 100%;
        margin: 0 0 58px;
    }

    .side-logo img {
        display: block;
        width: min(250px, 52vw);
        height: auto;
        margin: 0 auto;
    }

    .side-nav {
        width: 100%;
    }

    .side-nav ul {
        display: flex;
        width: 100%;
        margin: 0;
        padding: 0;
        list-style: none;
        flex-direction: column;
        align-items: center;
        gap: 40px;
    }

    .side-nav li {
        width: 100%;
    }

    .side-nav a {
        display: inline-block;
        color: var(--color-text);
        text-align: center;
    }

    .side-nav-icon {
        display: block;
        width: 24px;
        height: 24px;
        margin: 0 auto 10px;
        background-repeat: no-repeat;
        background-position: center center;
        background-size: contain;
    }

    .side-nav-icon-home { background-image: url("../../images/icon-home.svg"); }
    .side-nav-icon-about { background-image: url("../../images/icon-about.svg"); }
    .side-nav-icon-shop { background-image: url("../../images/icon-shop.svg"); }
    .side-nav-icon-contact { background-image: url("../../images/icon-contact.svg"); }

    .side-nav strong {
        display: block;
        color: var(--color-text);
        font-size: 1.5em;
        font-weight: 700;
        line-height: 1.05;
        letter-spacing: 0.01em;
        white-space: nowrap;
    }

    .side-nav-sub {
        display: block;
        margin-top: 10px;
        color: var(--color-text-sub);
        font-size: 0.8em;
        font-weight: 400;
        line-height: 1.25;
    }

    .side-wave {
        width: 100%;
        margin: 82px 0 84px;
    }

    .side-wave img {
        display: block;
        width: 50px;
        max-width: 28vw;
        height: auto;
        margin: 0 auto;
    }

    .side-follow {
        width: 100%;
    }

    .followus-title {
        display: block;
        width: auto;
        height: 50px;
        margin: 0 auto 20px;
    }

    .sns-icons {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: clamp(24px, 7vw, 50px);
        width: 100%;
        margin: 0 0 76px;
    }

    .sns-icons a {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 45px;
        height: 45px;
    }

    .sns-icons img {
        display: block;
        width: 100%;
        height: auto;
    }

    .side-banner {
        display: block;
        width: 250px;
        height: auto;
        margin: 0 auto;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

/* ==============================
   Dynamic shop CPT refinements
   ============================== */

.shop-empty-message {
    margin: 0;
    color: var(--color-text-sub);
    font-size: 13px;
    line-height: 1.7;
}

.shop-info-icon .fa-brands,
.shop-info-icon .fa-regular {
    display: block;
    width: 1em;
    text-align: center;
}

.shop-detail-content {
    margin: 28px 0 0;
    font-size: 14px;
    line-height: 1.8;
}

.shop-category-list li:not([class]) {
    background: var(--color-icon-blue);
}

/* ==============================
   About company / history redesign
   ============================== */

.about-main {
    font-family: var(--font-base);
    font-feature-settings: "palt";
}

.about-main .company-profile.c-section,
.about-main .company-history.c-section {
    box-sizing: border-box;
    margin: 0 calc(-1 * var(--sp-content-x));
    border-top: 0;
}

.about-main .company-profile {
    padding: 48px 0 40px;
    background: #edebe8;
}

.about-main .company-history {
    padding: 54px 0 70px;
    background: #fff;
}

.about-main .company-section-heading {
    margin: 0;
    padding: 0;
    border: 0;
    color: var(--color-text);
    font-size: 22px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.18em;
    text-align: center;
	font-family: var(--font-base);
}

.about-main .company-section-heading::after {
    content: "";
    display: block;
    width: 56px;
    height: 3px;
    margin: 18px auto 0;
    background: var(--color-line);
}

.about-main .profile-list,
.about-main .history-list {
    width: 85%;
    margin: 34px auto 0;
    padding: 0;
}

.about-main .profile-list > div,
.about-main .history-list > div {
    display: block;
    padding: 13px 0 14px;
    border-bottom: 1px solid #77736c;
    text-align: center;
}

.about-main .profile-list > div:first-child,
.about-main .history-list > div:first-child {
    padding-top: 0;
}

.about-main .profile-list dt,
.about-main .history-list dt {
    margin: 0 0 6px;
    color: #2f2b28;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.6;
    white-space: normal;
}

.about-main .profile-list dd,
.about-main .history-list dd {
    margin: 0;
    color: #2f2b28;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.75;
    letter-spacing: 0.02em;
}

.about-main .business-box {
    width: 85%;
    margin: 44px auto 0;
    padding: 28px 0px 26px;
    box-sizing: border-box;
    border: 1px solid #77736c;
    background: #fff;
    text-align: center;
}

.about-main .business-brand {
    margin: 0;
    padding: 30px 8px 24px;
}

.about-main .business-brand + .business-brand {
    border-top: 1px solid #77736c;
}

.about-main .business-brand strong {
    display: block;
    margin: 0 0 16px;
    color: #2f2b28;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.08em;
}

.about-main .business-brand p {
    margin: 0;
    color: #2f2b28;
    font-size: 15.5px;
    line-height: 1.85;
    letter-spacing: 0.02em;
}

.about-main .history-list {
    margin-top: 34px;
}

.about-main .history-list > div {
    padding: 15px 0 13px;
}

.about-main .history-list dt {
    font-size: 17px;
}

.about-main .history-list dd {
    font-size: 16px;
}

.about-main .profile-map {
    display: none;
}

@media (min-width: 769px) {
    .about-main .company-profile.c-section {
        margin-right: calc(-1 * var(--pc-content-x) + 20px);
        margin-left: calc(-1 * var(--pc-content-x) + 20px);
    }

    .about-main .company-history.c-section {
        margin-right: calc(-1 * var(--pc-content-x));
        margin-left: calc(-1 * var(--pc-content-x));
    }

    .about-main .profile-list > div,
    .about-main .history-list > div {
        display: grid;
        grid-template-columns: 30% 1fr;
        column-gap: 16px;
        align-items: start;
        text-align: left;
    }

    .about-main .profile-list dt,
    .about-main .history-list dt {
        margin: 0;
        text-align: left;
        white-space: nowrap;
    }

    .about-main .profile-list dd,
    .about-main .history-list dd {
        text-align: left;
    }
}

@media (max-width: 480px) {
    .about-main .company-profile {
        padding-top: 42px;
        padding-bottom: 38px;
    }

    .about-main .company-history {
        padding-top: 50px;
    }

    .about-main .company-section-heading {
        font-size: 20px;
    }

   /* .about-main .profile-list,
    .about-main .history-list,
    .about-main .business-box {
        width: calc(100% - 76px);
    }*/

    .about-main .profile-list dt,
    .about-main .history-list dt {
        font-size: 16px;
    }

    .about-main .profile-list dd,
    .about-main .history-list dd {
        font-size: 15.5px;
    }

    .about-main .business-brand strong {
        font-size: 19px;
    }

    .about-main .business-brand p {
        font-size: 15px;
    }
}

.sbi_photo img {
	border-radius:10px;
}

@media (max-width: 769px) {
	.pc_br {
		display: none;
	}
}

@media (min-width: 769px) {
	.sp_br {
		display: none;
	}
}

/*お問い合わせ*/
.contact-item-section{
	margin-bottom:50px!important;
	padding-right: 20px!important;
	padding-left: 20px!important;
}
 .text-box {
  width: 100%;                
  height: 200px;              
  border: 1px solid #000; 
	padding:10px;
  overflow-y: scroll;          
}
.text-box h5{
	margin:10px 0 2px;
	font-size:1.1em;
}
.text-box p{
	margin:0;
}

.contact-form-list {
    margin: 0;
    padding: 0;
}

.contact-form-list > div {
    display: block;
    padding: 13px 0;
    border-bottom: 1px dotted var(--color-line);
}

.contact-form-list dt {
    margin: 0 0 8px;
    color: var(--color-text);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
}

.contact-form-list dd {
    margin: 0;
}

.text-box-s,
.text-box-l{
    width: 100%;
    max-width: 100%;
    padding: 10px;
    border: 1px solid #b8b2aa;
    border-radius: 0;
    background: #fff;
    font-family: var(--font-base);
    font-size: 15px;
}
.text-box-l{
	height:130px;
}

.contact-form-list .text-box {
    max-height: 300px;
    padding: 16px;
    overflow-y: auto;
    border: 1px solid #b8b2aa;
    background: #fff;
    font-size: 13px;
    line-height: 1.8;
}
/*
.contact-item-section{
	text-align:center;
	padding:20px;
}

.contact-box{
	 padding:0 !important;
}

.contact-brand{
    padding: 15px 8px !important;
}

.about-main .contact-brand + .contact-brand {
    border-top: 1px solid #77736c;
}
*/

.contact-form-submit{
	width:300px;
	margin:0 auto;
}
.wpcf7-submit {
	    width: 300px;
    height: 45px;
    font-weight: 700;
    background: var(--color-line);
    border: none;
    color: #FFF;
}
.wpcf7-submit:hover{
	background: var(--color-hover-sub);
}
.contact-form-list dt p{
    display: inline-block;
	margin-bottom:5px;
}
.contact_required::after{
	content: "必須";
	color: #ffffff;
	background: #cc0000;
	font-size: 0.8em;
	padding: 0.3em;
	border-radius: 0.5em;
	margin-left:0.3em;
}
.contact-form-list dd p{
	margin:5px 0 ;
}

.contact-form-agree .wpcf7-list-item{
	margin:5px 0;
}

.wpcf7 form.sent .wpcf7-response-output {
    border: none;
    background: var(--color-hover-main);
    color: #FFF;
	font-weight: bold;}
	
	
@media (min-width: 1040px) {
    .contact-form-list dt {
        margin: 0;
        white-space: nowrap;
    }
}

/* ==============================
   Active global navigation item
   ============================== */

.side-nav a.is-active .side-nav-icon-home,
.side-nav a[aria-current="page"] .side-nav-icon-home {
    background-image: url("../../images/icon-home_hov.svg");
}

.side-nav a.is-active .side-nav-icon-about,
.side-nav a[aria-current="page"] .side-nav-icon-about {
    background-image: url("../../images/icon-about_hov.svg");
}

.side-nav a.is-active .side-nav-icon-shop,
.side-nav a[aria-current="page"] .side-nav-icon-shop {
    background-image: url("../../images/icon-shop_hov.svg");
}

.side-nav a.is-active .side-nav-icon-contact,
.side-nav a[aria-current="page"] .side-nav-icon-contact {
    background-image: url("../../images/icon-contact_hov.svg");
}

.side-nav a.is-active strong,
.side-nav a[aria-current="page"] strong {
    color: var(--color-hover-main);
}

.side-nav a.is-active .side-nav-sub,
.side-nav a[aria-current="page"] .side-nav-sub {
    color: var(--color-hover-sub);
}

.side-nav li:nth-child(odd) a.is-active .side-nav-icon,
.side-nav li:nth-child(odd) a[aria-current="page"] .side-nav-icon {
    transform: rotate(-5deg);
}

.side-nav li:nth-child(even) a.is-active .side-nav-icon,
.side-nav li:nth-child(even) a[aria-current="page"] .side-nav-icon {
    transform: rotate(5deg);
}
