@charset "UTF-8";
/*
normalize
BASE
LAYOUT
MODULE
STATUS

header
footer
loading

HOVER
MODAL
*/
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%
}
body {
  margin: 0
}
main {
  display: block
}
h1 {
  font-size: 2em;
  margin: .67em 0
}
hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible
}
pre {
  font-family: monospace, monospace;
  font-size: 1em
}
a {
  background-color: transparent
}
abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  text-decoration: underline dotted
}
b, strong {
  font-weight: bolder
}
code, kbd, samp {
  font-family: monospace, monospace;
  font-size: 1em
}
small {
  font-size: 80%
}
sub, sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline
}
sub {
  bottom: -.25em
}
sup {
  top: -.5em
}
img {
  border-style: none
}
button, input, optgroup, select, textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0
}
button, input {
  overflow: visible
}
button, select {
  text-transform: none
}
[type=button], [type=reset], [type=submit], button {
  -webkit-appearance: button
}
[type=button]::-moz-focus-inner, [type=reset]::-moz-focus-inner, [type=submit]::-moz-focus-inner, button::-moz-focus-inner {
  border-style: none;
  padding: 0
}
[type=button]:-moz-focusring, [type=reset]:-moz-focusring, [type=submit]:-moz-focusring, button:-moz-focusring {
  outline: 1px dotted ButtonText
}
fieldset {
  padding: .35em .75em .625em
}
legend {
  box-sizing: border-box;
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal;
}
table {
  border-spacing: 0;
  border-collapse: collapse;
  margin: 0;
  padding: 0;
}
progress {
  vertical-align: baseline
}
textarea {
  overflow: auto
}
[type=checkbox], [type=radio] {
  box-sizing: border-box;
  padding: 0
}
[type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button {
  height: auto
}
[type=search] {
  -webkit-appearance: textfield;
  outline-offset: -2px
}
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none
}
::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit
}
details {
  display: block
}
summary {
  display: list-item
}
template {
  display: none
}
[hidden] {
  display: none
}
.clearfix::after {
  content: "";
  display: block;
  clear: both;
}
ul, ol {
  padding: 0;
	margin: 0;
  list-style: none;
}
/*****************************************************
BASE*/
:root {
  --primary-color: #8BA381;
  --secondary-color: #F2F2F0;
  --txt-color: #221e1f;
  --txt-bold: 460;
  --link-color: var(--txt-color); /*hover*/
  --line-color: #BEAEB2;
  /* bg*/
  --bg-secondary-color: #f6f6f6;
  /* Reference block size*/
  --main-max-width: 1920px;
  --reference-block-size: 120px;
  --size-ex-high: calc(var(--reference-block-size)*1.4); /*168*/
  --size-high: var(--reference-block-size);
  --size-ex-md: calc(var(--reference-block-size)*0.8); /*96*/
  --size-md: calc(var(--reference-block-size)*0.6666); /*80*/
  --size-md-low: calc(var(--reference-block-size)*0.5); /*60*/
  --size-low: calc(var(--reference-block-size)*0.3); /*40*/
  --size-ex-low: calc(var(--reference-block-size)*0.2); /*24*/
  --size-3rem: 2.5rem; /*40*/
  --size-2rem: 1.5rem; /*24*/
  --size-1rem: .5rem; /*8*/
  /* sp 80%	*/
  --size-rate: .8;
  /*BTN*/
  --btn-radius: 12px;
  --btn-color-1: var(--primary-color);
  --btn-color-2: #ffe1d8;
  --btn-color-3: #99d5d8;
  --btn-color-4: #e6e6e6;
  /* setting	*/
  --transition-ease-out: 0.2s ease-out;
  --leading-trim: calc((1em - 1lh) / 2);
  /**/
}
* {
  box-sizing: border-box;
  padding: 0;
  margin: 0;
}
html {
  height: 100%;
  width: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: var(--hdr--height);
}
body {
  color: var(--txt-color);
  font-family: "Noto Sans JP", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "sans-serif";
  width: 100%;
  position: relative;
  line-height: 2;
  letter-spacing: .05em;
  font-weight: 340;
  font-size: .9375rem;
  background-color: #fff;
  line-break: strict;
}
a:link, a:visited {
  color: var(--txt-color);
  text-decoration: none;
  transition: color .2s ease-out;
}
a:hover {
  color: var(--line-color);
}
a[href^="tel:"] {
  pointer-events: none;
}
p {
  margin-bottom: 2em;
}
p:last-child {
  margin-bottom: 0;
}
h1, h2, h3, h4 {
  font-weight: var(--txt-bold);
  font-size: 0;
  margin: 0;
  padding: 0;
}
img, svg, video {
  max-width: 100%;
  width: 100%;
  height: auto;
  vertical-align: top;
}
.strng, strong {
  font-weight: var(--txt-bold);
}
picture {
  display: block;
}
.radius img {
  border-radius: var(--btn-radius);
}
/*****************************************************
LAYOUT*/
.wrp {
  width: 100%;
  position: relative;
}
.l-w-100 {
  width: 100%;
  height: auto;
  max-width: 100%;
}
.l-w-master {
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  height: auto;
  position: relative;
  max-width: 1920px;
}
.l-w-73 { /*GUIDE*/
  width: 73%;
}
.l-w-70 { /*GUIDE*/
  width: 70%;
}
.l-w-56 {
  width: 56%;
}
.l-w-50 {
  width: 50%;
}
.l-w-48 { /*index category list*/
  width: 48%;
}
.l-w-25 {
  width: 25%;
}
.l-flex-wrp {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
.l-flex-wrp-c {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}
.l-flex-wrp-s {
  display: flex;
  justify-content: start;
  flex-wrap: wrap;
}
.l-flex-wrp-end {
  display: flex;
  justify-content: end;
  flex-wrap: wrap;
}
.float-l {
  float: left;
}
.float-r {
  float: right;
}
.sticky {
  position: sticky;
  top: 0;
}
/*****************************************************
SIDE*/
.mgn-side-auto {
  margin-inline: auto;
}
.front-page .pd-side {
  padding-inline: 5%;
}
.pd-side {
  padding-left: 5%;
  padding-right: 5%;
}
/*****************************************************
MARGIN*/
.mgn-ex-high {
  margin-top: var(--size-ex-high);
  margin-bottom: var(--size-ex-high);
}
.mgn-high {
  margin-top: var(--size-high);
  margin-bottom: var(--size-high);
}
.mgn-ex-md {
  margin-top: var(--size-ex-md);
  margin-bottom: var(--size-ex-md);
}
.mgn-md {
  margin-top: var(--size-md);
  margin-bottom: var(--size-md);
}
.mgn-low {
  margin-top: var(--size-low);
  margin-bottom: var(--size-low);
}
.mgn-ex-low {
  margin-top: var(--size-ex-low);
  margin-bottom: var(--size-ex-low);
}
/*****************************************************
MARGIN TOP*/
.mgn-top-md {
  margin-top: var(--size-md);
}
.mgn-top-low {
  margin-top: var(--size-low);
}
/*****************************************************
MARGIN BOTTOM*/
.mgn-bottom-ex-higher {
  margin-bottom: var(--size-ex-higher);
}
.mgn-bottom-ex-high {
  margin-bottom: var(--size-ex-high);
}
.mgn-bottom-high {
  margin-bottom: var(--size-high);
}
.mgn-bottom-ex-md {
  margin-bottom: var(--size-ex-md);
}
.mgn-bottom-md {
  margin-bottom: var(--size-md);
}
.mgn-bottom-md-low {
  margin-bottom: var(--size-md-low);
}
.mgn-bottom-md-to-ex-low {
  margin-bottom: var(--size-md-low);
}
.mgn-bottom-low {
  margin-bottom: var(--size-low);
}
.mgn-bottom-ex-low {
  margin-bottom: var(--size-ex-low);
}
.mgn-bottom-3em {
  margin-bottom: var(--size-3rem);
}
.mgn-bottom-2em {
  margin-bottom: var(--size-2rem);
}
.mgn-bottom-1em {
  margin-bottom: var(--size-1rem);
}
.mgn-bottom-05em {
  margin-bottom: .75em;
}
/*****************************************************
PADDING*/
.pd-ex-high {
  padding-top: var(--size-ex-high);
  padding-bottom: var(--size-ex-high);
}
.pd-high {
  padding-top: var(--size-high);
  padding-bottom: var(--size-high);
}
.pd-ex-md {
  padding-top: var(--size-ex-md);
  padding-bottom: var(--size-ex-md);
}
.pd-md {
  padding-top: var(--size-md);
  padding-bottom: var(--size-md);
}
.pd-low {
  padding-top: var(--size-low);
  padding-bottom: var(--size-low);
}
.pd-ex-low {
  padding-top: var(--size-ex-low);
  padding-bottom: var(--size-ex-low);
}
/*****************************************************
PADDING BOTTOM*/
.pd-bottom-ex-high {
  padding-bottom: var(--size-ex-high);
}
.pd-bottom-high {
  padding-bottom: var(--size-high);
}
.pd-bottom-ex-md {
  padding-bottom: var(--size-ex-md);
}
.pd-bottom-md {
  padding-bottom: var(--size-md);
}
.pd-bottom-md-low {
  padding-bottom: var(--size-md-low);
}
.pd-bottom-low {
  padding-bottom: var(--size-low);
}
.pd-bottom-ex-low {
  padding-bottom: var(--size-ex-low);
}
/*****************************************************
PADDING TOP*/
.pd-top-ex-high {
  padding-top: var(--size-ex-high);
}
.pd-top-high {
  padding-top: var(--size-high);
}
.pd-top-ex-md {
  padding-top: var(--size-ex-md);
}
.pd-top-md {
  padding-top: var(--size-md);
}
.pd-top-low {
  padding-top: var(--size-low);
}
.pd-top-ex-low {
  padding-top: var(--size-ex-low);
}
@media screen and (max-width: 768px) {
  .wrp {
    width: 100%;
  }
  .l-w-73, .l-w-70, .l-w-56, .l-w-25, .l-w-50 {
    width: 100%;
    max-width: 100%
  }
  .float-l, .float-r {
    float: none;
  }
  /*****************************************************
MARGIN*/
  .mgn-ex-high {
    margin-top: calc(var(--size-ex-high) * var(--size-rate));
    margin-bottom: calc(var(--size-ex-high) * var(--size-rate));
  }
  .mgn-high {
    margin-top: calc(var(--size-high)*var(--size-rate));
    margin-bottom: calc(var(--size-high)*var(--size-rate));
  }
  .mgn-ex-md {
    margin-top: calc(var(--size-ex-md)*var(--size-rate));
    margin-bottom: calc(var(--size-ex-md)*var(--size-rate));
  }
  .mgn-md {
    margin-top: calc(var(--size-md)*var(--size-rate));
    margin-bottom: calc(var(--size-md)*var(--size-rate));
  }
  .mgn-low {
    margin-top: calc(var(--size-low)*var(--size-rate));
    margin-bottom: calc(var(--size-low)*var(--size-rate));
  }
  /*****************************************************
MARGIN BOTTOM*/
  .mgn-bottom-ex-high {
    margin-bottom: calc(var(--size-ex-high) * var(--size-rate));
  }
  .mgn-bottom-high {
    margin-bottom: calc(var(--size-high) * var(--size-rate));
  }
  .mgn-bottom-ex-md {
    margin-bottom: calc(var(--size-ex-md) * var(--size-rate));
  }
  .mgn-bottom-md {
    margin-bottom: calc(var(--size-ex-md) * var(--size-rate));
  }
  .mgn-bottom-md-sp {
    margin-bottom: calc(var(--size-md) * var(--size-rate));
  }
  .mgn-bottom-low-sp {
    margin-bottom: calc(var(--size-low) * var(--size-rate));
  }
  /* .mgn-bottom-ex-low, */
  .mgn-bottom-ex-low-sp, .mgn-bottom-md-to-ex-low {
    margin-bottom: calc(var(--size-ex-low) * var(--size-rate));
  }
  /*****************************************************
PADDING*/
  .pd-ex-high {
    padding-top: calc(var(--size-ex-high) * var(--size-rate));
    padding-bottom: calc(var(--size-ex-high) * var(--size-rate));
  }
  .pd-high {
    padding-top: calc(var(--size-high) * var(--size-rate));
    padding-bottom: calc(var(--size-high) * var(--size-rate));
  }
  .pd-ex-md {
    padding-top: calc(var(--size-ex-md) * var(--size-rate));
    padding-bottom: calc(var(--size-ex-md) * var(--size-rate));
  }
  .pd-md {
    padding-top: calc(var(--size-md) * var(--size-rate));
    padding-bottom: calc(var(--size-md) * var(--size-rate));
  }
  .pd-low {
    padding-top: calc(var(--size-low) * var(--size-rate));
    padding-bottom: calc(var(--size-low) * var(--size-rate));
  }
  .pd-ex-low {
    padding-top: calc(var(--size-ex-low) * var(--size-rate));
    padding-bottom: calc(var(--size-ex-low) * var(--size-rate));
  }
  /*****************************************************
PADDING BOTTOM*/
  .pd-bottom-ex-high {
    padding-bottom: calc(var(--size-ex-high) * var(--size-rate));
  }
  .pd-bottom-high {
    padding-bottom: v calc(var(--size-high) * var(--size-rate));
  }
  .pd-bottom-ex-md {
    padding-bottom: calc(var(--size-ex-md) * var(--size-rate));
  }
  .pd-bottom-md {
    padding-bottom: calc(var(--size-md) * var(--size-rate));
  }
  .pd-bottom-low {
    padding-bottom: calc(var(--size-low) * var(--size-rate));
  }
  .pd-bottom-ex-low {
    padding-bottom: calc(var(--size-ex-low) * var(--size-rate));
  }
  /*****************************************************
PADDING TOP*/
  .pd-top-ex-high {
    padding-top: calc(var(--size-ex-high) * var(--size-rate));
  }
  .pd-top-high {
    padding-top: calc(var(--size-high) * var(--size-rate));
  }
  .pd-top-ex-md {
    padding-top: calc(var(--size-ex-md) * var(--size-rate));
  }
  .pd-top-md {
    padding-top: calc(var(--size-md) * var(--size-rate));
  }
  .pd-top-low {
    padding-top: calc(var(--size-low) * var(--size-rate));
  }
  .pd-top-ex-low {
    padding-top: calc(var(--size-ex-low) * var(--size-rate));
  }
  /*****************************************************
SIDE*/
  .pd-side-sp, .pd-side-sp {
    padding-left: 7%;
    padding-right: 7%;
  }
}
/*****************************************************
TITLE*/
h1, h2, h3, h4 {
  line-height: 1.6;
}
.title-large { /*20*/
  font-size: 1.25rem;
  font-weight: var(--txt-bold);
  color: var(--primary-color);
}
.title-md { /*18*/
  font-size: 1.125rem;
  font-weight: var(--txt-bold);
  color: var(--primary-color);
}
.title-small,
.entry-body h2 { /*18*/
  font-size: 1.125rem;
  font-weight: var(--txt-bold);
}
.title-ex-small,
.entry-body h2 { /*18*/
  font-size: 1.125rem;
  font-weight: var(--txt-bold);
}
.title-bold,
.title-normal,
.entry-body h3 {
  font-size: .9375rem;
  font-weight: var(--txt-bold);
}

.title-color, .title-color a {
  color: var(--primary-color) !important
}
.sub-title {
  font-size: .75rem;
  color: var(--primary-color) !important;
  font-weight: var(--txt-bold);
  display: inline-flex;
  align-items: center;
  gap: 1em; /* テキストとラインの間の余白 */
  width: 100%; /* 必要に応じて。hgroup内で広げたい場合 */
}
.sub-title::after {
  content: "";
  flex-grow: 0;
  width: 24px;
  height: 1px;
  background-color: var(--primary-color);
}
.sub-section-title {
  margin-bottom: 1em;
}
.title-line {
  margin-top: 20px;
  display: inline-block;
  position: relative;
	width: 100%;
}
.title-line::before {
  content: '';
  width: 24px;
  height: 2px;
  background-color: var(--primary-color);
  position: absolute;
  top: -20px;
  left: 0;
}
.title-line-c::before {
  left: 50%;
  transform: translateX(-50%);
}
.leading-trim {
  margin-top: var(--leading-trim);
}
/*****************************************************
TABLE*/
.outline-table {
  border-top: 1px solid #ccc;
}
.outline-table tr td {
  border-bottom: 1px solid #ccc;
  padding: 1.4em 0;
}
.outline-table-hdr {
  width: 30%;
  font-weight: 700;
  vertical-align: top;
}
.table-header {
  font-weight: var(--txt-bold);
  width: 24%;
}
.outline-table table tr td {
  border: 0;
  padding: 0;
}
/*****************************************************
TEXT*/
.txt-c, .txt-c-to-l {
  text-align: center;
}
.txt-l, .txt-l-to-c {
  text-align: left;
}
.txt-r {
  text-align: right;
}
.txt-u {
  text-decoration: underline !important;
}
.txt-line-height-1 {
  line-height: 1
}
.txt-small {
  font-size: .8125rem;
}
.txt-white {
  color: #fff;
}
/*****************************************************
BG*/
.bg-f {
  background-color: rgba(255, 255, 255, .9);
}
.bg-f6 {
  background-color: var(--bg-secondary-color);
}
/*****************************************************
LIST*/
.lst-dot {
  list-style-type: circle;
  list-style-position: outside;
}
.lst-dot li::marker {
  content: '- ';
  font-size: 1em;
}
.lst-dot.lst-dot-blk {
  list-style-type: disc
}
.lst-dot li {
  margin-left: .75em;
}
.lst-block-to-inline {}
@media screen and (max-width: 768px) {
  .lst-block-to-inline {
    display: inline;
  }
  .lst-dot li.lst-block-to-inline {
    margin-left: 0;
  }
  .lst-block-to-inline::after {
    content: ' / '
  }
  .l-w-25 .lst-dot {
    margin-bottom: var(--size-md)
  }
}
.no-pc {
  display: none;
}
.no-sp {
  display: block;
}
/*****************************************************
BTN*/
a.btn {
  padding: .75em 4em;
  text-align: center;
  border: 0;
  border-radius: var(--btn-radius);
  background-color: var(--primary-color);
  color: #fff;
  font-size: .9375rem;
  transition: background-color .2s ease-out;
  display: flex;
  align-items: center;
  cursor: pointer;
  justify-content: center;
  max-width: 390px;
}
a.btn:hover {
  background-color: #8c8371;
  text-decoration: none;
}
.btn-arrow {
  width: 32px;
  height: 10px;
  display: inline-block;
  margin-left: 6px;
  transition: transform .2s ease-out;
  transform: translateY(1px);
}
a.btn:hover .btn-arrow {
  transform: translateX(6px);
}
a.btn.btn-white {
  background-color: #fff;
  color: var(--primary-color);
}
a.btn.btn-white:hover {
  background-color: var(--primary-color);
  color: #fff;
}
a.btn-frm {
  border: 1px solid var(--txt-color);
  padding: .5em 1em;
  border-radius: var(--btn-radius);
  display: block;
  text-align: center;
  background-color: #fff;
  line-height: 1;
  color: var(--txt-color);
  margin-left: auto;
  font-size: .875rem;
  max-width: 180px;
}
.btn-frm:hover {
  background-color: var(--primary-color);
  color: #fff;
}
.btns .btn-frm {
  margin-bottom: .5em;
}
a.btn-small {
  max-width: 240px;
}
@media screen and (max-width: 768px) {
  .no-pc {
    display: block;
  }
  .no-sp {
    display: none !important;
  }
  .without-frm {
    margin-left: calc(((100vw - 100%) / 2) * -1);
    margin-right: calc(((100vw - 100%) / 2) * -1);
  }
  .txt-l-to-c {
    text-align: center;
  }
  .txt-c-to-l {
    text-align: left;
  }
  .outline-table tr td {
    display: block;
  }
  .outline-table tr td.outline-table-hdr {
    border: none;
    padding-bottom: 0;
    width: 100%;
  }
  .title-ex-large, .title-large {
    line-height: 1.6;
    color: var(--txt-color);
  }
  .title-ex-large {
    margin-bottom: 1rem;
  }
}
/*****************************************************
PANKUZU */
.pankuzu {
  font-size: .75rem;
  line-height: 1.4;
  padding-block: 3em 1.25em;
}
.pankuzu-list {
  font-size: .6875rem
}
.pankuzu-list li {
  display: inline;
}
.pankuzu-list li:not(:first-child)::before {
  content: '/ '
}
@media screen and (max-width: 768px) {
  .pankuzu {
    padding-block: 1.25em 2.5em;
  }
}
/*****************************************************
HERO */
.hero {
  width: 96%;
  height: calc(100vh - 64px);
  max-height: 800px;
  background-color: #F4F4F4;
  position: relative;
  overflow: hidden;
  margin-inline: 2%;
  margin-bottom: 72px;
}
.hero .swiper {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
.hero .swiper-wrapper {
  width: 100%;
  height: 100%;
}
.hero .swiper-slide {
  width: 100%;
  height: 100%;
}
.hero .swiper-slide picture {
  width: 100%;
  height: 100%;
  display: block;
}
.hero .swiper-slide img {
  width: 100vw;
  height: 100vh;
  object-fit: cover;
  display: block;
	animation: herozoom 7s linear 0s normal both;
}
@keyframes herozoom {
  0% {
    transform: scale(1.06);
  }
  100% {
    transform: scale(1);
  }
}
.hero-info {
  position: absolute;
  bottom: 0;
  left: 1em;
  z-index: 2;
  width: 320px;
  height: 88px;
  background-color: rgba(255, 255, 255, .9);
  border-top-left-radius: 6px;
  border-top-right-radius: 6px;
  padding: .5em;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.hero-info-img {
  width: 22.5%;
}
.hero-info-img img {
  border-radius: 50%;
}
.hero-info-txt {
  width: 71.5%;
}
.hero-info-txt time {
  font-size: .75rem
}
.hero-info-txt .entry-title {
  font-size: .8125rem
}
.entry-title,
.entry-title a{
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2; 
  overflow: hidden;
  height: auto;
  line-height: 1.75;
  width: 100%;
}
/*
.entry-title {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  width: 100%;
  display: block;
}
.entry-title a {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
*/
@media screen and (max-width: 1194px) {
  .hero {
    width: 100%;
    margin-inline: 0;
    height: 100vh;
    margin-top: -58px;
    z-index: -1;
  }
  .hero-info {
    width: 92%;
    left: 50%; /* 左端を親要素の50%位置に移動 */
    transform: translateX(-50%); /* 自身の幅の半分だけ左に戻して中央揃え */
  }
}
  /*****************************************************
INDEX */
  .index-theme {
    width: 72%;
    margin-inline: auto;
    margin-bottom: 104px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-direction: row-reverse; /* 右に画像、左にテキストを配置 */
  }
  .index-theme-img {
    width: 40%;
  }
  .index-theme-txt {
    width: 53%;
  }
  .index-theme-title {
    width: 424px;
    height: auto;
    margin-bottom: 40px;
  }
  .index-theme p {
    line-height: 2;
  }
  .swiper-wrapper {
    height: auto !important;
  }
  [class*=swiper]:focus {
    outline: none;
  }
  /* 既存の .card-swiper を上書き・修正 */
  .card-swiper {
    /* 右端を画面いっぱいまで広げるための計算 */
    /* 親の padding (5%) 分をネガティブマージンで相殺し、
     さらに画面端までの余白を vw を使って確保する */
    margin-right: calc(5% * -1);
    padding-right: 5%; /* スクロールの余韻を残すためのパディング */
    overflow: visible !important; /* コンテンツが右に突き抜けるのを許可 */
  }
  .card-swiper .swiper {
    overflow: visible !important; /* スライドが右端で消えないようにする */
  }
  /* 包含要素がはみ出さないように親コンテナを調整 */
  .card-swiper-inner {
    position: relative;
    box-sizing: content-box;
    max-width: none; /* masterの幅制限を解除 */
    margin: 0;
  }
  /* ブラウザ全体の横スクロールを防ぐための保険 */
  body {
    overflow-x: hidden;
  }
  .card-swiper .slide {
    position: relative;
    overflow: hidden;
    width: 18%;
    height: auto;
  }
  .card.slide{
    margin-bottom: 0!important;
  }



  @media not all and (min-width: 1025px) {
    .card-swiper-inner {
      padding: 0;
    }
  }
  @media screen and (max-width: 768px) {
    .index-theme {
      width: 90%;
      display: flex;
      flex-direction: column;
      align-items: flex-start; /* 全体を左寄せに固定 */
      gap: 56px;
      margin-bottom: 72px;
    }
    /* スマホ用タイトルのコンテナ */
    .index-theme-title.no-pc {
      width: 100%;
      text-align: left; /* テキストの配置を左に */
      display: flex;
      justify-content: flex-start; /* Flex配置の場合の左寄せ */
      margin-bottom: -8px; /* 画像との距離を詰める微調整 */
    }
    .index-theme-title.no-pc img {
      width: 90%; /* スマホで見やすいサイズに調整（任意） */
      height: auto;
      margin-left: 0; /* マージンによる中央寄せをリセット */
    }
    .index-theme-img, .index-theme-txt {
      width: 100%;
    }
    .card-swiper {
      overflow: hidden !important;
    }
    .card-swiper .slide {
      width: 64%;
    }
    .card-swiper .slide .entry-meta {
      padding-block: 0;
    }
		
		.index-category-list .l-w-48{
			width: 100%;
		}
		.index-category-list .l-flex-wrp > .l-w-48:first-child {
			margin-bottom: var(--size-md-low);
		}
  }
  /*****************************************************
CATEGORY */
  .category-list {}
  .category-list li {
    display: inline-block;
    margin: .25em;
  }
  .side_section {
    width: 100%;
    max-width: 364px;
  }
  .tbl_calendar {
    width: 100%;
    max-width: 364px;
    border: 1px solid #706A6B;
    margin-bottom: 2em;
  }
  .tbl_calendar caption {
    font-size: .8725rem;
    font-weight: var(--txt-bold);
    margin-bottom: .5em;
    text-align: left;
  }
  .tbl_calendar th {
    font-weight: var(--txt-bold);
    background-color: #D6CCBE;
  }
  .tbl_calendar td, .tbl_calendar th {
    border: 1px solid #706A6B;
    text-align: center;
    padding-block: .75em;
    font-size: .8725rem;
  }
  @media not all and (min-width: 1025px) {
    .category-list {
      width: 100%;
      text-align: left;
    }
  }
  /*****************************************************
CARD */
  /* --- 親コンテナの設定 --- */
.card-wrp {
  display: grid;
  grid-template-columns: repeat(4, 22.4%);
  grid-template-rows: auto;
  justify-content: space-between;
  row-gap: 0;
}
  .card-wrp-6 {
    grid-template-columns: repeat(6, 15%);
  }

  .card {
   display: grid;
  grid-template-rows: subgrid;
  grid-row: span 3;
  row-gap: 0;
  height: 100%;
		margin-bottom: var(--size-md);
  }
  /* 1. 画像を正方形でトリミング */
  .card-img,
  .together-list-item figure {
    margin-bottom: 16px;
    aspect-ratio: 1 / 1; /* 正方形を維持 */
    overflow: hidden; /* 枠外を隠す */
		border-radius: 1em;
    border: 1px solid #fff;
    transition: border 0.3s ease;
  }
   .card-img:hover,
   .together-list-item figure:hover{
    border: 1px solid var(--txt-color);
   }
  .card-img img
  .together-list-item figure img {
    width: 100%;
    height: 100%; /* 枠いっぱいに広げる */
    object-fit: cover; /* 中央でトリミング */
    display: block;
  }
  .item-meta {
    margin-bottom: 1em;
  }
  /* 2. マージンの調整 */
  /* entry-titleの下マージンを16pxの半分（8px）に設定 */
  .item-name {
    line-height: 1.4; /* 1.8から少し下げる */
    margin-bottom: 0.4em; /* .5emから微調整 */
  }
  /* item-exp-sortの下マージンも半分（8px）に設定 */
  .item-exp-sort {
    line-height: 1.8;
  }
  /* 価格の下マージンは元のまま（またはリセット） */
  .item-price {
    font-weight: var(--txt-bold);
    line-height: 1;
  }
  /* --- スマホ版設定 --- */
  @media screen and (max-width: 768px) {
    .card-wrp {
      grid-template-columns: repeat(2, 48%);
      /* row-gap: 48px; */
      margin-block-end: 48px;
    }
  }
  /*****************************************************
CARD BLOG */
  /* --- ブログリスト専用（PC/共通） --- */
  /* 正円トリミング */
  .card-img-round {
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    overflow: hidden;
	  border: 1px solid #fff;
    transition: border 0.3s ease;
  }
   .card-img-round:hover{
    border: 1px solid var(--txt-color);
   }
  .card-img-round img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  /* 本文の省略設定 */
  .entry-body-list {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    line-height: 1.6;
    margin-top: 8px;
  }
@media screen and (max-width: 768px) {
  .card-wrp.entry-list-wrp {
    display: block; /* 親のグリッドは解除して縦に並べる */
    margin-block-end: 48px;
  }

  .entry-list-wrp .entry-list {
    display: grid !important; /* FlexではなくGridを再定義 */
    /* 左に画像(31%)、右にテキスト(63%)の2列構造にする */
    grid-template-columns: 31% 63%;
    justify-content: space-between;
    grid-template-rows: auto auto; /* 右側で2段（メタと本文）に分けるため */
    
    border-bottom: 1px solid #BEAEB2;
    padding-bottom: 32px;
    margin-bottom: 32px;
  }
.entry-list-wrp .card.entry-list {
			height: auto;
		}
  /* --- 配置の指定 --- */

  /* 1. 画像：左側で 1行目から2行目までを占有（縦いっぱいに使う） */
  .entry-list-wrp .card-img {
    grid-column: 1 / 2;
    grid-row: 1 / 3; /* これで右側の div と p の横に居続けられる */
    width: 100% !important;
    margin-bottom: 0 !important;
  }

  /* 2. メタ（日付・タイトル）：右側の上段 */
  .entry-list-wrp .entry-meta {
    grid-column: 2 / 3;
    grid-row: 1 / 2;
    width: 100% !important;
  }

  /* 3. 本文：右側の下段 */
  .entry-list-wrp .entry-body-list {
    grid-column: 2 / 3;
    grid-row: 2 / 3;
    width: 100% !important;
    margin-top: 8px; /* タイトルとの隙間 */
    /* -webkit-line-clamp: 1; 1行で省略 */
  }

  .entry-list-wrp .entry-list:last-child {
    border-bottom: none;
    margin-bottom: 0;
	  padding-bottom: 0;
  }
}
  /*****************************************************
HEADER*/
  .hdr-wrp {
    background-color: #fff;
  }
  .hdr-wrp.front-page {
    background-color: rgba(255, 255, 255, 0);
  }
  .hdr {
    width: 100%;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: var(--txt-bold)
  }
  .hdr-journal {
    background-color: #fff;
  }
  .hdr-logo {
    flex: 1; /* ヘッダー全体の中で左側の領域を等分に確保 */
    display: flex; /* 内包する img を制御するために Flex化 */
    justify-content: flex-start; /* 中身（画像）を左端に寄せる */
    align-items: center;
  }
  .hdr-logo img {
    width: 70px;
    height: 40px;
    display: block;
  }
  .hdr-nav {
    flex: 0 0 auto; /* 親要素に対して：コンテンツ幅を維持し、伸縮しない */
    display: flex; /* 子要素（li）に対して：横並びにする */
    gap: 2em; /* li要素どうしの間隔を 2em に設定 */
    font-size: .8125rem;
  }
  .hdr-nav-sub {
    flex: 1; /* 右側の余白を埋める（中央を真ん中に置くため） */
    display: flex;
    justify-content: flex-end; /* 中身（li全体）を右寄せにする */
    align-items: center; /* 垂直方向の中央揃え */
    /* 追加・改修ポイント */
    gap: 1em; /* li要素同士の間隔を 1em に設定 */
    font-size: .6875rem;
  }
  .hdr-nav-item {
    position: relative;
    display: inline-block;
    /* 文字自体の色もactive時に変える場合 */
    transition: color 0.3s ease;
  }
  /* 通常時の線の状態 */
  .hdr-nav-item::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background: var(--primary-color);
    /* 初期状態：下にずらして透明 */
    transform: translateY(3px);
    opacity: 0;
    transition: transform 0.3s ease, opacity 0.3s ease;
  }
  /* ホバー時、およびアクティブ（現在地）時の線の状態 */
  .hdr-nav-item:hover::after, .hdr-nav-item.active::after {
    transform: translateY(0);
    opacity: 1;
  }
  /* アクティブ時の文字色 */
  .hdr-nav-item.active {
    color: var(--primary-color);
  }
  /* 親のliを基準位置にする */
  .hdr-nav > li {
    position: relative;
  }
  /* サブメニューを持つアイテムのリンクだけに余白を付与 */
  .has-sub > .hdr-nav-item {
    display: inline-flex; /* 矢印と並べるため */
    align-items: center;
    padding-right: 1.2em; /* ここで限定的に余白を作る */
  }
  /* 矢印アイコン（サブメニューあり限定） */
  .has-sub > .hdr-nav-item::before {
    content: '';
    position: absolute;
    right: 0;
    top: 50%;
    margin-top: -2px;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid currentColor;
    transition: transform 0.3s ease;
  }
  /* ホバー時の回転 */
  .has-sub:hover > .hdr-nav-item::before {
    transform: rotate(180deg);
  }
  /* 下線アニメーションの幅調整（サブメニューありのみ） */
  .has-sub > .hdr-nav-item::after {
    width: calc(100% - 1.2em);
  }
  /* サブメニューの基本スタイル（非表示） */
  .hdr-sub-menu {
    position: absolute;
    top: 100%; /* 親メニューの真下に配置 */
    left: 50%;
    transform: translateX(-50%) translateY(10px); /* 中央寄せ & 少し下にずらす */
    /* 幅を可変にするための設定 */
    width: auto; /* 固定幅を解除 */
    min-width: 180px; /* 短すぎると不格好なので最小幅だけ設定 */
    white-space: nowrap; /* テキストを改行させない */
    background: #fff;
    border-radius: 16px; /* 角丸 */
    padding: 2em;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    list-style: none;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    z-index: 100;
  }
  /* hover時に表示 */
  .has-sub:hover .hdr-sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0); /* 定位置に浮かび上がる */
  }
  /* サブメニュー内のリンク */
  .hdr-sub-menu li a {
    display: block;
    padding: 8px 0;
    text-decoration: none;
    font-size: .8125rem;
    transition: color 0.2s;
    font-weight: 340;
  }
  .hdr-sub-menu li a:hover {
    color: var(--primary-color);
  }
  .hdr-nav-cart {
    /* display: inline-block;    transformを有効にする */
    transition: transform 0.3s ease-out;
    position: relative;
  }
  .hdr-nav-cart:hover {
    transform: translateY(-4px); /* 上に4px移動 */
  }
  .cart-count {
    position: absolute;
    top: -7px;
    right: -12px;
    border-radius: 50px;
    border: 2px solid var(--txt-color);
    font-size: .625rem;
    font-weight: var(--txt-bold);
    text-align: center;
    width: 18px;
    height: 18px;
    line-height: 14px;
    background-color: #fff;
  }
  /*********************************************SP*/
  /* デフォルトではSP用アクセスボタンを非表示 */
  .hdr-nav-access {
    display: none;
  }
  @media screen and (max-width: 1194px) {
    .hdr {
      height: 58px;
      position: relative;
      display: block; /* Flexを解除して絶対配置を使いやすくする */
    }
    .hdr-logo {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      margin: 0;
      justify-content: center;
      flex: none;
    }
    .hdr-logo img {
      height: 32px;
      width: auto;
    }
    .btn-drawer {
      display: block;
    }
    .hdr-nav {
      display: none;
    }
    .hdr-nav-sub {
      position: absolute;
      right: 3%;
      top: 50%;
      transform: translateY(-50%);
      flex: none;
      gap: 15px;
    }
    .hdr-nav-sub .hdr-nav-item {
      display: none;
    }
    .hdr-nav-access {
      display: block;
    }
    .hdr-nav-item-sp {
      font-size: .6875rem;
      text-decoration: none;
      color: inherit;
    }
    .hdr-wrp.front-page .hdr-logo img, .hdr-wrp.front-page .hdr-nav-access img, .hdr-wrp.front-page .hdr-nav-cart img {
      filter: brightness(0) invert(1);
    }
  }
  /*****************************************************
PRODUCT PAGE */
  .product-main {
    display: flex;
    justify-content: space-between;
    align-items: flex-start; /* これにより、右側の高さに引っ張られなくなります */
  }
  .product-txt-wrp {
    width: 40%;
  }
  .product-txt-wrp .title-small {
    color: var(--txt-color)
  }

  .product-txt-body {
    border-bottom: 1px solid var(--line-color);
  }
  .product-imgs-wrp {
    width: 50%;
  }
  .product-note {
    font-size: .8125rem;
    line-height: 2;
  }
  .product__order {
    width: 100%;
  }
  .item-detail-table {
    border-bottom: 1px solid var(--line-color);
    width: 100%;
    table-layout: fixed;
  }
  .p-product-option-select__box {
    border-bottom: 1px solid var(--line-color);
    width: 100%;
  }
  .item-detail-table tbody {
    width: 100%;
    font-size: .9375rem;
  }
  .item-detail-table th, .item-detail-table td {
    padding-block: 1em;
    font-weight: normal;
    text-align: left;
  }
  .cell-l {
    width: 25%;
    padding-right: 5%;
  }
  .cell-r {
    width: 75%;
  }
  .cell-r input[type="text"], input[type="text"] {
    border: 1px solid var(--line-color);
    border-radius: var(--btn-radius);
    padding: .5em 1em;
    background: #fff;
    display: inline-block;
    max-width: 180px;
    height: auto;
  }
  #option_tbl .t_stock_num {
    display: none;
  }
  #option_tbl .stock_zero {
    color: #f00;
    font-weight: 700;
  }
  .product_cart_select, .cell-r select {
    appearance: none;
    border: 1px solid var(--line-color);
    padding: .5em 1em;
    border-radius: var(--btn-radius);
    background-color: #fff;
    background-image: url('../images/arrow-down-small.svg');
    background-repeat: no-repeat;
    background-position: right 16px center;
    background-size: 12px;
    cursor: pointer;
    height: auto;
  }
  .cell-r:has(.item-detail-updw) {
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .item-detail-num {
    height: 36px; /* 追加：高さを明示的に指定 */
    padding: 4px 8px; /* 追加：内側余白を調整 */
    border: 1px solid #ccc; /* 追加：ボーダーを明示 */
    box-sizing: border-box; /* 追加：ボックスサイズ計算を統一 */
  }
  .item-detail-updw {
    display: flex; /* 追加：上下ボタンを縦並び */
    flex-direction: column; /* 追加：縦方向に配置 */
  }
  .item-detail-updw li {
    height: 16px; /* 修正：クリック領域を拡大 */
    line-height: 16px; /* 追加：行高を調整 */
  }
  .item-detail-updw li a {
    height: 16px; /* 修正：リンク領域を拡大 */
    display: flex; /* 修正：flexで中央揃え */
    align-items: center; /* 追加：垂直中央揃え */
    justify-content: center; /* 追加：水平中央揃え */
  }
  .item-detail-updw img {
    height: 10px;
    width: 12px;
    display: block;
  }
  .btn {
    padding-block: 1.25em;
    text-align: center;
    border: 0;
    border-radius: var(--btn-radius);
    background-color: var(--primary-color);
    color: #fff;
    transition: background-color .2s ease-out;
  }
  .btn:hover {
    background-color: #D4A231;
    color: #fff !important;
		cursor: pointer
  }
  .btn.disabled:hover, .btn[disabled]:hover {
    opacity: 1;
    background-color: #e6e6e6;
    cursor: pointer;
  }
  .item-detail-unit {
    margin-inline-start: 10px;
  }
  .fav-wrp {
    border-top: 1px solid var(--line-color);
    padding-block: 1.5em;
  }
  .product__fav-item button {
  padding: 0;
  cursor: pointer;
  transition: .2s;
  color: #999;
  border: 0;
  outline: none;
  background: transparent;
}

.product__fav-item .fav-items {
  color: #ff7373;
}
.product-list__fav-items {
  margin-top: 10px;
  width: 30px;
}

.product-list__fav-items button {
  display: block;
  width: 100%;
  padding: 5px 0;
  cursor: pointer;
  transition: .2s;
  text-align: center;
  color: #999;
  border: 0;
  outline: none;
  background: transparent;
}

.product-list__fav-items .fav-items {
  color: #ff7373;
}

.product-list__fav-items svg {
  width: 20px;
  height: 20px;
  fill: currentColor;
}

.product__fav-item svg {
  width: 20px;
  height: 20px;
  vertical-align: -.35em;
  fill: currentColor;
}
  .btn--soldout {
    opacity: .5;
  }
  .btn-cart-item-page {
    max-width: 100% !important;
    padding: 1.5em;
    line-height: 1;
    border-radius: 0;
    letter-spacing: .1em
  }
  .new_mark_img1 {
    vertical-align: middle;
    margin-right: .5em !important;
  }
  .p-product-sns-list__item {
    display: inline-block;
    margin-right: .5em
  }
  .is-discount, .is-soldout, .is-strikethrought, .is-memberonly {
    color: #d00;
    font-size: .875rem;
  }
  .together-list-wrp{
    font-size: .8125rem;
  }
  .together-list-item{
    width: 30%;
  }
  .together-list-item figure{
    margin-bottom: 1em;
  }
  @media (max-width: 768px) {
    .product-main {
      flex-direction: column;
      gap: 20px;
    }
    .product-txt-wrp {
      order: 2;
      width: 100%;
      border-top: 0
    }
    .product-imgs-wrp {
      order: 1;
      width: 100%
    }
    .btn {
      max-width: 100%;
      width: 100%;
    }
  }
  /*****************************************************
SPLIDE */
  #main-carousel {
    width: 100%;
  }
  .thumbnails-wrp {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0 2.88%;
    width: 100%;
    margin: 1rem auto 0;
  }
  .splide-thumbnail {
    width: 100%;
    height: auto;
    overflow: hidden;
    cursor: pointer;
    margin-bottom: 1rem;
    border: 1px solid #fff;
    transition: border .2s ease-out;
  }

  .splide-thumbnail img {
    width: 100%;
    height: auto;
  }
  .splide-thumbnail.is-active {
    border: 1px solid var(--primary-color)
  }
  @media (max-width: 768px) {
    .splide__track {
      margin-inline: calc(50% - 50cqi);
    }
  }
  /*****************************************************
GUIDE*/
  .guides {
    margin-bottom: var(--size-md)
  }
.sk-aside{
	position: sticky;
  top: 100px; 
  align-self: flex-start;
  height: fit-content;
}
.sk-img-wrp{
	width:100%;
	margin-block:var(--size-low);
	gap:.5em;
}
.sk-img-wrp img{width:19%; max-width:40px;}
  /*****************************************************
NEWS*/
  .list-entry {
    border-bottom: 1px dotted var(--line-color);
    padding-top: 1.5em;
    padding-bottom: 1.5em;
    line-height: 1.4;
  }
  .list-entry:first-child {
    padding-top: 0;
  }
  .list-entry-date {
    width: 18%;
  }
  .list-entry-title {
    width: 82%;
  }
  @media screen and (max-width: 768px) {
    #news ul {
      margin-top: var(--size-low);
    }
    .list-entry-date {
      width: 100%;
    }
    .list-entry-title {
      width: 100%;
    }
  }
  /*JOURNAL****************************************/
  body.journal {
    background-color: var(--bg-secondary-color)
  }
  .page-title {
    padding-top: var(--size-low);
    padding-bottom: var(--size-md);
    text-align: center;
  }
  .journal-top-2 {
    width: 48%;
  }
  .journal-top-2-img {
    aspect-ratio: 16 / 9;
    overflow: hidden;
    margin-bottom: var(--size-2rem)
  }
  .journal-top-2-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  .wp-pagenavi {
    clear: both;
    font-size: .875rem;
    line-height: 1.8;
    /* Flexboxで上下左右中央に揃える */
    display: flex;
    justify-content: center; /* 横方向中央 */
    align-items: center; /* 縦方向中央 */
    flex-wrap: wrap; /* 折り返し許可 */
  }
  .wp-pagenavi a, .wp-pagenavi span {
    margin-inline: 1em;
    white-space: nowrap;
    padding: 0;
    border: 0;
    /* aとspan自体もFlexにして中身（テキストやimg）を中央寄せにする */
    display: flex;
    align-items: center;
    text-decoration: none;
    color: inherit;
  }
  .wp-pagenavi a:hover {
    color: var(--primary-color) !important;
    font-weight: var(--txt-bold);
  }
  .wp-pagenavi span.pages {
    display: none; /* 元の設定通り非表示 */
  }
  /* 矢印リンクのサイズ固定 */
  .nextpostslink, .previouspostslink {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 12px;
    height: 12px;
  }
  .nextpostslink img, .previouspostslink img {
    display: block; /* 余計な隙間を排除 */
    width: 12px;
    height: 12px;
  }
  .wp-pagenavi span.current {
    font-weight: normal;
    color: var(--primary-color);
  }
  .line-bottom {
    border-bottom: 1px solid var(--primary-color)
  }
  .entry {}
  .entry .entry-meta {
    padding-block: var(--size-md-low) var(--size-low);
    text-align: center;
  }
  .entry entry-meta .title-ex-small {
    margin-bottom: 1em;
  }

  .journal .entry-body a{
    text-decoration: underline;
  }
  /* --- ページャー全体の基本設定 --- */
  .pager {
    display: flex;
    align-items: center; /* 全ての要素を垂直方向の中央に揃える */
    justify-content: space-between;
    gap: 20px; /* 左右の要素がくっつきすぎないように間隔を確保 */
  }
  .pager-item {
    display: flex;
    align-items: center; /* テキストと矢印を中央で揃える */
    text-decoration: none;
    color: #221e1f;
    font-size: 0.875rem;
    max-width: 45%; /* 左右のバランスを保つための最大幅 */
    transition: color 0.3s ease;
  }
  /* 矢印の基本スタイル */
  .pager-item .btn-arrow {
    flex-shrink: 0; /* 矢印が潰れないように固定 */
    transition: transform 0.3s ease;
  }
  .pager-prev {
    display: flex;
    align-items: center;
    justify-content: flex-start; /* 左端に寄せる */
    text-align: left;
    margin-left: 0;
    padding-left: 0;
  }
  .pager-prev .btn-arrow {
    margin-left: 0; /* 左側の余白を完全に削除 */
    margin-right: 12px; /* 右側（テキストとの間）の余白のみ保持 */
    flex-shrink: 0;
  }
  /* 次の記事（右寄せ） */
  .pager-next {
    text-align: right;
    justify-content: flex-end; /* 右側に寄せる */
  }
  .pager-next .btn-arrow {
    margin-left: 12px;
  }
  /* --- Hover時のアニメーション --- */
  .pager-prev:hover .btn-arrow {
    transform: translateX(-8px); /* 左に8px動かす */
  }
  .pager-next:hover .btn-arrow {
    transform: translateX(8px); /* 右に8px動かす */
  }
  .pager-item:hover {
    color: var(--primary-color);
  }
.tag-list-item{
	font-size: .8125rem;
}
.recent-posts-card{
	margin-bottom: 0
}

  /* --- スマホ版設定（768px以下） --- */
  @media screen and (max-width: 768px) {
    .entry-list .entry-meta {
/*      padding-block-end: var(--size-low);*/
    }
    .pager-item {
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      display: flex;
    }
    .pager-item {
      min-width: 100%; /* flex子要素の縮小を許可 */
    }
    /* テキストの折り返しを防ぎ省略記号を表示 */
    .pager-item {
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .page-title {
      padding-bottom: var(--size-low);
    }
    .journal-top-2-wrp {
      /* 縦並びに変更 */
      flex-direction: column;
    }
    .journal-top-2 {
      width: 100%;
      margin-bottom: var(--size-md-low);
    }
    .journal-top-2:last-child {
      margin-bottom: 0;
      border-bottom: 1px solid var(--line-color);
      padding-bottom: var(--size-3rem)
    }
	  .recent-posts-card{
	margin-bottom: 32px
}
  }
  /*SHOP INFO****************************************/
  .shop-info-wrp {
    background-color: #fff;
    font-size: .875rem;
    line-height: 1.8
  }
  .card-3 {
    width: 30%;
  }
  .shop-info-img, .map-wrp {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    margin-bottom: var(--size-low);
    border-radius: 16px;
    overflow: hidden;
  }
  .shop-info-item {
    display: flex;
    align-items: flex-start; /* 複数行の場合も上揃え */
  }
  /* ラベル部分 (ADD, TELなど) */
  .shop-info dt {
    width: 5em; /* ラベルの幅を固定して縦のラインを揃える */
    flex-shrink: 0; /* 幅が狭まらないように固定 */
    font-weight: normal;
    letter-spacing: 0.1em;
  }
  /* データ部分 */
  .shop-info dd {
    margin: 0; /* デフォルトのインデントをリセット */
    flex-grow: 1;
    line-height: 1.8;
  }
  .btn-rounded {
    /* レイアウト: インラインブロックかつ中身を中央揃え */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    /* サイズ・余白: 幅は可変、左右padding 24px */
    padding: 12px 24px;
    /* スタイル: 背景色、角丸、テキスト色 */
    background-color: #f6f6f6; /* スクリーンショットに基づいた薄いグレー */
    border-radius: 48px; /* 完全に丸い角 */
    /* フォント: 指定のサイズ */
    font-size: 0.8125rem;
    text-decoration: none;
    line-height: 1;
    /* アニメーションの準備 */
    transition: background-color 0.3s ease, color 0.3s ease;
  }
  .btn-rounded-border {
    border: 1px solid var(--txt-color)
  }
  .btn-rounded-white {
    background-color: #fff;
    padding: 8px 16px;
    border: 1px solid var(--txt-color);
    font-size: .75rem;
  }
  /* 矢印アイコンのスタイル */
  .btn-arrow {
    margin-left: 1.5em; /* テキストとの間隔 */
    width: 12px; /* アイコンのサイズ調整 */
    height: auto;
    transition: transform 0.3s ease, filter 0.3s ease;
  }
  /* --- Hover時の挙動 --- */
  .btn-rounded:hover {
    background-color: #000; /* 背景を黒に */
    color: #fff; /* テキストを白に（視認性確保のため推奨） */
  }
  .btn-rounded:hover .btn-arrow {
    /* 矢印を8px右へ移動 */
    transform: translateX(8px) translateY(1px);
    /* 背景が黒になる場合、svgが黒だと見えないため白へ反転（必要に応じて） */
    filter: invert(1);
  }
  .btn-rounded:hover .btn-arrow.btn-arrow-down {
    /* 矢印を8px右へ移動 */
    transform: translateY(1px);
    /* 背景が黒になる場合、svgが黒だと見えないため白へ反転（必要に応じて） */
    filter: invert(1);
  }
  /* スマホ表示の調整 */
  @media screen and (max-width: 768px) {
    .card-3 {
      width: 100%;
      margin-bottom: var(--size-low)
    }
  }
  /*SELECT****************************************/
  .select-wrap {
    position: relative;
    width: 100%;
    display: inline-block;
    /*	margin-bottom: 1em;*/
    font-size: .875rem;
  }
  .select-wrap select {
    appearance: none;
    border: 1px solid var(--line-color);
    padding: .5em 1em;
    border-radius: var(--btn-radius);
    background-color: #fff;
    background-image: url('../images/arrow-down.svg');
    background-repeat: no-repeat;
    background-position: right 16px center;
    background-size: 12px;
    cursor: pointer;
    height: auto;
    width: 100%;
  }
  .select-wrap select::-ms-expand {
    display: none;
  }
  .search-form-wrp {
    width: 100%;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  .search-form-wrp input[type="text"] {
    font-size: .8125rem;
    width: 78%;
    max-width: 100%;
    border: 1px solid var(--line-color);
    padding: .5em 1em;
    border-radius: var(--btn-radius);
  }
  .btn-search {
    width: 20%;
    border: none;
    padding: .5em 1em;
    border-radius: 4px;
    background-color: var(--primary-color);
    font-size: .8125rem;
    color: #fff;
  }
/*CATEGORY ITEM LIST****************************************/

.page-nav, .sort {
  line-height: 1
}
.page-nav-arrow {
  width: 10px;
  height: 12px;
  display: inline-block;
}
.page-nav-arrorw-right,
.pager-next,
.pager-prev{
  transition: transform .2s ease-out !important;
}
.pager-next{
 text-align: right;
}
.page-nav-arrorw-right:hover,
.pager-next:hover{
  transform: translateX(12px);
}
.pager-prev:hover{
	transform: translateX(-12px);
}
.page-nav-title,	
.pager-list{
	display: inline;
	margin-inline:.25em;
}
.pager-list-item{
	display: inline;
	margin-inline:.25em;
}
 @media screen and (max-width: 768px) {
	 .page-nav, .sort {
  width: 100%;
  font-size: 0.75rem;
 
}
.page-nav {
 margin-top: 1em;
 }
}
  /*FOOTER****************************************/
  /* 基本設定 */
  .ftr {
    background-color: var(--secondary-color);
    padding-block: var(--size-ex-md);
    font-size: .8125rem;
    color: #221e1f;
  }
  /* 1. デスクトップ：全体を左右に振り分け */
  .ftr-inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    max-width: 1200px;
    margin: 0 auto;
  }
  .ftr-logo {
    flex: 0 1 auto;
    padding-right: 2em;
  }
  .ftr-logo img {
    margin-bottom: 1em;
    width: 70px;
    height: 40px;
    display: block;
  }
  .ftr-logo p {
    line-height: 1.75;
    margin: 0;
    text-align: left; /* テキスト左寄せ */
  }
  /* 2. PC：ftr-nav内の要素（ul, ul, div）を横並びにする */
  .ftr-nav {
    display: flex;
    align-items: flex-start;
    flex: 0 1 auto;
  }
  .ftr-nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
  }
  .ftr-nav ul li {
    text-align: left; /* テキスト左寄せ */
  }
  .ftr-nav-sub-contact {
    margin-top: 1em;
  }
  /* 二番目のulの左右余白 48px */
  .ftr-nav ul:nth-of-type(2) {
    margin-inline: 48px;
  }
  /* クレジット（div）も横並びに参加 */
  .ftr-credit {
    line-height: 1.2;
    white-space: nowrap;
    text-align: left; /* テキスト左寄せ */
  }
  .sns-list {
    display: flex;
    align-items: center;
    list-style: none;
    gap: 8px;
    margin-top: 1em;
  }
  .sns-list li a {
    display: block;
    line-height: 0; /* 画像の下の隙間を解消 */
  }
  .sns-list li img {
    display: block;
    width: 20px;
    height: 20px;
    transition: opacity 0.3s ease; /* ホバー時の演出用 */
  }
  /* ホバー時のインタラクション（カジュアルな演出） */
  .sns-list li a:hover img {
    opacity: 0.4;
  }
  /* 3. スマホ表示設定 (768px以下) */
  @media screen and (max-width: 768px) {
    .ftr-inner {
      flex-direction: column; /* 縦並び */
      align-items: flex-start; /* 全体を左寄せ */
      text-align: left;
    }
    .ftr-logo {
      margin-bottom: 40px;
    }
    .ftr-nav {
      flex-direction: column; /* ナビ内も縦並び */
      width: 100%;
    }
    /* 最初のulの下余白 48px */
    .ftr-nav ul:first-child {
      margin-bottom: 48px;
    }
    /* 二番目のulの余白リセットと下余白 64px */
    .ftr-nav ul:nth-of-type(2) {
      margin-inline: 0;
      margin-bottom: 64px;
    }
    /* 4. 最後のdiv（クレジット）のみ中央揃え */
    .ftr-credit {
      width: 100%;
      text-align: center;
      margin-top: 10px;
    }
  }
  /****************************************************
LOADING***************************************/
.loader-wrp {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
  transition: opacity .6s;
}

/* ロゴとバーを中央にまとめるコンテナ */
.loader-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px; /* ロゴとバーの間の距離 */
  width: 100%;
  max-width: 180px; /* 全体の幅をロゴに合わせる */
}

/* ロゴのスタイル */
.loader-logo {
  width: 180px;
  height: auto;
}

.loader-logo img {
  width: 100%;
  height: auto;
  display: block;
}

/* プログレスバーのスタイル */
.progress-container {
  width: 100%;
  background: #f1f1f1;
  height: 1px;
  border-radius: 2px;
  overflow: hidden;
  position: relative;
}

.progress-bar {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  background: var(--txt-color);
  width: 0%;
  transition: width 0.3s ease-in-out;
}
  /****************************************************
DRAWER */
  .btn-drawer {
    position: fixed;
    top: 0;
    left: 8px;
    width: 32px;
    height: 12px;
    display: none;
    cursor: pointer;
    z-index: 101;
    transition: all .2s ease-out;
    padding: 1.6rem;
  }
  .open .btn-drawer {
    right: .5em;
  }
  .btn-drawer-line {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    height: 1px;
    width: 32px;
    transition: all .2s ease-out;
  }
  .btn-drawer-line::before, .btn-drawer-line::after {
    content: "";
    height: 2px;
    width: 32px;
    background: var(--txt-color);
    position: absolute;
    left: 0;
    transition: inherit;
  }
  
  .btn-drawer-line::before {
    top: -5px;
  }
  .btn-drawer-line::after {
    top: 5px;
  }
  .open .drawer-menu {
    visibility: visible;
    opacity: 1;
    top: 0
  }
  .open .btn-drawer-line {
    background-color: transparent;
  }
  .open .btn-drawer-line::before, .open .btn-drawer-line::after {
    top: 0;
    background-color: #fff;
  }
  .open .btn-drawer-line::before {
    transform: rotate(45deg);
  }
  .open .btn-drawer-line::after {
    transform: rotate(-45deg);
  }
  .drawer-menu {
    position: fixed;
    top: -8px;
    left: 0;
    width: 100%;
    height: 100%;
    padding-inline: 7%;
    transition: all .5s;
    visibility: hidden;
    opacity: 0;
    z-index: 100;
    overflow-y: auto;
    background-color: var(--txt-color);
    color: #fff;
    display: grid;
    place-items: center;
    border: 4px solid #fff;
  }
  .drawer-inner {
    position: relative;
    z-index: 2;
    max-width: 480px;
    padding-block: 3em
  }
  .drawer-inner a {
    color: #fff;
  }
  .drawer-inner a:hover {
    text-decoration: underline;
  }
  .drawer-hdr {
    width: 100%;
    display: flex;
    align-items: center;
    margin-bottom: 2em;
  }
  .drawer-logo {
    width: 96%;
  }
  .drawer-logo img {
    vertical-align: top
  }
  .drawer-list-wrp {
    margin-block: 0 1.75em;
    width: 100%;
  }
  .drawer-list-item {
    width: 100%;
    font-size: 1.125rem;
    font-weight: 400;
    line-height: 1;
    display: block;
    text-decoration: none;
    transition: text-decoration .2s;
    padding-block: .5em;
  }
  .drawer-list-sub, .drawer-meta {
    font-size: .8125rem;
    line-height: 1.7;
  }
  .drawer-meta img {
    width: 70px;
    height: 40px;
    margin-bottom: 1em;
  }
  .drawer-list-details {
	margin-top: 1em;
	line-height: 2;
	font-size: .8125rem
}
.drawer-list-item summary {
	display: grid;
	grid-template-columns: 1fr 24px;
	gap: 6px;
	align-items: center;
}
.drawer-list-item summary::-webkit-details-marker {
display: none;
}
.acc-icon {
	display: block;
	position: relative;
	width: 16px;
	margin-left: 6px;
	flex-shrink: 0;
	transform-origin: center 43%;
	transition: transform .2s;
}
.acc-icon::before, .acc-icon::after {
	content: "";
	position: absolute;
	display: block;
	width: 10px;
	height: 2px;
	background-color: #fff;
}
.acc-icon::before {
	left: 0;
	transform: rotate(45deg);
}
.acc-icon::after {
	right: 0;
	transform: rotate(-45deg);
}
details[open] .acc-icon {
	transform: rotate(180deg);
}
  @media screen and (max-width: 1194px) {
    .btn-drawer {
      display: block;
    }
.btn-drawer.front-page .btn-drawer-line::before, .btn-drawer.front-page .btn-drawer-line::after {
    background: #fff;
  }
}
  /****************************************************
HOVER */
  @media (hover: hover) {
    a:hover {}
    .gnavi-list a:hover {
      color: var(--line-color);
    }
    .page:hover, .nextpostslink:hover, .previouspostslink:hover, .extend:hover {
      color: var(--txt-color);
      opacity: 1;
    }
  }
  @media (hover: none) {
    a:active {
      color: var(--txt-color);
    }
    .gnavi-list a:active {
      color: var(--line-color);
    }
    .page:active, .nextpostslink:active, .previouspostslink:active, .extend:active {
      color: var(--txt-color);
      opacity: 1;
    }
  }