@charset "UTF-8";
* {
  box-sizing: border-box;
  font-weight: 400;
}

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

html {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

/*!
  * ress.css • v1.1.2
  * MIT License
  * github.com/filipelinhares/ress
  */
/* # =================================================================
  # Global selectors
  # ================================================================= */
html {
  box-sizing: border-box;
  /* All browsers without overlaying scrollbars */
  -webkit-text-size-adjust: 100%;
  /* iOS 8+ */
}

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

::before,
::after {
  text-decoration: inherit;
  /* Inherit text-decoration and vertical align to ::before and ::after pseudo elements */
  vertical-align: inherit;
}

/* Remove margin, padding of all elements and set background-no-repeat as default */
* {
  background-repeat: no-repeat;
  /* Set `background-repeat: no-repeat` to all elements */
  padding: 0;
  /* Reset `padding` and `margin` of all elements */
  margin: 0;
}

/* # =================================================================
  # General elements
  # ================================================================= */
/* Add the correct display in iOS 4-7.*/
audio:not([controls]) {
  display: none;
  height: 0;
}

hr {
  overflow: visible;
  /* Show the overflow in Edge and IE */
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: 100%;
  font-style: normal;
}

/*
  * Correct `block` display not defined for any HTML5 element in IE 8/9
  * Correct `block` display not defined for `details` or `summary` in IE 10/11
  * and Firefox
  * Correct `block` display not defined for `main` in IE 11
  */
article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
menu,
nav,
section,
summary {
  display: block;
}

summary {
  display: list-item;
  /* Add the correct display in all browsers */
}

small {
  font-size: 100%;
  /* Set font-size to 80% in `small` elements */
}

[hidden],
template {
  display: none;
  /* Add the correct display in IE */
}

abbr[title] {
  border-bottom: 1px dotted;
  /* Add a bordered underline effect in all browsers */
  text-decoration: none;
  /* Remove text decoration in Firefox 40+ */
}

a {
  background-color: transparent;
  /* Remove the gray background on active links in IE 10 */
  -webkit-text-decoration-skip: objects;
  /* Remove gaps in links underline in iOS 8+ and Safari 8+ */
}

a:active,
a:hover {
  outline-width: 0;
  /* Remove the outline when hovering in all browsers */
}

code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  /* Specify the font family of code elements */
}

b,
strong {
  font-weight: bolder;
  /* Correct style set to `bold` in Edge 12+, Safari 6.2+, and Chrome 18+ */
}

dfn {
  font-style: italic;
  /* Address styling not present in Safari and Chrome */
}

ul,
ol {
  list-style: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* Address styling not present in IE 8/9 */
mark {
  background-color: #ff0;
  color: #000;
}

/* https://gist.github.com/unruthless/413930 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

address,
em {
  font-style: normal;
}

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  rt:not(:target) {
    position: relative;
    top: -0.7em;
    /* IE10（\9なしでIE11にも適用） */
  }
}
/* # =================================================================
  # Forms
  # ================================================================= */
input {
  border-radius: 0;
}

/* Apply cursor pointer to button elements */
button,
[type=button],
[type=reset],
[type=submit],
[role=button] {
  cursor: pointer;
}

/* Replace pointer cursor in disabled elements */
[disabled] {
  cursor: default;
}

[type=number] {
  width: auto;
  /* Firefox 36+ */
}

[type=search] {
  -webkit-appearance: textfield;
  /* Safari 8+ */
}

[type=search]::-webkit-search-cancel-button,
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
  /* Safari 8 */
}

textarea {
  overflow: auto;
  /* Internet Explorer 11+ */
  resize: vertical;
  /* Specify textarea resizability */
}

button,
input,
optgroup,
select,
textarea {
  font: inherit;
  /* Specify font inheritance of form elements */
}

optgroup {
  font-weight: bold;
  /* Restore the font weight unset by the previous rule. */
}

button {
  overflow: visible;
  /* Address `overflow` set to `hidden` in IE 8/9/10/11 */
}

/* Remove inner padding and border in Firefox 4+ */
button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/* Replace focus style removed in the border reset above */
button:-moz-focusring,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  outline: 1px dotted ButtonText;
}

button,
html [type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
  /* Correct the inability to style clickable types in iOS */
}

button,
select {
  text-transform: none;
  /* Firefox 40+, Internet Explorer 11- */
}

/* Remove the default button styling in all browsers */
button,
input,
select,
textarea {
  background-color: transparent;
  border-style: none;
  color: inherit;
}

/* Style select like a standard input */
select {
  -moz-appearance: none;
  /* Firefox 36+ */
  -webkit-appearance: none;
  /* Chrome 41+ */
}

select::-ms-expand {
  display: none;
  /* Internet Explorer 11+ */
}

select::-ms-value {
  color: currentColor;
  /* Internet Explorer 11+ */
}

legend {
  border: 0;
  /* Correct `color` not being inherited in IE 8/9/10/11 */
  color: inherit;
  /* Correct the color inheritance from `fieldset` elements in IE */
  display: table;
  /* Correct the text wrapping in Edge and IE */
  max-width: 100%;
  /* Correct the text wrapping in Edge and IE */
  white-space: normal;
  /* Correct the text wrapping in Edge and IE */
}

::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* Correct the inability to style clickable types in iOS and Safari */
  font: inherit;
  /* Change font properties to `inherit` in Chrome and Safari */
}

[type=search] {
  -webkit-appearance: textfield;
  /* Correct the odd appearance in Chrome and Safari */
  outline-offset: -2px;
  /* Correct the outline style in Safari */
}

/* # =================================================================
  # Specify media element style
  # ================================================================= */
img {
  max-width: 100%;
  border-style: none;
  /* Remove border when inside `a` element in IE 8/9/10 */
  vertical-align: bottom;
}

/* Add the correct vertical alignment in Chrome, Firefox, and Opera */
progress {
  vertical-align: baseline;
}

svg:not(:root) {
  overflow: hidden;
  /* Internet Explorer 11- */
}

audio,
canvas,
progress,
video {
  display: inline-block;
  /* Internet Explorer 11+, Windows Phone 8.1+ */
}

/* # =================================================================
  # Accessibility
  # ================================================================= */
/* Specify the progress cursor of updating elements */
[aria-busy=true] {
  cursor: progress;
}

/* Specify the pointer cursor of trigger elements */
[aria-controls] {
  cursor: pointer;
}

/* Specify the unstyled cursor of disabled, not-editable, or otherwise inoperable elements */
[aria-disabled] {
  cursor: default;
}

/* # =================================================================
  # Selection
  # ================================================================= */
/* Specify text selection background color and omit drop shadow */
::-moz-selection {
  background-color: #b3d4fc;
  /* Required when declaring ::selection */
  color: #000;
  text-shadow: none;
}

::selection {
  background-color: #b3d4fc;
  /* Required when declaring ::selection */
  color: #000;
  text-shadow: none;
}

a {
  text-decoration: none;
}
a:hover {
  text-decoration: none;
}

ul {
  letter-spacing: -0.4em;
}
ul li {
  letter-spacing: normal;
}

:root {
  background-color: #ECEBE8;
}

html,
body {
  overflow-x: hidden;
}

html {
  margin: 0;
  font-size: 62.5%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}
body {
  position: relative;
  margin: 0;
  color: #000;
  font-optical-sizing: auto;
  font-display: swap;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "palt";
  font-family: "Libre Baskerville", serif, YakuHanMP, "Shippori Mincho", serif, serif;
}

address {
  font-style: normal;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  font-size: inherit;
  font-weight: inherit;
}

p {
  margin: 0;
}

ul,
ol {
  margin: 0;
  padding-left: 0;
  list-style-type: none;
}

dl,
dt,
dd {
  margin: 0;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

th {
  padding: 0;
  text-align: left;
  font-weight: inherit;
}

td {
  padding: 0;
}

fieldset {
  margin: 0;
  border: 0;
  padding: 0;
}

button,
input,
optgroup,
select,
textarea {
  font-weight: inherit;
  line-height: inherit;
}

button,
input,
select,
textarea {
  color: inherit;
}

button {
  border: 0;
  border-radius: 0;
  padding: 0;
  background-color: transparent;
  color: inherit;
  cursor: pointer;
}

:where(input[type=email], input[type=submit], input[type=tel], input[type=text], textarea) {
  border-radius: 0;
}

:where(input[type=submit]) {
  background: transparent;
}

:where([type=email], input[type=search], input[type=tel], input[type=text], textarea) {
  appearance: none;
}

select {
  appearance: none;
  border: 0;
  border-radius: 0;
  background-color: transparent;
}

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

img {
  height: auto;
  vertical-align: bottom;
}

figure {
  margin: 0;
}

summary::-webkit-details-marker {
  list-style: none;
  display: none;
}

.fadein {
  opacity: 0;
}
.fadein.fadein-has-started {
  opacity: 1;
  transition: opacity 1.5s;
}

.have-fadein {
  opacity: 0;
}
.have-fadein.fadein-has-started {
  opacity: 1;
  transition: opacity 2s 0.2s;
}

@media only screen and (min-width: 768px) {
  .hover-opacity {
    transition: opacity 0.5s;
  }
  .hover-opacity:hover {
    opacity: 0.8;
  }
}

/* =========================================================
	SP タップフィードバック
	削除・無効化する場合はこのブロックごと消してください
========================================================= */
@media (max-width: 767px) {
  .hover-opacity:active {
    opacity: 0.8;
  }
}
/*
	Header
	- Mobile first
	- px only
	- BEM
	- No selector abbreviation by &
*/
.header {
  width: 100%;
  background-color: #ECEBE8;
  border-bottom: 1px solid #D4D3CE;
  position: relative;
}

body.is-header-drawer-open {
  overflow: hidden;
}

/* -----------------------------
	上段：ECユーティリティ
----------------------------- */
.header__ec {
  background-color: #ECEBE8;
  position: relative;
  z-index: 155;
}

.header__ec-inner {
  margin: 0 auto;
  padding: 0 15px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  column-gap: 16px;
}

.header__ec-left {
  display: flex;
  align-items: center;
  column-gap: 14px;
  min-width: 0;
}

.header__store {
  display: inline-flex;
  align-items: center;
  column-gap: 10px;
  min-width: 0;
}

.header__store-mark {
  display: none;
}

.header__store-text {
  font-family: YakuHanMP, "Shippori Mincho", serif;
  font-size: 12px;
  font-style: normal;
  font-weight: 800;
  line-height: 150%; /* 18px */
  letter-spacing: 0.12px;
}
.header__store-text .u-palt__chunk {
  font-weight: 800;
  letter-spacing: -1.02px;
}
.header__store-text .u-palt__chunk--kanji {
  letter-spacing: 0;
}
.header__store-text .u-palt__chunk--kana {
  letter-spacing: -2px;
}

/* ブランド：PCのみ表示（details） */
.header__brand {
  display: none;
  position: relative;
}

.header__brand-summary {
  display: inline-flex;
  align-items: center;
  column-gap: 8px;
  font-family: YakuHanMP, "Shippori Mincho", serif;
  font-size: 12px;
  letter-spacing: 0.06em;
  cursor: pointer;
  user-select: none;
}

.header__brand-summary-text {
  display: inline-block;
}

.header__brand-summary-icon {
  width: 10px;
  height: 10px;
  background-image: url(/images/common_mc/ep_arrow-left.svg);
  background-size: 10px auto;
  background-position: center center;
  transition: transform 0.3s ease;
}

details[open] .header__brand-summary-icon,
.header__brand.is-open .header__brand-summary-icon {
  transform: rotate(-180deg);
}

.header__brand-panel {
  position: absolute;
  top: 101%;
  left: 0;
  right: 0;
  background-color: #ECEBE8;
  z-index: 5;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s, visibility 0.2s;
  pointer-events: none;
}

.header__brand.is-open .header__brand-panel {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.header__brand-panel-inner {
  max-width: 1440px;
  margin: 0 auto;
  padding: 40px 40px 64px;
}

.header__brand-list {
  display: grid;
  grid-template-columns: repeat(5, 200px);
  gap: 50px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.header__brand-item--stack {
  display: flex;
  flex-direction: column;
  gap: 30px;
}

.header__brand-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  transition: opacity 0.3s ease;
}

.header__brand-card:hover {
  opacity: 0.8;
}

.header__brand-card-img {
  display: block;
  overflow: hidden;
}
.header__brand-card-img img {
  width: 200px;
  height: 267px;
  display: block;
  object-fit: cover;
}

.header__brand-card--sm .header__brand-card-img img {
  height: 150px;
}

.header__brand-card-body {
  padding-top: 20px;
  text-align: center;
}

.header__brand-card-name {
  display: block;
  font-family: YakuHanMP, "Shippori Mincho", serif;
  font-size: 15px;
  font-weight: 600;
  line-height: 150%;
  letter-spacing: 0.45px;
  color: #1D1C1C;
  text-align: center;
  margin-bottom: 10px;
}

.header__brand-card-desc {
  display: block;
  font-family: YakuHanMP, "Shippori Mincho", serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 150%;
  letter-spacing: 0.12px;
  color: #1D1C1C;
  text-align: center;
}

.header__ec-right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

/* PC：ユーティリティ（アイコン＋テキスト） */
.header__utility {
  list-style: none;
  margin: 0;
  padding: 0;
}

.header__utility-pc {
  display: none;
  align-items: center;
  column-gap: 26px;
}

.header__utility-link {
  display: inline-flex;
  align-items: center;
  column-gap: 2px;
  font-family: YakuHanMP, "Shippori Mincho", serif;
  font-size: 13px;
  letter-spacing: 0.39px;
  font-weight: 400;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}

.header__utility-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.header__utility-label {
  display: inline-block;
}

.header__cart-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background-color: #962525;
  color: #fff;
  font-size: 10px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
  margin-left: 0;
  flex-shrink: 0;
}

/* SP：アイコン＋ハンバーガー */
.header__utility-sp {
  display: inline-flex;
  align-items: center;
  column-gap: 12px;
}
.header__utility-sp .header__hamburger {
  margin-left: 6px;
}

.header__icon-link {
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}

.header__utility-sp .header__icon-link {
  height: 50px;
}

.header__icon-link--cart {
  position: relative;
}
.header__icon-link--cart .header__cart-badge {
  position: absolute;
  top: 8px;
  right: -8px;
  margin-left: 0;
}

.header__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.header__hamburger {
  position: relative;
  width: 27px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.header__hamburger-label {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.header__hamburger-line {
  position: absolute;
  left: 0;
  right: 0;
  height: 1px;
  background-color: #000;
  transition: transform 0.2s, opacity 0.2s, top 0.2s, bottom 0.2s;
}

.header__hamburger-line-top {
  top: 9px;
}

.header__hamburger-line-bottom {
  bottom: 10px;
}

/* ドロワーOPEN時：ハンバーガーをXに */
.header--drawer-open .header__hamburger-line-top {
  top: 13px;
  transform: rotate(22deg);
}

.header--drawer-open .header__hamburger-line-middle {
  opacity: 0;
}

.header--drawer-open .header__hamburger-line-bottom {
  bottom: auto;
  top: 13px;
  transform: rotate(-22deg);
}

/* ドロワーOPEN時：虫眼鏡・カートを非表示 */
.header--drawer-open .header__utility-sp .header__icon-link {
  opacity: 0;
  pointer-events: none;
}

/* -----------------------------
	検索パネル
----------------------------- */
.header__search {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 5;
  background-color: #D5D2CA;
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.3s ease;
}

.header__search[aria-hidden=false] {
  max-height: 600px;
}

.header__search-inner {
  padding: 30px;
}

.header__search-heading {
  font-family: YakuHanMP, "Shippori Mincho", serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.06em;
  margin-bottom: 12px;
}

.header__search-form {
  display: flex;
  align-items: center;
  border: 1px solid #D4D3CE;
  border-radius: 5px;
  background-color: #fff;
  margin-bottom: 20px;
}

.header__search-input {
  flex: 1;
  height: 44px;
  padding: 0 12px;
  font-family: YakuHanMP, "Shippori Mincho", serif;
  font-size: 16px;
  border: none;
  border-radius: 5px;
  background: transparent;
  outline: none;
}
@media only screen and (min-width: 768px) {
  .header__search-input {
    font-size: 14px;
  }
}
.header__search-input::placeholder {
  color: #414141;
}

.header__search-submit {
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  cursor: pointer;
  flex-shrink: 0;
}

.header__search-keywords {
  margin-bottom: 30px;
}

.header__search-label {
  font-family: YakuHanMP, "Shippori Mincho", serif;
  color: #1D1C1C;
  font-size: 15px;
  font-style: normal;
  font-weight: 600;
  line-height: 150%; /* 22.5px */
  letter-spacing: 0.45px;
  margin-bottom: 10px;
}

.header__search-keyword-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-start;
}

.header__search-keyword-list a {
  display: inline-block;
  font-family: YakuHanMP, "Shippori Mincho", serif;
  font-size: 13px;
  line-height: 150%;
  letter-spacing: 0.03em;
  padding: 0;
  border: 1px solid #D4D3CE;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-align: left;
}

.header__search-popular-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-start;
}

.header__search-popular-list a {
  display: inline-block;
  font-family: YakuHanMP, "Shippori Mincho", serif;
  font-size: 13px;
  letter-spacing: 0.03em;
  padding: 0;
  border: 1px solid #D4D3CE;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-align: left;
}

/* -----------------------------
	下段：メイン
----------------------------- */
.header__main {
  background-color: #ECEBE8;
}

.header__main-inner {
  margin: 0 auto;
  padding: 0 17px 0 20px;
  height: 112px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  column-gap: 12px;
}

.header__main-left {
  display: inline-flex;
  align-items: center;
  column-gap: 22px;
  min-width: 0;
}

.header__month {
  width: 35px;
  height: 72px;
  border-left: 1px solid #D9D9D9;
  border-right: 1px solid #D9D9D9;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  writing-mode: vertical-rl;
  font-family: YakuHanMP, "Shippori Mincho", serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 110%;
  letter-spacing: 0.48px;
}

.header__catch {
  font-family: YakuHanMP, "Shippori Mincho", serif;
  font-size: 11px;
  letter-spacing: 1.1px;
  font-weight: 400;
  line-height: 160%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.header__catch-pc {
  display: none;
}

.header__catch-sp {
  display: block;
  text-align: right;
  max-width: 170px;
}

.header__main-center {
  display: flex;
  align-items: center;
  justify-content: center;
}

.header__logo {
  width: 34px;
}

.header__main-right {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  min-width: 0;
}

/* PC：メインナビ */
.header__nav-pc {
  display: none;
}

.header__nav-pc-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: inline-flex;
  align-items: center;
  column-gap: 30px;
}

.header__nav-pc-link {
  display: inline-flex;
  align-items: center;
  font-family: YakuHanMP, "Shippori Mincho", serif;
  font-size: 15px;
  letter-spacing: 0.45px;
  line-height: 120%;
  font-weight: 600;
  white-space: nowrap;
  background: none;
  border: none;
  border-bottom: 1px solid transparent;
  padding: 0 0 4px;
  cursor: pointer;
  transition: border-color 0.3s ease;
}

.header__nav-pc-link:hover {
  border-bottom-color: currentColor;
}

.header__nav-pc-link-has-children::after {
  content: "";
  display: inline-block;
  width: 13px;
  height: 13px;
  margin-left: 6px;
  background-image: url(/images/common_mc/ep_arrow-left.svg);
  background-size: 13px auto;
  background-position: center center;
  transition: transform 0.3s ease;
}

.header__nav-pc-link-has-children:hover::after,
.header__nav-pc-link-has-children[aria-expanded=true]::after {
  transform: rotate(180deg);
}

/* -----------------------------
	PC：メガメニュー
----------------------------- */
.header__mega {
  display: none;
}

/* -----------------------------
	SP：全画面ドロワー
----------------------------- */
.header__drawer {
  position: fixed;
  inset: 0;
  z-index: 150;
  background-color: rgba(0, 0, 0, 0.25);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.2s, visibility 0.2s;
}

.header--drawer-open .header__drawer {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.header__drawer-panel {
  position: absolute;
  inset: 0;
  height: 100dvh;
  background-color: #fff;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 0;
}

.header__drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  column-gap: 15px;
  height: 50px;
  padding: 0 15px;
  background-color: #ECEBE8;
  position: sticky;
  top: 0;
  z-index: 1;
}

.header__drawer-store {
  font-family: YakuHanMP, "Shippori Mincho", serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: -2px;
  visibility: hidden;
}

.header__drawer-close {
  width: 40px;
  height: 34px;
  position: relative;
}

.header__drawer-close-line {
  position: absolute;
  left: 6px;
  right: 6px;
  top: 16px;
  height: 1px;
  background-color: #000;
}

.header__drawer-close-line-top {
  transform: rotate(22deg);
}

.header__drawer-close-line-bottom {
  transform: rotate(-22deg);
}

/* ユーティリティグリッド */
.header__drawer-utility {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-auto-rows: 60px;
  gap: 1px;
  background-color: #D9D9D9;
  border-top: 1px solid #D9D9D9;
  border-bottom: 1px solid #D9D9D9;
  margin-bottom: 0;
}

.header__drawer-utility-link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 3px;
  background-color: #fff;
  height: 100%;
  padding: 0 12px;
  text-align: center;
  font-family: YakuHanMP, "Shippori Mincho", serif;
  font-size: 15px;
  letter-spacing: 0.03em;
  line-height: 1;
  text-decoration: none;
}

.header__drawer-utility-icon {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  margin-top: 2px;
}
.header__drawer-utility-icon svg {
  display: block;
}

/* ドロワーナビ */
.header__drawer-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.header__drawer-item {
  border-bottom: 1px solid #D4D3CE;
}

.header__drawer-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 25px 20px;
  font-family: YakuHanMP, "Shippori Mincho", serif;
  font-size: 16px;
  letter-spacing: 0.03em;
  line-height: 120%;
  text-decoration: none;
}
.header__drawer-link::after {
  content: "";
  display: block;
  width: 7px;
  height: 14px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='7' height='14' viewBox='0 0 7 14' fill='none'%3E%3Cpath d='M0.886533 12.9033L6.71628 6.92279C6.81867 6.81774 6.87598 6.67685 6.87598 6.53016C6.87598 6.38347 6.81867 6.24258 6.71628 6.13754L0.886532 0.154785C0.838836 0.105798 0.781811 0.0668636 0.718821 0.040278C0.655831 0.0136934 0.588153 -3.265e-06 0.519783 -3.25902e-06C0.451412 -3.25304e-06 0.383734 0.0136934 0.320744 0.0402781C0.257753 0.0668636 0.200728 0.105798 0.153032 0.154785C0.0548992 0.255241 -4.10107e-05 0.390103 -4.10001e-05 0.530536C-4.09895e-05 0.67097 0.0548992 0.80583 0.153032 0.906286L5.63516 6.53016L0.153033 12.1529C0.0552368 12.2533 0.000509211 12.3879 0.000509222 12.5281C0.000509233 12.6683 0.0552368 12.8029 0.153033 12.9033C0.200729 12.9523 0.257754 12.9912 0.320745 13.0178C0.383735 13.0444 0.451413 13.0581 0.519783 13.0581C0.588154 13.0581 0.655832 13.0444 0.718822 13.0178C0.781812 12.9912 0.838837 12.9523 0.886533 12.9033Z' fill='%231D1C1C'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  flex-shrink: 0;
}

/* アコーディオントグル */
.header__drawer-accordion-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 25px 20px;
  font-family: YakuHanMP, "Shippori Mincho", serif;
  font-size: 16px;
  letter-spacing: 0.03em;
  line-height: 120%;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
}

.header__drawer-accordion-toggle--sub {
  font-size: 14px;
  padding: 10px 2px;
}

.header__drawer-accordion-text {
  display: inline-block;
}

.header__drawer-accordion-left {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.header__drawer-brand-logo {
  width: 24px;
  height: auto;
  display: block;
}

.header__drawer-accordion-icon {
  position: relative;
  width: 13px;
  height: 13px;
  flex-shrink: 0;
}

.header__drawer-accordion-icon::before,
.header__drawer-accordion-icon::after {
  content: "";
  position: absolute;
  background-color: #1D1C1C;
}

/* 縦線（常時表示） */
.header__drawer-accordion-icon::before {
  width: 1px;
  height: 13px;
  top: 0;
  left: 6px;
  transition: transform 0.2s, opacity 0.2s;
}

/* 横線（常時表示） */
.header__drawer-accordion-icon::after {
  width: 13px;
  height: 1px;
  top: 6px;
  left: 0;
}

/* open時：縦線を非表示（マイナスに） */
.header__drawer-accordion-toggle[aria-expanded=true] .header__drawer-accordion-icon::before {
  opacity: 0;
}

/* アコーディオンボディ */
.header__drawer-accordion-body {
  overflow: hidden;
  height: 0;
  transition: height 0.3s cubic-bezier(0.19, 0.91, 0.38, 1);
}

.header__drawer-accordion-list {
  list-style: none;
  margin: 0;
  padding: 0 0 25px 90px;
}

.header__drawer-accordion-list--sub {
  padding: 4px 0 20px 14px;
}

.header__drawer-accordion-item--accordion {
  border-bottom: none;
}

.header__drawer-accordion-link {
  display: block;
  font-family: YakuHanMP, "Shippori Mincho", serif;
  font-size: 13px;
  letter-spacing: 0.03em;
  line-height: 150%;
  padding: 10px 0;
  text-decoration: none;
}

/* ロゴ＋ナビ グリッドセクション */
.header__drawer-logo-grid {
  display: grid;
  grid-template-columns: 90px 1fr;
  border-bottom: 1px solid #D4D3CE;
  padding-top: 4px;
  transition: padding-top 0.5s cubic-bezier(0.19, 0.91, 0.38, 1);
}

.header__drawer-logo-grid:has(.header__drawer-list--logo-nav > .header__drawer-item:first-child > .header__drawer-accordion-toggle[aria-expanded=true]) {
  padding-top: 17px;
}

.header__drawer-logo-col {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 21px;
}

.header__drawer-brand-logo-lg {
  width: 34px;
  height: auto;
  display: block;
}

.header__drawer-list--logo-nav {
  list-style: none;
  margin: 0;
  padding: 0;
}

.header__drawer-list--logo-nav .header__drawer-item:last-child {
  border-bottom: none;
}

.header__drawer-list--logo-nav .header__drawer-accordion-toggle {
  padding: 21px 20px;
  transition: padding 0.5s cubic-bezier(0.19, 0.91, 0.38, 1);
}

.header__drawer-list--logo-nav .header__drawer-accordion-toggle--sub {
  padding: 10px 0 10px 2px;
}

.header__drawer-list--logo-nav .header__drawer-link {
  padding-left: 16px;
  padding-right: 20px;
}

.header__drawer-list--logo-nav .header__drawer-accordion-list {
  padding-left: 16px;
  padding-right: 20px;
}

/* インフォメーション */
.header__drawer-info {
  margin-top: 24px;
  padding: 0 20px;
}

.header__drawer-info-title {
  font-family: YakuHanMP, "Shippori Mincho", serif;
  font-size: 16px;
  letter-spacing: 0.03em;
  line-height: 120%;
  font-weight: 600;
  color: #1D1C1C;
  margin-bottom: 20px;
}

.header__drawer-info-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  row-gap: 20px;
}

.header__drawer-info-list a {
  font-family: YakuHanMP, "Shippori Mincho", serif;
  font-size: 14px;
  letter-spacing: 0.03em;
  font-weight: 400;
  line-height: 150%;
  text-decoration: none;
}

/* SNS */
.header__drawer-sns {
  display: flex;
  gap: 20px;
  margin-top: 32px;
  margin-bottom: 95px;
  padding: 0 20px;
}

.header__drawer-sns-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
}

/* -----------------------------
	PC上書き
----------------------------- */
@media only screen and (min-width: 1200px) {
  .header__store-text {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.42px;
  }
  .header__store-mark {
    width: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
  }
  .header__ec-inner {
    padding: 0 24px;
    height: 50px;
  }
  .header__brand {
    display: inline-block;
    position: static;
  }
  .header__brand::before {
    width: 1px;
    height: 20px;
    background-color: #D0D0D0;
    content: "";
  }
  .header__utility-pc {
    display: inline-flex;
  }
  .header__utility-sp {
    display: none;
  }
  .header__main-inner {
    padding: 0 37px 0 40px;
    height: 142px;
  }
  .header__month {
    width: 52px;
    height: 80px;
    font-size: 18px;
  }
  .header__logo {
    width: 42px;
  }
  .header__catch-pc {
    display: block;
    max-width: 360px;
    font-size: 14px;
  }
  .header__catch-sp {
    display: none;
  }
  .header__nav-pc {
    display: block;
  }
  .header__drawer {
    display: none;
  }
  /* PC：検索パネル */
  .header__search {
    position: absolute;
    top: 100%;
    left: auto;
    right: 0;
    width: 362px;
    background-color: #D5D2CA;
    border-bottom: none;
    overflow: visible;
    max-height: none;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.2s, visibility 0.2s;
  }
  .header__search::before {
    content: "";
    position: absolute;
    top: -5px;
    right: 142px;
    width: 10px;
    height: 10px;
    background-color: #D5D2CA;
    transform: rotate(45deg);
  }
  .header__search[aria-hidden=false] {
    max-height: none;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }
  .header__search-inner {
    max-width: none;
    margin: 0;
    padding: 30px 28px 36px;
  }
  .header__search-heading {
    font-size: 16px;
    margin-bottom: 16px;
  }
  .header__search-form {
    max-width: none;
    margin-bottom: 30px;
  }
  .header__search-keyword-list a,
  .header__search-popular-list a {
    padding: 0;
    border: none;
    background: none;
    text-decoration: underline;
    text-underline-offset: 3px;
  }
  /* PC：メガメニュー */
  .header__mega {
    display: block;
    position: absolute;
    top: 105%;
    left: 0;
    right: 0;
    z-index: 5;
    background-color: #ECEBE8;
    border-bottom: 1px solid #D4D3CE;
    /* ズームレベルによるサブピクセルギャップをbox-shadowで覆う */
    box-shadow: 0 -4px 0 0 #ECEBE8;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px);
    /* 閉じる：フェードアウトしながらスライドバック */
    transition: opacity 0.15s ease, transform 0.15s ease, visibility 0s 0.15s;
    pointer-events: none;
  }
  .header__mega[aria-hidden=false] {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    /* 開く：先に位置が決まってからフェードイン */
    transition: transform 0.15s ease, opacity 0.2s ease 0.12s, visibility 0s;
    pointer-events: auto;
  }
  .header__mega-inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 50px 20px 50px;
  }
  .header__mega-thumbs {
    display: flex;
    gap: 20px;
    margin-bottom: 24px;
  }
  .header__mega-thumb {
    flex: 1;
    text-decoration: none;
    transition: opacity 0.3s ease;
  }
  .header__mega-thumb:hover {
    opacity: 0.8;
  }
  .header__mega-thumb-img {
    display: block;
    aspect-ratio: 4/3;
    overflow: hidden;
    margin-bottom: 20px;
    background-color: #E6E4E0;
  }
  .header__mega-thumb-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .header__mega-thumb-label {
    display: block;
    text-align: center;
    font-family: YakuHanMP, "Shippori Mincho", serif;
    color: #1D1C1C;
    font-size: 15px;
    font-style: normal;
    font-weight: 600;
    line-height: 200%; /* 30px */
    letter-spacing: 0.45px;
  }
  .header__mega-cols {
    display: flex;
    gap: 50px;
    justify-content: flex-end;
  }
  .header__mega-col {
    min-width: 0;
  }
  .header__mega-col-heading {
    font-family: YakuHanMP, "Shippori Mincho", serif;
    color: #1D1C1C;
    font-family: "Shippori Mincho";
    font-size: 14px;
    font-style: normal;
    font-weight: 600;
    line-height: 150%; /* 21px */
    letter-spacing: 0.42px;
    margin-bottom: 14px;
  }
  .header__mega-col-heading a {
    color: inherit;
    text-decoration: none;
    font-weight: inherit;
    font-size: inherit;
    letter-spacing: inherit;
  }
  .header__mega-col ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    row-gap: 0;
  }
  .header__mega-col li a {
    font-family: YakuHanMP, "Shippori Mincho", serif;
    color: #1D1C1C;
    font-family: "Shippori Mincho";
    font-size: 13px;
    font-style: normal;
    font-weight: 400;
    line-height: 200%; /* 26px */
    letter-spacing: 0.39px;
    text-decoration: none;
    transition: opacity 0.3s ease;
  }
  .header__mega-col li a:hover {
    opacity: 0.8;
  }
  /* 同一列内の2つ目以降の見出しに上余白 */
  .header__mega-col ul + .header__mega-col-heading {
    margin-top: 26px;
  }
  /* 商品一覧メガメニュー */
  .header__mega-products {
    display: flex;
    align-items: flex-start;
    gap: 0;
  }
  .header__mega-products .header__mega-cols {
    flex: 1;
    padding-right: 60px;
    border-right: 1px solid #D4D3CE;
  }
  .header__mega-products-cta {
    width: 200px;
    flex-shrink: 0;
    margin-left: 57px;
  }
  .header__mega-products-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 14px 28px;
    border-radius: 5px;
    border: 1px solid #A0A0A0;
    font-family: YakuHanMP, "Shippori Mincho", serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 200%;
    letter-spacing: 0.42px;
    color: #1D1C1C;
    text-align: center;
    text-decoration: none;
    transition: background-color 0.3s ease;
  }
  .header__mega-products-cta-btn:hover {
    background-color: #D5D2CA;
  }
  /* 贈り物メガメニュー */
  .header__mega-gifts {
    display: grid;
    grid-template-columns: 322px 1fr 290px;
    gap: 0;
    align-items: start;
  }
  .header__mega-gifts-links {
    padding-left: 40px;
    padding-right: 75px;
  }
  .header__mega-gifts-links ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    row-gap: 16px;
  }
  .header__mega-gifts-links a {
    font-family: YakuHanMP, "Shippori Mincho", serif;
    color: #1D1C1C;
    font-size: 13px;
    font-style: normal;
    font-weight: 400;
    line-height: 150%;
    letter-spacing: 0.39px;
    text-decoration: none;
    transition: opacity 0.3s ease;
  }
  .header__mega-gifts-links a:hover {
    opacity: 0.8;
  }
  .header__mega-gifts-featured {
    width: 642px;
    padding: 0 66px 44px 60px;
    box-sizing: content-box;
    border-left: solid 1px #D4D3CE;
    border-right: solid 1px #D4D3CE;
  }
  .header__mega-gifts-featured .header__mega-thumbs {
    margin-bottom: 0;
    gap: 20px;
  }
  .header__mega-gifts-featured .header__mega-thumb-img {
    width: 200px;
    height: 267px;
    aspect-ratio: unset;
  }
  .header__mega-gifts-featured .header__mega-thumb-img img {
    width: 200px;
    height: 267px;
    object-fit: cover;
  }
  .header__mega-gifts-cta {
    display: flex;
    width: 200px;
    padding-top: 30px;
    margin: 0 0 0 50px;
  }
  .header__mega-gifts-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 14px 28px;
    border-radius: 5px;
    border: 1px solid #A0A0A0;
    font-family: YakuHanMP, "Shippori Mincho", serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 200%;
    letter-spacing: 0.42px;
    color: #1D1C1C;
    text-align: center;
    text-decoration: none;
    transition: background-color 0.3s ease;
  }
  .header__mega-gifts-cta-btn:hover {
    background-color: #D5D2CA;
  }
}
/* -----------------------------
	SP追従ナビ（デフォルト非表示）
----------------------------- */
.header__sticky-sp-nav {
  display: none;
  border-top: 1px solid #D4D3CE;
}

.header__sticky-sp-nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}

.header__sticky-sp-nav-item + .header__sticky-sp-nav-item {
  border-left: 1px solid #D4D3CE;
}

.header__sticky-sp-nav-link {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 50px;
  font-family: YakuHanMP, "Shippori Mincho", serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-decoration: none;
  color: #1D1C1C;
}

/* -----------------------------
	SP：ヘッダー（EC行のみ）常時固定 → 最上位レイヤー
----------------------------- */
@media (max-width: 1199px) {
  .header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 102;
  }
  .header {
    border-bottom: none;
  }
  .header__ec {
    border-bottom: 1px solid #D4D3CE;
  }
  .header__main {
    display: none;
  }
}
/* -----------------------------
	SP：固定4分割ナビ → 最下位レイヤー
----------------------------- */
.header__sticky-sp-nav {
  display: none;
}

@media (max-width: 1199px) {
  .header__sticky-sp-nav {
    display: block;
    position: fixed;
    top: 50px;
    left: 0;
    right: 0;
    z-index: 100;
    background-color: #ECEBE8;
    border-bottom: 1px solid #D4D3CE;
  }
}
/* -----------------------------
	SP：スクロールで消えるロゴ＋ナビ → 中間レイヤー
----------------------------- */
.header__sp-scroll {
  display: none;
}

@media (max-width: 1199px) {
  .header__sp-scroll {
    display: block;
    position: relative;
    z-index: 101;
    margin-top: 50px;
    background-color: #ECEBE8;
    border-bottom: 1px solid #D4D3CE;
  }
  .header__sp-scroll-logo {
    height: 112px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .header__sp-scroll-logo img {
    width: 34px;
    height: auto;
    display: block;
  }
  .header__sp-scroll-nav-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border-top: 1px solid #D4D3CE;
  }
  .header__sp-scroll-nav-item + .header__sp-scroll-nav-item {
    border-left: 1px solid #D4D3CE;
  }
  .header__sp-scroll-nav-link {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 50px;
    font-family: YakuHanMP, "Shippori Mincho", serif;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-decoration: none;
    color: #1D1C1C;
  }
}
/* -----------------------------
	PC：ヘッダー（EC行のみ）常時固定 → 最上位レイヤー
----------------------------- */
@media only screen and (min-width: 1200px) {
  .header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 102;
    border-bottom: none;
  }
  .header__ec {
    border-bottom: 1px solid #D4D3CE;
  }
  .header__main {
    position: relative;
    z-index: 101;
    margin-top: 50px;
    background-color: #ECEBE8;
    border-bottom: 1px solid #D4D3CE;
  }
  .header__mega {
    top: 205px;
    transition: top 0.15s ease;
  }
  .header--sticky .header__mega {
    top: 119px;
  }
}
/* -----------------------------
	PC：固定6ナビ → 最下位レイヤー
----------------------------- */
.header__sticky-pc-nav {
  display: none;
}

@media only screen and (min-width: 1200px) {
  .header__sticky-pc-nav {
    display: block;
    position: fixed;
    top: 50px;
    left: 0;
    right: 0;
    z-index: 100;
    background-color: #ECEBE8;
    border-bottom: 1px solid #D4D3CE;
  }
  .header__sticky-pc-nav-inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 40px;
  }
  .header__sticky-pc-nav-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    column-gap: 40px;
    height: 64px;
  }
  .header__sticky-pc-nav-link {
    display: inline-flex;
    align-items: center;
    font-family: YakuHanMP, "Shippori Mincho", serif;
    font-size: 15px;
    letter-spacing: 0.45px;
    line-height: 120%;
    font-weight: 600;
    white-space: nowrap;
    background: none;
    border: none;
    border-bottom: 1px solid transparent;
    padding: 0 0 4px;
    cursor: pointer;
    text-decoration: none;
    color: #1D1C1C;
    transition: border-color 0.3s ease;
  }
  .header__sticky-pc-nav-link:hover {
    border-bottom-color: currentColor;
  }
  .header__sticky-pc-nav-link--children::after {
    content: "";
    display: inline-block;
    width: 13px;
    height: 13px;
    margin-left: 6px;
    background-image: url(/images/common_mc/ep_arrow-left.svg);
    background-size: 13px auto;
    background-position: center center;
    transition: transform 0.3s ease;
  }
  .header__sticky-pc-nav-link--children:hover::after,
  .header__sticky-pc-nav-link--children[aria-expanded=true]::after {
    transform: rotate(180deg);
  }
}
/* SP タップフィードバック */
@media (max-width: 767px) {
  a, button, summary {
    transition: opacity 0.4s ease; /* タップ後ゆっくり戻る */
  }
  a:active, button:active, summary:active {
    opacity: 0.3;
    transition: opacity 0s; /* タップ瞬間は即座に暗く */
  }
}
/* アニメ抑制 */
@media (prefers-reduced-motion: reduce) {
  .header__drawer {
    transition: none;
  }
  .header__hamburger-line {
    transition: none;
  }
  .header__search {
    transition: none;
  }
  .header__mega {
    transition: none;
  }
  .header__drawer-accordion-body {
    transition: none;
  }
}
.header .header__announce {
  background-color: #000000;
}
.header .header__announce .header__announce-inner .header__announce-text > a {
  display: flex;
  justify-content: center;
  align-items: center;
  color: #ffffff;
  font-size: 12px;
  font-style: normal;
  font-weight: 400;
  line-height: 150%; /* 18px */
  letter-spacing: 0.05em;
  width: 100%;
  height: 40px;
}
.header:has(.header__announce) .header__drawer .header__drawer-panel {
  padding-top: 40px;
}
.header:has(.header__announce) ~ .header__main {
  margin-top: 90px;
}
.header:has(.header__announce) ~ .header__sticky-pc-nav {
  top: 90px;
}
.header:has(.header__announce) ~ .header__sp-scroll {
  margin-top: 90px;
}
.header:has(.header__announce) ~ .header__sticky-sp-nav {
  top: 90px;
}
.header:has(.header__announce) .header__mega {
  top: 233px;
}
.header.header--sticky:has(.header__announce) .header__mega {
  top: 155px;
}

@media only screen and (min-width: 768px) {
  .header .header__announce .header__announce-inner .header__announce-text > a {
    display: flex;
    justify-content: center;
    align-items: center;
    color: #ffffff;
    font-size: 13px;
    text-underline-offset: 9px;
    text-decoration: underline;
    text-decoration-color: #D0D0D0;
  }
  .header .header__announce .header__announce-inner .header__announce-text > a:hover {
    opacity: 0.8;
  }
}
/* =========================================================
	Footer
========================================================= */
.site-footer {
  background-color: #ECEBE8;
  color: #000;
  font-family: YakuHanMP, "Shippori Mincho", serif;
  font-size: 14px;
  /* 100vw罫線で環境によって横スクロールが出る可能性があるため対策 */
  overflow-x: clip;
}

/* overflow-x: clip 未対応ブラウザのフォールバック */
@supports not (overflow: clip) {
  .site-footer {
    overflow-x: hidden;
  }
}
/* =========================================================
	SP（ベース）：footer.png のレイアウト
	- 下段は「ロゴ + 2カラムナビ」を同一ブロックに見せるため
		display: grid + display: contents で配置
========================================================= */
.site-footer__inner {
  display: grid;
  grid-template-columns: 30px 136fr 96px 108fr 30px;
  column-gap: 0;
}

/* =========================================================
	Contact（上段：3ブロック）
========================================================= */
.site-footer__contact {
  grid-column: 1/-1;
  padding-top: 0;
  padding-bottom: 0;
  /* border-bottom を 100vw 罫線に変更 */
  border-bottom: none;
  position: relative;
}

/* Contact下の罫線：画面幅いっぱい */
.site-footer__contact::before,
.site-footer__contact::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 100vw;
  height: 1px;
  background-color: rgba(19, 19, 19, 0.1);
}

.site-footer__contact::before {
  bottom: auto;
  top: 0;
}

.footer-contact {
  display: flex;
  flex-direction: column;
}

.footer-contact__item {
  padding: 20px 0;
  text-align: center;
  /* border-bottom を 100vw 罫線に変更 */
  border-bottom: none;
  position: relative;
}

/* 各itemの区切り線：画面幅いっぱい（最後以外） */
.footer-contact__item:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 100vw;
  height: 1px;
  background-color: rgba(19, 19, 19, 0.1);
}

.footer-contact__item:last-child {
  border-bottom: none;
}

.footer-contact__title {
  margin: 0 0 16px;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.48px;
  line-height: 2;
}
.footer-contact__title.u-palt__chunk {
  letter-spacing: -0.5px;
}

.footer-contact__tel,
.footer-contact__link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 200px;
  min-height: 40px;
  margin: 0 auto;
  padding: 12px 16px;
  border: 1px solid #D0D0D0;
  border-radius: 5px;
  background-color: transparent;
  font-size: 14px;
  letter-spacing: 0.42px;
  text-decoration: none;
  transition: background-color 0.3s ease;
}
.footer-contact__tel:hover,
.footer-contact__link:hover {
  background-color: #D5D2CA;
}

.footer-contact__link.u-palt__chunk {
  letter-spacing: -0.42px;
}

/* 電話はSPのみリンク：md以上で無効化 */
@media only screen and (min-width: 768px) {
  .footer-contact__tel {
    pointer-events: none;
    cursor: default;
    color: inherit;
  }
}
.footer-contact__time {
  margin: 16px 0 0;
  font-size: 12px;
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.36px;
}

/* =========================================================
	下段（SP）：ロゴ + 2カラムナビ + SNS + copyright
	- HTMLの並び（nav→bottom）を変えずに、見た目だけ添付に寄せる
========================================================= */
/* ラッパーをグリッド配置のために「中身だけ」にする */
.site-footer__nav {
  display: contents;
}

.footer-nav {
  display: contents;
}

.site-footer__bottom {
  display: contents;
}

.footer-bottom {
  display: contents;
}

/* ロゴ：左カラム上 */
.footer-bottom__logo {
  grid-column: 2/3;
  grid-row: 2;
  margin-top: 56px;
  margin-bottom: 24px;
}

.footer-bottom__logo img {
  width: 90px;
  height: auto;
  display: block;
}

/* ナビ：2カラム（インフォ=左、ブランド=右） */
.footer-nav__group {
  text-align: left;
}

.footer-nav__group:nth-child(1) {
  grid-column: 2/3;
  grid-row: 3;
}

.footer-nav__group:nth-child(2) {
  grid-column: 4/5;
  grid-row: 3;
}

.footer-nav__title {
  margin: 0 0 16px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.42px;
}

.footer-nav__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer-nav__item {
  margin-bottom: 12px;
}

.footer-nav__item a {
  display: inline-block;
  font-size: 12px;
  letter-spacing: 0.36px;
  text-decoration: none;
}

.footer-nav__item a:focus-visible {
  outline: 2px solid rgba(19, 19, 19, 0.5);
  outline-offset: 3px;
}

.footer-bottom__meta {
  display: contents;
}

/* SNS：左下 */
.footer-bottom__sns {
  grid-column: 2/5;
  grid-row: 4;
  list-style: none;
  margin: 56px 0 0;
  padding: 0;
  display: flex;
  gap: 20px;
  justify-content: flex-start;
}

.footer-bottom__sns-item a {
  display: block;
  width: 24px;
  height: 24px;
}

.footer-bottom__sns-item img {
  width: 24px;
  height: 24px;
  display: block;
}

/* copyright：SNSの下、左寄せ */
.footer-bottom__copyright {
  grid-column: 2/5;
  grid-row: 5;
  margin: 16px 0 60px;
  font-size: 12px;
  letter-spacing: 0.36px;
  text-align: left;
}

/* =========================================================
	lg以上：従来のPCレイアウトに戻す
========================================================= */
@media only screen and (min-width: 1025px) {
  .site-footer__inner {
    margin: 0 auto;
    display: block;
  }
  .site-footer__contact {
    padding-top: 60px;
    padding-bottom: 60px;
    border-bottom: none;
  }
  /* PCでは contact 下の100vw罫線を出さない（元の挙動を維持） */
  .site-footer__contact::after {
    content: none;
  }
  .footer-contact {
    flex-direction: row;
  }
  .footer-contact__item {
    flex: 1;
    padding: 0;
    border-bottom: none;
    position: static;
  }
  /* PCでは item 間の100vw罫線を出さない（縦区切りに変更するため） */
  .footer-contact__item:not(:last-child)::after {
    content: none;
  }
  .footer-contact__item + .footer-contact__item {
    border-left: 1px solid rgba(19, 19, 19, 0.1);
  }
  .footer-contact__time {
    margin: 16px 0 0;
  }
  /* SP用の display: contents を解除 */
  .site-footer__nav {
    display: block;
  }
  .footer-nav {
    display: flex;
    flex-direction: row;
    gap: 80px;
  }
  /* PC下段の区切り線も100vw化 */
  .site-footer__bottom {
    display: block;
    border-top: none;
    padding: 60px 70px;
    position: relative;
  }
  .site-footer__bottom::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
    width: 100vw;
    height: 1px;
    background-color: rgba(19, 19, 19, 0.1);
  }
  .footer-bottom {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 24px;
  }
  /* グリッド指定のリセット（念のため） */
  .footer-bottom__logo {
    margin: 0 0 auto;
    grid-column: auto;
    grid-row: auto;
  }
  .footer-nav__group:nth-child(1),
  .footer-nav__group:nth-child(2) {
    grid-column: auto;
    grid-row: auto;
  }
  .footer-bottom__meta {
    margin: auto 0 0 auto;
    display: block;
  }
  .footer-bottom__sns {
    margin: 0 0 20px;
    grid-column: auto;
    grid-row: auto;
  }
  .footer-bottom__copyright {
    margin: 0;
    grid-column: auto;
    grid-row: auto;
    text-align: right;
  }
}
@media only screen and (min-width: 1536px) {
  .footer-nav {
    gap: 96px;
  }
}
.u-none {
  display: none;
}

.u-inline {
  display: inline;
}

.u-block {
  display: block;
}

.u-inline-block {
  display: inline-block;
}

.u-flex {
  display: flex;
}

.u-grid {
  display: grid;
}

@media only screen and (min-width: 768px) {
  .u-md-none {
    display: none;
  }
}

@media only screen and (min-width: 768px) {
  .u-md-inline {
    display: inline;
  }
}

@media only screen and (min-width: 768px) {
  .u-md-block {
    display: block;
  }
}

@media only screen and (min-width: 768px) {
  .u-md-inline-block {
    display: inline-block;
  }
}

@media only screen and (min-width: 768px) {
  .u-md-flex {
    display: flex;
  }
}

@media only screen and (min-width: 1025px) {
  .u-lg-none {
    display: none;
  }
}

@media only screen and (min-width: 1025px) {
  .u-lg-inline {
    display: inline;
  }
}

@media only screen and (min-width: 1025px) {
  .u-lg-block {
    display: block;
  }
}

@media only screen and (min-width: 1025px) {
  .u-lg-inline-block {
    display: inline-block;
  }
}

@media only screen and (min-width: 1025px) {
  .u-lg-flex {
    display: flex;
  }
}

@media only screen and (min-width: 1025px) {
  .u-lg-grid {
    display: grid;
  }
}

.u-visuallyHidden {
  position: absolute;
  overflow: hidden;
  margin: -1px;
  border: 0;
  padding: 0;
  width: 1px;
  height: 1px;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

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