
.-x-richtext ul, .-x-richtext ol {
	list-style-position: inside;
}
[data-legal]{
	position:relative;
	--legal-offset-h:attr(data-legal-offset-h px);
	--legal-offset-v:attr(data-legal-offset-v px);
}
[data-legal][data-legal-safe="1"]::after{
	position: absolute;
	opacity: 0.5;
	color: black;
	content: "墨";
	font-size: 16px;
	display: block;
	height: 24px;
	padding-top: 0px;
	background-image: url(/_lib/lc.png);
	background-size: auto 20px;
	background-repeat: no-repeat;
	padding-left: 50px;
	background-position: left top;
}
[data-legal][data-legal-safe="1"]:hover::after {
    position: absolute;
    opacity: 0.5;
    color: black;
    content: attr(data-legal-check-at);
    white-space:nowrap;
    font-size: 11px;
    display: block;
    height: 24px;
    background-image: url(/_lib/lc.png);
    background-size: auto 20px;
    background-repeat: no-repeat;
    padding-top: 15px;
    padding-left: 0px;
    background-position: left top;
}

[data-legal-position="left-top"]::after{
	left:var(--legal-offset-h);
	top:var(--legal-offset-v);
}
[data-legal-position="left-bottom"]::after{
	left:var(--legal-offset-h);
	bottom:var(--legal-offset-v);
}
[data-legal-position="right-top"]::after{
	right:var(--legal-offset-h);
	top:var(--legal-offset-v);
}
[data-legal-position="right-bottom"]::after{
	right:var(--legal-offset-h);
	bottom:var(--legal-offset-v);
}
/*common_css*/
@charset "utf-8";
/** ==============================================
01.共通
============================================== **/
/* -------------------------------------
boundary-wave
-------------------------------------*/
.boundary-wave {
  position: relative;
  z-index: 2;
}
.boundary-wave .wave {
  width: 100%;
  aspect-ratio: 10/1;
  background: url(/common/images/bg-wave.png) no-repeat center bottom / 100% 100%;
  position: absolute;
  left: 0;
  bottom: 0;
}
section:has(+ .boundary-wave) {
  padding-bottom: 12vw;
}
.boundary-wave + :is(section, aside)[class*="bg"] {
  margin-top: -100px;
  padding-top: 200px;
  z-index: 1;
}

@media screen and (min-width: 2000px) {
  .boundary-wave .wave {
    aspect-ratio: 14/1;
  }
}

@media (max-width: 520px) {
  .boundary-wave .wave {
    aspect-ratio: 10/3;
    background-size: 150% 100%;
  }
  section:has(+ .boundary-wave) {
    padding-bottom: 34vw;
  }
  .boundary-wave + :is(section, aside)[class*="bg"] {
    margin-top: -80px;
    padding-top: 170px;
  }
}

/* -------------------------------------
deco
-------------------------------------*/
*:has(> .deco) {
  position: relative;
}
.deco {
  position: absolute;
}
[class^="deco-lr"] {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  position: relative;
  z-index: 1;
}
section:has(+ .deco-lr-wrap) {
  padding-bottom: 4vw;
}
.deco-lr .deco-dog_l {
  padding-left: 4%;
}
.deco-lr .deco-cat_r {
  padding-right: 1%;
  transform: translateY(1vw);
}

section:has(+ .deco-lr2-wrap) {
  padding-bottom: 3vw;
}
.deco-lr2 .deco-dog_l {
  padding-left: 4%;
  transform: translateY(0.5vw);
}
.deco-lr2 .deco-cat_r {
  padding-right: 1%;
  transform: translateY(1vw);
}

.deco-lr-f .deco-dog_l {
  overflow: hidden;
}
.deco-lr-f .deco-dog_l img {
  transform: translateX(-1%);
}
.deco-lr-f .deco-cat_r {
  transform: translateY(1vw);
  overflow: hidden;
}
.deco-lr-f .deco-cat_r img {
  transform: translateX(5%);
}

@media (max-width: 520px) {
  section:has(+ .deco-lr-wrap) {
    padding-bottom: 12vw;
  }
  .deco-lr .deco-dog_l {
    width: 44%;
    padding-left: 4%;
    transform: translateY(5vw);
  }
  .deco-lr .deco-cat_r {
    width: 38%;
    padding-right: 1%;
    transform: translateY(-2vw);
  }

  section:has(+ .deco-lr2-wrap) {
    padding-bottom: 16vw;
  }
  .deco-lr2 .deco-dog_l {
    width: 40%;
    transform: translateY(5vw);
  }
  .deco-lr2 .deco-cat_r {
    width: 50%;
    transform: translateY(-1vw);
  }

  .deco-lr-f .deco-dog_l {
    width: 38%;
    transform: translateY(16px);
  }
  .deco-lr-f .deco-dog_l img {
    transform: translateX(-8%);
  }
  .deco-lr-f .deco-cat_r {
    width: 50%;
    transform: translateY(1vw);
  }
}

/* -------------------------------------
frame
-------------------------------------*/
.frame {
  --corner: 40px;
  padding: 40px 50px;
  background: url(/common/images/frame_lt.png) no-repeat left top / var(--corner) auto,
    url(/common/images/frame_rt.png) no-repeat right top / var(--corner) auto,
    url(/common/images/frame_rb.png) no-repeat right bottom / var(--corner) auto,
    url(/common/images/frame_lb.png) no-repeat left bottom / var(--corner) auto,
    url(/common/images/frame_top.png) no-repeat center top / calc(100% - var(--corner)) var(--corner),
    url(/common/images/frame_right.png) no-repeat right center / var(--corner) calc(100% - var(--corner)),
    url(/common/images/frame_bottom.png) no-repeat center bottom / calc(100% - var(--corner)) var(--corner),
    url(/common/images/frame_left.png) no-repeat left center / var(--corner) calc(100% - var(--corner)),
    url(/common/images/frame_left.png) no-repeat left center / var(--corner) calc(100% - var(--corner)),
    url(/common/images/frame_bg.png) no-repeat center / calc(100% - var(--corner)) calc(100% - var(--corner));
}

@media (max-width: 520px) {
  .frame {
    --corner: 30px;
    padding: 40px 34px;
  }
}

/* -------------------------------------
schedule-table
-------------------------------------*/
[class^="schedule-table"] {
  --t-color: var(--c-main);
  width: 100%;
  border-radius: var(--radius-s);
  overflow: hidden;
}
[class^="schedule-table"] :is(th, td) {
  font-weight: var(--fw-b);
  text-align: center;
  vertical-align: middle;
}
[class^="schedule-table"] th {
  padding: 6px;
  font-size: 22px;
  color: #fff;
  background: var(--t-color);
}
[class^="schedule-table"] td {
  padding: 10px;
  font-size: 26px;
  color: var(--t-color);
}
[class^="schedule-table"] .schedule-hour {
  color: var(--color);
  font-size: 24px;
  font-weight: normal;
}
[class^="schedule-table"] tr:has(td):not(:first-child) {
  border-top: 1px solid var(--t-color);
}

.schedule-table_day {
  background: var(--bg-main);
}
.schedule-table_night {
  --t-color: var(--navy);
  background: var(--bg-navy);
}
.schedule-table_night .schedule-time {
  color: var(--yellow);
}
.schedule-content:has(.schedule-table_day) .kome-list li:has(strong)::before,
.schedule-content:has(.schedule-table_day) .kome-list li strong {
  color: var(--c-main);
  font-weight: var(--fw-b);
}
.schedule-content:has(.schedule-table_night) .kome-list li:has(strong)::before,
.schedule-content:has(.schedule-table_night) .kome-list li strong {
  color: var(--navy);
  font-weight: var(--fw-b);
}

@media (max-width: 520px) {
  [class^="schedule-table"] {
  }
  [class^="schedule-table"] th {
    padding: 6px;
    font-size: 3vw;
  }
  [class^="schedule-table"] td {
    padding: 15px 5px;
    font-size: 3vw;
  }
  [class^="schedule-table"] .schedule-hour {
    font-size: 3vw;
  }
}

/* -------------------------------------
star-list
-------------------------------------*/
.star-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}
.star-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.5em;
  color: var(--brown);
  font-size: 20px;
  font-weight: var(--fw-b);
}
.star-list li::before {
  content: "";
  width: 35px;
  aspect-ratio: 35/33;
  flex-shrink: 0;
  background: url(/common/images/ico-star.png) no-repeat center / contain;
}

@media (max-width: 520px) {
  .top-star-list-wrap.frame {
    padding: 40px 24px;
  }
  .star-list {
    gap: 7px;
  }
  .star-list li {
    font-size: 14px;
  }
  .star-list li::before {
    width: 22px;
    margin-top: 2px;
  }
}

/* -------------------------------------
menu-btn
-------------------------------------*/
.menu-btn {
  --row: 3;
  --gap: 1px;
  display: flex;
}
.menu-btn li {
  width: calc((100% - var(--gap) * calc(var(--row) - 1)) / var(--row));
}
.menu-btn li a {
  display: block;
  width: 100%;
  height: 100%;
}
.menu-btn li figure {
  width: 100%;
  border-radius: 20px 20px 0 0;
}
.menu-btn li figure img {
  width: 100%;
  aspect-ratio: 5/3;
  object-fit: cover;
}
.menu-btn li .text {
  padding: 30px;
}
.menu-btn li a:hover .text .more {
  color: var(--c-main);
}
.menu-btn li .text .more {
  margin: 0 0 20px;
}
.menu-btn li:not(:first-child) .text {
  border-left: 1px solid var(--gray);
}

@media (max-width: 520px) {
  .menu-btn {
    --row: 1;
    flex-direction: column;
    gap: 25px;
    width: 95%;
    margin-left: auto;
    margin-right: auto;
  }
  .menu-btn li .text {
    padding: 10px 5% 20px;
  }
  .menu-btn li a:hover .text .more {
    color: var(--c-main);
  }
  .menu-btn li .text .more {
    margin-bottom: 4px;
  }
  .menu-btn li:not(:first-child) .text {
    border-left: none;
  }
}

/* -------------------------------------
menu-card-list
-------------------------------------*/
.menu-card-list {
  --row: 3;
  --gap: 40px;
  display: flex;
  flex-wrap: wrap;
  gap: var(--gap);
}
.menu-card-list li {
  width: calc((100% - var(--gap) * calc(var(--row) - 1)) / var(--row));
  background: #fff;
  border-radius: var(--radius);
  overflow: hidden;
}
.menu-card-list li figure img {
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
}
.menu-card-list li .text {
  padding: 10px 25px 15px;
}
.menu-card-list li .text .more {
  margin: 0 0 -2px;
  color: var(--c-main);
}
.menu-card-list li .text .more span {
  font-size: 22px;
}
.menu-card-list li .text .more::after {
  font-size: 1.5em;
}
.menu-card-list li .text p {
  line-height: 1.4;
}
.menu-card-list li .text p span {
  color: var(--c-main);
}

/* 列 */
.menu-card-list.row2 {
  --row: 2;
}
.menu-card-list.row2 li .text .more {
  margin: 0;
}
.menu-card-list.row2 li .text .more span {
  font-size: 24px;
}
.menu-card-list.row5 {
  --row: 5;
}

/* 色 */
.menu-card-list.list-c-main li {
  color: #fff;
  background: var(--c-main);
}
.menu-card-list.list-c-main .more span {
  color: #fff;
}
.menu-card-list.list-c-main li .text .more::after {
  color: #fff;
  font-size: 1.2em;
}

@media (max-width: 520px) {
  .menu-card-list {
    --row: 2;
    --gap: 14px;
  }
  .menu-card-list li figure img {
    aspect-ratio: 10/7;
  }
  .menu-card-list li .text {
    padding: 10px 5% 15px;
  }
  .menu-card-list li .text .more {
    margin-bottom: 0;
  }
  .menu-card-list li .text .more span {
    font-size: 1rem;
  }
  .menu-card-list li .text .more::after {
    font-size: 1.2em;
  }
  .menu-card-list li .text p {
    font-size: 13px;
    line-height: 1.6;
  }

  /* 列 */
  .menu-card-list.row2 {
    --row: 1;
    --gap: 20px;
  }
  .menu-card-list.row2 li .text .more span {
    font-size: 18px;
  }
}

/* -------------------------------------
top-news-list
-------------------------------------*/
.top-news-list {
  border-top: var(--border);
}
.top-news-list li {
  border-bottom: var(--border);
}
.top-news-list li a {
  display: block;
  padding: 1.5em 40px 1.5em 0;
  position: relative;
}
.top-news-list li a .detail-cat {
  justify-content: flex-start;
}
.top-news-list li a p {
  font-size: 20px;
  font-weight: var(--fw-b);
  line-height: 1.6;
}
.top-news-list li a:hover p {
  color: var(--c-main);
}

@media (max-width: 520px) {
  .top-news-list {
    width: 90%;
    margin: 0 auto;
  }
  .top-news-list li a p {
    font-size: 14px;
  }
}

/* -------------------------------------
column-list
-------------------------------------*/
.column-list {
  --row: 3;
  --gap: 20px;
  display: flex;
  flex-wrap: wrap;
  gap: var(--gap);
}
.column-list li {
  width: calc((100% - var(--gap) * calc(var(--row) - 1)) / var(--row));
}
.column-list li a {
  display: flex;
  flex-direction: column;
  gap: 10px;
  height: 100%;
}
.column-list li a figure {
  border-radius: var(--radius);
}
.column-list li a figure img {
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
}
.column-list li a .detail-cat {
  justify-content: flex-start;
  margin: 0;
}
.column-list li a p {
  line-height: 1.6;
}

@media (max-width: 520px) {
  .column-list {
    --row: 1;
    gap: 20px;
  }
  .column-list li a > *:not(figure) {
    padding: 0 3%;
  }
  .column-list li a p {
    font-size: 15px;
  }
}

/* -------------------------------------
check-list
-------------------------------------*/
.check-list li {
  padding-left: 1.7em;
  position: relative;
}
.check-list li + li {
  margin-top: 8px;
}
.check-list li::before {
  font: var(--fa-font-solid); /* 6.5.2 */
  content: "\f058";
  color: var(--c-main);
  font-size: 1.3em;
  line-height: 1;
  position: absolute;
  left: 0;
  top: 8px;
}
.check-list li mark {
  font-weight: var(--fw-b);
}

@media (max-width: 520px) {
  .check-list li {
    font-size: 0.9em;
  }
}

/* -------------------------------------
kome
-------------------------------------*/
.kome {
  display: block;
  margin-top: 10px;
  font-size: 0.8em;
  line-height: 1.6;
  padding-left: 1em;
  text-indent: -1em;
}
.kome {
  display: block;
  margin-top: 10px;
  font-size: 0.8em;
  line-height: 1.6;
  padding-left: 1em;
  text-indent: -1em;
}

/* -------------------------------------
kome-list
-------------------------------------*/
.kome-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 5px;
  margin-top: 10px;
}
.kome-list li {
  line-height: 1.6;
  padding-left: 1em;
  text-indent: -1em;
}
.kome-list li::before {
  content: "※";
}

@media (max-width: 520px) {
  .kome-list {
    margin-top: 6px;
  }
  .kome-list li {
    font-size: 14px;
  }
}

/* -------------------------------------
kome-dl
-------------------------------------*/
.kome-dl {
  display: flex;
  align-items: flex-start;
  gap: 0.7em;
  line-height: 1.5;
}
.kome-dl dt {
  flex-shrink: 0;
  font-size: 1.2em;
  color: var(--c-main);
  font-weight: var(--fw-b);
}
.kome-dl dt::before {
  content: "※";
}
.kome-dl dd {
  padding-top: 4px;
  font-size: 0.9em;
}

@media (max-width: 520px) {
  .kome-dl {
    flex-wrap: wrap;
    gap: 0;
  }
  .kome-dl dt {
    font-size: 1em;
  }
  .kome-dl dd {
    padding-top: 4px;
    padding: 4px 0 0 1em;
    font-size: 0.9em;
  }
}

/* -------------------------------------
border-list
-------------------------------------*/
.border-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 30px;
}
.border-list li {
  display: grid;
  grid-template-columns: 30% auto;
  align-items: start;
  gap: 5%;
  padding: 30px;
  border: var(--border-c-main);
  border-radius: var(--radius);
  background: #fff;
}
.border-list li figure {
  border-radius: var(--radius-s);
}
.border-list li .tit {
  color: var(--c-main);
}

@media (max-width: 520px) {
  .border-list {
    gap: 20px;
  }
  .border-list li {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 20px;
  }
  .border-list li .text {
    padding: 0 5px 10px;
  }
}

/* -------------------------------------
note
-------------------------------------*/
.note {
  padding: 40px;
  background: var(--bg-main);
  border-radius: var(--radius);
}

@media (max-width: 520px) {
  .note {
    padding: 26px 20px;
  }
}

/* -------------------------------------
note-tel
asd-tel
-------------------------------------*/
.note-tel,
.asd-tel {
  justify-content: center;
  font-size: 2.2rem;
}
.note-tel i.svg-tel svg,
.asd-tel i.svg-tel svg {
  width: 0.6em;
  transform: translateY(0.1em);
}

@media (max-width: 520px) {
  .note-tel,
  .asd-tel {
    font-size: 1.8rem;
  }
}

/* -------------------------------------
maru-bf
-------------------------------------*/
.maru-bf li {
  padding-left: 1.2em;
  text-indent: -1.2em;
}
.maru-bf li + li {
  margin-top: 2px;
}
.maru-bf li::before {
  content: "●";
  margin-right: 0.2em;
  color: var(--c-main);
}
.maru-bf.night li::before {
  color: var(--navy);
}

@media (max-width: 520px) {
  .maru-bf li {
    font-size: 13px;
  }
}

/* -------------------------------------
grid-h3-content
-------------------------------------*/
.grid-h3-content {
  display: grid;
  grid-template-columns: 1fr;
  gap: 50px;
}
.grid-h3-content figure img {
  border-radius: var(--radius-s);
}

@media (max-width: 520px) {
  .grid-h3-content {
    gap: 60px;
  }
}

/* -------------------------------------
expense-dl
-------------------------------------*/
.expense-dl dl {
  display: grid;
  grid-template-columns: auto 220px;
  align-items: end;
  gap: 50px;
  padding: 16px 1em;
}
.expense-dl dl:nth-child(odd) {
  background: var(--bg-main);
}
.expense-dl dl dd {
  text-align: right;
}

@media (max-width: 520px) {
  .expense-dl dl {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 6px 30px;
    padding: 14px 1em;
    font-size: 0.9em;
  }
  .expense-dl dl dt {
    max-width: 90%;
  }
  .expense-dl dl dd {
    margin-left: auto;
  }
}

/* -------------------------------------
flow-toggle
-------------------------------------*/
.flow-toggle {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  width: 92%;
  margin-left: auto;
  margin-right: auto;
}
.flow-toggle dl:not(:last-of-type)::after {
  content: "";
  display: block;
  width: 40px;
  aspect-ratio: 3/2;
  clip-path: polygon(0 0, 50% 100%, 100% 0);
  margin: 10px auto 0;
  background: var(--c-sub);
}
.flow-toggle dl dt {
  --ico-size: 80px;
  display: grid;
  grid-template-columns: var(--ico-size) auto;
  align-items: center;
  gap: 30px;
  padding: 14px 60px 14px 20px;
  font-size: 1.3em;
  color: #fff;
  font-weight: var(--fw-b);
  background: var(--c-main);
  border-radius: var(--radius-s);
  position: relative;
}
.flow-toggle dl:has(dd) {
  cursor: pointer;
}
.flow-toggle dl:has(dd) dt::before,
.flow-toggle dl:has(dd) dt::after {
  content: "";
  position: absolute;
  top: 1px;
  right: 30px;
  bottom: 0;
  width: 24px;
  height: 3px;
  margin: auto;
  background: var(--bg-yellow);
}
.flow-toggle dl:has(dd) dt::after {
  transform: rotate(-90deg);
  transition: var(--transition);
}
.flow-toggle dl dt.on::after {
  transform: rotate(0deg);
}
.flow-toggle dl dt i {
  width: var(--ico-size);
  height: var(--ico-size);
}
.flow-toggle dl dt i img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.flow-toggle dl dd {
  display: none;
  padding: 16px 60px 25px;
}

@media (max-width: 520px) {
  .flow-toggle {
    display: grid;
    grid-template-columns: 1fr;
    gap: 5px;
    width: 92%;
  }
  .flow-toggle dl:not(:last-child)::after {
    width: 25px;
    margin-top: 5px;
  }
  .flow-toggle dl dt {
    --ico-size: 50px;
    gap: 20px;
    padding: 10px 30px 10px 16px;
    font-size: 1em;
  }
  .flow-toggle dl:has(dd) dt::before,
  .flow-toggle dl:has(dd) dt::after {
    right: 20px;
    width: 14px;
    height: 2px;
  }
  .flow-toggle dl dd {
    padding: 16px 10px 25px;
    font-size: 14px;
  }
}

/* -------------------------------------
flow
-------------------------------------*/
.flow {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  width: 92%;
  margin-left: auto;
  margin-right: auto;
}
.flow dl {
  padding: 30px 20px;
  background: var(--bg-main);
  border: 1px dotted var(--c-main);
  border-radius: var(--radius);
  position: relative;
}
.flow dl:not(:last-of-type) {
  margin-bottom: 40px;
}
.flow dl:not(:last-of-type)::after {
  content: "";
  display: block;
  width: 40px;
  aspect-ratio: 3/2;
  clip-path: polygon(0 0, 50% 100%, 100% 0);
  background: var(--c-sub);
  position: absolute;
  left: 50%;
  top: 104%;
  transform: translateX(-50%);
}
.flow dl dt {
  font-size: 1.2em;
  font-weight: var(--fw-b);
  text-align: center;
  line-height: 1.5;
}
.flow dl dd {
  padding: 16px 60px 10px;
  text-align: center;
}
/* 色 */
.flow.flow_white dl {
  background: #fff;
}

@media (max-width: 520px) {
  .flow {
    gap: 5px;
  }
  .flow dl:not(:last-of-type) {
    margin-bottom: 30px;
  }
  .flow dl:not(:last-of-type)::after {
    width: 32px;
    top: 103%;
  }
  .flow dl {
    padding: 30px 40px;
  }
  .flow dl dt {
    font-size: 0.95em;
  }
  .flow dl dd {
    padding: 16px 0 10px;
    font-size: 14px;
    text-align: left;
  }
}

/* -------------------------------------
detail-toggle
-------------------------------------*/
.detail-toggle {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  width: 92%;
  margin-left: auto;
  margin-right: auto;
}
.detail-toggle .toggle {
  background: #fff;
  border-radius: var(--radius);
}
.detail-toggle .toggle .toggle-head {
  display: grid;
  grid-template-columns: auto;
  align-items: center;
  padding: 14px 60px 14px 20px;
  font-size: 1.3em;
  color: #fff;
  font-weight: var(--fw-b);
  background: var(--c-main);
  border-radius: var(--radius-s);
  position: relative;
  cursor: pointer;
}
.detail-toggle .toggle .toggle-head::before,
.detail-toggle .toggle .toggle-head::after {
  content: "";
  position: absolute;
  top: 1px;
  right: 30px;
  bottom: 0;
  width: 24px;
  height: 3px;
  margin: auto;
  background: var(--bg-yellow);
}
.detail-toggle .toggle .toggle-head::after {
  transform: rotate(-90deg);
  transition: var(--transition);
}
.detail-toggle .toggle .toggle-head.on::after {
  transform: rotate(0deg);
}
.detail-toggle .toggle .detail {
  display: none;
  padding: 25px 50px 40px;
  font-size: 0.95em;
}
.detail-toggle .toggle .detail .inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 30px;
}
.detail-toggle .toggle .detail .inner + .inner {
  margin-top: 50px;
}
.detail-toggle .toggle .detail .inner .intro {
  max-width: 850px;
  margin-inline: auto;
}
.detail-toggle .toggle .detail .inner .tit-l-line {
  width: 100%;
  margin-bottom: 0;
}
.detail-toggle .toggle .detail .inner .btn {
  width: fit-content;
  max-width: 80%;
  margin-top: 15px;
}

@media (max-width: 520px) {
  .detail-toggle {
    gap: 20px;
    width: 100%;
  }
  .detail-toggle .toggle .toggle-head {
    --ico-size: 50px;
    gap: 20px;
    padding: 10px 30px 10px 16px;
    font-size: 1em;
  }
  .detail-toggle .toggle .toggle-head::before,
  .detail-toggle .toggle .toggle-head::after {
    right: 20px;
    width: 14px;
    height: 2px;
  }
  .detail-toggle .toggle .detail {
    padding: 16px 18px 40px;
    font-size: 14px;
  }
  .detail-toggle .toggle .detail .inner {
    gap: 18px;
  }
  .detail-toggle .toggle .detail .inner + .inner {
    margin-top: 30px;
  }
  .detail-toggle .toggle .detail .inner .btn {
    max-width: 90%;
  }
}

/* -------------------------------------
ancBtn
-------------------------------------*/
.ancBtn {
  --gap: 12px;
  display: flex;
  flex-wrap: wrap;
  gap: var(--gap);
  margin-inline: auto;
}
.ancBtn a {
  width: calc((100% - var(--gap) * calc(var(--row) - 1)) / var(--row));
  height: 60px;
  display: grid;
  place-content: center;
  padding: 0 30px 0 10px;
  line-height: 1.3;
  border: 1px solid var(--c-main);
  background: var(--c-main);
  color: #fff;
  font-weight: bold;
  text-align: center;
  border-radius: 8px;
  position: relative;
}
.ancBtn a:after {
  position: absolute;
  top: 50%;
  right: 8px;
  transform: translateY(-50%);
  content: "\e5cf";
  font-family: "Material Icons";
}
.ancBtn a:hover {
  opacity: 0.8;
}

/* リンクなしの場合 */
.ancBtn a[href=""] {
  padding: 0 10px;
  color: var(--c-main);
  background: #fff;
  pointer-events: none;
}
.ancBtn a[href=""]:after {
  display: none;
}

@media screen and (max-width: 768px) {
  .ancBtn {
    width: 90%;
    max-width: 480px;
  }
  .ancBtn a {
    height: 45px;
    font-size: 0.9rem;
    font-weight: normal;
    border-radius: 6px;
  }
  .ancBtn a:after {
    right: 5px;
  }
}

/* -------------------------------------
スライドページネーション  splide__pagination
-------------------------------------*/
.splide__pagination.original-customize {
  position: static;
  margin-top: 10px;
  padding: 0;
}
.splide__pagination.original-customize .splide__pagination__page {
  --size: 6px;
  width: var(--size);
  height: var(--size);
  background: var(--c-main);
}
.splide__pagination.original-customize .splide__pagination__page.is-active {
  background: var(--c-main);
  transform: scale(1.6);
}

/* -------------------------------------
スライド矢印  splide__arrows
-------------------------------------*/
.splide__arrows.original-customize .splide__arrow,
.splide__arrows.original-customize .splide__arrow:hover:not(:disabled) {
  --size: 50px;
  width: var(--size);
  height: var(--size);
  background: #fff;
  opacity: 0.6;
  transition: var(--transition);
}
.splide__arrows.original-customize .splide__arrow:hover:not(:disabled) {
  transform: scale(1.2) translateY(-50%);
}
.splide__arrows.original-customize .splide__arrow.splide__arrow--prev {
  left: calc(var(--size) / -2);
}
.splide__arrows.original-customize .splide__arrow.splide__arrow--next {
  right: calc(var(--size) / -2);
}
.splide__arrows.original-customize .splide__arrow svg {
  --size: 24px;
  width: var(--size);
  height: var(--size);
  fill: var(--c-main);
  transition: var(--transition);
}
/* .splide__arrows.original-customize .splide__arrow.splide__arrow--prev:hover svg{
	transform: scaleX(-1) translateX(7px);
}
.splide__arrows.original-customize .splide__arrow.splide__arrow--next:hover svg{
	transform: translateX(7px);
} */

@media (max-width: 520px) {
  .splide__arrows.original-customize .splide__arrow,
  .splide__arrows.original-customize .splide__arrow:hover:not(:disabled) {
    --size: 45px;
  }
  .splide__arrows.original-customize .splide__arrow.splide__arrow--prev {
    transform: translateX(10px);
  }
  .splide__arrows.original-customize .splide__arrow.splide__arrow--next {
    transform: translateX(-10px);
  }
  .splide__arrows.original-customize .splide__arrow svg {
    --size: 18px;
  }
}

/* -------------------------------------
スクロールバー
-------------------------------------*/
.scroll-x {
  padding: 1px 0 10px;
  overflow: auto;
}
.scroll-x .simplebar-track.simplebar-horizontal {
  --height: 5px;
  height: var(--height);
  background: var(--bg-gray);
  margin: 0 auto;
}
.scroll-x .simplebar-scrollbar {
  height: var(--height);
  background: var(--c-sub);
  border-radius: 5px;
  top: 0;
}
.scroll-x .simplebar-scrollbar:before {
  display: none;
}

/*  -------------------------------------
border-list
-------------------------------------*/
/* .border-list{
	display: grid;
	grid-template-columns: 1fr;
	gap: 15px;
}
.border-list li{
	display: grid;
	grid-template-columns: 300px 1fr;
	align-items: center;
	gap:5%;
	padding: 20px;
	border: 2px solid #fff;
}

@media (max-width: 520px) {
	.border-list{
		gap: 15px;
	}
	.border-list li{
		grid-template-columns: 100px 1fr;
		align-items: flex-start;
		gap:20px;
		padding: 16px;
	}
} */

/* -------------------------------------
balloon
-------------------------------------*/
.balloon,
[class*="balloon_"] {
  --bg: var(--c-main);
  display: grid;
  grid-template-columns: 1fr;
  margin-left: auto;
  margin-right: auto;
}
:is(.balloon, [class*="balloon_"]) > * {
  padding: 0.3em 1em 0.5em;
  color: #fff;
  font-weight: var(--fw-b);
  text-align: center;
  line-height: 1.5;
  background: var(--bg);
}
:is(.balloon, [class*="balloon_"])::after {
  --size: 20px;
  content: "";
  display: block;
  width: calc(var(--size) * 1.2);
  height: var(--size);
  margin: -1px auto 0;
  clip-path: polygon(0 0, 50% 100%, 100% 0);
  background: var(--bg);
}

@media (max-width: 520px) {
  :is(.balloon, [class*="balloon_"]) > * {
    padding: 0.8em 1em 1em;
  }
  :is(.balloon, [class*="balloon_"])::after {
    --size: 14px;
  }
}

/** ==============================================
02.テンプレート
============================================== **/
/* -------------------------------------
header
-------------------------------------*/
header {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  padding: 0 0 20px 2%;
  background: var(--base-bg);
  position: fixed;
  left: 0;
  top: 0;
  z-index: 1000;
}
header .h-logo {
  width: 170px;
  max-width: 8vw;
  margin-top: 10px;
  z-index: 1500;
}
header .h-logo img.h-logo_scroll {
  display: none;
}

header .h-main {
  flex: 1;
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}
/* h-cv-btn */
header .h-cv-btn {
  display: flex;
  justify-content: flex-end;
  gap: 0.5%;
}
header .h-cv-btn > p.pc {
  margin: 7px 1em 0 0;
  font-size: 12px;
  color: var(--gray);
  line-height: 1.4;
  text-align: right;
}
header .h-cv-btn a {
  width: fit-content;
  height: 50px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: var(--fw-b);
  border-radius: 0 0 14px 14px;
}
header .h-cv-btn a:hover {
  opacity: var(--opacity);
}
header .h-cv-btn a.h-tel {
  --color: #fff;
  padding: 0 2% 5px;
  font-size: 22px;
  background: var(--c-main);
}
header .h-cv-btn a.h-tel i {
  margin-top: 5px;
}
header .h-cv-btn a.h-rsv {
  padding: 0 3%;
  font-size: 18px;
}
header .h-cv-btn a.h-night {
  gap: 0.5em;
  padding: 0 1%;
  color: var(--yellow);
  font-size: 18px;
  background: var(--navy);
}
header .h-cv-btn a.h-night i {
  width: 2em;
}
header .h-cv-btn a.h-night span {
  padding: 0 1em;
  color: var(--navy);
  font-size: 14px;
  background: var(--yellow);
  border-radius: 30px;
}

/*  h-info */
header .h-info {
  margin: 0 2% 14px 0;
  font-size: 14px;
  text-align: right;
  line-height: 1.5;
}

/*  nav */
header .nav-wrap {
  width: 100%;
  transition: var(--transition);
  z-index: 1499;
}
header .h-cv-btn_sp {
  display: none;
}
header .gnav {
  display: flex;
  justify-content: flex-end;
  margin-right: 1%;
  font-weight: var(--fw-b);
}
header .gnav a {
  padding: 4px 1em;
}
header .h-info_sp {
  display: none;
}

/*  h-scroll */
header.h-scroll {
  padding-bottom: 14px;
}
header.h-scroll .h-logo {
  width: 250px;
  max-width: 20vw;
  margin-top: 6px;
}
header.h-scroll .h-logo img.h-logo_base {
  display: none;
}
header.h-scroll .h-logo img.h-logo_scroll {
  display: block;
}

header.h-scroll .h-main {
}
/* h-cv-btn */
header.h-scroll .h-cv-btn > p {
  display: none;
}
header.h-scroll .h-cv-btn a {
  height: 42px;
}
header.h-scroll .h-cv-btn a.h-tel {
  padding: 0 5% 4px;
  font-size: 18px;
}
header.h-scroll .h-cv-btn a.h-tel i {
  margin-top: 4px;
}
header.h-scroll .h-cv-btn a.h-rsv {
  padding: 0 6%;
  font-size: 15px;
}
header.h-scroll .h-cv-btn a.h-night {
  gap: 0.6em;
  padding: 0 3%;
  font-size: 15px;
}
header.h-scroll .h-cv-btn a.h-night span {
  padding: 0 1.2em;
  font-size: 12px;
}

/*  h-info */
header.h-scroll .h-info {
  display: none;
}

/*  nav */
header.h-scroll nav {
  margin-top: -10px;
}
header.h-scroll .gnav {
  display: flex;
  justify-content: flex-end;
  margin-right: 1%;
  font-weight: var(--fw-b);
}
header.h-scroll .gnav a {
  display: block;
  padding: 4px 1em;
  line-height: 1;
  transition: var(--transition);
}
header.h-scroll .gnav a:hover {
  color: var(--c-main);
}

@media screen and (max-width: 1200px) {
  /*  nav */
  header.h-scroll nav {
    margin-top: 4px;
  }
}

@media screen and (max-width: 520px) {
  header {
    --header-height: 60px;
    --hamburger: 54px;
    height: var(--header-height);
    padding: 0;
  }
  header .h-logo {
    width: calc(100% - 200px - 5%);
    max-width: 150px;
    margin-left: 4%;
  }

  header .h-main {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    margin-right: calc(var(--header-height) + 15px);
  }
  /* h-cv-btn */
  header .h-cv-btn > p.sp {
    padding: 10px 12px 10px 0;
    font-size: 14px;
    color: var(--c-main);
    font-weight: var(--fw-b);
    text-align: center;
    line-height: 1.3;
  }
  header .h-cv-btn a {
    border-radius: 0 0 14px 14px;
  }
  header .h-cv-btn a.h-tel,
  header .h-cv-btn a.h-rsv {
    display: none;
  }
  header .h-cv-btn a.h-night {
    width: calc(var(--header-height) + 4px);
    height: var(--hamburger);
    flex-direction: column;
    gap: 0.2em;
    padding: 0;
    font-size: 0.64rem;
    line-height: 1.3;
    text-align: center;
  }
  header .h-cv-btn a.h-night i {
    width: 40%;
    width: 26%;
    margin: 0 0 2px -6px;
  }
  header .h-cv-btn a.h-night span {
    display: none;
  }

  /*  h-info */
  header .h-info {
    display: none;
  }

  /* nav */
  header .nav-wrap {
    height: calc(100svh - var(--header-height));
    height: calc(100dvh - var(--header-height));
    height: calc(100vh - var(--header-height));
    padding: 20px 5% 30px;
    background: #fff;
    position: fixed;
    top: var(--header-height);
    right: -100%;
    overflow-y: scroll;
  }
  header.nav-open .nav-wrap {
    right: 0;
  }
  /* header .gnav{
		flex-direction: column;
		margin:0 0 10px;
		gap: 8px;
	} */
  header .gnav {
    --row: 2;
    --gap: 4px;
    flex-wrap: wrap;
    margin: 0 0 10px;
    gap: var(--gap);
  }
  header .gnav li {
    width: calc((100% - var(--gap) * calc(var(--row) - 1)) / var(--row));
  }
  header .gnav li a {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 70px;
    padding: 14px 1.2em;
    font-size: 13px;
    line-height: 1.5;
    background: var(--bg-main);
    border-radius: 10px;
    position: relative;
  }
  header .gnav li a::after {
    font: var(--fa-font-solid); /* 6.5.2 */
    content: "\f138";
    font-size: 1.2em;
    color: var(--c-main);
    transition: var(--transition);
    position: absolute;
    right: 0.5em;
    top: 50%;
    transform: translateY(-50%);
  }

  header .h-cv-btn_sp {
    display: flex;
    gap: 2%;
  }
  header .h-cv-btn_sp a[class^="btn_"] {
    /* width: 100%; */
    height: 56px;
    margin-top: 20px;
    padding: 0 1em;
    /* font-size: 3.3vw; */
    font-size: 3.8vw;
    border-radius: 10px;
    box-shadow: none;
  }
  header .h-cv-btn_sp a[class^="btn_"] span {
    justify-content: center;
  }

  /* h-info_sp */
  header .h-info_sp {
    display: block;
  }
  header .h-info_sp .h-tel_sp {
    margin: 20px auto;
    justify-content: center;
    font-size: 30px;
    font-size: min(7.5vw, 36px);
  }

  header .h-schedule-content [class^="schedule-table"] {
    margin-bottom: 15px;
  }
  header .h-schedule-content [class^="schedule-table"] td {
    padding: 8px 6px;
  }
  header .h-schedule-content .kome-list {
    font-size: 13px;
  }

  /* hamburger */
  header .hamburger {
    display: block;
    position: fixed;
    top: 0;
    right: 10px;
    z-index: 1500;
    width: var(--header-height);
    height: var(--hamburger);
    cursor: pointer;
    transition: all 400ms;
    background: var(--c-main);
    border-radius: 0 0 14px 14px;
  }
  header .hamburger span {
    position: absolute;
    width: 30px;
    height: 3px;
    background: #fff;
    transition: all 400ms;
    right: 0;
    left: 0;
    margin: 0 auto;
  }
  header .hamburger span:nth-child(1) {
    top: 32%;
  }
  header .hamburger span:nth-child(2) {
    top: 48%;
  }
  header .hamburger span:nth-child(3) {
    top: 64%;
  }
  /* hamburger __ nav-open */
  header.nav-open .hamburger span:nth-child(1) {
    top: 48%;
    transform: rotate(45deg);
  }
  header.nav-open .hamburger span:nth-child(2) {
    display: none;
  }
  header.nav-open .hamburger span:nth-child(3) {
    top: 48%;
    transform: rotate(-45deg);
  }
}

/* -------------------------------------
asd-contact
-------------------------------------*/
.asd-contact .asd-block {
  padding: 70px 50px 30px;
  text-align: center;
  background: var(--bg-main);
  border-radius: var(--radius);
}
.asd-contact .balloon {
  margin-bottom: -60px;
}
.asd-contact .balloon .tit-en {
  width: min(70%, 600px);
  margin: 0 auto;
  line-height: 1.3;
  border-radius: 100px;
}
.asd-contact .balloon .tit-en span {
  font-size: 1rem;
}
.asd-contact .lead {
  margin: 0 auto 12px;
}
.asd-contact figure {
  margin-top: 20px;
}
.asd-contact figure img {
  width: 250px;
}
.asd-contact .asd-tel {
  margin-bottom: 10px;
  font-size: 2.8rem;
}

@media (max-width: 520px) {
  .asd-contact .asd-block {
    padding: 80px 20px 40px;
  }
  .asd-contact .balloon {
    margin-bottom: -60px;
  }
  .asd-contact .balloon .tit-en {
    padding: 0.4em 1em 0.5em;
  }
  .asd-contact .balloon .tit-en span {
    font-size: 0.9rem;
  }
  .asd-contact .lead {
    width: 100%;
    margin: 10px auto 12px;
  }
  .asd-contact figure img {
    width: 66%;
  }
  .asd-contact .asd-tel {
    margin-bottom: 10px;
    font-size: 2.2rem;
  }
}

/* -------------------------------------
フッター
-------------------------------------*/
footer {
  margin-top: -100px;
  padding: 200px 0 50px;
  color: #fff;
  z-index: 1;
}
footer .f-main-content {
  width: min(90%, 1300px);
  display: grid;
  grid-template-columns: min(334px, 26%) auto;
  gap: max(6vw, 30px);
  margin: 0 auto 60px;
}
footer .f-main-content .address .f-logo {
  display: grid;
  place-items: center;
  margin-bottom: 20px;
  padding: 15px;
  background: #fff;
  border-radius: var(--radius-s);
}
footer .f-main-content .address .f-logo img {
  width: 50%;
}
footer .f-main-content .address p.strong {
  font-size: 1.1em;
}
footer .f-main-content .address address,
footer .f-main-content .address .maru-bf {
  margin-top: 10px;
  font-size: 0.9em;
  font-family: var(--font-df);
}
footer .f-main-content .address .maru-bf li {
  text-indent: -0.7em;
}
footer .f-main-content .address .maru-bf li + li {
  margin-top: 4px;
}
footer .f-main-content .address .maru-bf li::before {
  color: #fff;
}

footer .f-main-content .f-main_r {
  display: flex;
  flex-wrap: wrap;
  gap: 40px 3%;
}
footer .f-main-content .f-main_r .f-cv-btn {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 3%;
  margin-top: 20px;
}
footer .f-main-content .f-main_r .f-cv-btn a[class^="btn_"] {
  gap:0.5em;
  margin: 0;
}
footer .f-main-content .f-main_r ul.sitemap {
  flex: 1;
  height: 290px;
  column-count: 2; /*列数*/
  column-gap: 30px; /*ブロック要素同士の間隔*/
  column-fill: auto; /* [高さが指定されている場合のみに適用]段組みの高さで折り返すよう前の段に詰めて表示 */
}
footer .f-main-content .f-main_r ul.sitemap li {
  margin-bottom: 20px;
  break-inside: avoid; /*ブロックの途中で改行させない*/
}
footer .f-main-content .f-main_r ul.sitemap li a {
  display: block;
  font-size: 18px;
  font-weight: var(--fw-b);
  line-height: 1.5;
}
footer .f-main-content .f-main_r ul.sitemap li a:hover {
  text-decoration: underline;
}

footer .f-main-content .f-main_r .f-link-wrap {
  width: 260px;
}
footer .f-main-content .f-main_r .f-link-wrap .f-sns {
  display: flex;
  justify-content: space-around;
  margin-bottom: 20px;
}
footer .f-main-content .f-main_r .f-link-wrap .f-sns a {
  width: 42px;
}
footer .f-main-content .f-main_r .f-link-wrap .f-sns a:hover {
  opacity: var(--opacity);
}
footer .f-main-content .f-main_r .f-link-wrap .f-bnr {
  --row: 2;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
}
footer .f-main-content .f-main_r .f-link-wrap .f-bnr a:hover {
  opacity: var(--opacity);
}
footer .f-main-content .f-main_r .f-link-wrap .f-bnr a.f-bnr-caloo {
  width: 100%;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5%;
  color: var(--color);
  font-size: 0.7em;
  font-weight: var(--fw-b);
  line-height: 1.2;
  background: #fff;
  border-radius: 50px;
}
footer .f-main-content .f-main_r .f-link-wrap .f-bnr a.f-bnr-caloo img {
  width: 52%;
}
footer .f-main-content .f-main_r .f-link-wrap .f-bnr p {
  font-size: 15px;
  line-height: 1.5;
}

/* copyright */
.copyright {
  font-family: var(--font-df);
  font-size: 14px;
  text-align: center;
}

@media screen and (max-width: 520px) {
  footer {
    padding: 170px 0 70px;
  }
  footer .f-main-content {
    width: 85%;
    grid-template-columns: 1fr;
    gap: 30px;
    margin-bottom: 40px;
  }

  footer .f-main-content .address .f-logo {
    width: 50%;
    margin: 0 auto 20px;
    padding: 15px 0 20px;
  }
  footer .f-main-content .address .f-logo img {
    width: 60%;
  }

  footer .f-main-content .f-main_r {
    flex-direction: column;
  }
  footer .f-main-content .f-main_r .f-cv-btn {
    display: none;
  }

  /* サイトマップ */
  footer .f-main-content .f-main_r ul.sitemap {
    height: auto;
    column-count: unset; /*列数*/
  }
  footer .f-main-content .f-main_r ul.sitemap li:not(.pcsp) {
    display: none;
  }
  footer .f-main-content .f-main_r ul.sitemap li a {
    font-size: 1rem;
    text-decoration: underline;
  }

  /* リンク */
  footer .f-main-content .f-main_r .f-link-wrap {
    width: 90%;
    margin: 0 auto;
  }
  footer .f-main-content .f-main_r .f-link-wrap .f-sns {
    justify-content: center;
    gap: 40px;
    margin-bottom: 60px;
  }

  footer .f-main-content .f-main_r .f-link-wrap .f-bnr a.f-bnr-caloo img {
    width: 44%;
  }

  /* copyright */
  .copyright small {
    margin: 30px auto 0;
  }
}

/*sp-fix*/
.sp-fix {
  display: none;
}

@media (max-width: 520px) {
  /*sp-fix*/
  .sp-fix {
    width: 100vw;
    display: flex;
    position: fixed;
    left: 0;
    bottom: 0;
    z-index: 900;
  }
  .sp-fix a {
    width: 100%;
    height: 56px;
    justify-content: center;
    border-radius: var(--radius) var(--radius) 0 0;
  }
  .sp-fix .f-sp-tel {
    --color: #fff;
    gap: 10px;
    font-size: 1.1em;
    background: var(--c-main);
  }
  .sp-fix .f-sp-tel i.svg-tel svg {
    width: 16px;
  }
}

/** ==============================================
TOPページ
============================================== **/
/* -------------------------------------
mv
-------------------------------------*/
.mv-catch {
  padding: 50px 0;
  font-size: 40px;
  color: var(--c-main);
  font-weight: var(--fw-b);
  text-align: center;
  line-height: 1.5;
  background: url(/common/images/deco-flower_L.png) no-repeat left -10px top 15px / auto 100%,
    url(/common/images/deco-flower_R.png) no-repeat right top 10px / auto 90%;
}
.mv-catch strong {
  display: block;
  font-size: 1.5em;
}

/* mv-slide */
.mv-slide li {
  max-width: 40%;
  background: var(--c-main);
  border-radius: var(--radius);
  overflow: hidden;
}
.mv-slide li figure img {
  width: 100%;
}
.mv-slide li p {
  padding: 14px 2em 20px;
  font-size: 18px;
  color: #fff;
  line-height: 1.4;
}
/* 矢印 */
.mv-slide-wrap .splide__arrows.original-customize .splide__arrow.splide__arrow--prev {
  left: 1%;
}
.mv-slide-wrap .splide__arrows.original-customize .splide__arrow.splide__arrow--next {
  right: 1%;
}

.mv-text {
  margin: 50px auto 0;
  text-align: center;
  line-height: 2;
}
.mv-text span {
  display: block;
  margin-top: 10px;
  font-size: 0.8em;
}

@media (max-width: 520px) {
  /* -------------------------------------
	mv
	-------------------------------------*/
  .mv-catch {
    padding: 150px 0 50px;
    font-size: min(5.2vw, 22px);
    background-size: 44% auto, 32% auto;
    background-position: left -2% top 6vw, right -6% top 10vw;
  }
  .mv-catch strong {
    margin-top: 6px;
    font-size: 1.2em;
  }

  /* mv-slide */
  .mv-slide li {
    max-width: 100%;
  }
  .mv-slide li p {
    padding: 16px 2em 26px;
    font-size: 15px;
  }

  .mv-text {
    margin: 50px 8% 0;
  }
}

/* -------------------------------------
top-ひがし動物病院について
-------------------------------------*/
.top-rsv {
  width: 100%;
  aspect-ratio: 20/12;
  border: 6px solid var(--c-main);
}
.top-rsv iframe {
  width: 100%;
  height: 100%;
}

@media (max-width: 520px) {
  .sec-top-info .flx {
    gap: 35px;
    padding: 0 3%;
  }
  .top-rsv {
    aspect-ratio: 10/9;
    border-width: 3px;
    aspect-ratio: unset;
    height: 20em;
  }
  .sec-top-info .btn.mt30 {
    margin-top: 35px;
  }
}

/* -------------------------------------
top-メインメニュー
-------------------------------------*/
.sec-top-menu-btn {
  margin-top: -10px;
}

@media (max-width: 520px) {
  .sec-top-menu-btn {
    margin-top: 30px;
  }
}

/* -------------------------------------
top-お知らせ
-------------------------------------*/
.top-news-wrap {
  --gap: 80px;
  display: grid;
  grid-template-columns: 240px auto;
  gap: var(--gap);
}
.top-news-wrap .top-news-head {
  margin-top: 20px;
}

@media (max-width: 520px) {
  .sec-top-news {
    padding-bottom: 100px;
  }
  .top-news-wrap {
    --gap: 1px;
    grid-template-columns: 1fr;
  }
  .top-news-wrap .top-news-head {
    display: contents;
  }
  .top-news-wrap .btn {
    order: 3;
  }
}

/* -------------------------------------
top-お気軽にご相談ください
-------------------------------------*/
.top-about-content {
  display: grid;
  grid-template-columns: 51% auto;
  gap: 3%;
  background: url(/common/images/deco-kirakira.png) no-repeat right top / 100px auto;
}
.top-about-catch {
  margin: 0 0 40px -10%;
  color: var(--c-main);
  font-weight: var(--fw-b);
  line-height: 1.6;
}
.top-about-catch strong {
  display: block;
  margin-bottom: 15px;
  font-size: 2.2em;
  line-height: 1.4;
}

.top-about-content .check-list {
  margin-left: 4%;
  font-size: 18px;
}
.top-about-content .deco {
  width: 320px;
  margin: -50px -180px 0 auto;
  position: relative;
}

@media (max-width: 520px) {
  .top-about-content {
    grid-template-columns: 1fr;
    gap: 30px;
    margin-top: 30px;
    background-size: 24% auto;
  }
  .top-about-content .text {
    width: 94%;
    margin: 0 auto;
  }
  .top-about-catch {
    margin: 0 0 30px 2%;
  }
  .top-about-catch strong {
    margin-bottom: 10px;
    font-size: 1.5em;
    line-height: 1.6;
  }

  .top-about-content .check-list {
    margin-left: 8px;
    font-size: 1rem;
  }
  .top-about-content .deco {
    width: 40%;
    margin: 10px -5% 50px auto;
  }
}

/* -------------------------------------
top-３つの特徴
-------------------------------------*/
.sec-top-feature::before {
  content: "";
  display: block;
  width: 88%;
  height: 100%;
  -webkit-mask: url(/common/images/bg-mask-right-r.png) no-repeat left top / 100% 100%;
  mask: url(/common/images/bg-mask-right-r.png) no-repeat left top / 100% 100%;
  background: url(/common/images/bg-dot.png);
  position: absolute;
  left: 0;
  top: 0;
  z-index: -1;
}
.sec-top-feature::after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: url(/common/images/bg-dog-cat.png) no-repeat left 5% bottom / 550px auto;
  position: absolute;
  left: 0;
  bottom: -15px;
  z-index: 1;
  pointer-events: none;
}

.top-feature-wrap {
  display: grid;
  grid-template-columns: 30% auto;
  gap: 8%;
}
.top-feature-head {
  margin-top: 20px;
}
.top-feature-head .tit {
  color: var(--c-main);
  line-height: 1.4;
}

.top-feature-list li {
  display: grid;
  grid-template-columns: 40% auto;
  background: #fff;
  border: var(--border-c-main);
  border-radius: var(--radius);
  overflow: hidden;
}
.top-feature-list li + li {
  margin-top: 20px;
}
.top-feature-list li .text {
  padding: 30px;
}
.top-feature-list li .text .tit {
  color: var(--c-main);
}

/* デコ */
.sec-top-feature .deco {
  left: calc(11vw - 200px);
  bottom: 98%;
}

@media (max-width: 520px) {
  .sec-top-feature::before {
    mask: unset;
    border-radius: var(--radius);
  }
  .sec-top-feature::after {
    background-size: 50% auto;
    background-position: right 52% bottom;
    left: 0;
    bottom: -10px;
  }

  .top-feature-wrap {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .top-feature-head {
    display: contents;
  }
  .top-feature-head .top-feature-head-inner {
    width: 94%;
  }
  .top-feature-head .btn {
    order: 3;
    margin: 10px auto 22vw;
  }

  .feature-slide-wrap {
    width: 100vw;
    margin-left: -6vw;
  }
  .top-feature-list {
    display: flex;
    gap: unset;
  }
  .top-feature-list li {
    display: block;
    width: 100%;
    grid-template-columns: 1fr;
  }
  .top-feature-list li + li {
    margin-top: 0;
  }
  .top-feature-list li figure {
    width: 100%;
    aspect-ratio: 5/4;
  }
  .top-feature-list li .text {
    padding: 14px 2em 20px;
    font-size: 15px;
    line-height: 1.6;
  }

  /* デコ */
  .sec-top-feature .deco {
    width: 86%;
    left: -12%;
    bottom: 98%;
  }
}

/* -------------------------------------
top-診療時間のご案内
-------------------------------------*/
.schedule-content {
  display: grid;
  grid-template-columns: 680px auto;
  gap: 5%;
}
.schedule-content + .schedule-content {
  margin-top: 30px;
}

@media (max-width: 520px) {
  .schedule-content {
    grid-template-columns: 1fr;
    gap: 10px;
  }
}

/* -------------------------------------
top-診療科目
-------------------------------------*/

/* -------------------------------------
top-お役立ちコラム
-------------------------------------*/
.sec-top-column {
  overflow: hidden;
}
.top-column-wrap {
  --gap: 80px;
  display: grid;
  grid-template-columns: 280px auto;
  gap: var(--gap);
  margin-left: 10%;
}
.top-column-wrap .top-column-head {
  margin-top: 20px;
}
.top-column-wrap .top-column-main {
  padding-left: 20px;
  overflow: hidden;
}

/* スライド */
.top-column-wrap .column-list.splide__list {
  gap: unset;
  flex-wrap: nowrap;
}
.top-column-wrap .column-list.splide__list li {
  width: unset;
}
.top-column-wrap .column-list.splide__list li p {
  font-weight: var(--fw-b);
}
.top-column-slide-wrap .splide__arrows.original-customize .splide__arrow.splide__arrow--next {
  right: 10px;
}

@media (max-width: 520px) {
  .top-column-wrap {
    --gap: 30px;
    grid-template-columns: 1fr;
    margin-left: 0;
  }
  .top-column-wrap .top-column-head {
    display: contents;
  }
  .top-column-wrap .top-column-head .tit-en {
    padding-left: 6%;
  }
  .top-column-wrap .top-column-head .btn {
    order: 3;
    margin-top: 10px;
  }
  .top-column-wrap .top-column-main {
    padding-left: 0;
  }
}

/* -------------------------------------
top-ご利用者さまの声
-------------------------------------*/
.locaop {
  width: 100%;
  aspect-ratio: 10/5;
  border: 1px solid var(--gray);
  background: var(--bg-gray);
}
.locaop iframe {
  width: 100%;
  height: 100%;
}

@media (max-width: 520px) {
  .locaop {
    aspect-ratio: 10/12;
  }
}

/* -------------------------------------
top-アクセス
-------------------------------------*/
.top-access-info-content {
  display: grid;
  grid-template-columns: auto 680px;
  gap: 50px;
  margin-top: 70px;
}

.top-access-schedule-content table {
  width: 100%;
  margin-bottom: 20px;
}

.info-dl-wrap {
  display: grid;
  grid-template-columns: 1fr;
  gap: 30px;
}
.info-dl-wrap dl dt {
  font-size: 18px;
  color: var(--c-main);
  font-weight: var(--fw-b);
}
.info-dl-wrap dl dd.creditcard span {
  display: inline-block;
}
.info-dl-wrap dl dd.creditcard span:not(:last-child)::after {
  content: "・";
}

@media (max-width: 520px) {
  .top-access-info-content {
    grid-template-columns: 1fr;
    gap: 30px;
    margin-top: 40px;
  }

  .info-dl-wrap {
    gap: 20px;
  }
  .info-dl-wrap dl dt {
    margin-bottom: 6px;
    padding: 6px 1rem;
    font-size: 15px;
    background: var(--bg-main);
  }
  .info-dl-wrap dl dd {
    font-size: 14px;
  }
}

/** ==============================================
当院について
============================================== **/
/* -------------------------------------
診療体制について
-------------------------------------*/
.medical-system-list {
  --gap: 30px;
  font-weight: var(--fw-b);
  text-align: center;
  gap: 35px var(--gap);
}
.medical-system-list li {
  counter-increment: num 1;
  position: relative;
  overflow: visible;
  border: var(--border-c-main);
}
.medical-system-list li::before {
  content: counter(num, decimal-leading-zero); /* 10未満は頭に0がつく */
  --size: 60px;
  width: var(--size);
  height: var(--size);
  display: grid;
  place-content: center;
  color: #fff;
  font-size: 1.3em;
  background: var(--c-sub);
  border-radius: 50%;
  position: absolute;
  left: 50%;
  top: 0;
  transform: translate(-50%, -30%);
}
.medical-system-list li figure {
  width: 45%;
  aspect-ratio: 300/230;
  margin: 50px auto 10px;
}
.medical-system-list li figure img {
  width: 100%;
  height: 100%;
  aspect-ratio: unset;
  object-fit: contain;
}
.medical-system-list li .text {
  padding: 0 25px 25px;
}
.medical-system-list li sub {
  padding: 0 0.2em;
  font-size: 0.7em;
}

@media (max-width: 520px) {
  .medical-system-list {
    --gap: 20px;
    gap: 20px var(--gap);
  }
  .medical-system-list li::before {
    --size: 42px;
    font-size: 1.1em;
  }
  .medical-system-list li figure {
    width: 65%;
    margin: 36px auto 7px;
  }
  .medical-system-list li .text {
    padding: 0 5px 25px;
  }
  .medical-system-list li .text p {
    font-size: 0.8rem;
    line-height: 1.4;
  }
}

/* -------------------------------------
初診の方へ
-------------------------------------*/
@media (max-width: 520px) {
  .sec-firsttime .grid-h3-content .flx {
    flex-direction: column-reverse;
  }
}

/* -------------------------------------
初診の方-料金表
-------------------------------------*/

/* -------------------------------------
夜間救急診療を受診の方へ
-------------------------------------*/
.sec-night .note {
  background: #fff;
}
.sec-night .w_base::after {
  content: "";
  display: block;
  width: 100px;
  aspect-ratio: 1/1;
  background: url(/common/images/ico-night.svg) no-repeat center / contain;
  position: absolute;
  top: -50px;
  right: 90px;
}
.sec-night .note-tel {
  --color: var(--navy);
}
.sec-night .tit-l-line {
  color: var(--navy);
}

@media (max-width: 520px) {
  .sec-night .w_base::after {
    width: 80px;
    top: -100px;
    right: 60px;
  }
}

/* -------------------------------------
夜間-診療の流れ
-------------------------------------*/
.sec-night-flow .tit-l-square {
  color: var(--navy);
}
.sec-night-flow .flow-toggle dl dt {
  color: var(--bg-yellow);
  background: var(--navy);
}
.sec-night-flow .flow-toggle dl:not(:last-child)::after {
  background: var(--yellow);
  background: var(--navy);
  opacity: 0.3;
}

/* -------------------------------------
院内・設備紹介
-------------------------------------*/
.facility-list:not(.row2) {
  --gap: 35px;
}
.facility-list .text .tit span {
  font-size: 1em;
}
.facility-list .text p {
  font-size: 15px;
}

@media (max-width: 520px) {
  .facility-list:not(.row2) {
    --gap: 14px;
  }
}

/** ==============================================
スタッフ・獣医師勤務表
============================================== **/
/* -------------------------------------
スタッフ共通
-------------------------------------*/
.staff-list {
  /* --gap:70px; */
  font-size: 0.95em;
}
.staff-name.tit-l-line {
  margin-bottom: 14px;
}
.staff-name .kana {
  margin-left: -15px;
}
.staff-name em {
  font-size: 0.7em;
  margin-left: -15px;
}
.staff-name em::before {
  content: "／";
}
.group-photo {
  width: 80%;
  margin: 0 auto 70px;
  text-align: center;
  border-radius: var(--radius);
}
.group-photo img {
  width: 100%;
}

.staff-profile dl {
  display: flex;
  margin-bottom: 2px;
  line-height: 1.6;
}
.staff-profile dl dt {
  flex-shrink: 0;
}
.staff-profile dl dt::after {
  content: ":";
  padding: 0 5px;
}
.staff-profile dl.telling dd span {
  display: block;
  margin: 4px 0;
  font-size: 1.1em;
  color: var(--c-main);
  font-weight: var(--fw-b);
}

@media (max-width: 520px) {
  .group-photo {
    width: 100%;
    margin-bottom: 30px;
  }
  .staff-list {
    gap: 20px;
    padding: 0 3%;
  }
  .staff-list .text .staff-name {
    margin: 0 3% 10px;
  }
  .staff-profile {
    padding: 0 3%;
    font-size: 14px;
  }
  .staff-message {
    padding: 5px 10px;
    font-size: 14px;
    line-height: 1.6;
  }
}

/* -------------------------------------
院長紹介
-------------------------------------*/
.ceo-content {
  background: url(/common/images/deco-cat.png) no-repeat left bottom 30px / auto;
}
.ceo-content figure {
  width: 40%;
  flex: unset;
}
.ceo-content .staff-profile h4:not(:first-child) {
  margin-top: 20px;
}
.ceo-content .staff-profile h4 {
  font-weight: var(--fw-b);
}
.ceo-content .staff-profile h4::before {
  content: "●";
  margin-right: 4px;
  color: var(--c-main);
}

@media (max-width: 520px) {
  .ceo-content {
    background: none;
  }
  .ceo-content figure {
    width: 90%;
  }
  .ceo-content .text > *:not(.staff-message) {
    padding: 0 5%;
  }
  .ceo-content .staff-profile h4:not(:first-child) {
    margin-top: 10px;
  }
  .ceo-content .staff-profile dl {
    padding-left: 0.8em;
  }
}

/* -------------------------------------
獣医師紹介
-------------------------------------*/
/* .sec-doctor .w_base{
	background: url(/common/images/deco-cat2_R.png) no-repeat right 5% bottom 50px/ auto;
} */
.doctor-list {
  --gap: 50px;
}
.doctor-list figure {
  width: 100%;
  aspect-ratio: 3/2;
  margin-bottom: 20px;
  border-radius: var(--radius-s);
  position: relative;
  cursor: pointer;
}
.doctor-list figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  left: 0;
  top: 0;
  transition: 0.2s;
}
.doctor-list figure:hover .front {
  opacity: 0;
}
/* デコ */
.sec-doctor .deco-lr2 {
  justify-content: flex-end;
  position: absolute;
  right: 0;
  bottom: 0;
}

@media (max-width: 520px) {
  .doctor-list {
    gap: 60px;
  }
  .doctor-list figure {
    width: 60%;
    margin: 0 auto 20px;
  }
  .doctor-list .text {
    padding: 0 3%;
  }
  .doctor-list .text > *:not(.staff-message) {
    padding: 0 3%;
  }
  .doctor-list .text .staff-message {
    padding: 20px;
    background: #fff;
    border: 1px dotted var(--c-main);
    border-radius: var(--radius-s);
  }

  /* デコ */
  .sec-doctor .deco-lr2 {
    display: none;
  }
}

/* -------------------------------------
動物看護スタッフ紹介
-------------------------------------*/
.sec-nurse .staff-list li {
  padding: 20px;
  border-radius: var(--radius-s);
  background: var(--bg-main);
}
.sec-nurse .staff-list li.other {
  background: none;
  display: grid;
  place-content: center;
}
.sec-nurse .staff-list li.other span {
  border-bottom: 2px dotted var(--c-main);
}

@media (max-width: 520px) {
  .sec-nurse .staff-list li.other {
    place-content: unset;
    text-align: right;
  }
  .sec-nurse .staff-list li.other span {
    border-bottom: none;
  }
}

/* -------------------------------------
トリマースタッフ紹介
-------------------------------------*/
.sec-trimmer .staff-list li {
  padding: 20px;
  border-radius: var(--radius-s);
  background: #fff;
}

@media (max-width: 520px) {
  .sec-trimmer .staff-message {
    background: #fff;
  }
}

/* -------------------------------------
勤務医表
-------------------------------------*/
.doctor-table {
  table-layout: fixed;
  --time-width: 140px;
}
.doctor-table th,
.doctor-table td {
  font-size: 1rem;
}
.doctor-table th.schedule-time {
  border-right: 2px solid #fff;
}
.doctor-table td.schedule-hour {
  border-right: 1px solid var(--c-main);
}
.doctor-table th.schedule-time {
  width: var(--time-width);
}
.doctor-table th:not(.schedule-time) {
  width: calc((100% - var(--time-width)) / 7);
}
.doctor-table .schedule-hour {
  font-size: 1.1rem;
}
.doctor-table .schedule-ope td[colspan="7"] {
  /* color: var(--gray); */
  font-weight: 400;
}

@media (max-width: 520px) {
  .doctor-table {
    --time-width: 90px;
  }
  .doctor-table th,
  .doctor-table td {
    font-size: 14px;
  }
  .doctor-table th.schedule-time {
    border-right: 2px solid #fff;
  }
  .doctor-table td.schedule-hour {
    font-size: 13px;
  }
  .doctor-table th.schedule-time {
    width: var(--time-width);
  }
  .doctor-table th:not(.schedule-time) {
    width: calc((100% - var(--time-width)) / 7);
  }
  .doctor-table .schedule-hour {
    font-size: 1.1rem;
  }
  .doctor-table .schedule-ope td[colspan="7"] {
    /* color: var(--gray); */
    font-weight: 400;
  }

  /* スクロール */
  .doctor-table.schedule-table_day {
    min-width: 500px;
  }
}

/** ==============================================
アクセス・駐車場
============================================== **/
/* -------------------------------------
アクセス
-------------------------------------*/
.access-content .gmap {
  height: 400px;
}

.gmap00 iframe {
  aspect-ratio: 1 / 1;
  width: 100%;
  height: auto;
}
.access-content .info-dl-wrap {
  gap: 20px;
  margin-top: 20px;
}
.access-content .info-dl-wrap dl {
  display: grid;
  grid-template-columns: 6em auto;
  gap: 20px;
}

@media (max-width: 520px) {
  .access-content .gmap,
  .access-content .gmap iframe {
    min-height: 32vh;
  }
  .access-content .info-dl-wrap {
    gap: 20px;
    margin-top: 20px;
  }
  .access-content .info-dl-wrap dl {
    grid-template-columns: 1fr;
    gap: 2px;
  }
  .access-content .info-dl-wrap dl dd {
    padding-left: 10px;
  }
}

/* -------------------------------------
駐車場地図
-------------------------------------*/
.parking-map-content {
  flex-direction: row-reverse;
}
.parking-map-content .info-dl-wrap {
  margin-top: 20px;
  line-height: 2;
}
.parking-map-content figure {
  border-radius: var(--radius);
}

/* デコ */
.sec-parking-map .deco-lr2 {
  justify-content: flex-end;
  position: absolute;
  right: 0;
  bottom: 0;
}

@media (max-width: 520px) {
  .parking-map-content {
    flex-direction: column;
  }
  .parking-map-content .info-dl-wrap {
    margin-top: 0;
  }

  /* デコ */
  .sec-parking-map .deco-lr2 {
    display: none;
  }
}

/* -------------------------------------
駐車場ルート
-------------------------------------*/
.way-content {
  margin-bottom: 30px;
  padding: 20px 40px 30px;
  background: #fff;
  border-radius: var(--radius);
  position: relative;
}
.way-list {
  display: grid;
  grid-template-columns: 1fr;
}
.way-list li + li::before {
  content: "";
  display: block;
  width: 40px;
  aspect-ratio: 3/2;
  clip-path: polygon(0 0, 50% 100%, 100% 0);
  margin: 17px 0 17px 13%;
  background: var(--c-sub);
}
.way-list li figure {
  display: flex;
  gap: 10px;
}
.way-list li figure + figure {
  margin-top: 15px;
}
.way-list li figure img {
  width: 35%;
  border-radius: var(--radius-s);
}
.way-list li figure figcaption {
  margin: 20px 0 0 20px;
}
.way-list li figure figcaption strong {
  color: var(--c-main);
  font-weight: var(--fw-b);
}

@media (max-width: 520px) {
  .way-content {
    margin-bottom: 30px;
    padding: 25px 20px 30px;
  }
  .way-list li + li::before {
    margin: 20px auto;
  }
  .way-list li figure {
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: center;
    gap: 12px;
  }
  .way-list li figure + figure {
    margin-top: 20px;
  }
  .way-list li figure img {
    width: 92%;
  }
  .way-list li figure figcaption {
    margin: 0 6%;
    font-size: 14px;
  }
  .way-list li figure figcaption strong {
    font-size: 1.1em;
  }
}

/** ==============================================
WEB予約・よくあるご質問
============================================== **/
/* -------------------------------------
WEB予約
-------------------------------------*/
/* -------------------------------------
WEB予約の流れ
-------------------------------------*/

/* -------------------------------------
よくあるご質問
-------------------------------------*/
.faq-content-wrap {
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
}
/* faq-list */
.faq-list dl {
  margin-bottom: 16px;
  background: #fff;
  border: var(--border-c-main);
  border-radius: var(--radius-s);
}
.faq-list dt {
  display: flex;
  font-weight: var(--fw-b);
  cursor: pointer;
}
.faq-list dt::before {
  --size: 60px;
  content: "Q";
  width: var(--size);
  height: var(--size);
  display: grid;
  place-items: center;
  font-size: 1.4rem;
  color: var(--c-main);
  font-weight: var(--fw-b);
}
.faq-list dt::after {
  --size: 3em;
  content: "add";
  font-family: "Material Icons";
  width: var(--size);
  height: var(--size);
  display: grid;
  place-items: center;
  margin-top: 5px;
  color: var(--c-main);
  font-size: 1.1rem;
  font-weight: var(--fw-b);
}
.faq-list dt.on::after {
  content: "remove";
}
.faq-list dl dt span {
  flex: 1;
  padding: 15px 15px 15px 0;
}
.faq-list dd {
  padding: 0 55px 20px;
}

@media screen and (max-width: 520px) {
  /* faq-list */
  .faq-list dl {
    margin-bottom: 16px;
    line-height: 1.5;
  }
  .faq-list dt {
    font-size: 15px;
  }
  .faq-list dt::before {
    --size: 57px;
    width: 2.5em;
    font-size: 1.1rem;
  }
  .faq-list dt::after {
    --size: 2em;
    margin-top: 11px;
    font-size: 1.1rem;
  }
  .faq-list dt span {
    padding: 12px 12px 6px;
  }
  .faq-list dd {
    padding: 0 24px 24px 40px;
    font-size: 14px;
  }
}

/** ==============================================
診療科目
============================================== **/
/* -------------------------------------
service-content
-------------------------------------*/
.service-content {
  display: grid;
  grid-template-columns: 1fr;
  gap: 70px;
}
.service-content .service .text {
  margin-top: 10px;
}
.service-content .service .text .check-list {
  margin-left: 2%;
}
.service-content .service a:is(.btn, [class^="btn_"]).mini {
  width: fit-content;
  min-width: 60%;
}
.service-content .service figure {
  width: 32%;
  flex: unset;
}
.service-content .service figure img {
  border-radius: var(--radius);
}
.service-content .service figure figcaption {
  margin: 15px 15px 0;
  font-size: 0.9em;
  line-height: 1.4;
}

@media (max-width: 520px) {
  .service-content {
    gap: 70px;
  }
  .service-content .service {
    gap: 20px;
    flex-direction: column;
  }
  .service-content .service .text {
    width: 95%;
    margin-top: 0;
  }
  .service-content .service a:is(.btn, [class^="btn_"]).mini {
    min-width: 70%;
  }
  .service-content .service figure {
    width: 90%;
  }
}

/* -------------------------------------
診療科目
-------------------------------------*/
.anc-specialty.ancBtn {
  --row: 4;
}

@media (max-width: 520px) {
  .anc-specialty.ancBtn {
    --row: 2;
    width: 100%;
  }
  .anc-specialty.ancBtn a {
    font-size: 0.75em;
  }
}

/* -------------------------------------
予防診療科
-------------------------------------*/
.yobou-schd-tit {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 30px;
  color: var(--c-main);
  text-align: center;
}
.yobou-schd-tit::before {
  content: "";
  display: block;
  width: 114px;
  aspect-ratio: 114/90;
  background: url(/common/images/deco-tit-dog.png) no-repeat center / contain;
}
.yobou-schd-tit::after {
  content: "";
  display: block;
  width: 114px;
  aspect-ratio: 114/78;
  background: url(/common/images/deco-tit-cat.png) no-repeat center / contain;
}
.yobou-schd {
  text-align: center;
  background: #fff;
}
.yobou-schd img {
  padding: 20px;
  background: #fff;
  border-radius: var(--radius);
}

/* prevention-item */
.prevention-item-wrapper {
  display: grid;
  grid-template-columns: 1fr;
  gap: 25px;
}
.prevention-item dt {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  margin-bottom: 10px;
  font-size: 1.2em;
  color: var(--c-main);
  font-weight: var(--fw-b);
  text-align: center;
}
.prevention-item dt i {
  width: 52px;
}
.prevention-item dd {
  gap: 10px var(--gap);
  padding: 24px 30px;
  font-size: 0.9em;
  background: var(--bg-main);
  border-radius: var(--radius);
}
.prevention-item dd span {
  display: grid;
  grid-template-columns: 0.8em auto;
  gap: 5px;
  line-height: 1.4;
}
.prevention-item dd span::before {
  content: "●";
  padding-top: 3px;
  font-size: 0.8em;
  color: var(--c-main);
}

/* prevention-sub */
.prevention-sub-wrapper {
  display: grid;
  grid-template-columns: 1fr;
  gap: 25px;
  margin-inline: 3%;
}
.prevention-sub dd {
  max-width: 830px;
  font-size: 0.9em;
}

/* prevention-expense-dl-wrapper */
.prevention-expense-dl-wrapper {
  margin-inline: 3%;
}
.prevention-expense-dl-wrapper .expense-dl:not(:first-child) {
  margin-top: 20px;
}
.prevention-expense-dl-wrapper .expense-dl dl {
  padding-block: 10px;
}
.prevention-expense-dl-wrapper .expense-dl dl dt {
  font-size: 0.9em;
}
.prevention-expense-dl-wrapper p {
  margin-top: 10px;
  font-size: 0.8em;
  text-align: right;
}

/* campaign-bnr */
.campaign-bnr {
  max-width: 70%;
  margin: 10px auto;
}
.campaign-bnr:hover {
  opacity: var(--opacity);
}

@media (max-width: 520px) {
  .yobou-schd-tit.fz28 {
    gap: 20px;
    font-size: min(4.6vw, 20px);
  }
  .yobou-schd-tit::before,
  .yobou-schd-tit::after {
    width: 40px;
  }
  .yobou-schd img {
    width: 780px;
    max-width: unset;
    padding: 15px;
    border-radius: var(--radius-s);
  }

  /* prevention-item */
  .prevention-item dt {
    gap: 15px;
    font-size: 1.1em;
  }
  .prevention-item dt i {
    width: 40px;
  }
  .prevention-item dd {
    padding: 24px 20px;
  }

  /* prevention-sub */
  .prevention-sub-wrapper {
    gap: 15px;
  }

  /* prevention-expense-dl-wrapper */
  .prevention-expense-dl-wrapper .expense-dl:not(:first-child) {
    margin-top: 24px;
  }
  .prevention-expense-dl-wrapper .expense-dl dl {
    padding-block: 6px;
  }
  .prevention-expense-dl-wrapper p {
    margin-top: 14px;
  }

  /* campaign-bnr */
  .campaign-bnr {
    max-width: 90%;
  }
}

/* -------------------------------------
救急診療科
-------------------------------------*/
.service-night {
  max-width: 600px;
  padding: 20px 40px;
  background: var(--bg-navy);
  border-radius: var(--radius-s);
  position: relative;
}
.service-night::after {
  content: "";
  display: block;
  width: 80px;
  aspect-ratio: 1 / 1;
  background: url(/common/images/ico-night.svg) no-repeat center / contain;
  position: absolute;
  top: 20px;
  right: 30px;
}

.service-night .strong span {
  display: inline-block;
  font-size: 0.8em;
}
.service-night .tel {
  --color: var(--navy);
}

@media (max-width: 520px) {
  .service-night {
    padding: 20px;
  }
  .service-night::after {
    width: 70px;
    top: auto;
    bottom: 15px;
    right: 20px;
  }
  .service-night a.tel.fz24 {
    font-size: 24px;
  }
  .service-night a.tel.fz24 i.svg-tel svg {
    width: 16px;
    margin-top: 6px;
  }
}

/* -------------------------------------
治療や手術に関する主なリスク・副作用
-------------------------------------*/
.sec-service-btn a[class^="btn_"] {
  width: fit-content;
  max-width: 90%;
}
.sec-service-btn .deco {
  right: 0;
  bottom: 0;
}

@media (max-width: 520px) {
  .sec-service-btn {
    overflow: hidden;
  }
  .sec-service-btn .deco {
    width: 85%;
    right: -17%;
    bottom: -40px;
    z-index: -1;
  }
}

/** ==============================================
トリミング・ペットホテル
============================================== **/
/* -------------------------------------
trimming-mv
-------------------------------------*/
/* trimming-mv-slide */
.trimming-mv-slide li {
  max-width: 40%;
  border-radius: var(--radius);
  overflow: hidden;
}
.trimming-mv-slide li figure img {
  width: 100%;
}
/* 矢印 */
.trimming-mv-slide-wrap .splide__arrows.original-customize .splide__arrow.splide__arrow--prev {
  left: 1%;
}
.trimming-mv-slide-wrap .splide__arrows.original-customize .splide__arrow.splide__arrow--next {
  right: 1%;
}

.trimming-mv-text {
  margin: 50px auto 0;
  text-align: center;
  line-height: 2;
}

@media (max-width: 520px) {
  /* trimming-mv-slide */
  .trimming-mv-slide li {
    max-width: 100%;
  }

  .trimming-mv-text {
    margin: 20px 2em 0;
    font-size: 15px;
  }
}

/* -------------------------------------
ご希望＆お悩み
-------------------------------------*/
.request-content {
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
}
.request-content .request:nth-child(even) {
  flex-direction: row-reverse;
}
.request-content .request {
  align-items: center;
}
.request-content .request figure {
  width: 51%;
  flex: unset;
  border-radius: var(--radius);
}

@media (max-width: 520px) {
  .request-content {
    gap: 60px;
  }
  .request-content .request,
  .request-content .request:nth-child(even) {
    gap: 20px;
    flex-direction: column-reverse;
  }
  .request-content .request .text {
    width: 85%;
  }
  .request-content .request figure {
    width: 90%;
  }
}

/* -------------------------------------
アンカーリンク
-------------------------------------*/
.anc-trimming.ancBtn {
  --row: 2;
}

/* -------------------------------------
トリミング・ペットホテル
-------------------------------------*/
@media (max-width: 520px) {
  :is(.sec-trimming, .sec-pethotel).bg-leaf-lr {
    background-position: left -70vw bottom 5%, right -26vw top 50px;
    z-index: 20;
  }
  .fig-lead-wrap {
    --gap: 2%;
  }
  .fig-lead-wrap .lead {
    width: 90%;
    margin-top: 0;
    text-align: left;
  }
}

/* -------------------------------------
トリミング料金
-------------------------------------*/
.trimming-expense-content-wrap {
  display: grid;
  grid-template-columns: 1fr;
  gap: 50px;
}

@media (max-width: 520px) {
  .trimming-expense-content-wrap {
    gap: 40px;
  }
}
/* -------------------------------------
トリミングお知らせ
-------------------------------------*/
/* スライド */
.splide.is-initialized:not(.is-active) ul.column-list.splide__list {
  display: flex;
}

@media (max-width: 520px) {
  .column-main {
    width: 100vw;
    margin-left: -6vw;
  }
  .column-slide-wrap .column-list.splide__list {
    gap: unset;
    flex-wrap: nowrap;
  }
  .column-slide-wrap .column-list.splide__list li {
    width: unset;
  }
  .column-slide-wrap .column-list.splide__list li p {
    font-weight: var(--fw-b);
  }
  .column-slide-wrap .splide__arrows.original-customize .splide__arrow.splide__arrow--next {
    right: 10px;
  }
}

/* -------------------------------------
SNS　インスタ＆LINE
-------------------------------------*/
.sec-sns .w_base .btn-wrap {
  width: 80%;
  margin: 0 auto;
}
.sec-sns .w_base .btn-wrap a:hover img {
  opacity: var(--opacity);
}

/* -------------------------------------
ペットホテル
-------------------------------------*/
.sec-pethotel .lead strong {
  display: block;
}

/* -------------------------------------
ペットホテル料金
-------------------------------------*/
.sec-pethotel-expense {
  background: url(/common/images/deco-flower_R.png) no-repeat right bottom 0px / auto 74%;
}

@media (max-width: 520px) {
  .sec-pethotel-expense {
    background-size: auto 40%;
    background-position: right -15% bottom;
  }
}

/** ==============================================
お問い合わせ
============================================== **/
/* -------------------------------------
リード
-------------------------------------*/
@media (max-width: 520px) {
  .sec-contact-lead .lead {
    width: 90%;
    text-align: left;
  }
}

/* -------------------------------------
WEBから
-------------------------------------*/
@media (max-width: 520px) {
  .sec-contact .t_C.richtext p {
    width: 90%;
    text-align: left;
  }
}

/* -------------------------------------
form
-------------------------------------*/
form label:has(input[type="checkbox"][name="input[select][]"]) {
  display: block;
}

/* フォームの表示／非表示を切り替える */
section:has(div[data-form="非表示"]) {
  display: none;
}
/*widget:755f6aee-86fd-4949-a1be-7d7e896535c8*/
/*widget:0340da15-aea9-478c-b0a6-892136d8ee9a*/
/*widget:aeb67983-5091-4fac-a39f-020e6498e655*/
/*widget:d8c3c920-799e-4b66-bb3e-274e3f7bc56f*/
/*widget:1f9eebae-058f-4200-8bdb-1b349a24e67c*/
/*widget:3cfcd636-35a2-4d22-a363-26f13a5c3ed3*/
/*widget:c58c1ae3-5a5d-4776-a45b-a61145533558*/
/*widget:8b1f889a-8af4-4c3b-85ef-43e36c44f4c2*/
/*widget:254d5154-faa1-4a5e-bd4d-f0538ce5ad8f*/
/*instance:1141*//*instance mediea*/@media screen and (max-width: 520px) {}/*widget:3a60caa8-e323-417b-a044-422b70247f14*/
/*widget:f1169ad1-2ced-4eb5-8b6a-2dd2dd66876a*/
/*widget:401922b7-387a-4421-81bd-ae0a8166c8fc*/
/*layout:1*//*layout:2*//*layout:3*//*layout:4*//*layout:6*/