@charset "utf-8";

/* Noto Serif JP Regular */
@font-face {
    font-family: 'Noto Serif JP';
    src: url(/fonts/NotoSerifJP-Regular.woff2) format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

/* Noto Serif JP Medium */
@font-face {
    font-family: 'Noto Serif JP';
    src: url(/fonts/NotoSerifJP-Medium.woff2) format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

/* Noto Serif JP SemiBold */
@font-face {
    font-family: 'Noto Serif JP';
    src: url(/fonts/NotoSerifJP-SemiBold.woff2) format('woff2');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

/* Noto Serif JP Bold */
@font-face {
    font-family: 'Noto Serif JP';
    src: url(/fonts/NotoSerifJP-Bold.woff2) format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

/* Zen Old Mincho Regular */
@font-face {
    font-family: 'Zen Old Mincho';
    src: url(/fonts/ZenOldMincho-Regular.ttf);
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

/* Zen Old Mincho Medium */
@font-face {
    font-family: 'Zen Old Mincho';
    src: url(/fonts/ZenOldMincho-Medium.ttf);
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

/* Zen Old Mincho SemiBold */
@font-face {
    font-family: 'Zen Old Mincho';
    src: url(/fonts/ZenOldMincho-SemiBold.ttf);
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

/* Zen Old Mincho Bold */
@font-face {
    font-family: 'Zen Old Mincho';
    src: url(/fonts/ZenOldMincho-Bold.ttf);
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

/* =========================================
 site-header（Figma header コンポーネント / 12538:663）
 ========================================= */
.l-header.org-header * {
    font-family: 'Noto Serif JP', Serif-serif;
}

.org-header a,
.org-header a:hover,
.org-header a:before,
.org-header a:after,
.org-header a:hover:before,
.org-header a:hover:after {
    opacity: 1;
    transition: .4s;
}

.site-header {
    width: 100%;
    max-width: 1920px;
    margin: 0 auto;
    background-color: #ffffff;
    box-sizing: border-box;
}

.site-header__inner {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    min-width: 1240px;
    height: 84px;
    padding-left: 20px;
    box-sizing: border-box;
    overflow: visible;
}

.site-header__logo-heading {
    margin: 0;
    padding: 0;
    font-size: inherit;
    font-weight: inherit;
    line-height: 0;
}

.site-header__logo {
    display: block;
    line-height: 0;
    text-decoration: none;
}

.site-header__logo-img {
    display: block;
    width: 330px;
    height: 56px;
    object-fit: contain;
    object-position: left center;
}

.site-header__side {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: 30px;
    height: 100%;
    flex-shrink: 0;
    box-sizing: border-box;
}

.site-header__meta {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: flex-start;
    gap: 13px;
    height: 100%;
    padding: 10px 0 8px;
    box-sizing: border-box;
}

.site-header__phone {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    box-sizing: border-box;
}

.site-header__phone-link {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: 4px;
    text-decoration: none;
    color: inherit;
}

.site-header__phone-icon {
    display: block;
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    line-height: 0;
}

.site-header__phone-icon img {
    display: block;
    width: 18px;
    height: 18px;
}

.site-header__phone-num {
    font-family: 'Noto Serif JP', serif;
    font-size: 24px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0;
    color: #262626;
    white-space: nowrap;
}

.site-header__hours {
    margin: 0;
    font-family: 'Noto Serif JP', serif;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: 0;
    color: #737373;
    white-space: nowrap;
}

.site-header__gnav {
    box-sizing: border-box;
}

.site-header__gnav-list {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: 24px;
    margin: 0;
    padding: 0;
    list-style: none;
    box-sizing: border-box;
}

.site-header__gnav-item {
    margin: 0;
    padding: 0;
}

.site-header__gnav-sep {
    width: 1px;
    height: 22px;
    flex-shrink: 0;
    margin: 0;
    padding: 0;
    list-style: none;
    background-color: #d9d9d9;
}

.site-header__gnav-link {
    font-family: 'Noto Serif JP', serif;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0;
    color: #000000;
    text-decoration: none;
    white-space: nowrap;
}

.site-header__gnav-link:hover {
    opacity: 0.85;
}

.site-header__gnav-item--dropdown {
    position: relative;
}

/* 実績ドロップダウン（ホバー／キーボードフォーカスで表示） */
.h-popup--store {
    position: absolute;
    top: 37px;
    left: 50%;
    transform: translateX(-50%);
    margin: 0;
    z-index: 200;
    min-width: 120px;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease, visibility 0.2s ease;
}

/*
 * トリガーとパネルの間に「何もない領域」があると :hover が外れて閉じる。
 * 透明の hit 領域を ::before で補う。無効にするときは HTML から h-popup--hover-bridge を外す。
 * top を変えたら --h-popup-bridge-height を（概ね top 以上）合わせる。
 */
.site-header__gnav-item--dropdown .h-popup--store.h-popup--hover-bridge {
    --h-popup-bridge-height: 40px;
}

.site-header__gnav-item--dropdown .h-popup--store.h-popup--hover-bridge::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 100%;
    height: var(--h-popup-bridge-height);
    background: transparent;
    pointer-events: inherit;
}

.site-header__gnav-item--dropdown:hover .h-popup--store,
.site-header__gnav-item--dropdown:focus-within .h-popup--store {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
}

.site-header__gnav-item--dropdown .h-list__popup {
    display: flex;
    flex-direction: column;
    gap: 0;
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
    box-shadow: none;
}

.site-header__gnav-item--dropdown .h-item__popup {
    margin: 0;
    padding: 0;
}

.site-header__gnav-item--dropdown .site-header__gnav-link {
    padding: 0 17px 0 0;
    position: relative;
}

.site-header__gnav-link:hover {
    color: #bea954;
}

.site-header__gnav-item--dropdown .site-header__gnav-link:after {
    position: absolute;
    content: "";
    top: 50%;
    right: 0%;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    width: 11px;
    height: 6px;
    background: url(/images/top/arw_dropdown.webp) no-repeat center / cover;
    transform-origin: 50% 50%;
    transition: transform 0.2s ease;
}

.site-header__gnav-item--dropdown:hover .site-header__gnav-link:after,
.site-header__gnav-item--dropdown:focus-within .site-header__gnav-link:after {
    transform: translateY(-50%) rotate(180deg);
    -webkit-transform: translateY(-50%) rotate(180deg);
    -ms-transform: translateY(-50%) rotate(180deg);
}

.site-header__gnav-item--dropdown .h-item__popup a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 8px 16px 7px;
    box-sizing: border-box;
    font-family: 'Noto Serif JP', serif;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.25;
    color: #6C633F;
    text-decoration: none;
    background-color: rgba(255, 255, 255, 0.98);
    white-space: nowrap;
    border-bottom: 1px solid #fff;
}

.site-header__gnav-item--dropdown .h-item__popup:first-of-type a {
    border-bottom: 1px solid #e8e8e8;
}

.site-header__gnav-item--dropdown .h-item__popup a:hover {
    background-color: #6C633F;
    color: #ffffff;
    border-color: #6C633F;
    opacity: 1;
}

.site-header__gnav-caret {
    display: block;
    width: 9px;
    height: 4px;
    flex-shrink: 0;
    line-height: 0;
}

.site-header__gnav-caret img {
    display: block;
    width: 9px;
    height: 4px;
}

.site-header__cta {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 90px;
    height: 84px;
    flex-shrink: 0;
    box-sizing: border-box;
    background-color: #bea954;
    border: 1px solid #bea954;
    text-decoration: none;
}

.site-header__cta:hover {
    opacity: 1;
    background-color: #ffffff;
}

.site-header__cta-icon {
    display: block;
    width: 26px;
    height: 19px;
    line-height: 0;
    background: url(/images/top/header-contact-icon.svg) no-repeat center / cover;
}

.site-header__cta:hover .site-header__cta-icon {
    background: url(/images/top/header-contact-icon_on.svg) no-repeat center / cover;
}

.site-header__cta-label {
    font-family: 'Noto Serif JP', serif;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: 0;
    color: #ffffff;
    text-align: center;
    white-space: nowrap;
}

.site-header__cta:hover .site-header__cta-label {
    color: #bea954;
}

.float-banner {
    display: block;
    position: fixed;
    top: 240px;
    right: 0;
    z-index: 160;
    max-height: calc(100vh - 260px);
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    box-sizing: border-box;
}

.float-banner__inner {
    display: flex;
    flex-direction: column;
    gap: 4px;
    width: 100%;
    overflow: hidden;
    border-right: none;
    box-sizing: border-box;
}

.float-banner__block {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 20px 17px;
    box-sizing: border-box;
    text-decoration: none;
    text-align: center;
    transition: opacity 0.35s ease, filter 0.35s ease;
    letter-spacing: 0.0713em;
}

.float-banner__label {
    font-size: 16px;
    font-weight: 400;
    line-height: 1.35;
    color: #ffffff;
    writing-mode: vertical-rl;
    text-orientation: upright;
}

.float-banner__block--satei {
    min-height: 60px;
    background: linear-gradient(103.77deg, #cdba70 0.96%, #c0a94a 100%);
}

.float-banner__block--satei:hover {
    background: #ffffff;
    box-shadow: inset 0 0 0 1px #a3924e;
}

.float-banner__block--satei:hover .float-banner__label {
    color: #a3924e;
}

.float-banner__block--line {
    min-height: 60px;
    background: linear-gradient(103.77deg, #35cf74 0.96%, #149f4d 100%);
}

.float-banner__block--line:hover {
    background: #ffffff;
    box-shadow: inset 0 0 0 1px #22b55e;
}

.float-banner__block--line:hover .float-banner__label {
    color: #22b55e;
}