@charset "UTF-8";
/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

body {
  line-height: 1;
}

ol,
ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
  content: "";
  content: none;
}

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

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

*,
*::before,
*::after {
  box-sizing: border-box;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

html {
  font-size: 62.5%;
  scroll-behavior: smooth;
  scroll-padding-top: var(--header-height, 180px);
  overflow-x: clip;
}
@media (max-width: 768px) {
  html {
    scroll-padding-top: var(--header-height, 120px);
  }
}

[id^=cont] {
  scroll-margin-top: var(--header-height, 180px);
}
@media (max-width: 768px) {
  [id^=cont] {
    scroll-margin-top: var(--header-height, 120px);
  }
}

body {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  color: #333;
  background-color: #fff;
  background-image: url("../img/bg-page-common.webp");
  background-repeat: repeat;
  line-height: 2;
  font-size: 1.6rem;
  overflow-x: clip;
}

p {
  font-size: 1.6rem;
}

strong, b {
  font-weight: 700;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
  font-style: italic;
  background-size: cover;
  shape-margin: 0.75rem;
  color: #333;
}

a {
  -webkit-tap-highlight-color: transparent;
}

button,
input,
textarea,
select,
[role=button] {
  -webkit-tap-highlight-color: transparent;
}

::selection {
  background: rgba(0, 0, 0, 0.08);
}

a[href^="tel:"] {
  color: inherit;
  text-decoration: none;
}

.no-scroll {
  overflow: hidden !important;
}

html.no-scroll {
  overflow: hidden !important;
}

.lity {
  background-color: rgba(0, 0, 0, 0.8) !important;
  background-image: none !important;
}

.lity-content img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  max-width: 100vw !important;
  max-height: 100vh !important;
  min-width: min(600px, 100vw);
  display: block;
  margin: 0 auto;
}

.goog-te-banner-frame.skiptranslate,
iframe.goog-te-banner-frame {
  display: none !important;
}

body {
  top: 0px !important;
}

.gt_switcher.notranslate,
.gt_selected,
.gt_selected a,
[class*=gt_container] {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: unset !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  left: 0 !important;
  right: 0 !important;
  transform: none !important;
}

[class*=gt_container],
.gt_switcher,
.gt_selected,
.gt_selected a {
  z-index: 99 !important;
}

.pc-br {
  display: none;
}
@media (min-width: 1025px) {
  .pc-br {
    display: block;
  }
}

.sp-br {
  display: block;
}
@media (min-width: 1025px) {
  .sp-br {
    display: none;
  }
}

.u-visible-sp {
  display: block;
}
@media (min-width: 1025px) {
  .u-visible-sp {
    display: none;
  }
}

.l-footer {
  position: relative;
  z-index: 30;
  background-color: #001f43;
  border-top: 1px solid #e7e7e7;
  color: #fff;
  padding: 5rem 0;
}
@media (max-width: 768px) {
  .l-footer {
    padding: 0;
  }
}
.l-footer__logo {
  margin-bottom: 2rem;
}
.l-footer__logo img {
  max-width: 200px;
  filter: brightness(0) invert(1);
}
.l-footer__info {
  font-size: 1.4rem;
  margin-bottom: 2rem;
}
.l-footer__info p {
  font-size: 1.4rem;
  color: #fff;
}
.l-footer__nav .p-footer-grid {
  display: grid;
  grid-template-columns: 1.35fr 1fr 1.45fr 1fr 0.95fr;
  gap: 1.5rem 2rem;
  padding-top: 10px;
}
@media (max-width: 1024px) {
  .l-footer__nav .p-footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 768px) {
  .l-footer__nav .p-footer-grid {
    display: block;
  }
}
.l-footer__nav .p-footer-grid__item {
  margin-bottom: 2rem;
  min-width: 0;
}
@media (max-width: 768px) {
  .l-footer__nav .p-footer-grid__item {
    width: 100%;
    margin-bottom: 2rem;
    padding-bottom: 2rem;
    border-bottom: 1px dashed rgba(255, 255, 255, 0.2);
  }
  .l-footer__nav .p-footer-grid__item:last-child {
    border-bottom: none;
  }
}
.l-footer__nav .p-footer-grid__title {
  font-size: 1.6rem;
  font-weight: 700;
  margin-bottom: 1.5rem;
  color: #fff;
  border-bottom: 1px solid rgba(255, 255, 255, 0.3);
  padding-bottom: 0.5rem;
}
.l-footer__nav .p-footer-grid__title a {
  color: #fff;
  text-decoration: none;
}
.l-footer__nav .p-footer-grid__title a:hover {
  opacity: 0.8;
}
.l-footer__nav .p-footer-grid__list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.l-footer__nav .p-footer-grid__list li {
  margin-bottom: 0.8rem;
  font-size: 1.3rem;
}
.l-footer__nav .p-footer-grid__list li a {
  color: #ddd;
  text-decoration: none;
  transition: opacity 0.3s;
  word-break: keep-all;
  line-break: strict;
  overflow-wrap: normal;
}
@media (max-width: 1024px) {
  .l-footer__nav .p-footer-grid__list li a {
    word-break: normal;
    overflow-wrap: break-word;
    line-break: auto;
  }
}
.l-footer__nav .p-footer-grid__list li a:hover {
  opacity: 1;
  color: #fff;
  text-decoration: underline;
}
.l-footer__nav .p-footer-grid__list li .p-footer-grid__nobr {
  white-space: nowrap;
}
.l-footer .c-footer__copyright {
  display: block;
  color: #fff;
  font-size: 1.2rem;
  letter-spacing: 0.05em;
  margin-top: 10rem;
  margin-bottom: 2rem;
  text-align: center;
}
.l-footer__sns {
  display: flex;
  gap: 15px;
  margin-top: 20px;
}
.l-footer__sns a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 50%;
  color: #fff;
  font-size: 1.8rem;
  transition: all 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}
.l-footer__sns a:hover {
  background-color: #fff;
  border-color: #fff;
  color: #1e3a61;
  opacity: 1;
  text-decoration: none;
}

.l-header {
  margin-bottom: 0;
  border: none;
  background-color: transparent;
  border-radius: 0;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 999;
  transition: background-color 0.3s ease, backdrop-filter 0.3s ease;
}
.l-header::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #fff;
  z-index: -1;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
.l-header.is-scrolled::before {
  background-color: rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.l-header__inner {
  width: 100%;
  padding: 0 20px;
}
@media (min-width: 1025px) {
  .l-header__inner {
    padding-right: 10px;
  }
}
@media (max-width: 900px) {
  .l-header__inner {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
    display: block;
  }
  .l-header__inner.container, .l-header__inner.container-fluid {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .l-header__inner::before, .l-header__inner::after {
    display: none !important;
    content: none !important;
  }
}
@media (min-width: 901px) {
  .l-header__inner {
    display: flex;
    justify-content: space-between;
    align-items: stretch;
  }
}
@media (max-width: 900px) {
  .l-header__main {
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
  }
}
.l-header__main .navbar-header, .l-header__main .navbar-collapse {
  float: none !important;
}
.l-header__main .navbar-header {
  margin-right: auto;
}
.l-header__main .navbar-header .navbar-brand {
  display: flex;
  align-items: center;
  padding: 12px 0 !important;
  margin: 0;
  float: none !important;
  height: auto !important;
  min-height: 0 !important;
}
.l-header__main .navbar-header .navbar-brand img {
  max-height: 50px !important;
  width: auto !important;
}
@media (max-width: 900px) {
  .l-header__main .navbar-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    min-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    float: none !important;
  }
  .l-header__main .navbar-header::before, .l-header__main .navbar-header::after {
    display: none !important;
    content: none !important;
  }
  .l-header__main .navbar-header .navbar-brand {
    padding: 0 !important;
    padding-left: 15px !important;
    margin: 0 !important;
    height: auto;
    display: flex !important;
    align-items: center;
    float: none !important;
  }
  .l-header__main .navbar-header .navbar-brand img {
    height: 32px;
    width: auto;
    margin: 0 !important;
  }
  .l-header__main .navbar-header .navbar-toggle {
    display: block !important;
    margin: 0 !important;
    margin-right: 15px !important;
    padding: 10px 0 !important;
    background-color: transparent;
    border: none;
    float: none !important;
    position: relative;
    z-index: 2;
  }
  .l-header__main .navbar-header .navbar-toggle:hover, .l-header__main .navbar-header .navbar-toggle:focus {
    background-color: transparent !important;
  }
  .l-header__main .navbar-header .navbar-toggle .icon-bar {
    display: block;
    width: 22px;
    height: 2px;
    border-radius: 1px;
    background-color: #888;
    transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out;
    position: relative;
    transform-origin: center;
  }
  .l-header__main .navbar-header .navbar-toggle .icon-bar + .icon-bar {
    margin-top: 4px;
  }
  .l-header__main .navbar-header .navbar-toggle:not(.collapsed) .icon-bar:nth-of-type(2) {
    transform: translateY(6px) rotate(45deg);
  }
  .l-header__main .navbar-header .navbar-toggle:not(.collapsed) .icon-bar:nth-of-type(3) {
    opacity: 0;
  }
  .l-header__main .navbar-header .navbar-toggle:not(.collapsed) .icon-bar:nth-of-type(4) {
    transform: translateY(-6px) rotate(-45deg);
  }
}
@media (min-width: 901px) {
  .l-header__main .navbar-collapse {
    display: flex !important;
    align-items: center;
    flex: 1;
    justify-content: flex-end;
  }
}
@media (max-width: 900px) {
  .l-header__main .navbar-collapse {
    display: none !important;
  }
  .l-header__main .navbar-collapse.in {
    display: block !important;
  }
}

.l-header__top-bar {
  background-color: #f8f8f8;
  border-bottom: 1px solid #e7e7e7;
  padding: 2px 0;
  font-size: 1.1rem;
}
.l-header__top-bar .l-header__caption {
  font-size: 1.1rem;
  margin: 0;
  line-height: 1.5;
  color: #666;
  font-weight: normal;
}
.l-header__top-bar .l-header__inner {
  padding-top: 0;
  padding-bottom: 0;
  padding-right: 10px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
@media (max-width: 900px) {
  .l-header__top-bar .l-header__inner [class*=col-] {
    width: 100% !important;
    text-align: center !important;
    padding-left: 15px !important;
    padding-right: 15px !important;
    float: none !important;
  }
}
@media (max-width: 900px) {
  .l-header__top-bar .l-header__inner {
    padding-right: 0 !important;
    padding-left: 0 !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
  .l-header__top-bar .l-header__inner [class*=col-] {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}
.l-header__top-bar .l-header__inner::before, .l-header__top-bar .l-header__inner::after {
  display: none;
}

.p-header-top-nav {
  display: flex;
  justify-content: flex-end;
  align-items: center;
}
@media (max-width: 900px) {
  .p-header-top-nav {
    justify-content: center;
    width: 100%;
    margin-top: 5px;
    flex-wrap: wrap;
  }
}
.p-header-top-nav .p-header-sns {
  display: flex;
  gap: 20px;
  margin-right: 12px;
  padding-right: 12px;
  border-right: 1px solid #ddd;
}
@media (max-width: 900px) {
  .p-header-top-nav .p-header-sns {
    display: flex !important;
    margin-right: 15px;
    padding-right: 0;
    border-right: none;
    margin-bottom: 0;
    width: auto;
    justify-content: center;
  }
}
.p-header-top-nav .p-header-sns a {
  color: #666;
  font-size: 1.4rem;
  transition: color 0.3s;
  line-height: 1;
}
.p-header-top-nav .p-header-sns a:hover {
  color: #1e3a61;
}
.p-header-top-nav .menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
}
@media (max-width: 900px) {
  .p-header-top-nav .menu {
    width: auto;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px 0;
    display: flex !important;
  }
}
.p-header-top-nav .menu li {
  display: block;
  margin-left: 12px;
  white-space: nowrap;
}
@media (max-width: 900px) {
  .p-header-top-nav .menu li.menuitem-page-notice, .p-header-top-nav .menu li.menuitem-page-news, .p-header-top-nav .menu li.menuitem-page-blog {
    display: none !important;
  }
}
.p-header-top-nav .menu li a {
  color: #666;
  text-decoration: none;
}
.p-header-top-nav .menu li a i {
  margin-right: 5px;
  color: #1e3a61;
}
.p-header-top-nav .menu li a:hover {
  text-decoration: underline;
}
.p-header-top-nav .menu li.menuitem-language {
  width: auto;
  min-width: 200px;
  position: relative;
}
@media (max-width: 900px) {
  .p-header-top-nav .menu li.menuitem-language {
    margin-left: 0 !important;
    width: auto;
    display: flex;
    justify-content: center;
  }
}
@media (max-width: 768px) {
  .p-header-top-nav .menu li.menuitem-language {
    width: auto;
    min-width: 140px;
  }
}
.p-header-top-nav .menu li.menuitem-language .gt_switcher {
  width: 100% !important;
}
.p-header-top-nav .menu li.menuitem-language .gt_switcher .gt_selected {
  width: 100% !important;
}
.p-header-top-nav .menu li.menuitem-language .gt_switcher .gt_selected a {
  width: 100% !important;
  display: block;
}
.p-header-top-nav .menu li.menuitem-language .gt_switcher .gt_option {
  width: auto !important;
  min-width: 100% !important;
  white-space: nowrap !important;
  z-index: 10000 !important;
}
.p-header-top-nav .menu li.menuitem-language .gt_switcher .gt_option a {
  white-space: nowrap !important;
  padding-right: 20px !important;
  display: block;
  width: 100%;
}

.c-breadcrumbs {
  position: absolute;
  top: 20px;
  right: 40px;
  font-size: 1.2rem;
  color: #fff;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
  z-index: 5;
}
@media (max-width: 768px) {
  .c-breadcrumbs {
    right: 15px;
    top: 15px;
    font-size: 1rem;
  }
}
.c-breadcrumbs > span, .c-breadcrumbs a {
  margin: 0 8px;
  display: inline-block;
}
.c-breadcrumbs a {
  color: #fff;
  text-decoration: none;
  transition: opacity 0.3s;
}
.c-breadcrumbs a:hover {
  color: #1e3a61;
  text-decoration: underline;
}
.c-breadcrumbs .current-item {
  color: #fff;
  font-weight: bold;
}

@media (max-width: 900px) {
  .p-global-nav__list {
    float: none;
    margin: 0;
    text-align: center;
    display: block;
  }
}
@media (min-width: 901px) {
  .p-global-nav__list {
    display: flex;
    align-items: stretch;
    height: 100%;
    margin: 0;
    white-space: nowrap;
  }
}
@media (min-width: 901px) {
  .p-global-nav__list > li {
    display: flex;
    align-items: center;
    height: 100%;
  }
}
.p-global-nav__list > li > a {
  color: #333;
  font-size: 1.4rem;
  font-weight: 500;
  padding-top: 15px;
  padding-bottom: 15px;
}
@media (min-width: 901px) {
  .p-global-nav__list > li > a {
    display: flex;
    align-items: center;
    height: 100%;
    padding-top: 0;
    padding-bottom: 0;
    padding-left: 15px;
    padding-right: 15px;
  }
}
.p-global-nav__list > li > a:hover, .p-global-nav__list > li > a:focus {
  background-color: transparent;
  color: #1e3a61;
}
.p-global-nav__list > li > a::before {
  content: "";
  display: block;
  width: 4px;
  height: 4px;
  background-color: #1e3a61;
  border-radius: 50%;
  position: absolute;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  opacity: 0;
  transition: opacity 0.3s ease;
}
@media (max-width: 900px) {
  .p-global-nav__list > li > a::before {
    display: none !important;
  }
}
.p-global-nav__list > li > a:hover::before, .p-global-nav__list > li > a:focus::before {
  opacity: 1;
}
@media (max-width: 900px) {
  .p-global-nav__list > li > a:hover::before, .p-global-nav__list > li > a:focus::before {
    opacity: 0;
  }
}
.p-global-nav__list > li > a .link-menu {
  display: block;
  position: relative;
}
@media (min-width: 901px) {
  .p-global-nav__list > li > a .link-menu::after {
    content: "";
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 0;
    height: 1px;
    background-color: #1e3a61;
    transition: width 0.3s ease;
  }
}
@media (min-width: 1025px) {
  .p-global-nav__list > li > a:hover .link-menu::after {
    width: 100%;
  }
}
.p-global-nav__list > .active > a,
.p-global-nav__list > .active > a:hover,
.p-global-nav__list > .active > a:focus {
  background-color: transparent;
  color: #1e3a61;
}
@media (min-width: 901px) {
  .p-global-nav__list > .active > a,
  .p-global-nav__list > .active > a:hover,
  .p-global-nav__list > .active > a:focus {
    position: relative;
  }
  .p-global-nav__list > .active > a::before,
  .p-global-nav__list > .active > a:hover::before,
  .p-global-nav__list > .active > a:focus::before {
    opacity: 1;
  }
}
@media (min-width: 901px) {
  .p-global-nav__list .menuitem-page-contact {
    margin-left: 15px;
  }
}
.p-global-nav__list .menuitem-page-contact a.c-btn-reserve {
  background-color: #001f43 !important;
  color: #fff !important;
  padding: 10px 20px !important;
  border-radius: 0;
  font-family: "Shippori Mincho", serif;
  font-size: 1.4rem !important;
  font-weight: 600 !important;
  display: flex !important;
  align-items: center;
  gap: 10px;
  text-decoration: none !important;
  transition: background-color 0.3s ease, opacity 0.3s ease, transform 0.3s ease;
}
@media (min-width: 901px) {
  .p-global-nav__list .menuitem-page-contact a.c-btn-reserve {
    align-self: center;
  }
}
@media (max-width: 768px) {
  .p-global-nav__list .menuitem-page-contact a.c-btn-reserve {
    margin: 15px auto;
    width: calc(100% - 30px) !important;
    justify-content: center;
  }
}
.p-global-nav__list .menuitem-page-contact a.c-btn-reserve i {
  font-size: 1.6rem;
  color: rgba(255, 255, 255, 0.9);
}
.p-global-nav__list .menuitem-page-contact a.c-btn-reserve:hover {
  background-color: #003366 !important;
  opacity: 0.85;
}
.p-global-nav__list .menuitem-page-contact.active > a::before {
  display: none !important;
}

.dropdown-menu {
  border: none;
  border-radius: 0;
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  margin-top: 0;
  background-color: rgba(255, 255, 255, 0.98);
  padding: 0;
  min-width: 200px;
}
@media (min-width: 901px) {
  .dropdown-menu {
    width: 100%;
    left: 0;
    top: 100%;
    position: absolute;
    z-index: -2;
    display: block;
    visibility: hidden;
    opacity: 0;
    height: 0;
    overflow: hidden;
    padding: 0;
  }
  .dropdown-menu::before {
    content: "";
    position: absolute;
    top: -40px;
    left: 0;
    width: 100%;
    height: 40px;
    background: transparent;
  }
  .dropdown-menu .p-dropdown-inner {
    max-width: 900px;
    margin: 0 auto;
    display: flex;
    padding: 40px;
    align-items: flex-start;
  }
  .dropdown-menu .p-dropdown-title {
    width: 300px;
    border-right: 1px solid #ddd;
    margin-right: 40px;
    padding-right: 40px;
    font-size: 2rem;
    font-weight: bold;
    font-family: "Shippori Mincho", serif;
    color: #1e3a61;
    line-height: 1.4;
    text-align: left;
  }
  .dropdown-menu .p-dropdown-list {
    flex: 1;
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
  }
  .dropdown-menu .p-dropdown-list li {
    width: 50%;
    margin-bottom: 15px;
    padding-left: 20px;
  }
  .dropdown-menu .p-dropdown-list li a {
    display: block;
    color: #333;
    font-size: 1.4rem;
    text-decoration: none;
    padding-bottom: 5px;
    border-bottom: 1px dotted #ccc;
    transition: color 0.3s;
  }
  .dropdown-menu .p-dropdown-list li a:hover {
    color: #1e3a61;
    border-bottom-color: #1e3a61;
  }
  .dropdown-menu .p-dropdown-list li a:hover {
    text-decoration: none;
  }
}
@media (max-width: 900px) {
  .dropdown-menu {
    display: none !important;
  }
}

@media (max-width: 900px) {
  .p-global-nav__list .p-nav-dropdown-chevron {
    display: none !important;
  }
}
.p-mobile-menu-favorite {
  display: none !important;
}

@media (min-width: 901px) {
  .p-global-nav__list .p-nav-dropdown-chevron {
    display: none;
  }
}
@media (min-width: 901px) {
  .p-global-nav__list > li {
    position: static;
  }
}
.p-page-header {
  width: 100%;
  padding: 0;
  background-image: none;
  background-color: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-bottom: 0;
}
@media (max-width: 768px) {
  .p-page-header {
    margin-bottom: 0;
  }
}
.p-page-header {
  position: relative;
}
.p-page-header::before {
  display: none;
}
.p-page-header__inner {
  position: relative;
  z-index: 1;
  text-align: center;
  width: 100%;
  height: auto;
  min-height: 100px;
}
.p-page-header__inner::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #fff;
  background-image: url("../img/pattern-seigaiha.webp");
  background-size: 300px;
  background-repeat: repeat;
  opacity: 0.2;
  z-index: -1;
}
.p-page-header__inner {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 100px 20px;
}
@media (min-width: 1025px) {
  .p-page-header__inner {
    padding-left: 50px;
    padding-right: 50px;
  }
}
@media (max-width: 768px) {
  .p-page-header__inner {
    padding: 100px 15px 40px;
  }
}
.p-page-header__title {
  color: #333;
  font-size: 4rem;
  font-weight: 600;
  text-shadow: none;
  margin: 0;
  letter-spacing: 0.1em;
  font-family: "Shippori Mincho", serif;
}
@media (max-width: 768px) {
  .p-page-header__title {
    font-size: 2.4rem;
  }
}
.p-page-header__title::after {
  display: none;
}
.p-page-header__image {
  width: 100%;
  margin-top: 0;
  line-height: 0;
  height: 50vh;
  position: relative;
  overflow: hidden;
}
@media (max-width: 768px) {
  .p-page-header__image {
    height: 45vh;
  }
}
.p-page-header__image img,
.p-page-header__image .swiper-slide img {
  display: block;
  width: 100%;
  height: 120% !important;
  object-fit: cover;
  object-position: center;
  position: absolute;
  top: -10%;
  left: 0;
}
.p-page-header__image .swiper {
  width: 100%;
  height: 100%;
  overflow: visible;
}
.p-page-header__image .swiper-slide {
  height: 100%;
  overflow: hidden;
  position: relative;
}
.p-page-header__image .p-page-header__heritage {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.45);
  padding: 40px;
}
@media (max-width: 768px) {
  .p-page-header__image .p-page-header__heritage {
    padding: 20px;
  }
}
.p-page-header__image .p-page-header__heritage-inner {
  max-width: 900px;
  color: #fff;
  text-align: center;
  line-height: 1.5;
}
.p-page-header__image .p-page-header__heritage-title {
  font-size: 3.2rem;
  margin-bottom: 30px;
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  letter-spacing: 0.2rem;
  position: relative;
  display: inline-block;
  padding-bottom: 20px;
  line-height: 1.4;
}
@media (max-width: 768px) {
  .p-page-header__image .p-page-header__heritage-title {
    font-size: 2rem;
    margin-bottom: 20px;
    display: block;
  }
  .p-page-header__image .p-page-header__heritage-title::before {
    width: 28px;
    height: 28px;
    margin-right: 8px;
    margin-top: 0;
    display: none !important;
  }
  .p-page-header__image .p-page-header__heritage-title .u-text-small {
    display: block;
    margin-top: 5px;
    font-size: 0.7em;
  }
}
.p-page-header__image .p-page-header__heritage-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 1px;
  background-color: #fff;
}
.p-page-header__image .p-page-header__heritage-text {
  font-size: 1.6rem;
  line-height: 2.2;
  font-family: "Shippori Mincho", serif;
  font-weight: 500;
  text-align: justify;
  margin: 0;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}
@media (max-width: 768px) {
  .p-page-header__image .p-page-header__heritage-text {
    font-size: 1.3rem;
    line-height: 1.8;
  }
}

.c-breadcrumbs {
  position: absolute;
  bottom: 20px;
  right: 40px;
  width: auto;
  text-align: right;
  padding: 0;
  margin: 0;
  color: #666;
  text-shadow: none;
  z-index: 5;
}
@media (max-width: 768px) {
  .c-breadcrumbs {
    left: 15px;
    right: auto;
    bottom: 10px;
    text-align: left;
  }
}
.c-breadcrumbs > span, .c-breadcrumbs a {
  margin: 0 8px;
  display: inline-block;
}
.c-breadcrumbs a {
  color: #666;
}
.c-breadcrumbs a:hover {
  opacity: 0.8;
  text-decoration: underline;
  color: #bfa145;
}
.c-breadcrumbs .current-item {
  color: #333;
  font-weight: bold;
}

.p-sp-header-act {
  display: none !important;
}
@media (max-width: 768px) {
  .p-sp-header-act {
    display: flex !important;
    justify-content: space-between;
    width: 100%;
    margin: 0 !important;
    padding: 2px 5px !important;
    background: #fff;
    border-bottom: 1px solid #eee;
  }
}
.p-sp-header-act__item {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin: 0 2px;
  padding: 3px 0;
  background-color: #8b5a2b;
  border-radius: 4px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  color: #fff;
  text-decoration: none;
  font-size: 0.9rem;
  transition: opacity 0.3s;
  min-width: 0;
}
.p-sp-header-act__item:hover, .p-sp-header-act__item:focus, .p-sp-header-act__item:active {
  opacity: 0.8;
  color: #fff;
  text-decoration: none;
}
.p-sp-header-act__item img {
  width: 24px;
  height: 24px;
  margin-bottom: 1px;
  object-fit: contain;
  filter: brightness(0) invert(1);
}
.p-sp-header-act__item span {
  font-size: 0.85rem;
  line-height: 1.2;
  font-weight: 500;
  white-space: normal;
  text-align: center;
}

.l-main-content {
  padding-top: 100px;
  padding-bottom: 100px;
}
@media (max-width: 768px) {
  .l-main-content {
    padding-top: 40px;
    padding-bottom: 40px;
  }
}
.page-about .l-main-content, .page-template-page-about-php .l-main-content {
  padding-bottom: 0 !important;
}
@media (max-width: 768px) {
  .page-about .l-main-content, .page-template-page-about-php .l-main-content {
    padding-bottom: 0 !important;
  }
}

.page-about .l-container.is-wide .row.p-front-grid > main.l-main-content,
.page-template-page-about-php .l-container.is-wide .row.p-front-grid > main.l-main-content {
  padding-bottom: 0 !important;
}
@media (max-width: 768px) {
  .page-about .l-container.is-wide .row.p-front-grid > main.l-main-content,
  .page-template-page-about-php .l-container.is-wide .row.p-front-grid > main.l-main-content {
    padding-bottom: 0 !important;
  }
}

.bg-white {
  background-color: #fff;
}

.l-sidebar {
  margin: 10px 0 10px 10px;
  background-color: #fff;
}
@media (min-width: 1025px) {
  .l-sidebar {
    padding: 100px 20px 60px;
    border-left: 1px solid rgba(191, 161, 69, 0.2);
    min-height: calc(100% - 20px);
    position: relative;
  }
}
@media (max-width: 768px) {
  .l-sidebar {
    padding: 20px 15px;
    margin: 0 !important;
  }
}
.l-sidebar .c-widget {
  margin-bottom: 30px;
}
.l-sidebar .c-widget__title {
  background: #333;
  color: #fff;
  padding: 10px;
  margin: 0 0 15px;
  text-align: center;
  font-size: 1.6rem;
  font-weight: 500;
  font-family: "Shippori Mincho", serif;
}
.l-sidebar .c-widget img {
  max-width: 100%;
  height: auto;
  display: block;
}
.l-sidebar .c-widget a {
  display: block;
  transition: opacity 0.3s ease;
}
.l-sidebar .c-widget a:hover {
  opacity: 0.7;
}
.l-sidebar .c-widget .c-gtranslate,
.l-sidebar .c-widget #gt_fixed_wrapper,
.l-sidebar .c-widget .gtranslate_wrapper,
.l-sidebar .c-widget .skiptranslate,
.l-sidebar .c-widget [class*=gt_container],
.l-sidebar .c-widget .gt_switcher {
  z-index: 99 !important;
}
.l-sidebar .c-widget .c-gtranslate .gt_switcher {
  width: 100% !important;
}
.l-sidebar .c-widget .c-gtranslate .gt_switcher .gt_selected {
  width: 100% !important;
}
.l-sidebar .c-widget .c-gtranslate .gt_switcher .gt_selected a {
  width: 100% !important;
  display: block;
}
.l-sidebar .c-widget .c-gtranslate .gt_switcher .gt_option {
  width: auto !important;
  min-width: 100% !important;
  white-space: nowrap !important;
  z-index: 10000 !important;
}
.l-sidebar .c-widget .c-gtranslate .gt_switcher .gt_option a {
  white-space: nowrap !important;
  padding-right: 20px !important;
  display: block;
}
.l-sidebar .btn-social {
  display: block;
  width: 100%;
  border-radius: 0;
  margin-bottom: 10px;
  color: #fff;
  text-align: left;
  padding: 12px 20px;
  background: #1e3a61;
  border: 1px solid #1e3a61;
  transition: all 0.3s ease;
  text-decoration: none;
  font-size: 1.4rem;
}
.l-sidebar .btn-social i {
  margin-right: 10px;
  font-size: 1.8rem;
  vertical-align: middle;
  color: #fff;
}
.l-sidebar .btn-social:hover {
  opacity: 0.8;
  color: #fff;
}

.l-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
  width: 100%;
}
.l-container.is-wide {
  max-width: 1600px;
}
@media (max-width: 768px) {
  .l-container {
    padding: 50px 20px;
  }
}

.inner {
  max-width: 1200px;
  margin: 0 auto;
  width: 100%;
}

.u-mt10 {
  margin-top: 10px !important;
}

.u-mt20 {
  margin-top: 20px !important;
}

.u-mt30 {
  margin-top: 30px !important;
}

.u-mt40 {
  margin-top: 40px !important;
}

.u-mt50 {
  margin-top: 50px !important;
}

.u-mt60 {
  margin-top: 60px !important;
}

.u-mt70 {
  margin-top: 70px !important;
}

.u-mt80 {
  margin-top: 80px !important;
}

.u-mt100 {
  margin-top: 100px !important;
}

.u-mb10 {
  margin-bottom: 10px !important;
}

.u-mb20 {
  margin-bottom: 20px !important;
}

.u-mb30 {
  margin-bottom: 30px !important;
}

.u-mb40 {
  margin-bottom: 40px !important;
}

.u-mb50 {
  margin-bottom: 50px !important;
}

.u-mb60 {
  margin-bottom: 60px !important;
}

.u-mb70 {
  margin-bottom: 70px !important;
}

.u-mb80 {
  margin-bottom: 80px !important;
}

.u-mb100 {
  margin-bottom: 100px !important;
}

@media (max-width: 768px) {
  .u-mt10 {
    margin-top: 10px !important;
  }
  .u-mt20 {
    margin-top: 15px !important;
  }
  .u-mt30 {
    margin-top: 20px !important;
  }
  .u-mt40 {
    margin-top: 30px !important;
  }
  .u-mt50 {
    margin-top: 30px !important;
  }
  .u-mt60 {
    margin-top: 40px !important;
  }
  .u-mt70 {
    margin-top: 50px !important;
  }
  .u-mt80 {
    margin-top: 60px !important;
  }
  .u-mt100 {
    margin-top: 70px !important;
  }
  .u-mb10 {
    margin-bottom: 10px !important;
  }
  .u-mb20 {
    margin-bottom: 15px !important;
  }
  .u-mb30 {
    margin-bottom: 20px !important;
  }
  .u-mb40 {
    margin-bottom: 30px !important;
  }
  .u-mb50 {
    margin-bottom: 30px !important;
  }
  .u-mb60 {
    margin-bottom: 40px !important;
  }
  .u-mb70 {
    margin-bottom: 50px !important;
  }
  .u-mb80 {
    margin-bottom: 60px !important;
  }
  .u-mb100 {
    margin-bottom: 70px !important;
  }
}
.br-sp {
  display: none;
}
@media (max-width: 768px) {
  .br-sp {
    display: block;
  }
}

.br-pc {
  display: block;
}
@media (max-width: 1024px) {
  .br-pc {
    display: none;
  }
}

.u-text-center {
  text-align: center !important;
}

.u-text-right {
  text-align: right !important;
}

.u-text-left {
  text-align: left !important;
}

.u-display-flex {
  display: flex !important;
}

.u-align-items-center {
  display: flex !important;
  align-items: center !important;
}

.u-flex-wrap {
  flex-wrap: wrap !important;
}

.u-ml10 {
  margin-left: 10px !important;
}

.u-highlight {
  background: linear-gradient(transparent 60%, rgba(191, 161, 69, 0.3) 60%);
  font-weight: bold;
}

.u-highlight-red {
  background: linear-gradient(transparent 60%, rgba(231, 76, 60, 0.2) 60%);
  font-weight: bold;
  color: #c0392b;
}

.u-line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.u-line-clamp-3 {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.c-btn-border {
  display: inline-block;
  padding: 10px 30px;
  border: 2px solid #bfa145;
  color: #bfa145 !important;
  text-decoration: none !important;
  font-weight: bold;
  transition: all 0.3s ease;
  background-color: transparent;
}
.c-btn-border:hover {
  background: #bfa145;
  color: #fff !important;
  text-decoration: none;
}

.c-link-line {
  display: inline-flex;
  align-items: center;
  padding: 15px 40px;
  border: 1px solid currentColor;
  color: inherit;
  text-decoration: none !important;
  font-family: "Shippori Mincho", serif;
  font-size: 1.5rem;
  transition: all 0.3s ease;
  border-radius: 0;
  background-color: transparent;
}
.c-link-line::after {
  content: "";
  display: inline-block;
  width: 30px;
  height: 1px;
  background-color: currentColor;
  margin-left: 15px;
  transition: transform 0.3s ease, background-color 0.3s ease;
}
.c-link-line:hover {
  background-color: #1e3a61;
  color: #fff;
  opacity: 1;
  text-decoration: none;
  border-color: #1e3a61;
}
.c-link-line:hover::after {
  transform: translateX(10px);
  background-color: #fff;
}
.c-link-line--white {
  color: #fff;
  border-color: #fff;
}
.c-link-line--white:hover {
  opacity: 1;
  background-color: rgba(255, 255, 255, 0.1);
}
.c-link-line--white:hover::after {
  transform: translateX(10px);
  background-color: #fff;
}

.c-btn-reserve {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  background-color: #001f43;
  color: #fff;
  padding: 15px 30px;
  border-radius: 0;
  font-family: "Shippori Mincho", serif;
  font-size: 1.5rem;
  font-weight: bold;
  text-decoration: none;
  transition: all 0.3s ease;
  border: 1px solid #001f43;
  width: 100%;
}
.c-btn-reserve i {
  font-size: 2.4rem;
  color: #fff;
}
.c-btn-reserve:hover {
  background-color: #fff;
  color: #001f43;
  text-decoration: none;
}
.c-btn-reserve:hover i {
  color: #001f43;
}
@media (max-width: 768px) {
  .c-btn-reserve {
    font-size: 1.4rem;
    padding: 12px 20px;
    gap: 10px;
  }
  .c-btn-reserve i {
    font-size: 1.6rem;
  }
}
.c-btn-reserve--white {
  background-color: transparent;
  border-color: #fff;
  color: #fff;
}
.c-btn-reserve--white i {
  color: #fff;
}
.c-btn-reserve--white:hover {
  background-color: #fff;
  color: #8b5a2b;
}
.c-btn-reserve--white:hover i {
  color: #8b5a2b;
}

.c-link-more-vertical {
  writing-mode: vertical-rl;
  font-family: "Shippori Mincho", serif;
  font-size: 1.6rem;
  text-decoration: none;
  color: #333;
  display: inline-block;
  position: relative;
  padding-top: 55px;
  transition: color 0.3s;
  letter-spacing: 0.1em;
}
.c-link-more-vertical::before {
  content: "";
  position: absolute;
  top: 0;
  left: calc(50% - 0.5px);
  width: 1px;
  height: 40px;
  background-color: #bfa145;
  transition: height 0.3s ease;
}
.c-link-more-vertical:hover {
  color: #bfa145;
  text-decoration: none;
}
.c-link-more-vertical:hover::before {
  height: 50px;
}
@media (max-width: 768px) {
  .c-link-more-vertical {
    writing-mode: horizontal-tb;
    padding-top: 0;
    padding-left: 0;
    display: inline-block;
    text-decoration: underline;
  }
  .c-link-more-vertical::before {
    display: none;
  }
  .c-link-more-vertical:hover {
    text-decoration: underline;
  }
  .c-link-more-vertical:hover::before {
    display: none;
  }
}

.c-btn-favorite {
  position: absolute;
  top: 15px;
  right: 15px;
  z-index: 20;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: transparent;
  border: 1.5px solid #8b5a2b;
  color: #8b5a2b;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: none !important;
}
.c-btn-favorite i {
  font-size: 1.8rem;
}
.c-btn-favorite:hover {
  transform: scale(1.1);
}
.c-btn-favorite.is-active {
  border-color: #e74c3c;
  color: #e74c3c;
}
.c-btn-favorite.is-active i {
  font-weight: 900;
}

.c-btn-more {
  display: inline-block;
  padding: 10px 20px;
  border: 1px solid #8b5a2b;
  color: #8b5a2b;
  text-decoration: none;
  font-size: 1.3rem;
  transition: all 0.3s ease;
  background: transparent;
}
.c-btn-more:hover {
  background: #8b5a2b;
  color: #fff;
  text-decoration: none;
}

.c-sub-title {
  font-size: 2.4rem;
  font-weight: bold;
  margin-bottom: 25px;
  font-family: "Shippori Mincho", serif;
  color: #333;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  line-height: 1.4;
}
.c-sub-title span {
  display: inline-block;
}
.c-sub-title::before {
  content: "";
  display: inline-block;
  width: 36px;
  height: 36px;
  background-image: url("../img/title-icon.webp");
  background-size: contain;
  background-repeat: no-repeat;
  margin-right: 12px;
  flex-shrink: 0;
  margin-top: -2px;
}
@media (max-width: 768px) {
  .c-sub-title {
    font-size: 2rem;
    margin-bottom: 20px;
    display: flex;
  }
  .c-sub-title::before {
    display: inline-block !important;
    width: 28px;
    height: 28px;
    margin-right: 8px;
    margin-top: 0;
  }
  .c-sub-title .u-text-small {
    display: block;
    width: 100%;
    margin-left: 36px;
    margin-top: 5px;
    font-size: 0.7em;
  }
}

.pagetop {
  position: fixed;
  bottom: 40px;
  right: 20px;
  z-index: 1000;
  opacity: 0;
  visibility: hidden;
  transition: all 0.6s cubic-bezier(0.25, 1, 0.5, 1);
  transform: translateY(20px);
}
@media (max-width: 768px) {
  .pagetop {
    bottom: 20px;
    right: 12px;
  }
}
.pagetop.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.pagetop a {
  display: block;
  writing-mode: vertical-rl;
  font-family: "Shippori Mincho", serif;
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.3em;
  color: #1e3a61;
  text-decoration: none;
  padding-top: 60px;
  position: relative;
  transition: all 0.3s ease;
}
.pagetop a::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 1px;
  height: 50px;
  background: #1e3a61;
  transform: translateX(-50%);
  transition: all 0.4s ease;
}
.pagetop a:hover {
  color: #001f43;
  transform: translateY(-8px);
}
.pagetop a:hover::before {
  height: 70px;
  top: -20px;
  background: #001f43;
}
@media (max-width: 768px) {
  .pagetop a {
    writing-mode: horizontal-tb;
    width: 44px;
    height: 44px;
    padding: 0;
    font-size: 0;
    color: transparent;
    overflow: hidden;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.95);
    border: 1px solid #1e3a61;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  }
  .pagetop a::before {
    display: none;
  }
  .pagetop a::after {
    content: "↑";
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
    font-weight: 700;
    color: #1e3a61;
  }
  .pagetop a:hover {
    transform: translateY(-4px);
    color: transparent;
  }
  .pagetop a:hover::before {
    display: none;
  }
}

@keyframes fadeInUp {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
/* Loading Screen */
.p-loading {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: #001f43;
  z-index: 999999;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: opacity 1.3s ease, visibility 1.3s ease;
  opacity: 1;
  visibility: visible;
}
.p-loading.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.p-loading__inner {
  text-align: center;
  color: #fff;
  font-family: "Shippori Mincho", serif;
}
.p-loading__logo {
  width: 120px;
  margin: 0 auto 25px;
  opacity: 0;
  animation: fadeInUp 1s ease forwards;
  animation-delay: 0.3s;
}
.p-loading__logo img {
  width: 100%;
  height: auto;
  max-width: 100%;
}
@media (max-width: 768px) {
  .p-loading__logo {
    width: 100px;
  }
}
.p-loading__text {
  opacity: 0;
  animation: fadeInUp 1s ease forwards;
  animation-delay: 1.3s;
  color: #fff;
  text-align: center;
}
.p-loading__text-main {
  display: block;
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 1.4;
  margin-bottom: 10px;
  letter-spacing: 0.1em;
}
@media (max-width: 768px) {
  .p-loading__text-main {
    font-size: 2.2rem;
  }
}
.p-loading__text-sub {
  display: block;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.1em;
}
@media (max-width: 768px) {
  .p-loading__text-sub {
    font-size: 1.3rem;
  }
}

.p-main-visual.swiper {
  width: 100%;
  height: calc(100vh - var(--header-height, 100px));
  min-height: 400px;
  background-color: #f7f3f0;
  position: relative;
  overflow: hidden;
  margin-bottom: 0;
}
@media (max-width: 768px) {
  .p-main-visual.swiper {
    height: 45vh;
    min-height: 200px;
    margin-bottom: 0;
  }
}
.p-main-visual.swiper .swiper-slide {
  position: relative;
  overflow: hidden;
  height: 100%;
  width: 100%;
}
.p-main-visual.swiper .swiper-slide .p-main-visual__bg {
  display: block;
  width: 100%;
  height: 100% !important;
  object-fit: cover;
  object-position: center;
  position: absolute;
  top: 0;
  left: 0;
  will-change: transform;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-origin: center center;
  transform: scale(1.01);
}
.p-main-visual.swiper .swiper-slide::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.15);
  z-index: 1;
  pointer-events: none;
}
.p-main-visual.swiper .p-main-visual__overlay {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  z-index: 10;
  width: 100%;
}
.p-main-visual.swiper .p-main-visual__overlay .p-main-visual__logo,
.p-main-visual.swiper .p-main-visual__overlay .p-main-visual__text,
.p-main-visual.swiper .p-main-visual__overlay .p-main-visual__subtext {
  opacity: 0;
  visibility: hidden;
}
.p-main-visual.swiper .p-main-visual__overlay .p-main-visual__logo {
  width: 15rem;
  margin-bottom: 2rem;
}
@media (max-width: 768px) {
  .p-main-visual.swiper .p-main-visual__overlay .p-main-visual__logo {
    width: 10rem;
    margin-bottom: 0;
  }
}
.p-main-visual.swiper .p-main-visual__overlay .p-main-visual__text {
  color: #fff;
  font-size: 4rem;
  font-weight: bold;
  text-shadow: 1px 1px 3px #000;
  margin-bottom: 0;
  line-height: 1.5;
}
@media (max-width: 1024px) {
  .p-main-visual.swiper .p-main-visual__overlay .p-main-visual__text {
    font-size: 3.2rem;
  }
}
@media (max-width: 768px) {
  .p-main-visual.swiper .p-main-visual__overlay .p-main-visual__text {
    font-size: 2rem;
  }
}
.p-main-visual.swiper .p-main-visual__overlay .p-main-visual__subtext {
  color: #fff;
  font-size: 6.4rem;
  font-weight: bold;
  text-shadow: 1px 1px 3px #000;
  line-height: 1.5;
  margin-bottom: 2rem;
}
@media (max-width: 768px) {
  .p-main-visual.swiper .p-main-visual__overlay .p-main-visual__subtext {
    font-size: 2.8rem;
    margin-bottom: 1.5rem;
  }
}

.p-home-section--navy {
  background-color: #1e3a61;
  color: #fff;
  padding-top: 80px;
  padding-bottom: 80px;
  margin-right: -60px;
  padding-right: 60px;
  margin-left: -60px;
  padding-left: 60px;
}
@media (max-width: 768px) {
  .p-home-section--navy {
    padding: 40px 20px;
    margin-left: -20px;
    margin-right: -20px;
  }
}
.p-home-section--navy .c-section-title,
.p-home-section--navy .c-section-lead {
  color: #fff !important;
}

.p-home-section--notice,
.p-home-section--news,
.p-home-section--blog {
  background-color: transparent;
  padding-top: 40px;
}

.p-home-section--bt50 {
  margin-bottom: 100px;
}
@media (max-width: 768px) {
  .p-home-section--bt50 {
    margin-bottom: 40px;
  }
}
.p-home-section--bt50 .p-home-section__inner {
  display: flex;
  align-items: stretch;
  gap: 80px;
  position: relative;
}
@media (max-width: 768px) {
  .p-home-section--bt50 .p-home-section__inner {
    display: block;
    gap: 0;
  }
}
@media (min-width: 1025px) {
  .p-home-section--bt50 .p-home-section__inner::after {
    content: "";
    position: absolute;
    bottom: -40px;
    right: -60px;
    width: 192px;
    aspect-ratio: 1.5/1;
    height: auto;
    background-repeat: no-repeat;
    background-size: contain;
    z-index: 1;
    pointer-events: none;
    opacity: 0.5;
    filter: brightness(0) invert(1);
  }
}

.p-home-section__caption {
  width: auto;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  position: relative;
  writing-mode: horizontal-tb;
}
.p-home-section__caption .p-home-section__title-group {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: flex-start;
  justify-content: center;
  gap: 35px;
  position: relative;
  writing-mode: horizontal-tb;
}
@media (max-width: 768px) {
  .p-home-section__caption .p-home-section__title-group {
    flex-direction: column;
    align-items: center;
    gap: 10px;
  }
}
.p-home-section__caption .p-home-section__title-group .c-section-title,
.p-home-section__caption .p-home-section__title-group .c-section-lead {
  display: inline-block;
  flex-shrink: 0;
  margin: 0;
}
@media (max-width: 768px) {
  .p-home-section__caption {
    width: 100%;
    margin-bottom: 20px;
    flex-direction: column;
    gap: 15px;
    align-items: center;
  }
}
.p-home-section__caption::before {
  content: "";
  position: absolute;
  top: -20px;
  left: -30px;
  width: 120px;
  aspect-ratio: 1.5/1;
  height: auto;
  background-repeat: no-repeat;
  background-size: contain;
  z-index: -1;
  pointer-events: none;
  opacity: 0.35;
}

@media (min-width: 1025px) {
  .p-home-section--about .p-home-section__inner::after {
    background-image: url("../img/cloude/cloud-1.svg");
  }
  .p-home-section--notice .p-home-section__inner::after {
    background-image: url("../img/cloude/cloud-5.svg");
  }
  .p-home-section--news .p-home-section__inner::after {
    background-image: url("../img/cloude/cloud-6.svg");
  }
  .p-home-section--info .p-home-section__inner::after {
    background-image: url("../img/cloude/cloud-1.svg");
  }
  .p-home-section--anniversary .p-home-section__inner::after {
    background-image: url("../img/cloude/cloud-2.svg");
  }
  .p-home-section--blog .p-home-section__inner::after {
    background-image: url("../img/cloude/cloud-3.svg");
  }
}
.p-home-section__caption--notice::before {
  background-image: url("../img/cloude/cloud-4.svg");
}

.p-home-section__caption--news::before {
  background-image: url("../img/cloude/cloud-1.svg");
}

.p-home-section__caption--blog::before {
  background-image: url("../img/cloude/cloud-5.svg");
}

.p-home-section__caption--info::before {
  background-image: url("../img/cloude/cloud-2.svg");
}

.p-home-section__caption--anniversary::before {
  background-image: url("../img/cloude/cloud-4.svg");
}

.p-home-section__caption--news .c-section-title {
  font-size: 3.2rem;
}
@media (max-width: 768px) {
  .p-home-section__caption--news .c-section-title {
    font-size: 2rem;
  }
}

.p-home-section__contents {
  flex: 1;
  min-width: 0;
  position: relative;
  z-index: 10;
}
.p-home-section__contents .row {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  margin-left: -10px;
  margin-right: -10px;
}
@media (max-width: 768px) {
  .p-home-section__contents .row {
    margin-left: -5px;
    margin-right: -5px;
  }
}
.p-home-section__contents .row::before, .p-home-section__contents .row::after {
  display: none;
}
.p-home-section__contents .row > [class*=col-] {
  padding-left: 10px;
  padding-right: 10px;
}
@media (max-width: 768px) {
  .p-home-section__contents .row > [class*=col-] {
    padding-left: 5px;
    padding-right: 5px;
    padding-bottom: 10px;
  }
}

.c-section-title,
h2.c-section-title {
  font-size: 3.6rem;
  font-weight: 500;
  margin-bottom: 0;
  font-family: "Shippori Mincho", serif;
  writing-mode: vertical-lr;
  text-orientation: upright;
  letter-spacing: 0.2rem;
  line-height: 1.5;
  position: relative;
  opacity: 0;
  transform: translateY(20px);
}
@media (max-width: 768px) {
  .c-section-title,
  h2.c-section-title {
    writing-mode: horizontal-tb;
    font-size: 2.2rem;
    letter-spacing: 0.1em;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    transform: translateX(-20px);
  }
  .c-section-title span,
  h2.c-section-title span {
    display: inline-block;
    white-space: nowrap;
  }
}

.c-section-lead {
  font-size: 1.5rem;
  color: #333;
  font-family: "Shippori Mincho", serif;
  writing-mode: vertical-rl;
  text-orientation: upright;
  line-height: 1.6;
  letter-spacing: 0.1em;
  padding-top: 10px;
  opacity: 0;
  transform: translateY(10px);
}
@media (max-width: 768px) {
  .c-section-lead {
    writing-mode: horizontal-tb;
    font-size: 1.3rem;
    padding-top: 0;
    transform: translateY(5px);
  }
}

.p-home-section__more {
  margin-top: 40px;
  text-align: right;
}
@media (max-width: 768px) {
  .p-home-section__more {
    text-align: center !important;
    margin-top: 20px !important;
  }
  .p-home-section__more .c-link-line {
    display: flex;
    width: 100%;
    justify-content: center;
    min-width: 0 !important;
    padding-left: 10px;
    padding-right: 10px;
    font-size: 1.25rem !important;
  }
  .p-home-section__more .c-link-line span {
    white-space: nowrap;
  }
  .p-home-section__more .c-link-line::after {
    display: none;
  }
}

.c-label-box {
  display: inline-block;
  background: #f5f5f5;
  padding: 2px 10px;
  margin-right: 5px;
  border: 1px solid #ddd;
}

.c-label {
  background-color: #1e3a61;
  color: #fff;
  font-size: 1.2rem;
  padding: 4px 12px;
  border-radius: 2px;
  display: inline-block;
  line-height: 1;
  font-weight: bold;
}

.p-home-about__content {
  background: transparent;
  padding: 0 0 60px;
  border-radius: 0;
  box-shadow: none;
  position: relative;
  overflow: hidden;
}
@media (max-width: 768px) {
  .p-home-about__content {
    padding: 0 20px 40px;
  }
}
.p-home-about__logo {
  text-align: center;
  margin-bottom: 30px;
}
@media (max-width: 768px) {
  .p-home-about__logo {
    margin-bottom: 20px;
  }
}
.p-home-about__logo img {
  display: inline-block;
  width: auto;
  max-width: 80px;
  height: auto;
  opacity: 0.5;
}
.p-home-about__text {
  font-size: 1.6rem;
  line-height: 2.2;
  color: #444;
  font-weight: 500;
  margin-bottom: 0;
  text-align: center;
}
.p-home-about__text span {
  display: inline-block;
  opacity: 0;
  transform: translateY(15px);
}
@media (max-width: 768px) {
  .p-home-about__text {
    font-size: 1.45rem;
    line-height: 1.8;
    text-align: center;
  }
}

.c-post-card {
  margin-bottom: 0;
  background-color: #faf8f5;
  height: 100%;
  border-radius: 5px;
  overflow: hidden;
}
@media (max-width: 768px) {
  .c-post-card {
    border: 1px solid #e8e0d0;
    border-radius: 6px;
  }
}
.c-post-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 24px 16px;
  text-decoration: none !important;
  color: inherit !important;
  transition: background-color 0.4s ease;
}
@media (max-width: 768px) {
  .c-post-card__link {
    padding: 12px;
    flex-direction: row;
    align-items: center;
    gap: 12px;
  }
}
.c-post-card__link:hover {
  background-color: #f2ede4;
}
.c-post-card__link:hover .c-post-card__media img {
  transform: scale(1.05);
}
.c-post-card__media {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  overflow: hidden;
  background: #f0f0f0;
  flex-shrink: 0;
  margin-bottom: 8px;
}
@media (max-width: 768px) {
  .c-post-card__media {
    margin-bottom: 0;
    width: 70px;
    height: 70px;
    padding-top: 0;
    border-radius: 4px;
  }
}
.c-post-card__media figure {
  margin: 0;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
.c-post-card__media img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.c-post-card__content {
  padding: 0;
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.c-post-card__meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 4px;
}
@media (max-width: 768px) {
  .c-post-card__meta {
    margin-bottom: 6px;
  }
}
.c-post-card__date {
  font-family: "Roboto", sans-serif;
  font-size: 1.3rem;
  color: #888;
}
.c-post-card__title {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.6rem;
  line-height: 1.5;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.c-post-card__title a {
  color: #333;
  text-decoration: none;
  transition: color 0.3s;
}
@media (max-width: 768px) {
  .c-post-card__title {
    font-size: 1.5rem;
    line-height: 1.4;
  }
}

.p-news-tabs {
  display: block;
  position: relative;
  margin-top: 0;
}

.p-news-tabs__nav {
  display: flex !important;
  justify-content: flex-start;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 10px;
}
@media (max-width: 768px) {
  .p-news-tabs__nav {
    display: flex !important;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-start;
    width: 100%;
    margin-top: 15px;
    padding-bottom: 0;
    border-bottom: none;
  }
}
.p-news-tabs__nav li {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  list-style: none;
}
@media (max-width: 768px) {
  .p-news-tabs__nav li {
    flex: 0 0 auto;
  }
}
.p-news-tabs__nav button {
  display: block;
  margin: 0;
  padding: 6px 20px;
  font-family: inherit;
  font-size: 1.4rem;
  line-height: 1;
  color: #1e3a61;
  border: 1px solid #1e3a61;
  border-radius: 0;
  background: #fff;
  cursor: pointer;
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
  appearance: none;
  -webkit-appearance: none;
}
.p-news-tabs__nav button:hover {
  background-color: #1e3a61;
  color: #fff;
  border-color: #1e3a61;
}
.p-news-tabs__nav button:focus-visible {
  outline: 2px solid #1e3a61;
  outline-offset: 2px;
}
.p-news-tabs__nav li.is-active button,
.p-news-tabs__nav button[aria-selected=true] {
  background-color: #1e3a61;
  color: #fff;
  border-color: #1e3a61;
}

.p-news-tabs__content {
  flex: 1;
  min-width: 0;
}

.c-news-list--home-tabs {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}
@media (max-width: 768px) {
  .c-news-list--home-tabs {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}
.c-news-list--home-tabs > li {
  border: 1px solid #e8e0d0;
  border-radius: 6px;
  background: #faf8f5;
  margin-bottom: 0;
  padding: 0;
  overflow: hidden;
}
.c-news-list--home-tabs > li:hover {
  background-color: #f2ede4;
}
.c-news-list--home-tabs .c-news-list__link {
  padding: 16px;
  height: 100%;
  display: flex;
  align-items: center;
}
@media (max-width: 768px) {
  .c-news-list--home-tabs .c-news-list__link {
    padding: 12px;
    flex-direction: row;
    align-items: center;
    gap: 12px;
  }
}
.c-news-list--home-tabs .c-news-list__thumb {
  width: 80px;
  height: 80px;
  margin-right: 16px;
  margin-bottom: 0 !important;
  flex-shrink: 0;
  border-radius: 4px;
  overflow: hidden;
  border: none;
}
@media (max-width: 768px) {
  .c-news-list--home-tabs .c-news-list__thumb {
    width: 70px;
    height: 70px;
    margin-right: 0;
  }
}
.c-news-list--home-tabs .c-news-list__thumb-img {
  width: 100%;
  height: 100%;
  aspect-ratio: 1/1;
  object-fit: cover;
  display: block;
}
.c-news-list--home-tabs .c-news-list__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 1;
  min-width: 0;
}
.c-news-list--home-tabs .c-news-list__meta {
  margin-bottom: 6px;
  gap: 10px;
}
.c-news-list--home-tabs .c-news-list__date {
  font-size: 1.3rem;
}
.c-news-list--home-tabs .c-news-list__title {
  font-size: 1.5rem;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.c-news-list--home-tabs .c-news-list__button {
  display: none;
}

.p-news-tabs__panel {
  display: none;
}
.p-news-tabs__panel.is-active {
  display: block;
  animation: fadeIn 0.5s ease;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.c-news-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.c-news-list__link {
  display: block;
  text-decoration: none;
  color: #333;
}
.c-news-list__title {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.6rem;
  font-weight: 500;
  display: block;
  line-height: 1.5;
  transition: color 0.3s ease;
}

.p-blog-slider {
  padding: 0 0 50px;
  margin: 0;
  position: relative;
  overflow: hidden;
}
.p-blog-slider .swiper-button-prev,
.p-blog-slider .swiper-button-next {
  color: #1e3a61;
  top: 35%;
  width: 40px;
  height: 40px;
  z-index: 10;
}
.p-blog-slider .swiper-button-prev::after,
.p-blog-slider .swiper-button-next::after {
  font-size: 2rem;
  font-weight: bold;
}
@media (max-width: 768px) {
  .p-blog-slider .swiper-button-prev,
  .p-blog-slider .swiper-button-next {
    display: none;
  }
}
.p-blog-slider .swiper-button-prev {
  left: -10px;
}
.p-blog-slider .swiper-button-next {
  right: -10px;
}
.p-blog-slider .swiper-pagination {
  bottom: 0;
}
.p-blog-slider .swiper-pagination-bullet-active {
  background: #1e3a61;
}

.p-blog-grid {
  display: none;
}

.p-info-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
}
.p-info-grid__item {
  width: 100%;
  box-sizing: border-box;
  margin-bottom: 30px;
}
@media (min-width: 769px) {
  .p-info-grid__item {
    width: 48%;
    margin-bottom: 0;
  }
}
.p-info-grid__item--full {
  width: 100% !important;
  margin-top: 40px;
}
@media (max-width: 768px) {
  .p-info-grid__item--full {
    margin-top: 0;
  }
}

.p-anniversary-project__main {
  margin-bottom: 50px;
}
.p-anniversary-project__hero {
  display: block;
  width: 100%;
  margin-bottom: 30px;
}
.p-anniversary-project__hero img {
  width: 100%;
  height: auto;
  border-radius: 4px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}
.p-anniversary-project__desc {
  width: 100%;
}
.p-anniversary-project__links {
  margin-top: 20px;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 20px;
  justify-content: flex-end;
}
@media (max-width: 768px) {
  .p-anniversary-project__links {
    flex-direction: column;
    gap: 15px;
    justify-content: center;
  }
}
.p-anniversary-project__links .c-link-line {
  min-width: 300px;
  justify-content: center;
}
@media (max-width: 768px) {
  .p-anniversary-project__links .c-link-line {
    min-width: 100%;
  }
}
.p-anniversary-project__award {
  background: #faf8f5;
  border: 1px solid #e8e0d0;
  padding: 40px;
  border-radius: 0;
}
@media (max-width: 768px) {
  .p-anniversary-project__award {
    padding: 25px 20px;
  }
}
.p-anniversary-project__award-header {
  display: flex;
  align-items: center;
  margin-bottom: 25px;
  gap: 20px;
}
@media (max-width: 768px) {
  .p-anniversary-project__award-header {
    flex-direction: column;
    text-align: center;
  }
}
.p-anniversary-project__award-logo {
  width: 120px;
  height: auto;
}
.p-anniversary-project__award-title-wrap {
  flex: 1;
}
.p-anniversary-project__award-title {
  font-size: 2.4rem;
  font-weight: bold;
  color: #333;
  line-height: 1.4;
}
.p-anniversary-project__award-body {
  font-size: 1.5rem;
  line-height: 1.8;
  border-top: 1px dashed #ccc;
  padding-top: 20px;
}

@media (min-width: 1025px) {
  .p-front-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin-right: -10px;
  }
  .p-front-grid::before, .p-front-grid::after {
    display: none;
  }
  .p-front-grid .l-main-content {
    flex: 0 0 78%;
    max-width: 78%;
    width: 78%;
    padding-left: 60px;
  }
  .p-front-grid .l-sidebar-col {
    flex: 0 0 22%;
    max-width: 22%;
    width: 22%;
    padding-right: 0;
  }
}

.p-guidance {
  width: 100%;
  overflow: hidden;
}
.p-guidance__list {
  display: flex;
  width: 100%;
}
@media (max-width: 768px) {
  .p-guidance__list {
    flex-direction: column;
  }
}
.p-guidance__item {
  flex: 1;
  position: relative;
  height: 40rem;
  display: block;
  overflow: hidden;
  text-decoration: none;
}
@media (max-width: 768px) {
  .p-guidance__item {
    height: 12rem;
    flex: none;
  }
}
.p-guidance__item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.4);
  z-index: 2;
  transition: background 0.3s;
}
.p-guidance__item::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 10, 73, 0.92);
  z-index: 3;
  transform: translateY(100%);
  transition: transform 0.6s cubic-bezier(0.19, 1, 0.22, 1);
}
.p-guidance__item:hover::before {
  background: rgba(0, 0, 0, 0);
}
.p-guidance__item:hover::after {
  transform: translateY(0);
}
@media (min-width: 769px) {
  .p-guidance__item:hover .p-guidance__bg {
    transform: scale(1.1);
  }
  .p-guidance__item:hover .p-guidance__desc {
    opacity: 1;
    transform: translate(-50%, -50%);
  }
  .p-guidance__item:hover .p-guidance__title-inner {
    transform: translate(-50%, -100%);
  }
}
@media (max-width: 768px) {
  .p-guidance__item:hover .p-guidance__title-inner {
    transform: translate(-50%, -50%);
  }
  .p-guidance__item:hover .p-guidance__desc {
    opacity: 0;
  }
}
.p-guidance__bg-wrap {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: 1;
}
.p-guidance__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
  z-index: 1;
  will-change: transform;
}
.p-guidance__content {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 5;
}
.p-guidance__title-inner {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  text-align: center;
  z-index: 5;
  transition: all 0.4s ease;
}
.p-guidance__subtitle {
  display: block;
  font-family: serif;
  font-size: 1.4rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.8);
  margin-bottom: 5px;
  font-weight: normal;
}
@media (max-width: 768px) {
  .p-guidance__subtitle {
    font-size: 1.1rem;
    letter-spacing: 0.1em;
    margin-bottom: 2px;
  }
}
.p-guidance__title {
  color: #fff;
  font-size: 3.2rem;
  font-weight: bold;
  text-align: center;
  width: 100%;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
  font-family: "Shippori Mincho", serif;
  margin: 0;
}
@media (max-width: 768px) {
  .p-guidance__title {
    font-size: 2.8rem;
  }
}
.p-guidance__desc {
  position: absolute;
  top: 60%;
  left: 50%;
  transform: translate(-50%, 0);
  width: 80%;
  text-align: center;
  color: #fff;
  font-size: 1.4rem;
  line-height: 1.6;
  opacity: 0;
  transition: all 0.4s ease;
  pointer-events: none;
}
@media (max-width: 768px) {
  .p-guidance__desc {
    display: none;
  }
}

.p-home-banners {
  background-image: url("../img/bg-banners.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 40px 0;
}
@media (max-width: 768px) {
  .p-home-banners {
    padding: 20px 0;
  }
}
.p-home-banners .l-container {
  max-width: 1400px;
  padding-top: 0;
  padding-bottom: 0;
}
.p-home-banners__wrapper {
  position: relative;
  padding: 0 60px 0px;
}
@media (max-width: 768px) {
  .p-home-banners__wrapper {
    padding: 0 0 0px;
  }
}
.p-home-banners__wrapper .swiper-button-prev,
.p-home-banners__wrapper .swiper-button-next {
  color: #fff;
  background: #1e3a61;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  margin-top: 0;
  transition: background 0.3s ease, opacity 0.3s ease;
}
.p-home-banners__wrapper .swiper-button-prev::after,
.p-home-banners__wrapper .swiper-button-next::after {
  font-size: 2.2rem;
  font-weight: bold;
}
.p-home-banners__wrapper .swiper-button-prev:hover,
.p-home-banners__wrapper .swiper-button-next:hover {
  background: #2a5288;
}
@media (max-width: 768px) {
  .p-home-banners__wrapper .swiper-button-prev,
  .p-home-banners__wrapper .swiper-button-next {
    display: none;
  }
}
.p-home-banners__wrapper .swiper-button-prev {
  left: 0;
}
.p-home-banners__wrapper .swiper-button-next {
  right: 0;
}
.p-home-banners__slider {
  position: relative;
  overflow: hidden;
}
.p-home-banners__slider.is-single .swiper-wrapper {
  justify-content: center;
}
@media (min-width: 1025px) {
  .p-home-banners__slider.is-single .p-home-banners__item {
    width: 100%;
    max-width: 700px;
    margin: 0 auto;
  }
}
.p-home-banners__item {
  display: block;
  width: 100%;
}
@media (min-width: 1025px) {
  .p-home-banners__item {
    width: 50%;
  }
}
.p-home-banners__item {
  transition: opacity 0.3s ease;
  border-radius: 0;
  overflow: hidden;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
}
.p-home-banners__item a {
  display: block;
  overflow: hidden;
}
.p-home-banners__item:hover {
  opacity: 0.8;
}
.p-home-banners__item:hover img {
  transform: scale(1.05);
}
.p-home-banners__item img {
  width: 100%;
  height: auto;
  vertical-align: middle;
  transition: transform 0.6s ease;
}

.p-footer-banner {
  padding: 40px 0;
}
@media (max-width: 768px) {
  .p-footer-banner {
    padding: 20px 0;
  }
}
.p-footer-banner__inner {
  text-align: center;
}
.p-footer-banner__inner a {
  display: inline-block;
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.p-footer-banner__inner a:hover {
  opacity: 0.8;
}
.p-footer-banner__inner img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
  border-radius: 4px;
}

.p-guidance-section {
  padding: 40px 0;
  background-color: #f9f9f9;
  margin-bottom: 50px;
}
@media (max-width: 768px) {
  .p-guidance-section {
    padding: 30px 20px;
    margin-bottom: 30px;
  }
}
.p-guidance-section--center {
  text-align: center;
}
.p-guidance-section__title {
  font-size: 2.4rem;
  margin-bottom: 15px;
  font-family: "Shippori Mincho", serif;
  color: #bfa145;
}
.p-guidance-section__desc {
  font-size: 1.5rem;
  margin-bottom: 20px;
  line-height: 1.6;
  color: #666;
}
.p-guidance-section__btn {
  min-width: 200px;
}

.p-home-access, .p-home-reservation {
  padding: 100px 0;
  position: relative;
  margin-bottom: 0;
}
@media (max-width: 768px) {
  .p-home-access, .p-home-reservation {
    padding: 0;
  }
}
.p-home-access__inner, .p-home-reservation__inner {
  width: 100%;
}
.p-home-access__content, .p-home-reservation__content {
  display: flex;
  gap: 80px;
  align-items: flex-start;
}
@media (max-width: 768px) {
  .p-home-access__content, .p-home-reservation__content {
    flex-direction: column;
    gap: 20px;
  }
}
.p-home-access__header, .p-home-reservation__header {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 15px;
  flex-shrink: 0;
  width: 140px;
}
@media (max-width: 768px) {
  .p-home-access__header, .p-home-reservation__header {
    width: auto;
    text-align: left;
    flex-direction: column;
    gap: 5px;
  }
}
.p-home-access__title-jp, .p-home-reservation__title-jp {
  writing-mode: vertical-rl;
  text-orientation: upright;
  font-size: 3.6rem;
  font-weight: 500;
  font-family: "Shippori Mincho", serif;
  letter-spacing: 0.4em;
  line-height: 1.2;
  margin: 0;
}
@media (max-width: 768px) {
  .p-home-access__title-jp, .p-home-reservation__title-jp {
    writing-mode: horizontal-tb;
    font-size: 2.8rem;
    letter-spacing: 0.1em;
    line-height: 1.5;
  }
}
.p-home-access__title-en, .p-home-reservation__title-en {
  writing-mode: vertical-rl;
  text-orientation: upright;
  font-size: 1.6rem;
  font-family: serif;
  opacity: 0.5;
  letter-spacing: 0.15em;
  margin: 0;
}
@media (max-width: 768px) {
  .p-home-access__title-en, .p-home-reservation__title-en {
    writing-mode: horizontal-tb;
    font-size: 1.4rem;
    margin-top: 5px;
  }
}
.p-home-access__info, .p-home-reservation__info {
  flex: 1;
  font-family: "Shippori Mincho", serif;
  padding-top: 5px;
}

.p-home-access {
  background-color: #1e3a61;
  background-image: url("../img/access-bg.webp");
  background-size: cover;
  background-position: center;
  background-blend-mode: multiply;
  color: #fff;
}
.p-home-access .c-sub-title {
  color: #fff;
}
.p-home-access .c-sub-title::before {
  filter: brightness(0) invert(1);
}
.p-home-access__inner {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  gap: 60px;
}
@media (max-width: 768px) {
  .p-home-access__inner {
    flex-direction: column;
    gap: 30px;
  }
}
.p-home-access__content {
  flex: 1;
}
.p-home-access__address, .p-home-access__contact {
  font-size: 1.6rem;
  line-height: 1.5;
  margin-bottom: 25px;
}
@media (max-width: 768px) {
  .p-home-access__address, .p-home-access__contact {
    font-size: 1.5rem;
  }
}
.p-home-access__zip {
  font-size: 1.8rem;
  margin-bottom: 0;
  display: block;
}
.p-home-access__parking-text {
  font-size: 1.5rem;
  line-height: 1.8;
  opacity: 0.9;
  margin-bottom: 0;
}
.p-home-access__btn-wrap {
  margin-top: 40px;
}
@media (max-width: 768px) {
  .p-home-access__btn-wrap {
    display: flex;
    justify-content: center;
  }
}
@media (max-width: 768px) {
  .p-home-access__btn {
    width: 100%;
    max-width: 400px;
    justify-content: center;
  }
}
.p-home-access__btn::before {
  background-color: #fff;
}
.p-home-access__map {
  flex: 1;
  max-width: 500px;
  width: 100%;
  height: 480px;
}
@media (max-width: 768px) {
  .p-home-access__map {
    height: auto;
    aspect-ratio: 1/1;
    max-width: 100%;
  }
}
.p-home-access__map iframe {
  width: 100%;
  height: 100%;
  border: 0;
  filter: grayscale(100%);
  transition: filter 0.3s ease;
}
.p-home-access__map iframe:hover {
  filter: grayscale(0%);
}

.p-home-reservation {
  background-color: #8b5a2b;
  background-image: url("../img/reservation-bg.webp");
  background-size: cover;
  background-position: center;
  background-blend-mode: multiply;
  color: #fff;
}
.p-home-reservation__text {
  font-size: 1.8rem;
  line-height: 2;
  font-family: "Shippori Mincho", serif;
  max-width: 800px;
}
@media (max-width: 768px) {
  .p-home-reservation__text {
    font-size: 1.5rem;
  }
}
.p-home-reservation__tel-time {
  font-size: 1.4rem;
  line-height: 1.8;
  margin-top: 30px;
  font-family: "Shippori Mincho", serif;
  opacity: 0.9;
}
@media (max-width: 768px) {
  .p-home-reservation__tel-time {
    font-size: 1.3rem;
  }
}
.p-home-reservation__btn-wrap {
  margin-top: 40px;
  display: flex;
  gap: 20px;
  justify-content: flex-start;
}
@media (max-width: 768px) {
  .p-home-reservation__btn-wrap {
    flex-direction: column;
    gap: 15px;
    align-items: center;
    justify-content: center;
  }
}
.p-home-reservation__btn {
  min-width: 240px;
}
@media (max-width: 768px) {
  .p-home-reservation__btn {
    width: 100%;
    max-width: 400px;
  }
}
.p-home-reservation__btn::before {
  background-color: #fff;
}

.p-gate-hours {
  display: flex;
  width: 100%;
  align-items: stretch;
  font-family: "Shippori Mincho", serif;
  font-size: 1.8rem;
}
@media (max-width: 768px) {
  .p-gate-hours {
    font-size: 1.5rem;
  }
}
.p-gate-hours__label {
  background: #000;
  color: #fff;
  padding: 30px 40px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  letter-spacing: 0.1em;
}
@media (max-width: 768px) {
  .p-gate-hours__label {
    padding: 15px 20px;
  }
}
.p-gate-hours__body {
  background: #f7f4ee;
  color: #333;
  padding: 30px 50px;
  flex: 1;
  display: flex;
  align-items: center;
}
@media (max-width: 768px) {
  .p-gate-hours__body {
    padding: 15px 25px;
  }
}

.p-reception-info {
  border: none;
  padding: 0;
  background: transparent;
  color: #333;
  max-width: 100%;
  margin: 0 auto;
}
.p-reception-info--minimal {
  border: none;
  background: transparent;
  padding: 0;
  text-align: left;
}
.p-reception-info__title {
  font-family: "Shippori Mincho", serif;
  font-size: 1.8rem;
  font-weight: bold;
  margin-bottom: 30px;
  letter-spacing: 0.1em;
}
@media (max-width: 768px) {
  .p-reception-info__title {
    font-size: 1.6rem;
    margin-bottom: 25px;
  }
}
.p-reception-info__rows {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 15px;
}
.p-reception-info__row {
  display: flex;
  align-items: center;
  gap: 30px;
  background: #fff;
  padding: 0;
  border: none;
  width: 100%;
}
@media (max-width: 768px) {
  .p-reception-info__row {
    gap: 15px;
  }
}
.p-reception-info__season-box {
  background: #1e3a61;
  border: 1px solid #1e3a61;
  padding: 10px 25px;
  font-size: 1.8rem;
  color: #fff;
  min-width: 140px;
  text-align: center;
  font-weight: normal;
}
@media (max-width: 768px) {
  .p-reception-info__season-box {
    padding: 5px 15px;
    font-size: 1.5rem;
    min-width: 100px;
  }
}
.p-reception-info__time-body-lg {
  font-family: "Shippori Mincho", serif;
  font-size: 2.6rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.05em;
  color: #333;
}
@media (max-width: 768px) {
  .p-reception-info__time-body-lg {
    font-size: 2.2rem;
  }
}
.p-reception-info__time {
  margin-bottom: 25px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 30px;
  background: #fff;
  padding: 0;
  border: none;
  width: 100%;
}
.p-reception-info__time-label {
  background: #1e3a61;
  color: #fff;
  padding: 10px 25px;
  border-radius: 0;
  font-size: 1.8rem;
  font-weight: normal;
  border: 1px solid #1e3a61;
  min-width: 140px;
  text-align: center;
}
@media (max-width: 768px) {
  .p-reception-info__time-label {
    padding: 5px 15px;
    font-size: 1.5rem;
    min-width: 100px;
  }
}
.p-reception-info__time-body {
  font-family: "Shippori Mincho", serif;
  font-size: 2.6rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.05em;
  color: #333;
}
@media (max-width: 768px) {
  .p-reception-info__time-body {
    font-size: 2.2rem;
  }
}
.p-reception-info__note {
  font-size: 1.4rem;
  color: #666;
  margin-bottom: 25px;
  line-height: 1.8;
  text-align: left;
  display: block;
}
.p-reception-info__contact-group {
  border-top: 1px solid #eee;
  padding-top: 40px;
}
.p-reception-info__contact-row {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 20px;
}
@media (max-width: 768px) {
  .p-reception-info__contact-row {
    flex-direction: column;
    gap: 30px;
  }
}
.p-reception-info__tel-box, .p-reception-info__btn-box {
  flex: none;
  width: 100%;
  max-width: 320px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  position: relative;
}
@media (min-width: 1025px) {
  .p-reception-info__tel-box:first-child::after, .p-reception-info__btn-box:first-child::after {
    content: "";
    position: absolute;
    top: 0;
    right: -10px;
    width: 1px;
    height: 100%;
    background-color: #eee;
  }
}
.p-reception-info__contact-label {
  font-size: 1.4rem;
  margin-bottom: 30px;
  font-weight: bold;
  color: #333;
  font-family: "Shippori Mincho", serif;
  text-align: center;
}
.p-reception-info .c-sub-title {
  justify-content: flex-start;
  margin-bottom: 40px;
}
.p-reception-info__tel-text {
  font-size: 1.3rem;
  margin-bottom: 15px;
  display: block;
  color: #666;
  text-align: left;
}
.p-reception-info__tel {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  padding: 15px 30px;
  background: #fff;
  border: 1px solid #001f43;
  color: #001f43;
  font-family: "Shippori Mincho", serif;
  font-size: 1.5rem;
  font-weight: bold;
  letter-spacing: 0.05em;
  text-decoration: none;
  transition: all 0.3s ease;
  width: 100%;
  max-width: 320px;
  margin: 0 auto;
}
.p-reception-info__tel i {
  font-size: 1.8rem;
}
@media (max-width: 768px) {
  .p-reception-info__tel {
    font-size: 1.4rem;
    padding: 12px 20px;
    max-width: 100%;
    gap: 10px;
  }
  .p-reception-info__tel i {
    font-size: 1.6rem;
  }
}
.p-reception-info__tel:hover {
  background: #001f43;
  color: #fff;
  text-decoration: none;
}
.p-reception-info__btn-box {
  gap: 0;
}
.p-reception-info__btn-box .p-reception-info__btn {
  width: 100%;
  max-width: 320px;
  margin: 0 auto;
}
.p-reception-info__btn {
  width: 100%;
  max-width: 320px;
}
@media (max-width: 768px) {
  .p-reception-info__btn {
    max-width: 100%;
  }
}

.u-fw-bold {
  font-weight: bold;
}

/* Home About v2 */
.p-home-about-v2 {
  padding: 0 0 120px;
}
.p-home-about-v2__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px;
  display: grid;
  grid-template-columns: 180px 0.5fr 2fr;
  grid-template-rows: auto auto;
  gap: 60px 105px;
  align-items: start;
  position: relative;
}
@media (min-width: 1025px) {
  .p-home-about-v2__inner::after {
    content: "";
    position: absolute;
    bottom: -20px;
    right: -40px;
    width: 160px;
    aspect-ratio: 1.5/1;
    background-image: url("../img/cloude/cloud-1.svg");
    background-repeat: no-repeat;
    background-size: contain;
    z-index: 1;
    pointer-events: none;
    opacity: 0.4;
    filter: brightness(0) invert(1);
  }
}
.p-home-about-v2__title-block {
  grid-column: 1;
  grid-row: 1/span 2;
  position: relative;
  z-index: 5;
}
.p-home-about-v2__title {
  writing-mode: vertical-rl;
  font-family: "Shippori Mincho", serif;
  display: flex;
  flex-direction: column-reverse;
  gap: 1.2em;
  margin: 0;
}
.p-home-about-v2__title .en {
  writing-mode: horizontal-tb;
  font-family: "Cinzel", serif;
  font-size: 1.4rem;
  color: #bfa145;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  margin-bottom: 40px;
  display: block;
}
.p-home-about-v2__title .ja {
  font-size: 3rem;
  line-height: 1.6;
  letter-spacing: 0.2rem;
  color: #333;
}
.p-home-about-v2__title .ja-sub {
  font-size: 1.8rem;
  line-height: 1.6;
  letter-spacing: 0.15rem;
  color: #666;
  font-weight: normal;
}
.p-home-about-v2__main-visual {
  grid-column: 2/span 2;
  grid-row: 1;
  position: relative;
  z-index: 3;
  overflow: hidden;
}
.p-home-about-v2__main-visual img {
  width: 100%;
  max-width: 100%;
  aspect-ratio: 1.5/1;
  box-shadow: none;
  object-fit: cover;
}
.p-home-about-v2__sub-visual {
  position: absolute;
  left: -70px;
  bottom: 245px;
  width: 30%;
  z-index: 1;
  overflow: visible;
}
.p-home-about-v2__sub-visual img {
  width: 100%;
  max-width: 100%;
  height: auto;
  box-shadow: none;
  object-fit: cover;
}
.p-home-about-v2__content {
  grid-column: 2/span 2;
  grid-row: 2;
  padding-top: 0;
  position: relative;
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}
.p-home-about-v2__text {
  width: 100%;
  font-size: 1.6rem;
  line-height: 2.2;
  color: #444;
  margin-bottom: 50px;
  font-family: "Shippori Mincho", serif;
  text-align: left;
}
.p-home-about-v2__link .c-link-line {
  min-width: 280px;
  justify-content: center;
}
@media (max-width: 768px) {
  .p-home-about-v2__link .c-link-line {
    width: 100%;
    min-width: 0 !important;
    padding-left: 10px;
    padding-right: 10px;
  }
  .p-home-about-v2__link .c-link-line::after {
    display: none;
  }
}
@media (max-width: 1024px) {
  .p-home-about-v2__inner {
    grid-template-columns: 100px 1fr 1fr;
    gap: 40px;
    padding: 0 30px;
  }
  .p-home-about-v2__title .ja {
    font-size: 2.8rem;
  }
  .p-home-about-v2__title .ja-sub {
    font-size: 1.8rem;
  }
  .p-home-about-v2__sub-visual {
    left: -30px;
    bottom: 200px;
    width: 28%;
  }
}
@media (max-width: 900px) {
  .p-home-about-v2__inner {
    display: block;
    padding: 0 30px;
  }
  .p-home-about-v2__title-block {
    margin-bottom: 40px;
  }
  .p-home-about-v2__title {
    writing-mode: horizontal-tb;
    flex-direction: column-reverse;
    align-items: flex-start;
    gap: 15px;
  }
  .p-home-about-v2__title .en {
    width: 100%;
    margin-bottom: 15px;
  }
  .p-home-about-v2__main-visual {
    margin-bottom: 40px;
  }
  .p-home-about-v2__sub-visual {
    position: relative;
    left: 0;
    bottom: 0;
    width: 100%;
    margin-bottom: 30px;
  }
  .p-home-about-v2__content {
    align-items: center;
  }
  .p-home-about-v2__link {
    width: 100%;
  }
  .p-home-about-v2__link .c-link-line {
    width: 100%;
    min-width: 0;
  }
}
@media (max-width: 768px) {
  .p-home-about-v2 {
    padding: 0 0 60px;
  }
  .p-home-about-v2__inner {
    padding: 0;
  }
  .p-home-about-v2__title .ja {
    font-size: 2.4rem;
  }
  .p-home-about-v2__title .ja-sub {
    font-size: 1.6rem;
  }
  .p-home-about-v2__text {
    font-size: 1.5rem;
    line-height: 2;
    margin-bottom: 30px;
  }
  .p-home-about-v2__title-block {
    margin-bottom: 30px;
  }
  .p-home-about-v2__main-visual {
    margin-bottom: 30px;
  }
  .p-home-about-v2__main-visual img {
    aspect-ratio: 4/3;
  }
  .p-home-about-v2__sub-visual {
    margin-bottom: 25px;
  }
}

@media (max-width: 768px) {
  .p-home-section--notice .p-home-section__contents .row,
  .p-home-section--blog .p-home-section__contents .row {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-left: 0;
    margin-right: 0;
  }
}
@media (max-width: 768px) {
  .p-home-section--notice .p-home-section__contents .row > [class*=col-],
  .p-home-section--blog .p-home-section__contents .row > [class*=col-] {
    width: 100% !important;
    padding-left: 0;
    padding-right: 0;
    padding-bottom: 0;
    margin-bottom: 0 !important;
  }
}

.p-about-intro__hero {
  position: relative;
  width: 100%;
  margin-bottom: 30px;
  overflow: hidden;
  border-radius: 5px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}
.p-about-intro__image {
  width: 100%;
  aspect-ratio: 16/9;
}
.p-about-intro__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.p-about-intro__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px;
  text-align: center;
}
@media (max-width: 768px) {
  .p-about-intro__overlay {
    padding: 20px;
  }
}
.p-about-intro__overlay-text {
  color: #fff;
  font-size: 2.2rem;
  line-height: 2;
  margin: 0;
  font-family: "Shippori Mincho", serif;
  font-weight: 500;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
}
@media (max-width: 768px) {
  .p-about-intro__overlay-text {
    font-size: 1.4rem;
    line-height: 1.8;
    text-align: justify;
  }
}
.p-about-history__content {
  position: relative;
  padding: 40px;
  background-color: #fcf9f2;
  overflow: hidden;
}
@media (max-width: 768px) {
  .p-about-history__content {
    padding: 30px 20px;
  }
}
.p-about-history__content::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 5%;
  transform: translateY(-50%);
  width: 260px;
  height: 260px;
  background-image: url("../img/logo-white.webp");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  opacity: 0.5;
  z-index: 0;
  pointer-events: none;
}
@media (max-width: 768px) {
  .p-about-history__content::before {
    width: 200px;
    height: 200px;
    right: -20px;
    bottom: -20px;
    top: auto;
    transform: none;
  }
}
.p-about-history__text {
  position: relative;
  z-index: 1;
  font-size: 1.6rem;
  line-height: 2.2;
  color: #333;
  margin: 0;
  text-align: justify;
  font-weight: 500;
}
.p-about-features {
  display: flex;
  flex-direction: column;
  gap: 90px;
}
@media (max-width: 768px) {
  .p-about-features {
    gap: 40px;
  }
}
.p-about-feature-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
}
.p-about-feature-item__image {
  width: 100%;
  aspect-ratio: 21/9;
  overflow: hidden;
  border-radius: 5px;
}
.p-about-feature-item__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-about-feature-item__content {
  padding: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  text-align: left;
}
.p-about-feature-item__title {
  font-size: 2.8rem;
  font-weight: 700;
  margin-bottom: 20px;
  color: #1e3a61;
  line-height: 1.3;
  font-family: "Shippori Mincho", serif;
  position: relative;
  text-align: center;
}
.p-about-feature-item__text {
  font-size: 1.6rem;
  line-height: 1.8;
  color: #444;
  font-weight: 500;
  margin-bottom: 30px;
}
.p-about-feature-item__btn-wrap {
  margin-top: auto;
  align-self: center;
  width: 100%;
  max-width: 300px;
}
.p-about-feature-item__btn-wrap--double {
  max-width: 620px;
  display: flex;
  flex-direction: row;
  gap: 20px;
  justify-content: center;
}
@media (max-width: 768px) {
  .p-about-feature-item__btn-wrap--double {
    flex-direction: column;
    gap: 10px;
    max-width: 300px;
  }
}
.p-about-feature-item__btn {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 12px 20px;
  border: 1px solid #1e3a61;
  color: #1e3a61;
  font-size: 1.4rem;
  text-decoration: none;
  transition: all 0.3s ease;
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  background: transparent;
}
.p-about-feature-item__btn i {
  font-size: 1.1em;
  transition: transform 0.3s ease;
}
.p-about-feature-item__btn:hover {
  background: #1e3a61;
  color: #fff;
  opacity: 1;
  text-decoration: none;
}
.p-about-feature-item__btn:hover i {
  transform: translateX(4px);
}
@media (max-width: 768px) {
  .p-about-feature-item {
    gap: 24px;
  }
  .p-about-feature-item__image {
    aspect-ratio: 16/9;
  }
  .p-about-feature-item__title {
    font-size: 2.2rem;
    margin-bottom: 15px;
  }
  .p-about-feature-item__text {
    font-size: 1.4rem;
  }
  .p-about-feature-item__btn {
    font-size: 1.3rem;
    padding: 10px 15px;
  }
}
.p-about-targets {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-top: 30px;
}
@media (max-width: 768px) {
  .p-about-targets {
    gap: 24px;
    margin-top: 20px;
  }
}
.p-about-target-item {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-bottom: 60px;
}
.p-about-target-item:last-child {
  margin-bottom: 0;
}
.p-about-target-item__header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
}
.p-about-target-item__image {
  width: 100%;
  aspect-ratio: 21/9;
  overflow: hidden;
  border-radius: 5px;
}
.p-about-target-item__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-about-target-item__info {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 20px;
}
@media (max-width: 768px) {
  .p-about-target-item__info {
    padding: 10px 0;
  }
}
.p-about-target-item__icon {
  font-size: 5.2rem;
  color: #fff;
  opacity: 0.6;
  margin-bottom: 15px;
}
@media (max-width: 768px) {
  .p-about-target-item__icon {
    font-size: 4rem;
    margin-bottom: 10px;
  }
}
.p-about-target-item__title {
  font-size: 2.8rem;
  font-weight: 700;
  color: #1e3a61;
  margin: 0;
  font-family: "Shippori Mincho", serif;
  line-height: 1.4;
  letter-spacing: 0.05em;
}
.p-about-target-item__body {
  width: 100%;
}
.p-about-target-item__text {
  font-size: 1.5rem;
  font-weight: 500;
  color: #444;
  line-height: 1.8;
  margin: 0;
  text-align: justify;
}
@media (max-width: 768px) {
  .p-about-target-item {
    gap: 24px;
    margin-bottom: 30px;
  }
  .p-about-target-item__image {
    aspect-ratio: 16/9;
  }
  .p-about-target-item__title {
    font-size: 2.2rem;
    text-align: center;
    padding: 0;
  }
  .p-about-target-item__text {
    font-size: 1.4rem;
    text-align: left;
  }
}
.p-about-charm__text {
  font-size: 1.6rem;
  line-height: 2.2;
  color: #444;
  font-weight: 500;
  margin-bottom: 40px;
  text-align: justify;
}
@media (max-width: 768px) {
  .p-about-charm__text {
    font-size: 1.45rem;
    line-height: 1.8;
  }
}
.p-about-charm__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}
@media (max-width: 768px) {
  .p-about-charm__grid {
    grid-template-columns: 1fr;
    gap: 15px;
  }
}
.p-about-charm__item {
  width: 100%;
  aspect-ratio: 4/3;
  overflow: hidden;
  border-radius: 5px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}
.p-about-charm__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-about-flow {
  margin-top: 40px;
  padding-left: 0;
  list-style: none;
  position: relative;
  max-width: 100%;
  margin-left: 0;
  margin-right: auto;
}
.p-about-flow::before {
  content: "";
  position: absolute;
  top: 20px;
  bottom: 20px;
  left: 24px;
  width: 2px;
  background: #e1e9f0;
  z-index: 1;
}
@media (max-width: 768px) {
  .p-about-flow::before {
    left: 19px;
  }
}
.p-about-flow__item {
  position: relative;
  padding-left: 80px;
  margin-bottom: 50px;
  z-index: 2;
}
.p-about-flow__item:last-child {
  margin-bottom: 0;
}
@media (max-width: 768px) {
  .p-about-flow__item {
    padding-left: 60px;
    margin-bottom: 40px;
  }
}
.p-about-flow__number {
  position: absolute;
  left: 0;
  top: 0;
  width: 50px;
  height: 50px;
  background: #1e3a61;
  color: #fff;
  border-radius: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Cinzel", serif;
  font-weight: 700;
  font-size: 2.2rem;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}
@media (max-width: 768px) {
  .p-about-flow__number {
    width: 40px;
    height: 40px;
    font-size: 1.8rem;
  }
}
.p-about-flow__content {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.p-about-flow__title {
  font-size: 1.9rem;
  font-weight: 600;
  color: #1e3a61;
  margin: 0;
  line-height: 1.4;
  font-family: "Shippori Mincho", serif;
}
@media (max-width: 768px) {
  .p-about-flow__title {
    font-size: 1.7rem;
  }
}
.p-about-flow__desc {
  font-size: 1.6rem;
  line-height: 1.8;
  color: #444;
  margin: 0;
}
@media (max-width: 768px) {
  .p-about-flow__desc {
    font-size: 1.45rem;
  }
}
.p-about-info-box {
  background: #f8fbff;
  border-left: 4px solid #1e3a61;
  padding: 25px 30px;
  border-radius: 0 4px 4px 0;
}
@media (max-width: 768px) {
  .p-about-info-box {
    padding: 20px;
  }
}
.p-about-info-box p {
  margin: 0;
  font-size: 1.5rem;
  line-height: 1.8;
  color: #333;
  font-family: "Shippori Mincho", serif;
  font-weight: 500;
}
@media (max-width: 768px) {
  .p-about-info-box p {
    font-size: 1.4rem;
  }
}
.p-about-bottom-nav {
  margin-top: 60px;
}
@media (max-width: 768px) {
  .p-about-bottom-nav {
    margin-top: 40px;
  }
}
.p-about-bottom-nav__list {
  list-style: none;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 15px;
  margin: 0;
}
@media (max-width: 768px) {
  .p-about-bottom-nav__list {
    grid-template-columns: 1fr;
  }
}
.p-about-bottom-nav__item {
  border: 1px solid #e7e7e7;
  background: #fff;
  transition: all 0.3s ease;
  cursor: pointer;
  height: 100%;
}
.p-about-bottom-nav__item:hover {
  border-color: #1e3a61;
  background: #f8fbff;
}
.p-about-bottom-nav__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px 30px;
  text-decoration: none;
  color: #1e3a61 !important;
  font-size: 1.8rem;
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
}
@media (max-width: 768px) {
  .p-about-bottom-nav__link {
    padding: 18px 20px;
    font-size: 1.5rem;
  }
}
.p-about-bottom-nav__link span {
  flex: 1;
}
.p-about-bottom-nav__link i {
  font-size: 1.2rem;
  opacity: 0.5;
  transition: transform 0.3s ease;
}
.p-about-bottom-nav__link:hover i {
  transform: translateX(5px);
  opacity: 1;
}

/* About Panoramic Hero */
.p-about-hero-image {
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  margin-bottom: 120px;
  height: 60vh;
  min-height: 400px;
}
@media (max-width: 768px) {
  .p-about-hero-image {
    margin-bottom: 60px;
    height: 40vh;
    min-height: 250px;
  }
}
.p-about-hero-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* About Gallery Ticker */
.p-about-gallery {
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  overflow: hidden;
  padding: 0;
  margin-top: 0;
  margin-bottom: 0;
}
@media (max-width: 768px) {
  .p-about-gallery {
    padding: 0;
    margin-top: 0;
    margin-bottom: 0;
  }
}
.p-about-gallery__track {
  display: flex;
  width: max-content;
}
.p-about-gallery__list {
  display: flex;
  animation: ticker 80s linear infinite;
}
.p-about-gallery__item {
  width: 680px;
  aspect-ratio: 3/2;
  margin-right: 0;
  flex-shrink: 0;
}
@media (max-width: 768px) {
  .p-about-gallery__item {
    width: 420px;
    margin-right: 0;
  }
}
.p-about-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  box-shadow: none;
  border-radius: 0;
}

@keyframes ticker {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-33.333%);
  }
}
/* Ensure the main container doesn't Clip the full-width gallery */
.l-container.is-wide {
  overflow: visible;
}

.page-about #cont02,
.page-template-page-about-php #cont02 {
  margin-top: 150px;
}
@media (max-width: 768px) {
  .page-about #cont02,
  .page-template-page-about-php #cont02 {
    margin-top: 80px;
  }
}

.c-btn-googlemap {
  display: inline-block;
  padding: 15px 40px;
  background: #4285f4;
  color: #fff;
  font-weight: bold;
  text-decoration: none;
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
  transition: all 0.3s ease;
}
.c-btn-googlemap:hover {
  background: #3367d6;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
  text-decoration: none;
}

.p-access-info {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  border-bottom: 2px dashed #ddd;
  padding-bottom: 30px;
  margin-bottom: 40px;
}
@media (max-width: 768px) {
  .p-access-info {
    display: block;
    text-align: center;
  }
}
.p-access-info__logo {
  width: 180px;
  margin-right: 40px;
}
@media (max-width: 768px) {
  .p-access-info__logo {
    width: 150px;
    margin: 0 auto 20px;
  }
}
.p-access-info__logo img {
  width: 100%;
  height: auto;
}
.p-access-info__text {
  flex: 1;
  text-align: left;
}
.p-access-info__name {
  font-size: 2.8rem;
  font-weight: bold;
  margin: 0 0 20px;
  line-height: 1.2;
  font-family: "Shippori Mincho", serif;
}
@media (max-width: 768px) {
  .p-access-info__name {
    font-size: 2.2rem;
  }
}
.p-access-info__ruby {
  display: block;
  font-size: 1.2rem;
  font-weight: normal;
  margin-bottom: 5px;
}
.p-access-info__data {
  display: flex;
  flex-wrap: wrap;
  font-size: 1.6rem;
  line-height: 1.8;
}
.p-access-info__data dt {
  width: 100px;
  font-weight: normal;
  clear: both;
}
.p-access-info__data dd {
  width: calc(100% - 100px);
  margin: 0;
  padding-bottom: 10px;
}
@media (max-width: 768px) {
  .p-access-info__data {
    text-align: left;
  }
  .p-access-info__data dt, .p-access-info__data dd {
    width: 100%;
    float: none;
  }
}

.u-text-purple {
  color: #5d3191;
  font-size: 1.1em;
  font-weight: bold;
}

.p-access-route {
  position: relative;
  margin-top: 40px;
}
.p-access-route__label {
  display: inline-block;
  background: #fff;
  border: 1px solid #ddd;
  padding: 5px 15px;
  font-size: 1.4rem;
  font-weight: bold;
  position: absolute;
  top: -15px;
  left: 20px;
  z-index: 1;
}
.p-access-route__body {
  border: 2px dashed #ddd;
  padding: 30px 20px 20px;
  background: rgba(255, 255, 255, 0.5);
  font-size: 1.5rem;
  line-height: 1.8;
}

.p-access-map {
  width: 100%;
  margin-top: 40px;
}
.p-access-map iframe {
  width: 100%;
  height: 450px;
  border: 0;
  filter: grayscale(100%);
  transition: filter 0.3s ease;
}
.p-access-map iframe:hover {
  filter: grayscale(0%);
}
@media (max-width: 768px) {
  .p-access-map iframe {
    height: auto;
    aspect-ratio: 1/1;
  }
}

.p-guard-favorites-sidebar {
  display: none;
}
@media (max-width: 900px) {
  .p-guard-favorites-sidebar {
    display: block;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    pointer-events: none;
    z-index: 9000;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s, visibility 0.3s;
  }
  .p-guard-favorites-sidebar.is-visible {
    opacity: 1;
    visibility: visible;
  }
  .p-guard-favorites-sidebar .p-guard-favorites-tab {
    position: fixed;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: auto;
    width: 44px;
    padding: 24px 8px;
    background: #8b5a2b;
    color: #fff;
    border: none;
    border-radius: 12px 0 0 12px;
    box-shadow: -2px 0 12px rgba(0, 0, 0, 0.15);
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    overflow: hidden;
    z-index: 9001;
    transition: background 0.2s;
  }
  .p-guard-favorites-sidebar .p-guard-favorites-tab:hover {
    background: #a0522d;
  }
  .p-guard-favorites-sidebar .p-guard-favorites-tab__icon {
    font-size: 1.8rem;
  }
  .p-guard-favorites-sidebar .p-guard-favorites-tab__count {
    position: absolute;
    top: 4px;
    right: 4px;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    background: rgba(255, 255, 255, 0.3);
    border-radius: 9px;
    font-size: 1rem;
    font-weight: bold;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .p-guard-favorites-sidebar .p-guard-favorites-tab__text {
    font-size: 1rem;
    font-weight: bold;
    writing-mode: vertical-rl;
    text-orientation: upright;
    letter-spacing: 0.2em;
  }
  .p-guard-favorites-sidebar__overlay {
    position: fixed;
    inset: 0;
    pointer-events: auto;
    background: rgba(0, 0, 0, 0.4);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s, visibility 0.3s;
    z-index: 9000;
  }
  .p-guard-favorites-sidebar.is-open .p-guard-favorites-tab {
    opacity: 0;
    pointer-events: none;
  }
  .p-guard-favorites-sidebar.is-open .p-guard-favorites-sidebar__overlay {
    opacity: 1;
    visibility: visible;
  }
  .p-guard-favorites-sidebar.is-open .p-guard-favorites-sidebar__panel {
    transform: translate(-50%, -50%);
  }
  .p-guard-favorites-sidebar__panel {
    position: fixed;
    top: 50%;
    left: 50%;
    width: 280px;
    max-width: calc(100vw - 32px);
    height: min(560px, 100vh - 40px);
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.2);
    transform: translate(100vw, -50%);
    transition: transform 0.3s ease;
    z-index: 9001;
    pointer-events: auto;
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }
  .p-guard-favorites-sidebar__inner {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }
  .p-guard-favorites-sidebar__header {
    padding: 16px 16px 12px;
    background: #8b5a2b;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
  }
  .p-guard-favorites-sidebar__title-group {
    display: flex;
    align-items: baseline;
    gap: 4px;
  }
  .p-guard-favorites-sidebar__title {
    font-size: 1.4rem;
    font-weight: bold;
  }
  .p-guard-favorites-sidebar__count {
    font-size: 1.2rem;
    opacity: 0.95;
  }
  .p-guard-favorites-sidebar__close {
    width: 36px;
    height: 36px;
    padding: 0;
    background: rgba(255, 255, 255, 0.2);
    border: none;
    border-radius: 50%;
    color: #fff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    transition: background 0.2s;
  }
  .p-guard-favorites-sidebar__close:hover {
    background: rgba(255, 255, 255, 0.3);
  }
  .p-guard-favorites-sidebar__list {
    flex: 1;
    overflow-y: auto;
    padding: 8px;
    -webkit-overflow-scrolling: touch;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-rows: minmax(72px, auto);
    gap: 6px;
    align-content: start;
  }
  .p-guard-favorites-sidebar__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 6px;
    min-width: 0;
    color: #333;
    background: #f9f8f4;
    border-radius: 6px;
    cursor: default;
  }
  .p-guard-favorites-sidebar__thumb {
    width: 100%;
    aspect-ratio: 1;
    max-width: 40px;
    margin: 0 auto 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #fff;
    border-radius: 4px;
    flex-shrink: 0;
  }
  .p-guard-favorites-sidebar__thumb img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }
  .p-guard-favorites-sidebar__noimg {
    font-size: 0.9rem;
    color: #999;
  }
  .p-guard-favorites-sidebar__name {
    font-size: 0.95rem;
    line-height: 1.2;
    text-align: center;
    word-break: break-all;
  }
  .p-guard-favorites-sidebar__footer {
    padding: 16px;
    border-top: 1px solid #eee;
    flex-shrink: 0;
  }
  .p-guard-favorites-sidebar__all-link {
    display: block;
    width: 100%;
    padding: 12px 16px;
    background: #8b5a2b;
    color: #fff;
    text-align: center;
    text-decoration: none;
    font-weight: bold;
    font-size: 1.3rem;
    border-radius: 6px;
    transition: background 0.2s;
  }
  .p-guard-favorites-sidebar__all-link:hover {
    background: #a0522d;
    color: #fff;
  }
  .p-guard-favorites-sidebar__empty, .p-guard-favorites-sidebar__loading {
    font-size: 1.2rem;
    color: #999;
    padding: 24px 16px;
    text-align: center;
    margin: 0;
  }
  .p-guard-favorites-sidebar-modals {
    display: none;
  }
}
@media (min-width: 901px) {
  .p-guard-favorites-sidebar {
    display: none !important;
  }
}

.p-guard-list {
  margin-top: 40px;
}

.p-guard-item {
  display: block;
  margin-bottom: 60px;
  border-bottom: 1px dashed #ddd;
  padding-bottom: 40px;
}
.p-guard-item:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}
.p-guard-item--mb {
  margin-bottom: 60px !important;
}
@media (max-width: 768px) {
  .p-guard-item {
    margin-bottom: 40px;
    padding-bottom: 20px;
  }
}
.p-guard-item__title {
  font-size: 2rem;
  font-weight: bold;
  margin-bottom: 0;
  text-align: center;
  background: transparent;
  border: none;
  position: relative;
  min-height: 3.5em;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
}
.p-guard-item__title::after {
  content: "";
  display: block;
  width: 60px;
  height: 3px;
  background: #bfa145;
  margin: 10px auto 30px;
  margin-bottom: auto;
  margin: 5px auto 0;
}
@media (max-width: 768px) {
  .p-guard-item__title {
    font-size: 1.8rem;
    min-height: auto;
    display: block;
  }
  .p-guard-item__title::after {
    margin: 10px auto 0;
  }
}
.p-guard-item__visual {
  width: 100%;
  max-width: 600px;
  margin: 0 auto 30px;
  text-align: center;
}
.p-guard-item__visual img {
  width: 100%;
  height: auto;
  max-width: 100%;
  display: inline-block;
  border: 1px solid #eee;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
}
.p-guard-item__visual--row {
  max-width: 100%;
  display: flex;
  justify-content: center;
  gap: 20px;
}
.p-guard-item__visual--row > a, .p-guard-item__visual--row > img {
  width: calc(50% - 10px);
  max-width: none;
  display: block;
}
.p-guard-item__visual--row a > img {
  width: 100%;
  max-width: 100%;
  height: auto;
}
@media (max-width: 768px) {
  .p-guard-item__visual--row {
    display: block;
  }
  .p-guard-item__visual--row > a, .p-guard-item__visual--row > img {
    width: 100%;
    max-width: 100%;
    margin-bottom: 20px;
  }
  .p-guard-item__visual--row > a:last-child, .p-guard-item__visual--row > img:last-child {
    margin-bottom: 0;
  }
}
.p-guard-item__visual--sm {
  max-width: 600px !important;
}
.p-guard-item__body {
  width: 100%;
  text-align: left;
}
.p-guard-item__desc {
  font-size: 1.5rem;
  line-height: 1.8;
  background: #f9f9f9;
  padding: 20px;
  border-radius: 5px;
}

.p-guard-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-bottom: 60px;
}
.p-guard-grid .p-guard-item {
  width: 48%;
  border-bottom: none;
  margin-bottom: 40px;
  padding-bottom: 0;
  display: block;
}
@media (max-width: 768px) {
  .p-guard-grid .p-guard-item {
    width: 100%;
    margin-bottom: 40px;
    border-bottom: 1px dashed #ddd;
    padding-bottom: 20px;
    display: block;
  }
  .p-guard-grid .p-guard-item:last-child {
    border-bottom: none;
  }
  .p-guard-grid .p-guard-item__body {
    display: block;
  }
  .p-guard-grid .p-guard-item__desc {
    height: auto;
  }
}

.p-juyohin-archive {
  margin-top: 0;
}

.p-juyohin-section {
  margin-bottom: 80px;
}
.p-juyohin-section:last-child {
  margin-bottom: 0;
}
.p-juyohin-section__header {
  margin-bottom: 30px;
}
.p-juyohin-section__title {
  margin: 0;
  font-size: 3rem;
  font-weight: bold;
  line-height: 1.4;
}
@media (max-width: 768px) {
  .p-juyohin-section__title {
    font-size: 2.4rem;
  }
}
.p-juyohin-section__lead {
  margin-top: 10px;
  color: #666;
  font-size: 1.4rem;
  line-height: 1.8;
}

.p-juyohin-term-nav {
  margin-bottom: 30px;
}

.p-juyohin-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  border-top: 1px solid #eee;
  border-left: 1px solid #eee;
}
@media (max-width: 768px) {
  .p-juyohin-grid {
    display: flex;
  }
}

.p-juyohin-card {
  width: 25%;
  border-right: 1px solid #eee;
  border-bottom: 1px solid #eee;
  padding: 30px 15px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  position: relative;
  background: transparent;
  transition: background 0.3s ease;
}
.p-juyohin-card:hover {
  background: rgba(139, 90, 43, 0.02);
}
@media (max-width: 1024px) {
  .p-juyohin-card {
    width: 33.33%;
  }
}
@media (max-width: 768px) {
  .p-juyohin-card {
    width: 50%;
    margin-bottom: 0;
    padding: 15px 8px;
  }
  .p-juyohin-card:last-child {
    margin-bottom: 0;
  }
}
.p-juyohin-card__visual {
  margin-bottom: 20px;
  text-align: center;
  aspect-ratio: 1/1;
  height: 260px;
  max-height: 260px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  overflow: hidden;
}
@media (max-width: 768px) {
  .p-juyohin-card__visual {
    height: 140px;
    max-height: 140px;
    margin-bottom: 10px;
  }
}
.p-juyohin-card__visual a {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
}
.p-juyohin-card__visual img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  border: none;
  box-shadow: none;
  padding: 5px;
}
.p-juyohin-card__body {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.p-juyohin-card__title {
  margin: 0 0 10px;
  font-size: 1.5rem;
  line-height: 1.5;
  font-weight: 500;
  text-align: center;
  font-family: "Shippori Mincho", serif;
  min-height: 3em;
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-juyohin-card__title a {
  color: #333;
  text-decoration: none;
}
@media (max-width: 768px) {
  .p-juyohin-card__title {
    font-size: 1.3rem;
    min-height: auto;
  }
}
.p-juyohin-card__seasonal {
  font-size: 1.1rem;
  color: #8b5a2b;
  font-weight: bold;
  margin: -5px 0 10px;
  text-align: center;
}
@media (max-width: 768px) {
  .p-juyohin-card__seasonal {
    font-size: 1rem;
    margin: 0 0 5px;
  }
}
.p-juyohin-card__specs {
  font-size: 1.2rem;
  color: #888;
  line-height: 1.5;
  text-align: center;
  margin-bottom: 15px;
}
.p-juyohin-card .p-guard-item__btn-wrap {
  margin-top: 15px;
  width: 100%;
  text-align: center;
  padding-top: 10px;
}
.p-juyohin-card__spec {
  margin: 0;
}

.p-juyohin-empty {
  padding: 20px;
  background: #f9f9f9;
  border-radius: 5px;
  color: #666;
  line-height: 1.8;
}

.p-favorites-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  border-top: 1px solid #eee;
  border-left: 1px solid #eee;
  margin-top: 40px;
}

.p-favorites-modals {
  display: none;
}

.p-favorites-empty {
  padding: 40px 20px;
  text-align: center;
  margin-top: 40px;
}
.p-favorites-empty p {
  margin-bottom: 20px;
  font-size: 1.5rem;
  color: #666;
}

.p-favorite-item {
  width: 25%;
  border-right: 1px solid #eee;
  border-bottom: 1px solid #eee;
  padding: 30px 15px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  position: relative;
  background: transparent;
  transition: background 0.3s ease;
}
.p-favorite-item:hover {
  background: rgba(139, 90, 43, 0.02);
}
@media (max-width: 1024px) {
  .p-favorite-item {
    width: 33.33%;
  }
}
@media (max-width: 768px) {
  .p-favorite-item {
    width: 50%;
    padding: 15px 8px;
  }
}
.p-favorite-item__remove {
  position: absolute;
  top: 15px;
  right: 15px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid #ddd;
  background: #fff;
  color: #666;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  z-index: 2;
  transition: border-color 0.3s, color 0.3s;
}
.p-favorite-item__remove:hover {
  border-color: #e74c3c;
  color: #e74c3c;
}
.p-favorite-item__visual {
  margin-bottom: 20px;
  text-align: center;
  aspect-ratio: 1/1;
  height: 260px;
  max-height: 260px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
@media (max-width: 768px) {
  .p-favorite-item__visual {
    height: 140px;
    max-height: 140px;
    margin-bottom: 10px;
  }
}
.p-favorite-item__visual img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  border: none;
  padding: 5px;
}
.p-favorite-item__content {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.p-favorite-item__title {
  margin: 0 0 10px;
  font-size: 1.5rem;
  line-height: 1.5;
  font-weight: 500;
  font-family: "Shippori Mincho", serif;
  min-height: 3em;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (max-width: 768px) {
  .p-favorite-item__title {
    font-size: 1.3rem;
    min-height: auto;
  }
}
.p-favorite-item__specs {
  font-size: 1.2rem;
  color: #888;
  line-height: 1.5;
  text-align: center;
  margin-bottom: 0;
}
.p-favorite-item__specs .c-btn-more {
  display: inline-block;
  margin-top: 10px;
}

.p-juyohin-single__title {
  margin: 0 0 30px;
  font-size: 3.2rem;
  line-height: 1.4;
}
@media (max-width: 768px) {
  .p-juyohin-single__title {
    font-size: 2.6rem;
  }
}
.p-juyohin-single__terms {
  margin-bottom: 20px;
}
.p-juyohin-single__visual {
  margin-bottom: 30px;
}
.p-juyohin-single__visual img {
  width: 100%;
  height: auto;
  display: block;
  border: 1px solid #eee;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
}
.p-juyohin-single__content {
  padding: 30px;
  background: #f9f9f9;
  border-radius: 5px;
  line-height: 1.9;
}
.p-juyohin-single__content p:last-child {
  margin-bottom: 0;
}
.p-juyohin-single__back {
  margin-top: 30px;
}
.p-juyohin-single__meta {
  margin: 0 0 30px;
  padding: 0;
  border: 1px solid #e5e5e5;
  border-radius: 5px;
  background: #fff;
}
.p-juyohin-single__meta-row {
  display: flex;
  border-bottom: 1px solid #e5e5e5;
}
.p-juyohin-single__meta-row:last-child {
  border-bottom: none;
}
.p-juyohin-single__meta-row dt,
.p-juyohin-single__meta-row dd {
  margin: 0;
  padding: 14px 18px;
  font-size: 1.4rem;
  line-height: 1.7;
}
.p-juyohin-single__meta-row dt {
  width: 140px;
  flex-shrink: 0;
  background: #f5f5f5;
  font-weight: bold;
}
.p-juyohin-single__meta-row dd {
  flex: 1;
}
@media (max-width: 768px) {
  .p-juyohin-single__meta-row {
    display: block;
  }
  .p-juyohin-single__meta-row dt,
  .p-juyohin-single__meta-row dd {
    width: 100%;
  }
  .p-juyohin-single__meta-row dt {
    padding-bottom: 8px;
  }
  .p-juyohin-single__meta-row dd {
    padding-top: 0;
  }
}

.p-goshuin-list {
  margin-top: 30px;
  margin-bottom: 50px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.p-goshuin-item {
  text-align: center;
  margin-bottom: 30px;
  max-width: 400px;
  margin-left: auto;
  margin-right: auto;
}
.p-goshuin-item img {
  width: 100%;
  max-width: 100%;
  height: auto;
  border: 1px solid #eee;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
}
.p-goshuin-item p {
  font-weight: bold;
  font-size: 1.6rem;
  line-height: 1.5;
  margin-top: 30px;
}
.p-goshuin-item .u-text-small {
  text-align: left;
  margin-top: 10px;
}
.p-goshuin-item--limit img {
  max-width: 600px !important;
}

.u-text-small {
  font-size: 0.8em;
  font-weight: normal;
  display: block;
  margin-top: 5px;
  color: #666;
}

.p-guard-footer {
  margin-top: 60px;
  padding-top: 40px;
  border-top: 1px dashed #ddd;
  text-align: center;
}
.p-guard-footer__text {
  font-size: 1.6rem;
  font-weight: bold;
}
.p-guard-footer__btn {
  margin-top: 30px;
}
.p-guard-footer__btn a {
  display: block;
  width: 100%;
  padding: 20px;
  background: #bfa145;
  color: #fff;
  text-decoration: none;
  transition: opacity 0.3s;
  font-weight: bold;
  font-size: 1.6rem;
}
.p-guard-footer__btn a:hover {
  opacity: 0.8;
  background: #bfa145;
  color: #fff;
}

.p-guard-item__body {
  display: none;
  background: #f9f9f9;
  border-bottom: 1px solid #ddd;
  overflow: hidden;
}
.p-guard-item__desc {
  background: transparent;
  border: none;
  border-radius: 0;
  margin: 0;
  padding: 20px;
}

.p-guard-accordion-trigger {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: transparent;
  padding: 15px 10px;
  border: none;
  border-top: 1px solid #ddd;
  border-bottom: 1px solid #ddd;
  border-radius: 0;
  cursor: pointer;
  font-weight: bold;
  font-size: 1.5rem;
  transition: all 0.3s;
  margin-top: 20px;
}
.p-guard-accordion-trigger:hover {
  background: rgba(0, 0, 0, 0.02);
}
.p-guard-accordion-trigger.is-open {
  background: #f9f9f9;
  border-bottom: 1px solid transparent;
  margin-bottom: 0;
}
.p-guard-accordion-trigger.is-open .p-guard-accordion-icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.p-guard-accordion-icon {
  width: 20px;
  height: 20px;
  position: relative;
  flex-shrink: 0;
}
.p-guard-accordion-icon::before, .p-guard-accordion-icon::after {
  content: "";
  display: block;
  background: #333;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.p-guard-accordion-icon::before {
  width: 12px;
  height: 2px;
}
.p-guard-accordion-icon::after {
  width: 2px;
  height: 12px;
  transition: transform 0.3s;
}

.lity .lity-content:has(.p-juyohin-modal) {
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  overflow: hidden;
}

.p-juyohin-modal {
  max-width: 900px;
  background: #fff;
  padding: 0;
  border-radius: 0;
  overflow: hidden;
}
.p-juyohin-modal__inner {
  display: flex;
  background: #fff;
}
@media (max-width: 768px) {
  .p-juyohin-modal__inner {
    display: block;
  }
}
.p-juyohin-modal__visual {
  width: 300px;
  height: 300px;
  flex-shrink: 0;
  background: #fdfcf9;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 30px;
  overflow: hidden;
}
.p-juyohin-modal__visual img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
@media (max-width: 768px) {
  .p-juyohin-modal__visual {
    width: 100%;
    height: 280px;
    max-width: none;
    padding: 25px;
  }
}
.p-juyohin-modal__content {
  flex: 1;
  padding: 50px 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
@media (max-width: 768px) {
  .p-juyohin-modal__content {
    padding: 30px 20px;
  }
}
.p-juyohin-modal__title {
  font-size: 2.6rem;
  font-weight: bold;
  margin-bottom: 25px;
  color: #333;
  font-family: "Shippori Mincho", serif;
  position: relative;
  padding-bottom: 15px;
}
.p-juyohin-modal__title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 40px;
  height: 2px;
  background: #8b5a2b;
}
@media (max-width: 768px) {
  .p-juyohin-modal__title {
    font-size: 2rem;
  }
}
.p-juyohin-modal__specs {
  margin-bottom: 25px;
}
.p-juyohin-modal__specs dl {
  display: flex;
  margin-bottom: 10px;
  font-size: 1.5rem;
  border-bottom: 1px dashed #eee;
  padding-bottom: 10px;
}
.p-juyohin-modal__specs dl dt {
  width: 100px;
  font-weight: bold;
  color: #8b5a2b;
}
.p-juyohin-modal__specs dl dd {
  flex: 1;
  color: #555;
}
.p-juyohin-modal__desc {
  font-size: 1.5rem;
  line-height: 1.8;
  color: #444;
}
.p-juyohin-modal__desc p {
  margin-bottom: 15px;
}
.p-juyohin-modal__desc p:last-child {
  margin-bottom: 0;
}

.p-goshuin-banner {
  display: block;
  position: relative;
  border-radius: 8px;
  overflow: hidden;
  text-decoration: none;
  margin-top: 15px;
}
.p-goshuin-banner:hover {
  opacity: 0.8;
}
.p-goshuin-banner img {
  width: 100%;
  height: auto;
  display: block;
  border: 1px solid #eee;
}
.p-goshuin-banner__label {
  display: block;
  background: #e74c3c;
  color: #fff;
  padding: 12px;
  font-size: 1.4rem;
  font-weight: bold;
  text-align: center;
  border: 1px solid #e74c3c;
  border-top: none;
  transition: all 0.3s ease;
}

.p-goshuin-item__coming-soon {
  width: 100%;
  aspect-ratio: 1/1.4;
  background: #f5f5f5;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #999;
  font-size: 1.8rem;
  font-weight: bold;
  border: 1px dashed #ddd;
  border-radius: 5px;
}

.u-text-red {
  color: #e74c3c !important;
}

.p-prayers-section {
  margin-bottom: 100px;
}
@media (max-width: 768px) {
  .p-prayers-section {
    margin-bottom: 70px;
  }
}

.p-prayers-title {
  font-size: 2.6rem;
  font-weight: bold;
  text-align: center;
  margin-bottom: 60px;
  position: relative;
  padding-bottom: 20px;
  letter-spacing: 0.1em;
}
.p-prayers-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 3px;
  background: #bfa145;
}
@media (max-width: 768px) {
  .p-prayers-title {
    font-size: 2rem;
    margin-bottom: 40px;
  }
}

.p-prayers-visual {
  text-align: center;
  margin-bottom: 60px;
}
.p-prayers-visual img {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  border-radius: 5px;
}

.p-prayers-item {
  margin-top: 50px;
  padding-bottom: 60px;
  border-bottom: 1px dashed #ddd;
}
@media (max-width: 768px) {
  .p-prayers-item {
    margin-top: 0;
  }
}
.p-prayers-item:last-child {
  border-bottom: none;
  padding-bottom: 0;
  margin-bottom: 0;
}
.p-prayers-item__title {
  font-size: 2rem;
  font-weight: bold;
  margin-bottom: 30px;
  border-left: 5px solid #bfa145;
  padding-left: 20px;
  line-height: 1.5;
}
.p-prayers-item__title .u-text-small {
  font-size: 0.7em;
  font-weight: normal;
  margin-left: 10px;
}
.p-prayers-item__img {
  text-align: center;
  margin-top: 40px;
}
.p-prayers-item__img img {
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
  border: 1px solid #eee;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
}

.p-prayers-sub-title {
  font-size: 1.8rem;
  font-weight: bold;
  margin-bottom: 20px;
  color: #333;
  border-bottom: 2px solid #eee;
  padding-bottom: 10px;
  display: inline-block;
  margin-top: 20px;
}

.p-yakuyoke-table {
  text-align: center;
  margin-top: 30px;
}
.p-yakuyoke-table img {
  max-width: 100%;
  height: auto;
  border: 1px solid #ddd;
}

.p-yakuyoke-summary {
  border: 1px solid #e0d8c8;
  background: #fff;
  padding: 40px;
  border-radius: 10px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03);
  margin-top: 40px;
}
@media (max-width: 768px) {
  .p-yakuyoke-summary {
    padding: 25px 15px;
    margin-top: 30px;
  }
}
@media (min-width: 1025px) {
  .p-yakuyoke-summary .row {
    display: flex;
    align-items: stretch;
  }
}

.p-yakuyoke-dropcap {
  display: flex;
  align-items: flex-start;
  gap: 15px;
  margin-bottom: 25px;
}
.p-yakuyoke-dropcap:last-child {
  margin-bottom: 0;
}
.p-yakuyoke-dropcap__char {
  font-size: 4.2rem;
  color: #8e7446;
  font-weight: bold;
  line-height: 1;
  font-family: "Shippori Mincho", serif;
  flex-shrink: 0;
  padding-top: 2px;
}
.p-yakuyoke-dropcap__text {
  font-size: 1.5rem;
  line-height: 1.8;
  color: #333;
}

.p-yakuyoke-set-img {
  width: 100%;
  height: auto;
  aspect-ratio: 3/2;
  object-fit: cover;
  border-radius: 6px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.p-prayers-nav__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: 10px;
  row-gap: 15px;
}
.p-prayers-nav__grid--4col {
  grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 768px) {
  .p-prayers-nav__grid {
    grid-template-columns: repeat(2, 1fr);
    column-gap: 10px;
    row-gap: 10px;
  }
  .p-prayers-nav__grid--2col-sp {
    grid-template-columns: repeat(2, 1fr);
  }
}
.p-prayers-nav__item {
  display: block;
  background: #fff;
  border: 1px solid #e0d8c8;
  padding: 20px 15px 45px;
  text-align: center;
  text-decoration: none !important;
  color: inherit !important;
  border-radius: 8px;
  transition: all 0.3s ease;
  height: 100%;
  position: relative;
}
.p-prayers-nav__item::after {
  content: "";
  position: absolute;
  bottom: 15px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 10px 8px 0 8px;
  border-color: #e0d8c8 transparent transparent transparent;
  transition: all 0.3s ease;
}
.p-prayers-nav__item:hover {
  border-color: #8e7446;
}
.p-prayers-nav__item:hover .p-prayers-nav__name {
  color: #8e7446;
}
.p-prayers-nav__item:hover::after {
  border-color: #8e7446 transparent transparent transparent;
  transform: translateX(-50%) translateY(5px);
}
.p-prayers-nav__icon {
  width: 50%;
  height: auto;
  aspect-ratio: 16/9;
  margin: 0 auto 15px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: 4px;
}
@media (max-width: 768px) {
  .p-prayers-nav__icon {
    width: 70%;
    height: auto;
    margin-bottom: 10px;
  }
}
.p-prayers-nav__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.p-prayers-nav__name {
  font-size: 1.8rem;
  font-weight: bold;
  color: #1e3a61;
  margin-bottom: 15px;
  font-family: "Shippori Mincho", serif;
  transition: color 0.3s;
}
@media (max-width: 768px) {
  .p-prayers-nav__name {
    font-size: 1.5rem;
    margin-bottom: 10px;
    line-height: 1.4;
  }
  .p-prayers-nav__name span {
    display: inline-block;
  }
}
.p-prayers-nav__desc {
  font-size: 1.4rem;
  line-height: 1.6;
  color: #666;
  text-align: left;
  margin-bottom: 0;
}
@media (max-width: 768px) {
  .p-prayers-nav__desc {
    font-size: 1.2rem;
    text-align: center;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
}

.p-prayers-box {
  border: 1px solid #e0d8c8;
  padding: 60px;
  background: #fff;
  position: relative;
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
  background-image: url("../img/pattern-seigaiha.webp");
  background-size: 200px;
  background-repeat: repeat;
  background-blend-mode: overlay;
  background-color: rgba(255, 255, 255, 0.95);
}
@media (max-width: 768px) {
  .p-prayers-box {
    padding: 40px 8px;
  }
}
.p-prayers-box__main-time {
  font-size: 2.4rem;
  font-weight: bold;
  color: #333;
  font-family: "Shippori Mincho", serif;
  margin-bottom: 30px;
}
@media (max-width: 768px) {
  .p-prayers-box__main-time {
    font-size: 1.8rem;
  }
}

.p-schedule-category {
  font-family: "Shippori Mincho", serif;
  font-size: 2rem;
  font-weight: bold;
  color: #1e3a61;
  padding-bottom: 10px;
  border-bottom: 2px solid #1e3a61;
  display: inline-block;
  margin-bottom: 10px;
}
@media (max-width: 768px) {
  .p-schedule-category {
    font-size: 1.8rem;
  }
}

.p-schedule-list dl {
  display: flex;
  flex-wrap: wrap;
  border-bottom: 1px solid #eee;
  padding: 20px 0;
}
.p-schedule-list dl:last-child {
  border-bottom: none;
}
.p-schedule-list dl dt {
  width: 20%;
  font-weight: bold;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #1e3a61;
  color: #fff;
  border-radius: 0;
  padding: 10px;
  margin-right: 0;
}
@media (max-width: 768px) {
  .p-schedule-list dl dt {
    width: 100%;
    margin-bottom: 0;
    margin-right: 0;
    justify-content: center;
    padding: 15px;
  }
}
.p-schedule-list dl dd {
  width: 80%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  line-height: 1.8;
  background: #fff;
  padding: 10px 20px;
}
@media (max-width: 768px) {
  .p-schedule-list dl dd {
    width: 100%;
    padding: 20px;
  }
}

.p-apply-flow {
  margin-top: 30px;
}
.p-apply-flow dt {
  font-weight: bold;
  margin-bottom: 10px;
  color: #1e3a61;
  font-size: 1.6rem;
}
.p-apply-flow dt::before {
  content: "■";
  margin-right: 10px;
  font-size: 0.8em;
  color: #ccc;
}
.p-apply-flow dd {
  margin-bottom: 30px;
  padding-left: 1.5em;
  line-height: 1.8;
}
.p-apply-flow dd:last-child {
  margin-bottom: 0;
}

.p-attention-box {
  background: #fdfaf5;
  border: 1px solid #dcd5c5;
  padding: 40px;
  border-radius: 5px;
  margin-top: 50px;
  position: relative;
}
.p-attention-box::before {
  content: "ご案内";
  position: absolute;
  top: -15px;
  left: 50%;
  transform: translateX(-50%);
  background: #1e3a61;
  color: #fff;
  padding: 6px 25px;
  font-size: 1.5rem;
  font-weight: bold;
  border-radius: 0;
  letter-spacing: 0.1em;
}
.p-attention-box__title {
  color: #1e3a61;
  margin-bottom: 20px;
  font-weight: bold;
  font-size: 1.9rem;
  text-align: left;
  display: block;
}
.p-attention-box__text {
  font-size: 1.7rem;
  line-height: 2;
  color: #444;
  margin: 0;
  text-align: left;
}
@media (max-width: 768px) {
  .p-attention-box__text {
    text-align: justify;
    font-size: 1.5rem;
  }
}

.p-gallery-item {
  margin-bottom: 30px;
}
@media (max-width: 768px) {
  .p-gallery-item {
    margin-bottom: 10px;
    padding-left: 5px;
    padding-right: 5px;
  }
}
.p-gallery-item {
  text-align: center;
}
.p-gallery-item img {
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
  border: 1px solid #eee;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  display: block;
}

.u-ruby {
  font-size: 0.6em;
}

.p-modal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10000;
}
.p-modal.is-active {
  display: block;
}
.p-modal__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.7);
}
.p-modal__content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 90%;
  max-width: 800px;
  max-height: 90vh;
  background-color: #f2efe9;
  overflow-y: auto;
  padding: 40px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
  border-radius: 5px;
}
@media (max-width: 768px) {
  .p-modal__content {
    padding: 20px;
    width: 95%;
  }
}
.p-modal__close {
  position: absolute;
  top: 15px;
  right: 15px;
  width: 30px;
  height: 30px;
  cursor: pointer;
  background: #d0021b;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.3s;
}
.p-modal__close:hover {
  opacity: 0.8;
}
.p-modal__close span {
  display: block;
  width: 16px;
  height: 16px;
  position: relative;
}
.p-modal__close span::before, .p-modal__close span::after {
  content: "";
  position: absolute;
  top: 7px;
  left: 0;
  width: 100%;
  height: 2px;
  background: #fff;
  transform: rotate(45deg);
}
.p-modal__close span::after {
  transform: rotate(-45deg);
}
.p-modal__header {
  text-align: center;
  margin-bottom: 30px;
}
.p-modal__title {
  font-size: 2.4rem;
  font-weight: bold;
  color: #8e7446;
}

.p-yakuyoke-section {
  margin-bottom: 40px;
}

.p-yakuyoke-title {
  background: #1e266d;
  color: #fff;
  padding: 10px 20px;
  font-size: 1.6rem;
  font-weight: bold;
  border-radius: 4px;
  margin-bottom: 20px;
}

.p-yakuyoke-grid {
  display: flex;
  flex-direction: column;
  border: 1px solid #ddd;
}

.p-yakuyoke-row {
  display: flex;
  border-bottom: 1px solid #eee;
}
.p-yakuyoke-row:last-child {
  border-bottom: none;
}
.p-yakuyoke-row--head {
  background: #e6dfd1;
  font-weight: bold;
  text-align: center;
}
.p-yakuyoke-row--head .p-yakuyoke-col {
  padding: 15px 10px;
  font-size: 1.6rem;
  color: #5c4527;
}
.p-yakuyoke-row:not(.p-yakuyoke-row--head) .p-yakuyoke-col {
  background: #fdfbf9;
}
.p-yakuyoke-row:not(.p-yakuyoke-row--head) .p-yakuyoke-col:nth-child(2) {
  background: #e6dfd1;
}

.p-yakuyoke-col {
  flex: 1;
  padding: 20px 10px;
  text-align: center;
  border-right: 1px solid #eee;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.p-yakuyoke-col:last-child {
  border-right: none;
}
.p-yakuyoke-col .d-year {
  display: block;
  font-size: 1.2rem;
  margin-bottom: 5px;
  color: #666;
}
.p-yakuyoke-col .d-age {
  display: block;
  font-size: 2.4rem;
  font-weight: bold;
  color: #8e7446;
  line-height: 1.2;
}
.p-yakuyoke-col .d-eto {
  display: block;
  font-size: 1.2rem;
  margin-top: 5px;
}

.p-prayers-info-block {
  background: #fff;
  border: 1px solid #e0d8c8;
  padding: 40px;
  border-radius: 8px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03);
  margin: 60px 0 20px;
}
@media (max-width: 768px) {
  .p-prayers-info-block {
    padding: 30px 20px;
    margin-top: 40px;
  }
}
.p-prayers-info-block .c-sub-title {
  justify-content: center;
  text-align: center;
}
.p-prayers-info-block .c-sub-title::before {
  display: none !important;
}
.p-prayers-info-block__text {
  text-align: center;
  margin-bottom: 30px;
  line-height: 1.8;
}
@media (max-width: 768px) {
  .p-prayers-info-block__text {
    text-align: left;
  }
}

.p-neryear .p-home-section {
  margin-bottom: 50px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
@media (max-width: 768px) {
  .p-neryear .p-home-section {
    margin-bottom: 24px !important;
  }
}
.p-neryear .p-home-section--bt50 {
  margin-bottom: 50px !important;
}
@media (max-width: 768px) {
  .p-neryear .p-home-section--bt50 {
    margin-bottom: 24px !important;
  }
}
.p-neryear .p-home-section__inner {
  display: flex !important;
  flex-direction: column;
  align-items: center !important;
  gap: 0 !important;
  padding-top: 20px !important;
  padding-bottom: 20px !important;
}
@media (max-width: 768px) {
  .p-neryear .p-home-section__inner {
    padding-top: 10px !important;
    padding-bottom: 10px !important;
  }
}
.p-neryear .p-home-section__caption {
  flex: none;
  width: 100% !important;
  max-width: none !important;
  margin-bottom: 0 !important;
  padding-right: 0 !important;
  text-align: center !important;
  writing-mode: horizontal-tb !important;
  display: flex;
  flex-direction: column;
  align-items: center !important;
}
.p-neryear .p-home-section__caption::before {
  display: none !important;
}
.p-neryear .p-home-section__contents {
  width: 100% !important;
  max-width: none !important;
  margin: 0 auto;
  text-align: left;
}
.p-neryear .p-neryear-main-title {
  font-size: 4.8rem;
  font-weight: bold;
  color: #1e3a61;
  text-align: center;
  margin-bottom: 60px;
  font-family: "Shippori Mincho", serif;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 30px;
  letter-spacing: 0.06em;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-main-title {
    font-size: 3.2rem;
    margin-bottom: 40px;
    gap: 15px;
  }
}
.p-neryear .p-neryear-main-title::before, .p-neryear .p-neryear-main-title::after {
  content: "";
  width: 100px;
  height: 3px;
  background: #8e7446;
  border-top: 1px solid #8e7446;
  border-bottom: 1px solid #8e7446;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-main-title::before, .p-neryear .p-neryear-main-title::after {
    width: 40px;
  }
}
.p-neryear .p-neryear-section-title {
  font-size: 3.6rem !important;
  font-weight: bold !important;
  color: #1e3a61 !important;
  font-family: "Shippori Mincho", serif !important;
  position: relative !important;
  width: fit-content !important;
  margin: 0 auto 16px !important;
  padding: 10px 80px !important;
  text-align: center !important;
  letter-spacing: 0.05em;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-section-title {
    font-size: 2.6rem !important;
    padding: 10px 42px !important;
  }
}
.p-neryear .p-neryear-section-title span {
  display: inline-block;
  white-space: nowrap;
}
.p-neryear .p-neryear-section-title::before, .p-neryear .p-neryear-section-title::after {
  content: "" !important;
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 60px !important;
  height: 2px !important;
  background: #8e7446 !important;
  border-top: 1px solid #8e7446 !important;
  border-bottom: 1px solid #8e7446 !important;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-section-title::before, .p-neryear .p-neryear-section-title::after {
    width: 30px !important;
  }
}
.p-neryear .p-neryear-section-title::before {
  left: 0 !important;
}
.p-neryear .p-neryear-section-title::after {
  right: 0 !important;
}
.p-neryear .c-sub-title {
  font-size: 2.2rem;
  font-weight: bold;
  color: #1e3a61;
  font-family: "Shippori Mincho", serif;
  text-align: left;
  margin-bottom: 24px;
  position: relative;
  display: flex !important;
  align-items: flex-start !important;
  flex-wrap: nowrap !important;
  padding-bottom: 16px;
}
@media (max-width: 768px) {
  .p-neryear .c-sub-title {
    font-size: 1.8rem;
  }
}
.p-neryear .c-sub-title::before {
  margin-top: -3px !important;
}
@media (max-width: 768px) {
  .p-neryear .c-sub-title::before {
    margin-top: -1px !important;
  }
}
.p-neryear .c-sub-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 240px;
  height: 2px;
  background: linear-gradient(to right, #d4af37, transparent);
}
.p-neryear .p-neryear-gallery {
  overflow: hidden;
  margin-bottom: 60px;
  position: relative;
  padding: 0;
  background: transparent;
  border: none;
}
.p-neryear .p-neryear-gallery::before, .p-neryear .p-neryear-gallery::after {
  display: none !important;
}
.p-neryear .p-neryear-gallery__track {
  display: flex;
  gap: 20px;
  width: max-content;
  animation: neryear-marquee 80s linear infinite;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-gallery__track {
    gap: 10px;
  }
}
.p-neryear .p-neryear-gallery img {
  width: auto;
  height: 280px;
  aspect-ratio: 3/2;
  border-radius: 0;
  object-fit: cover;
  flex-shrink: 0;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-gallery img {
    height: 180px;
  }
}
@keyframes neryear-marquee {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(calc(-50% - 10px));
  }
}
.p-neryear .p-neryear-entry-nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  margin-bottom: 60px;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-entry-nav {
    gap: 12px;
    margin-bottom: 0px;
  }
}
.p-neryear .p-neryear-entry-btn {
  display: block;
  position: relative;
  aspect-ratio: 1.6/1;
  border-radius: 0;
  overflow: hidden;
  text-decoration: none;
  color: #333;
  border: 2px solid #fff;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
  transition: box-shadow 0.3s ease;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-entry-btn {
    border-width: 1px;
    border-radius: 0;
    aspect-ratio: 1/1;
  }
}
.p-neryear .p-neryear-entry-btn__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.p-neryear .p-neryear-entry-btn__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.p-neryear .p-neryear-entry-btn__bg::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 45%, rgba(255, 255, 255, 0.85) 75%, rgb(255, 255, 255) 100%);
  z-index: 2;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-entry-btn__bg::after {
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 15%, rgba(255, 255, 255, 0.95) 55%, rgb(255, 255, 255) 100%);
  }
}
.p-neryear .p-neryear-entry-btn__content {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 3;
  padding: 24px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-entry-btn__content {
    padding: 12px 8px 46px;
  }
}
.p-neryear .p-neryear-entry-btn__title-wrap {
  align-self: center;
  background: #fff;
  border: 1px solid #8e7446;
  border-radius: 0;
  padding: 6px 12px;
  max-width: 95%;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
  text-align: center;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-entry-btn__title-wrap {
    padding: 4px 8px;
  }
}
.p-neryear .p-neryear-entry-btn__title {
  font-size: 1.8rem;
  color: #1e3a61;
  font-family: "Shippori Mincho", serif;
  font-weight: bold;
  line-height: 1.3;
  margin: 0;
  text-align: center;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-entry-btn__title {
    font-size: 1.2rem;
  }
}
.p-neryear .p-neryear-entry-btn__text {
  font-size: 1.6rem;
  font-weight: bold;
  color: #333;
  text-shadow: none;
  margin: 0;
  line-height: 1.5;
  text-align: center;
  width: 100%;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-entry-btn__text {
    font-size: 1.2rem;
    line-height: 1.4;
  }
}
.p-neryear .p-neryear-entry-btn__click {
  position: absolute;
  bottom: 20px;
  right: 20px;
  z-index: 4;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid #8e7446;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  transition: all 0.3s ease;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-entry-btn__click {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: 38px;
    border-radius: 0;
    border: none;
    border-top: 1px solid #f2ece1;
    background: #fdfaf5;
    box-shadow: none;
    display: flex;
    align-items: center;
    justify-content: center;
  }
}
.p-neryear .p-neryear-entry-btn__click span {
  font-size: 1.2rem;
  font-weight: bold;
  color: #8e7446;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-entry-btn__click span {
    font-size: 1.2rem;
    color: #8e7446;
    display: flex;
    align-items: center;
    gap: 4px;
  }
  .p-neryear .p-neryear-entry-btn__click span::after {
    content: ">";
    font-family: monospace;
    font-size: 1.2rem;
  }
}
.p-neryear .p-neryear-entry-btn:hover {
  transform: none;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
}
.p-neryear .p-neryear-entry-btn:hover .p-neryear-entry-btn__bg img {
  transform: scale(1.04);
}
.p-neryear .p-neryear-entry-btn:hover .p-neryear-entry-btn__click {
  background: #8e7446;
  border-color: #fff;
}
.p-neryear .p-neryear-entry-btn:hover .p-neryear-entry-btn__click span {
  color: #fff;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-entry-btn:hover .p-neryear-entry-btn__click {
    background: #f5eae1;
  }
  .p-neryear .p-neryear-entry-btn:hover .p-neryear-entry-btn__click span {
    color: #8e7446;
  }
}
.p-neryear .p-prayers-nav--neryear .p-prayers-nav__grid {
  gap: 12px;
}
.p-neryear .p-prayers-nav--neryear .p-prayers-nav__grid--4col {
  grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 768px) {
  .p-neryear .p-prayers-nav--neryear .p-prayers-nav__grid--4col {
    grid-template-columns: repeat(2, 1fr);
  }
}
.p-neryear .p-prayers-nav--neryear .p-prayers-nav__grid--2col {
  grid-template-columns: repeat(2, 1fr);
}
@media (max-width: 768px) {
  .p-neryear .p-prayers-nav--neryear .p-prayers-nav__grid--2col {
    grid-template-columns: 1fr;
  }
}
.p-neryear .p-prayers-nav--neryear .p-prayers-nav__item {
  padding: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  border: 1px solid #ddd;
  border-radius: 8px;
  background: #fff;
  transition: all 0.3s ease;
}
.p-neryear .p-prayers-nav--neryear .p-prayers-nav__item::after {
  display: none;
}
.p-neryear .p-prayers-nav--neryear .p-prayers-nav__item:hover {
  border-color: #8e7446;
  transform: none;
}
.p-neryear .p-prayers-nav--neryear .p-prayers-nav__item:hover .p-prayers-nav__footer {
  background: #eee;
  color: #1e3a61;
}
.p-neryear .p-prayers-nav--neryear .p-prayers-nav__icon {
  padding: 24px 15px 15px;
  width: 80px;
  height: auto;
  aspect-ratio: 1/1;
  margin: 0 auto 5px;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (max-width: 768px) {
  .p-neryear .p-prayers-nav--neryear .p-prayers-nav__icon {
    width: 60px;
    padding: 15px 10px 10px;
  }
}
.p-neryear .p-prayers-nav--neryear .p-prayers-nav__icon--fa {
  font-size: 40px;
  color: #bbb;
}
@media (max-width: 768px) {
  .p-neryear .p-prayers-nav--neryear .p-prayers-nav__icon--fa {
    font-size: 30px;
  }
}
.p-neryear .p-prayers-nav--neryear .p-prayers-nav__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.p-neryear .p-prayers-nav--neryear .p-prayers-nav__body {
  padding: 0 10px 20px;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.p-neryear .p-prayers-nav--neryear .p-prayers-nav__name {
  font-size: 2.2rem;
  margin-bottom: 5px;
  line-height: 1.4;
  color: #1e3a61;
  font-weight: bold;
}
@media (max-width: 768px) {
  .p-neryear .p-prayers-nav--neryear .p-prayers-nav__name {
    font-size: 1.8rem;
  }
}
.p-neryear .p-prayers-nav--neryear .p-prayers-nav__desc {
  font-size: 1.3rem;
  color: #666;
  line-height: 1.5;
  text-align: center;
}
@media (max-width: 768px) {
  .p-neryear .p-prayers-nav--neryear .p-prayers-nav__desc {
    font-size: 1.2rem;
  }
}
.p-neryear .p-prayers-nav--neryear .p-prayers-nav__footer {
  background: #f8f8f8;
  border-top: 1px solid #eee;
  padding: 8px 10px;
  font-size: 1.4rem;
  color: #888;
  text-align: center;
  transition: all 0.2s ease;
}
@media (max-width: 768px) {
  .p-neryear .p-prayers-nav--neryear .p-prayers-nav__footer {
    font-size: 1.2rem;
    padding: 6px 5px;
  }
}
.p-neryear .p-neryear-facility-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px;
  margin-top: 24px;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-facility-grid {
    grid-template-columns: repeat(1, 1fr);
    gap: 24px;
  }
}
.p-neryear .p-neryear-facility-grid__item {
  text-decoration: none;
  color: #1e3a61;
  display: flex;
  flex-direction: column;
  align-items: center;
  transition: all 0.3s ease;
}
.p-neryear .p-neryear-facility-grid__item:hover .p-neryear-facility-grid__circle {
  border-color: #8e7446;
}
.p-neryear .p-neryear-facility-grid__item:hover .p-neryear-facility-grid__name {
  color: #8e7446;
}
.p-neryear .p-neryear-facility-grid__circle {
  width: 100%;
  aspect-ratio: 1/1;
  border-radius: 50%;
  overflow: hidden;
  border: 1px solid #e0d8c8;
  background: #fff;
  margin-bottom: 12px;
  transition: all 0.3s ease;
}
.p-neryear .p-neryear-facility-grid__circle img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.p-neryear .p-neryear-facility-grid__name {
  font-size: 1.6rem;
  font-family: "Shippori Mincho", serif;
  font-weight: bold;
  text-align: center;
  line-height: 1.4;
  transition: color 0.3s ease;
}
.p-neryear .p-neryear-card {
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 0;
  margin-bottom: 80px;
  box-shadow: none;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-card {
    padding: 0;
    margin-bottom: 50px;
  }
}
.p-neryear .p-neryear-card p {
  font-size: 1.6rem;
  line-height: 1.8;
  margin-bottom: 24px;
  color: #444;
}
.p-neryear .p-neryear-card__image img {
  width: 100% !important;
  aspect-ratio: 3/2 !important;
  object-fit: cover !important;
  border-radius: 8px !important;
  margin-top: 20px !important;
}
.p-neryear .p-gallery-grid {
  display: flex;
  flex-wrap: wrap;
  margin-left: -8px;
  margin-right: -8px;
}
.p-neryear .p-gallery-grid [class*=col-] {
  padding: 8px;
}
.p-neryear .p-gallery-grid .p-gallery-item img {
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
  border-radius: 8px;
  transition: transform 0.3s ease;
}
.p-neryear .p-gallery-grid .p-gallery-item img:hover {
  transform: scale(1.02);
}
.p-neryear .p-neryear-schedule {
  width: 100%;
  margin-left: 0;
}
.p-neryear .p-neryear-schedule__item {
  display: flex;
  align-items: center;
  padding: 16px 0;
  border-bottom: 1px solid #f0f0f0;
  font-size: 1.6rem;
}
.p-neryear .p-neryear-schedule__item:first-child {
  border-top: 1px solid #f0f0f0;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-schedule__item {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
}
.p-neryear .p-neryear-schedule__item dt {
  flex: 0 0 200px;
  font-weight: bold;
  color: #1e3a61;
  display: flex;
  align-items: center;
  gap: 8px;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-schedule__item dt {
    flex: 0 0 auto;
  }
}
.p-neryear .p-neryear-schedule__item dt span {
  font-size: 1.2rem;
  background: #8e7446;
  color: #fff;
  padding: 2px 8px;
  border-radius: 2px;
  font-weight: normal;
}
.p-neryear .p-neryear-schedule__item dd {
  flex: 1;
  font-family: "Shippori Mincho", serif;
  font-weight: bold;
  color: #444;
}
.p-neryear .c-link-text {
  display: inline-block;
  color: #1e3a61;
  text-decoration: none;
  font-weight: bold;
  transition: color 0.2s ease;
  margin-right: 10px;
}
.p-neryear .c-link-text:hover {
  color: #8e7446;
  text-decoration: underline;
}
.p-neryear .p-neryear-juyosho-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 20px;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-juyosho-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
}
.p-neryear .p-neryear-juyosho-card {
  display: block;
  position: relative;
  aspect-ratio: 0.72/1;
  border-radius: 8px;
  overflow: hidden;
  text-decoration: none;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-juyosho-card {
    aspect-ratio: 1.2/1;
    border-radius: 6px;
  }
}
.p-neryear .p-neryear-juyosho-card:hover {
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);
}
.p-neryear .p-neryear-juyosho-card:hover .p-neryear-juyosho-card__bg img {
  transform: scale(1.06);
}
.p-neryear .p-neryear-juyosho-card__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.p-neryear .p-neryear-juyosho-card__bg img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.p-neryear .p-neryear-juyosho-card__bg::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: transparent;
  z-index: 2;
}
.p-neryear .p-neryear-juyosho-card__overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  z-index: 3;
  padding: 24px 10px 16px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.75) 0%, rgba(0, 0, 0, 0.4) 50%, rgba(0, 0, 0, 0) 100%);
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-juyosho-card__overlay {
    padding: 18px 4px 10px;
  }
}
.p-neryear .p-neryear-juyosho-card__title {
  font-size: 1.8rem;
  font-family: "Shippori Mincho", serif;
  font-weight: bold;
  color: #fff;
  letter-spacing: 0.05em;
  text-shadow: 0 2px 5px rgba(0, 0, 0, 0.85);
  line-height: 1.3;
  margin: 0;
  text-align: center;
  width: 100%;
  background: transparent;
  padding: 0;
  border-radius: 0;
  display: block;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-juyosho-card__title {
    font-size: 1.4rem;
    letter-spacing: 0.01em;
    padding: 0;
  }
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-juyosho-card__title.is-rose {
    font-size: 1.2rem;
  }
}
.p-neryear .p-neryear-notices {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 16px;
  width: 100%;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-notices {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}
.p-neryear .p-neryear-notices--attention {
  grid-template-columns: 1fr 1fr;
  margin-bottom: 40px;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-notices--attention {
    grid-template-columns: 1fr;
    margin-bottom: 30px;
  }
}
.p-neryear .p-neryear-notices .is-blue {
  color: #1a5ea6;
}
.p-neryear .p-neryear-notices .is-red {
  color: #c0392b;
}
.p-neryear .p-neryear-notices mark {
  background: #fff176;
  color: inherit;
  padding: 1px 4px;
  border-radius: 2px;
  font-style: normal;
}
.p-neryear .p-neryear-notices__panel {
  background: #f5f2ed;
  border-radius: 16px;
  padding: 20px 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-notices__panel {
    padding: 16px 12px;
    border-radius: 10px;
  }
}
.p-neryear .p-neryear-notices__panel-header {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 1.5rem;
  font-weight: bold;
  color: #333;
  text-align: center;
  margin-bottom: 12px;
  line-height: 1.4;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-notices__panel-header {
    font-size: 1.4rem;
    margin-bottom: 10px;
  }
}
.p-neryear .p-neryear-notices__hand {
  font-size: 2.2rem;
  color: #8e7446;
  line-height: 1;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-notices__hand {
    font-size: 1.8rem;
  }
}
.p-neryear .p-neryear-notices__stopwatch-row {
  display: flex;
  align-items: stretch;
  width: 100%;
  gap: 0;
}
.p-neryear .p-neryear-notices__stopwatch-col {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 8px;
  padding: 0 8px;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-notices__stopwatch-col {
    padding: 0 4px;
    gap: 6px;
  }
}
.p-neryear .p-neryear-notices__separator {
  width: 1px;
  align-self: stretch;
  border-left: 2px dashed #ccc;
  flex-shrink: 0;
}
.p-neryear .p-neryear-notices__stopwatch-desc {
  font-size: 1.6rem;
  line-height: 1.5;
  color: #222;
  font-weight: bold;
  margin: 0;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-notices__stopwatch-desc {
    font-size: 1.5rem;
    line-height: 1.4;
  }
}
.p-neryear .p-neryear-notices__stopwatch-graphic {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
}
.p-neryear .p-neryear-notices__side-text {
  writing-mode: vertical-rl;
  text-orientation: upright;
  font-size: 1.1rem;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-notices__side-text {
    font-size: 1.2rem;
  }
}
.p-neryear .p-neryear-notices__clock {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-neryear .p-neryear-notices__clock svg {
  display: block;
  width: 70px;
  height: auto;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-notices__clock svg {
    width: 50px;
  }
}
.p-neryear .p-neryear-notices__clock.is-blue {
  color: #1a5ea6;
}
.p-neryear .p-neryear-notices__clock.is-red {
  color: #c0392b;
}
.p-neryear .p-neryear-notices__clock-num {
  position: absolute;
  top: 55%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 1.8rem;
  font-weight: 900;
  font-family: "Shippori Mincho", serif;
  line-height: 1;
  color: inherit;
}
.p-neryear .p-neryear-notices__clock-num small {
  font-size: 1.2rem;
  font-weight: bold;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-notices__clock-num {
    font-size: 1.3rem;
  }
  .p-neryear .p-neryear-notices__clock-num small {
    font-size: 1.2rem;
  }
}
.p-neryear .p-neryear-notices__panel-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 10px;
  flex-grow: 1;
  justify-content: center;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-notices__panel-body {
    gap: 8px;
  }
}
.p-neryear .p-neryear-notices__panel-text {
  font-size: 1.6rem;
  font-weight: bold;
  color: #333;
  line-height: 1.6;
  margin: 0;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-notices__panel-text {
    font-size: 1.4rem;
    line-height: 1.5;
  }
}
.p-neryear .p-neryear-notices__panel-note {
  display: block;
  font-size: 1.3rem;
  font-weight: bold;
  color: #c0392b;
  margin-top: 6px;
  line-height: 1.4;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-notices__panel-note {
    font-size: 1.2rem;
  }
}
.p-neryear .p-neryear-notices__group-icon svg, .p-neryear .p-neryear-notices__parking-icon svg, .p-neryear .p-neryear-notices__parking-no-icon svg, .p-neryear .p-neryear-notices__talisman-icon svg {
  display: block;
  width: 100px;
  height: auto;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-notices__group-icon svg, .p-neryear .p-neryear-notices__parking-icon svg, .p-neryear .p-neryear-notices__parking-no-icon svg, .p-neryear .p-neryear-notices__talisman-icon svg {
    width: 80px;
  }
}
.p-neryear .p-neryear-notices__parking-icon svg, .p-neryear .p-neryear-notices__parking-no-icon svg {
  width: 120px;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-notices__parking-icon svg, .p-neryear .p-neryear-notices__parking-no-icon svg {
    width: 95px;
  }
}
.p-neryear .p-neryear-prayer-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin-top: 20px;
  margin-bottom: 30px;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-prayer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 15px;
    margin-bottom: 20px;
  }
}
.p-neryear .p-neryear-prayer-card {
  display: block;
  position: relative;
  aspect-ratio: 1.8/1;
  border-radius: 8px;
  overflow: hidden;
  text-decoration: none;
  color: #333;
  border: 2px solid #fff;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-prayer-card {
    border-width: 1px;
    aspect-ratio: 1/1;
    border-radius: 4px;
  }
}
.p-neryear .p-neryear-prayer-card__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.p-neryear .p-neryear-prayer-card__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.p-neryear .p-neryear-prayer-card__bg::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.15) 0%, rgba(0, 0, 0, 0.5) 45%, rgba(0, 0, 0, 0.85) 100%);
  z-index: 2;
}
.p-neryear .p-neryear-prayer-card__content {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 3;
  padding: 16px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-prayer-card__content {
    padding: 10px 7px;
  }
}
.p-neryear .p-neryear-prayer-card__title-wrap {
  align-self: center;
  background: #fff;
  border: 1px solid #8e7446;
  border-radius: 0;
  padding: 4px 12px;
  max-width: 95%;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
  text-align: center;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-prayer-card__title-wrap {
    padding: 2px 6px;
  }
}
.p-neryear .p-neryear-prayer-card__title {
  font-size: 1.8rem;
  color: #1e3a61;
  font-family: "Shippori Mincho", serif;
  font-weight: bold;
  line-height: 1.3;
  margin: 0;
  text-align: center;
  white-space: nowrap;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-prayer-card__title {
    font-size: 1.4rem;
    white-space: normal;
  }
}
.p-neryear .p-neryear-prayer-card__text {
  font-size: 1.35rem;
  font-weight: bold;
  color: #fff;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8);
  margin: 0;
  margin-top: auto;
  line-height: 1.5;
  text-align: center;
  width: 100%;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-prayer-card__text {
    font-size: 1.2rem;
    line-height: 1.45;
    font-weight: 500;
    word-break: break-all;
    overflow-wrap: break-word;
    padding: 0 4px;
  }
}
.p-neryear .p-neryear-prayer-card__btn {
  display: inline-block;
  font-size: 1.2rem;
  font-weight: bold;
  color: #fff;
  background: #1e3a61;
  padding: 4px 16px;
  border-radius: 20px;
  margin-top: 4px;
  text-align: center;
  transition: background-color 0.2s ease;
}
@media (max-width: 768px) {
  .p-neryear .p-neryear-prayer-card__btn {
    font-size: 1.2rem;
    padding: 2px 10px;
    border-radius: 12px;
  }
}
.p-neryear .p-neryear-prayer-card:hover {
  transform: none;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
}
.p-neryear .p-neryear-prayer-card:hover .p-neryear-prayer-card__bg img {
  transform: scale(1.04);
}
.p-neryear .p-neryear-prayer-card:hover .p-neryear-prayer-card__btn {
  background: #8e7446;
}

.p-neryear-yakudoshi-btn {
  position: fixed;
  right: 0;
  top: 60%;
  transform: translateY(-50%);
  z-index: 100;
  width: 44px;
  min-height: 160px;
  border-radius: 12px 0 0 12px;
  background: linear-gradient(to bottom, #1e3a61, #2c3e50);
  color: #fff;
  text-decoration: none !important;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-right: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 12px 4px;
  transition: all 0.3s ease;
}
.p-neryear-yakudoshi-btn:hover {
  color: #fff;
  width: 52px;
  background: #8e7446;
}
.p-neryear-yakudoshi-btn span {
  writing-mode: vertical-rl;
  text-orientation: upright;
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  line-height: 1;
  font-family: "Shippori Mincho", serif;
}
@media (max-width: 991px) {
  .p-neryear-yakudoshi-btn {
    display: flex;
    right: 0;
    top: 50%;
    bottom: auto;
    transform: translateY(-50%);
    width: 34px;
    min-height: 110px;
    border-radius: 8px 0 0 8px;
    padding: 10px 2px;
  }
  .p-neryear-yakudoshi-btn span {
    font-size: 1.2rem;
    letter-spacing: 0.1em;
  }
  .p-neryear-yakudoshi-btn:hover {
    width: 38px;
  }
}

.p-neryear-facility-gallery {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 20px;
  margin-top: 30px;
}
@media (max-width: 768px) {
  .p-neryear-facility-gallery {
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
  }
}
.p-neryear-facility-gallery__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.p-neryear-facility-gallery__image {
  width: 100%;
  aspect-ratio: 1/1;
  overflow: hidden;
  border-radius: 8px;
  margin-bottom: 8px;
}
.p-neryear-facility-gallery__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}
.p-neryear-facility-gallery__image:hover img {
  transform: scale(1.05);
}
.p-neryear-facility-gallery__label {
  font-size: 1.3rem;
  font-weight: bold;
  color: #1e3a61;
  display: block;
}

.p-neryear-facility-info p {
  font-size: 1.5rem;
  line-height: 1.8;
  color: #444;
}

.p-neryear-card--side {
  display: flex;
  align-items: flex-start;
  gap: 60px;
  margin-bottom: 80px;
}
@media (max-width: 768px) {
  .p-neryear-card--side {
    flex-direction: column-reverse;
    gap: 16px;
    margin-bottom: 60px;
  }
}
.p-neryear-card--side .p-neryear-card__image {
  flex: 0 0 40%;
}
@media (max-width: 768px) {
  .p-neryear-card--side .p-neryear-card__image {
    flex: 0 0 auto;
    width: 100%;
  }
}
.p-neryear-card--side .p-neryear-card__image img {
  width: 100%;
  height: auto;
  aspect-ratio: 3/2;
  object-fit: cover;
  border-radius: 8px;
}
.p-neryear-card--side .p-neryear-card__body {
  flex: 1;
}
.p-neryear-card--side .p-neryear-card__body .c-sub-title {
  margin-top: 0;
}
.p-neryear-card--side .p-neryear-card__body .c-sub-title::after {
  left: 0;
  right: auto;
  background: linear-gradient(to right, #d4af37, transparent);
}
@media (max-width: 768px) {
  .p-neryear-card--side .p-neryear-card__body .c-sub-title {
    display: flex !important;
    align-items: flex-start !important;
    font-size: 1.6rem;
    line-height: 1.4;
    width: 100% !important;
    white-space: normal !important;
  }
}
.p-neryear-card--side .p-neryear-card__body p {
  font-size: 1.6rem;
  line-height: 1.8;
  color: #444;
}
.p-neryear-card--side .p-neryear-card__body p:last-child {
  margin-bottom: 0 !important;
}

.p-neryear-schedule__title {
  font-size: 1.8rem;
  font-weight: bold;
  color: #1e3a61;
  margin-bottom: 20px;
  font-family: "Shippori Mincho", serif;
}
@media (max-width: 768px) {
  .p-neryear-schedule__title {
    font-size: 1.6rem;
  }
}

.p-neryear-price-banner {
  display: flex;
  align-items: center;
  background: #fff;
  padding: 16px 24px;
  margin-bottom: 20px;
  position: relative;
  width: 100%;
}
.p-neryear-price-banner::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 80px;
  height: 40px;
  border-left: 1px solid #eee;
  border-top: 1px solid #eee;
  transform: skew(-45deg);
  transform-origin: top left;
}
@media (max-width: 768px) {
  .p-neryear-price-banner {
    display: grid;
    grid-template-areas: "title pill" "desc desc";
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 4px 12px;
    padding: 10px;
    margin-bottom: 15px;
    text-align: left;
  }
}
.p-neryear-price-banner__title {
  font-family: "Shippori Mincho", serif;
  font-size: 2.8rem;
  font-weight: bold;
  color: #1e3a61;
  margin-right: 20px;
  white-space: nowrap;
}
@media (max-width: 768px) {
  .p-neryear-price-banner__title {
    grid-area: title;
    font-size: 2rem;
    margin-right: 0;
    margin-bottom: 0;
  }
}
.p-neryear-price-banner__desc {
  font-size: 1.6rem;
  line-height: 1.6;
  color: #333;
  flex-grow: 1;
  text-align: center;
  padding: 0 20px;
  font-weight: 500;
}
@media (max-width: 768px) {
  .p-neryear-price-banner__desc {
    grid-area: desc;
    font-size: 1.25rem;
    margin-bottom: 0;
    padding: 0;
    text-align: left;
  }
}
.p-neryear-price-banner__desc .u-text-alert {
  display: block;
  font-size: 1.2rem;
  color: #d0021b;
  margin-top: 4px;
  font-weight: bold;
}
@media (max-width: 768px) {
  .p-neryear-price-banner__desc .u-text-alert {
    font-size: 1.2rem;
  }
}
.p-neryear-price-banner__price-pill {
  background: #d0021b;
  color: #fff;
  padding: 8px 20px;
  border-radius: 60px;
  text-align: center;
  line-height: 1.2;
  white-space: nowrap;
  display: inline-flex;
  flex-direction: row;
  align-items: baseline;
  justify-content: center;
  gap: 4px;
}
@media (max-width: 768px) {
  .p-neryear-price-banner__price-pill {
    grid-area: pill;
    padding: 6px 14px;
  }
}
.p-neryear-price-banner__amount {
  font-size: 2.4rem;
  font-weight: bold;
  line-height: 1;
}
@media (max-width: 768px) {
  .p-neryear-price-banner__amount {
    font-size: 2rem;
  }
}
.p-neryear-price-banner__unit {
  font-size: 1.3rem;
  font-weight: bold;
}
@media (max-width: 768px) {
  .p-neryear-price-banner__unit {
    font-size: 1.2rem;
  }
}
.p-neryear-price-banner__suffix {
  display: inline-block;
  font-size: 1.2rem;
  font-weight: bold;
}
@media (max-width: 768px) {
  .p-neryear-price-banner__suffix {
    font-size: 1.2rem;
  }
}

.p-neryear-timeline {
  position: relative;
  margin-top: 20px;
}
.p-neryear-timeline::before {
  display: none;
}
@media (max-width: 768px) {
  .p-neryear-timeline {
    margin-top: 15px;
  }
}
.p-neryear-timeline__item {
  position: relative;
  background: #fff;
  border: 1px solid #e0d8c8;
  border-radius: 12px;
  margin-bottom: 10px;
  padding: 12px 16px;
  display: flex;
  flex-direction: column;
}
.p-neryear-timeline__item:last-child {
  margin-bottom: 0;
}
@media (max-width: 768px) {
  .p-neryear-timeline__item {
    padding: 8px 6px;
    margin-bottom: 8px;
    border-radius: 6px;
  }
}
.p-neryear-timeline__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 16px;
}
@media (max-width: 768px) {
  .p-neryear-timeline__row {
    gap: 6px;
  }
}
.p-neryear-timeline__date {
  width: 64px;
  display: flex;
  justify-content: center;
  flex-shrink: 0;
  z-index: 1;
}
@media (max-width: 768px) {
  .p-neryear-timeline__date {
    width: 50px;
  }
}
.p-neryear-timeline__date .date-circle {
  background: #4ab4b4;
  color: #fff;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  text-align: center;
  flex-shrink: 0;
  font-family: "Shippori Mincho", serif;
  font-weight: bold;
  line-height: 1.25;
  padding: 2px;
  gap: 2px;
}
@media (max-width: 768px) {
  .p-neryear-timeline__date .date-circle {
    width: 50px;
    height: 50px;
    padding: 1px;
  }
}
.p-neryear-timeline__date .date-circle__num {
  font-size: 2rem;
}
@media (max-width: 768px) {
  .p-neryear-timeline__date .date-circle__num {
    font-size: 1.5rem;
  }
}
.p-neryear-timeline__date .date-circle__unit {
  font-size: 1.1rem;
}
@media (max-width: 768px) {
  .p-neryear-timeline__date .date-circle__unit {
    font-size: 1.1rem;
  }
}
.p-neryear-timeline__date .date-circle.is-two-lines {
  flex-direction: column;
  gap: 0;
}
.p-neryear-timeline__date .date-circle.is-two-lines .date-circle__num {
  font-size: 1.5rem;
}
@media (max-width: 768px) {
  .p-neryear-timeline__date .date-circle.is-two-lines .date-circle__num {
    font-size: 1.3rem;
  }
}
.p-neryear-timeline__date .date-circle.is-two-lines .date-circle__unit {
  font-size: 0.95rem;
  font-weight: normal;
}
@media (max-width: 768px) {
  .p-neryear-timeline__date .date-circle.is-two-lines .date-circle__unit {
    font-size: 1.2rem;
  }
}
.p-neryear-timeline__date .date-circle.is-text-only span {
  font-size: 1.5rem;
}
@media (max-width: 768px) {
  .p-neryear-timeline__date .date-circle.is-text-only span {
    font-size: 1.2rem;
  }
}
.p-neryear-timeline__info {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
@media (max-width: 768px) {
  .p-neryear-timeline__info {
    gap: 2px;
    width: 100%;
  }
}
.p-neryear-timeline__time-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
@media (max-width: 768px) {
  .p-neryear-timeline__time-wrap {
    gap: 6px;
  }
}
.p-neryear-timeline__time-wrap.is-column {
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}
.p-neryear-timeline__time-text {
  font-size: 2.8rem;
  font-weight: bold;
  color: #333;
  font-family: "Shippori Mincho", serif;
  line-height: 1.1;
}
@media (max-width: 768px) {
  .p-neryear-timeline__time-text {
    font-size: 2rem;
  }
}
.p-neryear-timeline__time-label {
  font-size: 1.3rem;
  font-weight: bold;
  background: #f5eae1;
  color: #8e7446;
  padding: 3px 8px;
  border-radius: 4px;
  line-height: 1.2;
}
@media (max-width: 768px) {
  .p-neryear-timeline__time-label {
    font-size: 1.2rem;
    padding: 2px 6px;
    border-radius: 3px;
  }
}
.p-neryear-timeline .sub-time {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 2rem;
  font-weight: bold;
  font-family: "Shippori Mincho", serif;
  line-height: 1.2;
}
@media (max-width: 768px) {
  .p-neryear-timeline .sub-time {
    font-size: 1.45rem;
    gap: 6px;
  }
}
.p-neryear-timeline .sub-time .part-label {
  font-size: 1.2rem;
  font-weight: bold;
  background: #b20c0c;
  color: #fff;
  padding: 2px 8px;
  border-radius: 4px;
  line-height: 1.2;
}
.p-neryear-timeline .sub-time .part-label--blue {
  background: #1e3a61;
}
@media (max-width: 768px) {
  .p-neryear-timeline .sub-time .part-label {
    font-size: 1.2rem;
    padding: 1px 5px;
  }
}
.p-neryear-timeline__notes {
  list-style: none;
  padding: 0;
  margin: 0;
}
.p-neryear-timeline__notes li {
  position: relative;
  padding-left: 16px;
  font-size: 1.25rem;
  line-height: 1.4;
  color: #555;
  margin-bottom: 2px;
  font-weight: 500;
}
.p-neryear-timeline__notes li:last-child {
  margin-bottom: 0;
}
@media (max-width: 768px) {
  .p-neryear-timeline__notes li {
    font-size: 1.2rem;
    padding-left: 12px;
  }
}
.p-neryear-timeline__notes li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: #4ab4b4;
  font-weight: bold;
  font-size: 1.1rem;
}
@media (max-width: 768px) {
  .p-neryear-timeline__notes li::before {
    font-size: 1.2rem;
  }
}
.p-neryear-timeline__status-badge {
  background: #b20c0c;
  color: #fff;
  padding: 8px 12px;
  text-align: center;
  font-weight: bold;
  font-size: 1.2rem;
  line-height: 1.35;
  border-radius: 8px;
  width: 120px;
  height: auto;
  min-height: 48px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  letter-spacing: 0.05em;
}
.p-neryear-timeline__status-badge--blue {
  background: #1e3a61;
}
@media (max-width: 768px) {
  .p-neryear-timeline__status-badge {
    width: 76px;
    font-size: 1.1rem;
    line-height: 1.25;
    padding: 4px 2px;
    min-height: 38px;
    border-radius: 4px;
  }
}
.p-neryear-timeline__footer-note {
  margin-top: 10px;
  font-size: 1.2rem;
  color: #b20c0c;
  line-height: 1.5;
  font-weight: bold;
  padding-top: 6px;
  border-top: 1px dashed rgba(0, 0, 0, 0.1);
}
@media (max-width: 768px) {
  .p-neryear-timeline__footer-note {
    font-size: 1.2rem;
    margin-top: 8px;
    padding-top: 6px;
  }
}
.p-neryear-timeline__footer-note .highlight {
  background: #b20c0c;
  color: #fff;
  padding: 1px 5px;
  margin: 0 2px;
  border-radius: 3px;
}

.p-neryear-glam-title {
  position: relative;
  padding: 80px 20px;
  margin-bottom: 60px;
  text-align: center;
  overflow: visible;
}
.p-neryear-glam-title__inner {
  position: relative;
  display: inline-block;
  max-width: 1000px;
  width: 100%;
}
.p-neryear-glam-title__frame {
  position: relative;
  display: inline-block;
  padding: 40px 100px;
  background: #fff;
  border: 2px solid #e0c38c;
  width: 100%;
  z-index: 2;
}
@media (max-width: 768px) {
  .p-neryear-glam-title__frame {
    padding: 30px 20px;
  }
}
.p-neryear-glam-title__frame::before {
  content: "";
  position: absolute;
  top: 6px;
  left: 6px;
  right: 6px;
  bottom: 6px;
  border: 1px solid #e0c38c;
  pointer-events: none;
}
.p-neryear-glam-title__main {
  font-family: "Shippori Mincho", serif;
  font-size: 6.4rem;
  font-weight: bold;
  color: #d0021b;
  letter-spacing: 0.15em;
  line-height: 1.2;
  position: relative;
  z-index: 2;
  text-shadow: 3px 3px 0 rgba(0, 0, 0, 0.02);
}
@media (max-width: 768px) {
  .p-neryear-glam-title__main {
    font-size: 2.6rem;
    letter-spacing: 0.1em;
  }
}
.p-neryear-glam-title__main .year {
  color: #d0021b;
  margin-right: 20px;
}
@media (max-width: 768px) {
  .p-neryear-glam-title__main .year {
    margin-right: 10px;
  }
}
.p-neryear-glam-title__main .highlight {
  color: #333;
}
.p-neryear-glam-title__label {
  position: absolute;
  bottom: -30px;
  right: 40px;
  background: #d0021b;
  color: #fff;
  padding: 10px 40px;
  font-size: 2.4rem;
  font-weight: bold;
  border-radius: 4px;
  z-index: 10;
  white-space: nowrap;
}
@media (max-width: 768px) {
  .p-neryear-glam-title__label {
    font-size: 1.4rem;
    right: 5%;
    padding: 6px 20px;
    bottom: -20px;
  }
}
.p-neryear-glam-title__deco-kasumi {
  position: absolute;
  top: 50%;
  left: -5%;
  width: 110%;
  height: 120px;
  transform: translateY(-50%);
  pointer-events: none;
  z-index: 1;
}
.p-neryear-glam-title__deco-kasumi span {
  position: absolute;
  height: 4px;
  background: #f9f3e6;
  border-radius: 4px;
  display: block;
}
.p-neryear-glam-title__deco-kasumi span:nth-child(1) {
  top: 0;
  left: 0;
  width: 30%;
}
.p-neryear-glam-title__deco-kasumi span:nth-child(2) {
  top: 20px;
  left: 10%;
  width: 50%;
}
.p-neryear-glam-title__deco-kasumi span:nth-child(3) {
  top: 40px;
  right: 5%;
  width: 40%;
}
.p-neryear-glam-title__deco-kasumi span:nth-child(4) {
  bottom: 20px;
  left: 5%;
  width: 60%;
}
.p-neryear-glam-title__deco-kasumi span:nth-child(5) {
  bottom: 0;
  right: 10%;
  width: 30%;
}
.p-neryear-glam-title__deco-flowers {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 200px;
  height: 200px;
  pointer-events: none;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (max-width: 768px) {
  .p-neryear-glam-title__deco-flowers {
    width: 100px;
    height: 100px;
  }
}
.p-neryear-glam-title__deco-flowers--left {
  left: -80px;
}
@media (max-width: 768px) {
  .p-neryear-glam-title__deco-flowers--left {
    left: -30px;
  }
}
.p-neryear-glam-title__deco-flowers--right {
  right: -80px;
}
@media (max-width: 768px) {
  .p-neryear-glam-title__deco-flowers--right {
    right: -30px;
  }
}
.p-neryear-glam-title__deco-flowers .flower {
  position: absolute;
  border-radius: 50%;
}
.p-neryear-glam-title__deco-flowers .flower--red {
  background: radial-gradient(circle at 30% 30%, #ff4d4d, #d0021b);
}
.p-neryear-glam-title__deco-flowers .flower--white {
  background: radial-gradient(circle at 30% 30%, #fff, #f0f0f0);
  border: 1px solid #eee;
}
.p-neryear-glam-title__deco-flowers .flower.f1 {
  width: 80px;
  height: 80px;
}
@media (max-width: 768px) {
  .p-neryear-glam-title__deco-flowers .flower.f1 {
    width: 40px;
    height: 40px;
  }
}
.p-neryear-glam-title__deco-flowers .flower.f2 {
  width: 50px;
  height: 50px;
  top: 10px;
  left: 10px;
}
@media (max-width: 768px) {
  .p-neryear-glam-title__deco-flowers .flower.f2 {
    width: 25px;
    height: 25px;
  }
}
.p-neryear-glam-title__deco-flowers .flower.f3 {
  width: 60px;
  height: 60px;
  bottom: 10px;
  right: 10px;
}
@media (max-width: 768px) {
  .p-neryear-glam-title__deco-flowers .flower.f3 {
    width: 30px;
    height: 30px;
  }
}

.p-neryear-facility-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-top: 30px;
}
@media (max-width: 768px) {
  .p-neryear-facility-cards {
    grid-template-columns: 1fr;
    gap: 16px;
    margin-top: 20px;
  }
}

.p-neryear-facility-card {
  background: #fff;
  border: 1px solid #e0d8c8;
  padding: 24px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 20px;
}
@media (max-width: 768px) {
  .p-neryear-facility-card {
    padding: 16px;
    gap: 16px;
  }
}
.p-neryear-facility-card:nth-child(5) {
  grid-column: 1/-1;
}
@media (max-width: 768px) {
  .p-neryear-facility-card:nth-child(5) {
    grid-column: auto;
  }
}
.p-neryear-facility-card__body {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.p-neryear-facility-card__title {
  font-size: 2rem;
  font-weight: bold;
  color: #1e3a61;
  font-family: "Shippori Mincho", serif;
  margin: 0;
  padding-bottom: 8px;
  border-bottom: 1px dashed #e0d8c8;
  display: flex;
  align-items: center;
  gap: 8px;
}
@media (max-width: 768px) {
  .p-neryear-facility-card__title {
    font-size: 1.6rem;
    padding-bottom: 6px;
  }
}
.p-neryear-facility-card__text {
  font-size: 1.5rem;
  line-height: 1.6;
  color: #444;
  margin: 0;
}
@media (max-width: 768px) {
  .p-neryear-facility-card__text {
    font-size: 1.25rem;
    line-height: 1.5;
  }
}
.p-neryear-facility-card__images {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}
.p-neryear-facility-card__images.is-4col {
  grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 768px) {
  .p-neryear-facility-card__images.is-4col {
    grid-template-columns: repeat(2, 1fr);
  }
}
.p-neryear-facility-card__images a {
  display: block;
  overflow: hidden;
  aspect-ratio: 3/2;
  border-radius: 4px;
}
.p-neryear-facility-card__images a img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}
.p-neryear-facility-card__images a img:hover {
  transform: scale(1.05);
}

/*
Information Page Styles
*/
.page-template-page-information #cont01.p-home-section--notice {
  background-color: #f2f0ed;
  padding: 80px 40px;
  margin-left: -60px;
  margin-right: -60px;
}
@media (max-width: 768px) {
  .page-template-page-information #cont01.p-home-section--notice {
    padding: 40px 20px;
    margin-left: -20px;
    margin-right: -20px;
  }
}

.p-info-deities {
  display: flex;
  justify-content: center;
  align-items: stretch;
  gap: 20px;
}
@media (max-width: 768px) {
  .p-info-deities {
    flex-direction: column;
    gap: 15px;
  }
}

.p-info-deity {
  background: #fff;
  border: 1px solid #eee;
  border-radius: 0;
  padding: 70px 20px;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
}
@media (max-width: 768px) {
  .p-info-deity {
    padding: 50px 20px;
  }
}
.p-info-deity__label {
  display: inline-block;
  font-size: 1.8rem;
  color: #fff;
  background-color: #001c3d;
  padding: 8px 24px;
  border-radius: 0;
  margin-bottom: 45px;
  font-weight: 600;
  letter-spacing: 0.1em;
}
@media (max-width: 768px) {
  .p-info-deity__label {
    font-size: 1.5rem;
    margin-bottom: 30px;
  }
}
.p-info-deity__name {
  font-weight: 500;
  font-size: 3rem;
  color: #333;
  font-family: "Shippori Mincho", serif;
  line-height: 1.2;
  letter-spacing: 0.05em;
}
@media (max-width: 768px) {
  .p-info-deity__name {
    font-size: 2.4rem;
  }
}
.p-info-deity__ruby {
  font-size: 1.5rem;
  display: block;
  margin-top: 25px;
  font-weight: 400;
  color: #888;
  font-family: inherit;
  letter-spacing: 0.05em;
}
@media (max-width: 768px) {
  .p-info-deity__ruby {
    font-size: 1.3rem;
    margin-top: 20px;
  }
}

.p-info-benefit-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
  margin-bottom: 40px;
}
@media (max-width: 768px) {
  .p-info-benefit-grid {
    gap: 15px;
    margin-bottom: 20px;
  }
}

.p-info-benefit-card {
  flex: 1;
  text-align: center;
}
.p-info-benefit-card__img {
  width: 100%;
  aspect-ratio: 4/3;
  border-radius: 0;
  overflow: hidden;
  margin-bottom: 12px;
}
.p-info-benefit-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-info-benefit-card__label {
  font-size: 2rem;
  font-weight: 600;
  color: #000;
  margin: 0;
  font-family: "Shippori Mincho", serif;
}
@media (max-width: 768px) {
  .p-info-benefit-card__label {
    font-size: 1.3rem;
  }
}

.page-template-page-information #cont04.p-home-section--info {
  background-color: #f2f0ed;
  padding: 80px 40px;
  margin-left: -60px;
  margin-right: -60px;
}
@media (max-width: 768px) {
  .page-template-page-information #cont04.p-home-section--info {
    padding: 40px 20px;
    margin-left: -20px;
    margin-right: -20px;
  }
}

.p-precinct-list {
  display: flex;
  flex-direction: column;
  gap: 60px;
  margin-bottom: 80px;
}
@media (max-width: 768px) {
  .p-precinct-list {
    gap: 40px;
  }
}

.p-precinct-card {
  background: #fff;
  border: 1px solid #eee;
  border-radius: 0;
  padding: 80px 60px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
  transition: transform 0.3s ease;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
}
@media (max-width: 768px) {
  .p-precinct-card {
    padding: 50px 20px;
  }
}
.p-precinct-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.06);
}
.p-precinct-card__label {
  display: inline-block;
  font-size: 1.8rem;
  color: #fff;
  background-color: #001c3d;
  padding: 8px 24px;
  border-radius: 0;
  margin-bottom: 40px;
  font-weight: 600;
  letter-spacing: 0.1em;
}
@media (max-width: 768px) {
  .p-precinct-card__label {
    font-size: 1.5rem;
    margin-bottom: 30px;
  }
}
.p-precinct-card__title {
  font-size: 3.2rem;
  font-weight: 500;
  color: #333;
  margin-bottom: 20px;
  font-family: "Shippori Mincho", serif;
  position: relative;
  line-height: 1.2;
}
@media (max-width: 768px) {
  .p-precinct-card__title {
    font-size: 2.6rem;
    margin-bottom: 15px;
  }
}
.p-precinct-card__title::before {
  display: none;
}
.p-precinct-card__sub {
  font-size: 1.6rem;
  color: #888;
  margin-top: -10px;
  margin-bottom: 25px;
  font-weight: 500;
}
.p-precinct-card__benefit {
  display: inline-block;
  font-size: 1.6rem;
  font-weight: 600;
  color: #8e7446;
  border: 1px solid #8e7446;
  background: transparent;
  padding: 8px 30px;
  border-radius: 0;
  margin-bottom: 40px;
}
@media (max-width: 768px) {
  .p-precinct-card__benefit {
    font-size: 1.4rem;
    padding: 6px 20px;
    margin-bottom: 30px;
  }
}
.p-precinct-card__deity {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 15px;
  margin-bottom: 30px;
  position: relative;
  width: 100%;
}
@media (max-width: 768px) {
  .p-precinct-card__deity {
    margin-bottom: 25px;
  }
}
.p-precinct-card__deity dt {
  font-weight: 700;
  color: #8e7446;
  font-size: 1.4rem;
  letter-spacing: 0.1em;
}
.p-precinct-card__deity dd {
  font-size: 2.4rem;
  color: #333;
  font-weight: 500;
  font-family: "Shippori Mincho", serif;
}
@media (max-width: 768px) {
  .p-precinct-card__deity dd {
    font-size: 2rem;
  }
}
.p-precinct-card__desc {
  font-size: 1.6rem;
  line-height: 2.2;
  color: #444;
  text-align: justify;
  max-width: 800px;
  margin: 0;
}
@media (max-width: 768px) {
  .p-precinct-card__desc {
    font-size: 1.5rem;
    line-height: 1.8;
    text-align: left;
  }
}

.p-precinct-others {
  background: #f9f7f4;
  border-radius: 0;
  padding: 30px;
  text-align: center;
}
.p-precinct-others__title {
  font-size: 1.8rem;
  font-weight: 700;
  color: #333;
  margin-bottom: 15px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
.p-precinct-others__title::before, .p-precinct-others__title::after {
  content: "";
  width: 30px;
  height: 1px;
  background: #ccc;
}
.p-precinct-others__list {
  font-size: 1.6rem;
  color: #555;
  font-weight: 500;
  letter-spacing: 0.1em;
}

.p-event-list {
  display: flex;
  flex-wrap: wrap;
  gap: 2%;
}

.p-event-item {
  width: 32%;
  margin-bottom: 30px;
  background: #fff;
  border-radius: 0;
  overflow: hidden;
  border: 1px solid #f0f0f0;
}
@media (max-width: 768px) {
  .p-event-item {
    width: 49%;
    margin-bottom: 20px;
  }
}
.p-event-item__img {
  width: 100%;
  height: 180px;
  overflow: hidden;
}
.p-event-item__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
@media (max-width: 768px) {
  .p-event-item__img {
    height: 120px;
  }
}
.p-event-item__body {
  padding: 15px;
}
.p-event-item__month {
  font-size: 1.5rem;
  font-weight: bold;
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid #eee;
  color: #001f43;
  font-family: inherit;
}
.p-event-item__events {
  list-style: none;
  padding: 0;
  margin: 0;
}
.p-event-item__events li {
  margin-bottom: 5px;
  font-size: 1.3rem;
  line-height: 1.4;
}
.p-event-item__events li::before {
  content: "・";
  color: #c9b067;
}

/*
Memorial Service (740th Anniversary) Page Styles
*/
.p-memorial-section {
  margin-bottom: 50px;
}
@media (max-width: 768px) {
  .p-memorial-section {
    margin-bottom: 30px;
  }
}

.p-memorial-text p {
  margin-bottom: 1.5em;
  line-height: 1.8;
}
.p-memorial-text p:last-child {
  margin-bottom: 0;
}

.p-memorial-outline {
  margin-bottom: 30px;
}
.p-memorial-outline__title {
  font-size: 1.6rem;
  font-weight: bold;
  background: #f2efe9;
  padding: 10px 15px;
  margin-bottom: 15px;
  border-radius: 4px;
  color: #5c4527;
}

.p-memorial-box {
  border: 2px solid #ddd;
  padding: 30px;
  border-radius: 5px;
  background: #fafafa;
}
@media (max-width: 768px) {
  .p-memorial-box {
    padding: 20px;
  }
}
.p-memorial-box--red {
  border-color: #ffdcdc;
  background: #fff4f4;
}
.p-memorial-box--red .p-memorial-subtitle {
  border-left-color: #d0021b;
  color: #d0021b;
}

.p-entry-content .u-list-disc {
  list-style: disc;
  padding-left: 1.5em;
}
.p-entry-content .u-list-disc li {
  margin-bottom: 0.5em;
}

.p-memorial-schedule {
  max-width: 600px;
  margin: 0 auto;
}
.p-memorial-schedule dt {
  font-weight: bold;
  color: #8e7446;
  margin-top: 15px;
}
.p-memorial-schedule dt:first-child {
  margin-top: 0;
}
.p-memorial-schedule dd {
  padding-left: 1em;
  margin-bottom: 10px;
  border-bottom: 1px dashed #ddd;
  padding-bottom: 10px;
}
.p-memorial-schedule dd:last-of-type {
  border-bottom: none;
  margin-bottom: 0;
}

/*
Archive Page Styles
*/
.p-archive-category-list {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  margin: 0 0 30px;
  gap: 10px;
}
.p-archive-category-list li a {
  display: block;
  padding: 8px 20px;
  background: #fff;
  border: 1px solid #1e3a61;
  color: #1e3a61;
  text-decoration: none;
  font-size: 1.4rem;
  transition: all 0.3s;
}
.p-archive-category-list li:hover a, .p-archive-category-list li.is-active a {
  background: #1e3a61;
  color: #fff;
  border-color: #1e3a61;
}
@media (max-width: 768px) {
  .p-archive-category-list {
    gap: 5px;
  }
  .p-archive-category-list li a {
    padding: 5px 12px;
    font-size: 1.2rem;
  }
}

.p-archive-list {
  margin-top: 0;
}
.p-archive-list .row {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
}
.p-archive-list .row::before, .p-archive-list .row::after {
  display: none;
}
.p-archive-list .row > [class*=col-] {
  display: flex;
  flex-direction: column;
  float: none !important;
}

.p-archive-item {
  border-bottom: 1px solid #eee;
  padding: 20px 0;
}
.p-archive-item:first-child {
  padding-top: 0;
}
.p-archive-item__link {
  display: block;
  color: inherit;
  text-decoration: none;
  transition: opacity 0.3s;
}
.p-archive-item__link:hover {
  opacity: 0.7;
}
.p-archive-item__meta {
  font-size: 1.4rem;
  margin-bottom: 5px;
  color: #888;
}
.p-archive-item__date {
  margin-right: 15px;
}
.p-archive-item__cat {
  background: #1e3a61;
  color: #fff;
  font-size: 1.1rem;
  padding: 2px 8px;
  border-radius: 3px;
  vertical-align: middle;
}
.p-archive-item__title {
  font-size: 1.8rem;
  font-weight: bold;
  line-height: 1.4;
  margin: 0;
}
@media (max-width: 768px) {
  .p-archive-item__title {
    font-size: 1.6rem;
  }
}

.p-pagination {
  margin-top: 40px;
  text-align: center;
}
.p-pagination .nav-links {
  display: flex;
  justify-content: center;
  gap: 10px;
}
.p-pagination .page-numbers {
  display: block;
  width: 40px;
  height: 40px;
  line-height: 40px;
  text-align: center;
  border: 1px solid #ddd;
  border-radius: 4px;
  color: #333;
  text-decoration: none;
}
.p-pagination .page-numbers.current {
  background: #1e3a61;
  color: #fff;
  border-color: #1e3a61;
}
.p-pagination .page-numbers:hover:not(.current) {
  background: #f5f5f5;
}

.c-news-list--archive li {
  background-color: transparent;
  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  margin-bottom: -1px;
  transition: background-color 0.3s ease;
}
.c-news-list--archive li:hover {
  background-color: rgba(30, 58, 97, 0.03);
}
.c-news-list--archive li:hover .c-news-list__button {
  background-color: #1e3a61;
  color: #fff;
}
.c-news-list--archive .c-news-list__link {
  display: flex;
  padding: 30px 0;
  align-items: center;
  text-decoration: none;
  color: #333;
}
@media (max-width: 768px) {
  .c-news-list--archive .c-news-list__link {
    padding: 12px;
    flex-direction: row;
    align-items: center;
    gap: 12px;
  }
}
.c-news-list--archive .c-news-list__thumb {
  width: 180px;
  margin-right: 30px;
  flex-shrink: 0;
  border: 1px solid #eee;
}
@media (max-width: 768px) {
  .c-news-list--archive .c-news-list__thumb {
    width: 70px;
    height: 70px;
    margin-right: 0;
    margin-bottom: 0;
    border: none;
    border-radius: 4px;
    overflow: hidden;
  }
}
.c-news-list--archive .c-news-list__thumb-img {
  width: 100%;
  height: auto;
  aspect-ratio: 1.5/1;
  object-fit: cover;
  display: block;
}
.c-news-list--archive .c-news-list__content {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.c-news-list--archive .c-news-list__meta {
  margin-bottom: 12px;
  line-height: 1;
  display: flex;
  align-items: center;
  gap: 15px;
}
@media (max-width: 768px) {
  .c-news-list--archive .c-news-list__meta {
    margin-bottom: 6px;
    gap: 10px;
  }
}
.c-news-list--archive .c-news-list__date {
  font-family: "Roboto", sans-serif;
  color: #888;
  font-size: 1.5rem;
}
.c-news-list--archive .c-news-list__title {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.4;
  color: #333;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
@media (max-width: 768px) {
  .c-news-list--archive .c-news-list__title {
    font-size: 1.6rem;
  }
}
.c-news-list--archive .c-news-list__button {
  width: 44px;
  height: 44px;
  border: 1px solid #1e3a61;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #1e3a61;
  background: transparent;
  transition: all 0.4s cubic-bezier(0.25, 1, 0.5, 1);
  margin-left: 30px;
  flex-shrink: 0;
}
.c-news-list--archive .c-news-list__button::after {
  content: "\f178";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 1.4rem;
}
@media (max-width: 768px) {
  .c-news-list--archive .c-news-list__button {
    display: none;
  }
}
@media (max-width: 768px) {
  .c-news-list--archive li {
    border: 1px solid #e8e0d0;
    border-radius: 6px;
    background: #faf8f5;
    margin-bottom: 12px;
  }
}

/*
Single Page Styles
*/
.p-single-entry {
  background: #fff;
  padding: 30px 30px 50px;
  display: flow-root;
  clear: both;
}
@media (max-width: 768px) {
  .p-single-entry {
    padding: 20px 20px 40px;
  }
}
.p-single-entry__header {
  border-bottom: 2px solid #8e7446;
  padding-bottom: 20px;
  margin-bottom: 30px;
}
@media (max-width: 768px) {
  .p-single-entry__header {
    margin-bottom: 20px;
  }
}
.p-single-entry__meta {
  font-size: 1.4rem;
  color: #666;
  margin-bottom: 15px;
}
.p-single-entry__meta a {
  color: #8e7446;
}
.p-single-entry__date {
  margin-right: 15px;
}
.p-single-entry__cat {
  background: #001f43;
  color: #fff !important;
}
.p-single-entry__cat a {
  color: #fff !important;
  text-decoration: none;
}
.p-single-entry__cat {
  font-size: 1.1rem;
  padding: 2px 8px;
  border-radius: 3px;
  vertical-align: middle;
}
.p-single-entry__title {
  font-size: 2.6rem;
  font-weight: bold;
  line-height: 1.4;
}
@media (max-width: 768px) {
  .p-single-entry__title {
    font-size: 2rem;
  }
}
.p-single-entry__body {
  margin-bottom: 50px;
}
.p-single-entry__body p {
  margin-bottom: 1.5em;
  line-height: 1.8;
}
.p-single-entry__body p:not([class*=has-]):not([style*=font-size]) {
  font-size: 1.6rem;
}
.p-single-entry__body strong, .p-single-entry__body b {
  font-weight: 700;
}
.p-single-entry__body .has-background {
  padding: 1.5em;
}
@media (max-width: 768px) {
  .p-single-entry__body .has-background {
    padding: 1em;
  }
}
.p-single-entry__body h2:not(.has-background):not([class*=has-]):not([style*=font-size]) {
  font-size: 2.2rem;
}
.p-single-entry__body h2:not(.has-background) {
  border-left: 5px solid #8e7446;
  padding-left: 15px;
  margin-top: 40px;
  margin-bottom: 20px;
  background: #f9f9f9;
  padding: 10px 15px;
}
@media (max-width: 768px) {
  .p-single-entry__body h2:not(.has-background):not([class*=has-]):not([style*=font-size]) {
    font-size: 2rem;
  }
}
.p-single-entry__body h3:not([class*=has-]):not([style*=font-size]) {
  font-size: 2rem;
}
.p-single-entry__body h3 {
  margin-top: 30px;
  margin-bottom: 15px;
  font-weight: bold;
  border-bottom: 2px solid #ddd;
  padding-bottom: 10px;
}
@media (max-width: 768px) {
  .p-single-entry__body h3:not([class*=has-]):not([style*=font-size]) {
    font-size: 1.8rem;
  }
}
.p-single-entry__body h4:not([class*=has-]):not([style*=font-size]) {
  font-size: 1.8rem;
}
.p-single-entry__body h4 {
  margin-top: 25px;
  margin-bottom: 15px;
  font-weight: bold;
  border-left: 4px solid #8e7446;
  padding-left: 10px;
}
.p-single-entry__body h5:not([class*=has-]):not([style*=font-size]) {
  font-size: 1.6rem;
}
.p-single-entry__body h5 {
  font-weight: bold;
  margin-top: 20px;
  margin-bottom: 10px;
}
.p-single-entry__body img {
  max-width: 100%;
  height: auto;
  margin: 20px 0;
  border-radius: 4px;
}
.p-single-entry__body figure {
  margin: 40px 0;
  display: flex !important;
  flex-direction: column;
  align-items: center;
  text-align: center;
  width: 100%;
  clear: both;
}
.p-single-entry__body figure.wp-block-gallery {
  display: flex !important;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 16px;
  margin: 40px 0;
  padding: 0;
}
.p-single-entry__body figure.wp-block-gallery .wp-block-image {
  margin: 0;
  width: auto;
  flex-grow: 1;
  display: block !important;
}
.p-single-entry__body figure.wp-block-gallery .wp-block-image figure {
  margin: 0;
  height: 100%;
}
.p-single-entry__body figure.wp-block-gallery .wp-block-image img {
  margin: 0;
  height: 100%;
  width: 100%;
  object-fit: cover;
}
.p-single-entry__body figure.wp-block-gallery .blocks-gallery-caption,
.p-single-entry__body figure.wp-block-gallery figcaption {
  width: 100%;
  flex-basis: 100%;
}
.p-single-entry__body figure.aligncenter {
  margin-left: auto;
  margin-right: auto;
}
.p-single-entry__body figure.alignleft {
  align-items: flex-start;
  float: left;
  margin: 0 20px 20px 0;
  width: auto;
}
.p-single-entry__body figure.alignright {
  align-items: flex-end;
  float: right;
  margin: 0 0 20px 20px;
  width: auto;
}
.p-single-entry__body figure.alignwide {
  width: 100vw;
  max-width: 1200px;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  position: relative;
  left: 50%;
  right: 50%;
  transform: translateX(-50%);
}
@media (max-width: 1024px) {
  .p-single-entry__body figure.alignwide {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    left: auto;
    right: auto;
    transform: none;
  }
}
.p-single-entry__body figure.alignfull {
  width: 100vw;
  max-width: none;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  position: relative;
  left: 50%;
  right: 50%;
  transform: translateX(-50%);
}
.p-single-entry__body figure.alignfull img {
  border-radius: 0;
}
.p-single-entry__body figure img {
  margin: 0 auto;
  display: block;
  max-width: 100%;
  height: auto;
  border-radius: 4px;
}
.p-single-entry__body figure figcaption {
  display: block;
  width: fit-content;
  margin: 15px auto 0;
  padding: 10px 20px;
  font-size: 1.4rem;
  line-height: 1.6;
  color: #444;
  background-color: #f7f7f7;
  border-radius: 4px;
  text-align: center;
  box-sizing: border-box;
}
@media (max-width: 768px) {
  .p-single-entry__body figure figcaption {
    font-size: 1.3rem;
    padding: 8px 15px;
    width: 100% !important;
    white-space: normal !important;
    display: block;
  }
}
.p-single-entry__body figure.is-resized {
  display: flex !important;
}
.p-single-entry__body figure.is-resized img {
  width: inherit;
}
.p-single-entry__body ul, .p-single-entry__body ol {
  margin-bottom: 1.5em;
  padding-left: 1.5em;
}
.p-single-entry__body ul li, .p-single-entry__body ol li {
  margin-bottom: 0.5em;
}
.p-single-entry__body ul {
  list-style: disc;
}
.p-single-entry__body ul ul {
  list-style: circle;
}
.p-single-entry__body ol {
  list-style: decimal;
}
.p-single-entry__body blockquote {
  margin: 20px 0;
  padding: 20px;
  background: #f5f5f5;
  border-left: 5px solid #ccc;
  color: #555;
}
.p-single-entry__body blockquote.has-background {
  background-color: initial;
}
.p-single-entry__body blockquote.has-text-color {
  color: initial;
}
.p-single-entry__body blockquote p:last-child {
  margin-bottom: 0;
}
.p-single-entry__body table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 20px;
  font-size: 1.5rem;
}
.p-single-entry__body table th, .p-single-entry__body table td {
  border: 1px solid #ddd;
  padding: 12px;
  font-size: inherit;
}
.p-single-entry__body table th {
  background: #f2f2f2;
  font-weight: bold;
  text-align: left;
}
.p-single-entry__body hr,
.p-single-entry__body .wp-block-separator {
  border: none;
  border-top: 2px solid #e0d8c8;
  margin: 60px auto;
  width: 100%;
  max-width: 100%;
  opacity: 1;
}
.p-single-entry__body hr.is-style-wide,
.p-single-entry__body .wp-block-separator.is-style-wide {
  width: 100%;
}
.p-single-entry__body hr.is-style-dots,
.p-single-entry__body .wp-block-separator.is-style-dots {
  border-top: none;
  height: auto;
  line-height: 1;
  text-align: center;
  background: none;
}
.p-single-entry__body hr.is-style-dots::before,
.p-single-entry__body .wp-block-separator.is-style-dots::before {
  content: "···";
  color: #8e7446;
  font-size: 3rem;
  letter-spacing: 1em;
  padding-left: 1em;
  font-family: serif;
}
.p-single-entry__body a {
  color: #8e7446;
  text-decoration: underline;
}
.p-single-entry__body a:hover {
  text-decoration: none;
}
.p-single-entry__body a.wp-block-button__link {
  text-decoration: none !important;
}
.p-single-entry__body .aligncenter {
  display: block;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.p-single-entry__body .alignright {
  float: right;
  margin-left: 20px;
}
.p-single-entry__body .alignleft {
  float: left;
  margin-right: 20px;
}
.p-single-entry__body.has-text-color,
.p-single-entry__body .has-text-color {
  color: inherit;
}
.p-single-entry__body.has-background,
.p-single-entry__body .has-background {
  background-color: inherit;
}
.p-single-entry__body {
  display: flow-root;
}

.p-single-nav {
  display: flex;
  justify-content: space-between;
  border-top: 1px solid #ddd;
  padding-top: 30px;
  margin-top: 30px;
}
.p-single-nav a {
  color: #333;
  transition: color 0.3s;
}
.p-single-nav a:hover {
  color: #8e7446;
}

.p-la-rose-kv {
  width: 100%;
  height: 80vh;
  max-height: 80rem;
  position: relative;
  overflow: hidden;
}
@media (max-width: 768px) {
  .p-la-rose-kv {
    height: 60vh;
    max-height: none;
  }
}
.p-la-rose-kv__title-area {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 10;
  text-align: center;
  width: 100%;
  padding: 0 20px;
}
.p-la-rose-kv__logo {
  margin: 0;
}
.p-la-rose-kv__logo img {
  width: 100%;
  max-width: 300px;
  height: auto;
  filter: brightness(0) invert(1) drop-shadow(0 0 10px rgba(0, 0, 0, 0.5));
}
@media (max-width: 768px) {
  .p-la-rose-kv__logo img {
    max-width: 60%;
  }
}
.p-la-rose-kv__scroll {
  position: absolute;
  bottom: 30px;
  left: 40px;
  transform: none;
  z-index: 10;
  color: #fff;
  font-family: "Cinzel", serif;
  font-size: 1.2rem;
  letter-spacing: 0.2em;
  padding-top: 60px;
}
@media (max-width: 768px) {
  .p-la-rose-kv__scroll {
    left: 20px;
    bottom: 20px;
  }
}
.p-la-rose-kv__scroll span {
  display: block;
  writing-mode: vertical-rl;
}
.p-la-rose-kv__scroll::after {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 1px;
  height: 50px;
  background: #fff;
  animation: scrollLine 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;
}

@keyframes scrollLine {
  0% {
    transform: scaleY(0);
    transform-origin: top;
  }
  50% {
    transform: scaleY(1);
    transform-origin: top;
  }
  51% {
    transform: scaleY(1);
    transform-origin: bottom;
  }
  100% {
    transform: scaleY(0);
    transform-origin: bottom;
  }
}
.js-la-rose-slider {
  width: 100%;
  height: 100%;
}
.js-la-rose-slider .swiper-slide {
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.js-la-rose-slider .swiper-slide img {
  display: block;
  width: 100%;
  height: 100% !important;
  object-fit: cover;
  object-position: center;
  position: absolute;
  top: 0;
  left: 0;
  will-change: transform;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-origin: center center;
  transform: scale(1.01);
}
.js-la-rose-slider .swiper-slide::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.1);
}

@keyframes gaugeFill {
  0% {
    height: 0;
  }
  100% {
    height: 100%;
  }
}
.p-la-rose-info-bar {
  background-color: #C33458;
  color: #fff;
  width: 100%;
  padding: 12px 0;
  font-family: "Shippori Mincho", serif;
  font-size: 1.4rem;
}
.p-la-rose-info-bar__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 20px;
}
@media (max-width: 768px) {
  .p-la-rose-info-bar__inner {
    flex-direction: column;
    align-items: center;
    gap: 10px;
  }
}
.p-la-rose-info-bar__news {
  display: flex;
  align-items: center;
  flex: 1;
  overflow: hidden;
  margin-right: 20px;
}
@media (max-width: 768px) {
  .p-la-rose-info-bar__news {
    width: 100%;
    margin-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    padding-bottom: 8px;
  }
}
.p-la-rose-info-bar__label {
  font-family: "Cinzel", serif;
  font-weight: bold;
  letter-spacing: 0.1em;
  padding-right: 15px;
  border-right: 1px solid rgba(255, 255, 255, 0.5);
  margin-right: 15px;
  white-space: nowrap;
}
.p-la-rose-info-bar__ticker {
  flex: 1;
  overflow: hidden;
  height: 30px;
}
.p-la-rose-info-bar__ticker .js-news-ticker {
  height: 30px;
}
.p-la-rose-info-bar__ticker .swiper-slide {
  height: 30px !important;
  display: flex;
  align-items: center;
  overflow: hidden;
}
.p-la-rose-info-bar__ticker a {
  color: #fff;
  text-decoration: none;
  display: block;
  width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 30px;
}
.p-la-rose-info-bar__ticker a:hover {
  text-decoration: underline;
}
.p-la-rose-info-bar__meta {
  display: flex;
  align-items: center;
  gap: 20px;
  white-space: nowrap;
}
@media (max-width: 768px) {
  .p-la-rose-info-bar__meta {
    flex-direction: column;
    align-items: center;
    gap: 5px;
    width: 100%;
    font-size: 1.2rem;
  }
}
.p-la-rose-info-bar__item {
  display: flex;
  align-items: center;
}
.p-la-rose-info-bar__item i {
  margin-right: 8px;
  color: #EF4A5F;
}
.p-la-rose-info-bar__item a {
  color: #fff;
  font-size: 1.6rem;
}
.p-la-rose-info-bar__item a:hover {
  opacity: 0.7;
}

.p-la-rose-intro {
  padding: 160px 0;
  text-align: center;
  position: relative;
  overflow: hidden;
  background-image: linear-gradient(to bottom, transparent 0%, transparent 70%, #fff 100%), linear-gradient(rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.4)), url("../img/la-rose-japonais/intro-bg.webp");
  background-size: cover;
  background-position: center;
  background-attachment: scroll;
}
@media (max-width: 768px) {
  .p-la-rose-intro {
    padding: 60px 0;
  }
}
.p-la-rose-intro .l-container {
  position: relative;
  z-index: 2;
  max-width: 1000px;
  padding: 0;
  background: transparent;
}
@media (max-width: 768px) {
  .p-la-rose-intro .l-container {
    width: 100%;
    padding: 0 15px;
  }
}
.p-la-rose-intro__lead {
  font-size: 3.2rem;
  line-height: 2;
  margin-bottom: 50px;
  font-family: "Shippori Mincho", serif;
  font-weight: 500;
  letter-spacing: 0.05em;
  color: #763B2F;
  position: relative;
  display: inline-block;
  padding: 0;
}
.p-la-rose-intro__lead::before, .p-la-rose-intro__lead::after {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 8.7rem;
  height: 6rem;
  background-size: contain;
  background-repeat: no-repeat;
}
@media (max-width: 768px) {
  .p-la-rose-intro__lead::before, .p-la-rose-intro__lead::after {
    width: 4rem;
    height: 2.8rem;
  }
}
.p-la-rose-intro__lead::before {
  left: -11rem;
  background-image: url("../img/la-rose-japonais/ornament-left.webp");
}
@media (max-width: 768px) {
  .p-la-rose-intro__lead::before {
    left: -2rem;
  }
}
.p-la-rose-intro__lead::after {
  right: -11rem;
  background-image: url("../img/la-rose-japonais/ornament-right.webp");
}
@media (max-width: 768px) {
  .p-la-rose-intro__lead::after {
    right: -2rem;
  }
}
@media (max-width: 768px) {
  .p-la-rose-intro__lead {
    font-size: 1.8rem;
    line-height: 1.8;
    margin-bottom: 30px;
    text-align: center;
    padding: 0 1.2rem;
    display: inline-block;
    left: 0;
    transform: none;
    box-sizing: border-box;
  }
}
.p-la-rose-intro__text {
  font-size: 1.6rem;
  line-height: 2.2;
  font-family: "Shippori Mincho", serif;
  color: #763B2F;
  max-width: 800px;
  margin: 0 auto;
  text-align: left;
}
@media (max-width: 768px) {
  .p-la-rose-intro__text {
    font-size: 1.4rem;
    padding: 0;
    text-align: justify;
  }
}
.p-la-rose-intro__deco {
  position: absolute;
  width: 220px;
  aspect-ratio: 16/10;
  z-index: 1;
  opacity: 0.6;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  pointer-events: none;
}
@media (max-width: 1024px) {
  .p-la-rose-intro__deco {
    display: none;
  }
}
.p-la-rose-intro__deco img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.p-la-rose-intro__deco--left {
  top: 40%;
  left: 0;
}
.p-la-rose-intro__deco--right {
  bottom: 15%;
  right: 0;
}

.p-la-rose-chef {
  padding: 160px 0;
}
@media (max-width: 768px) {
  .p-la-rose-chef {
    padding: 0;
  }
}
.p-la-rose-chef {
  background-color: #f9f9f9;
}
.p-la-rose-chef__inner {
  background-color: #fff;
  padding: 60px 50px;
  border-radius: 4px;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.03);
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  max-width: 1100px;
  margin: 0 auto;
}
@media (max-width: 768px) {
  .p-la-rose-chef__inner {
    flex-direction: column;
    align-items: center;
    padding: 30px 20px;
    width: 100%;
  }
}
.p-la-rose-chef__image {
  width: 38%;
  position: static;
  top: auto;
  align-self: flex-start;
}
@media (max-width: 768px) {
  .p-la-rose-chef__image {
    width: 100%;
    margin-right: 0;
    margin-bottom: 30px;
    position: static;
  }
}
.p-la-rose-chef__image img {
  width: 100%;
  height: auto;
  box-shadow: 20px 20px 0 #f4f4f4, 0 10px 40px rgba(0, 0, 0, 0.08);
}
.p-la-rose-chef__content {
  width: 55%;
}
@media (max-width: 768px) {
  .p-la-rose-chef__content {
    width: 100%;
    padding: 0;
  }
}
.p-la-rose-chef__title {
  margin-bottom: 50px;
}
@media (max-width: 768px) {
  .p-la-rose-chef__title {
    margin-bottom: 30px;
  }
}
.p-la-rose-chef__title {
  font-family: "Shippori Mincho", serif;
  position: relative;
  padding-bottom: 20px;
}
.p-la-rose-chef__title::after {
  display: none;
}
.p-la-rose-chef__title .en {
  display: block;
  font-size: 1.4rem;
  color: #EF4A5F;
  letter-spacing: 0.2em;
  margin-bottom: 10px;
  font-family: "Cinzel", serif;
  text-transform: uppercase;
}
.p-la-rose-chef__title .ja {
  display: block;
  font-size: 2.8rem;
  font-weight: 500;
  line-height: 1.4;
  color: #000;
}
.p-la-rose-chef__bio {
  font-family: "Shippori Mincho", serif;
  position: relative;
  padding-left: 0;
  border-left: none;
  margin-left: 0;
}
.p-la-rose-chef__bio dt {
  font-weight: bold;
  color: #000;
  font-size: 1.6rem;
  margin-top: 20px;
  position: relative;
  line-height: 1.4;
  font-family: "Cinzel", serif;
  padding-bottom: 5px;
}
.p-la-rose-chef__bio dt:first-child {
  margin-top: 0;
}
.p-la-rose-chef__bio dt::before {
  display: none;
}
.p-la-rose-chef__bio dd {
  margin-left: 0;
  margin-top: 5px;
  margin-bottom: 30px;
  font-size: 1.5rem;
  line-height: 2;
  color: #000;
  text-align: justify;
}

.p-la-rose-gallery {
  padding: 160px 0;
}
@media (max-width: 768px) {
  .p-la-rose-gallery {
    padding: 0;
  }
}
.p-la-rose-gallery {
  background-color: #fff;
}
.p-la-rose-gallery__group {
  margin-bottom: 80px;
  text-align: center;
}
.p-la-rose-gallery__group:last-child {
  margin-bottom: 0;
}
@media (max-width: 768px) {
  .p-la-rose-gallery__group--shop .p-la-rose-gallery__item, .p-la-rose-gallery__group--cafe .p-la-rose-gallery__item {
    width: 100%;
  }
}
.p-la-rose-gallery__group--cake .p-la-rose-gallery__subsection {
  margin-top: 32px;
}
.p-la-rose-gallery__group--cake .p-la-rose-gallery__subsection:first-child {
  margin-top: 0;
}
.p-la-rose-gallery__group--cake .p-la-rose-gallery__subsection-title {
  font-family: "Shippori Mincho", serif;
  font-size: 1.8rem;
  font-weight: 500;
  color: #763B2F;
  margin: 0 0 16px;
  text-align: left;
}
@media (max-width: 768px) {
  .p-la-rose-gallery__group--cake .p-la-rose-gallery__subsection-title {
    font-size: 1.6rem;
    margin-bottom: 12px;
  }
}
.p-la-rose-gallery__group--left {
  text-align: left;
}
.p-la-rose-gallery__group--left .p-la-rose-gallery__title {
  left: 0;
  transform: none;
  padding-left: 0;
}
.p-la-rose-gallery__group--left .p-la-rose-gallery__title::before {
  display: none;
}
.p-la-rose-gallery__group--left .p-la-rose-gallery__title::after {
  left: calc(100% + 10px);
  right: auto;
  width: 40px;
}
.p-la-rose-gallery__group--left .p-la-rose-gallery__desc {
  margin-left: 0;
  margin-right: 0;
  text-align: left;
}
.p-la-rose-gallery__desc {
  font-family: "Shippori Mincho", serif;
  font-size: 1.5rem;
  line-height: 2;
  color: #763B2F;
  max-width: 100%;
  margin: 40px auto 0;
  text-align: center;
}
@media (max-width: 768px) {
  .p-la-rose-gallery__desc {
    font-size: 1.4rem;
    margin-top: 25px;
    text-align: justify;
  }
}
.p-la-rose-gallery__title {
  text-align: center;
  font-size: 2.4rem;
  margin-bottom: 30px;
  font-family: "Shippori Mincho", serif;
  font-weight: 500;
  color: #000;
  position: relative;
  display: inline-block;
  padding: 0 40px;
}
.p-la-rose-gallery__title::before, .p-la-rose-gallery__title::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 30px;
  height: 1px;
  background-color: #763B2F;
  transform: translateY(-50%);
}
.p-la-rose-gallery__title::before {
  left: 0;
  background-image: none;
}
.p-la-rose-gallery__title::after {
  right: 0;
  background-image: none;
}
.p-la-rose-gallery__grid {
  display: flex;
  flex-wrap: wrap;
  margin: 0;
}
@media (max-width: 768px) {
  .p-la-rose-gallery__grid {
    margin: 0 -2px;
  }
}
.p-la-rose-gallery__item {
  width: 33.33%;
  padding: 0;
  box-sizing: border-box;
}
@media (max-width: 768px) {
  .p-la-rose-gallery__item {
    width: 50%;
    padding: 2px;
  }
}
.p-la-rose-gallery__item figure {
  margin: 0;
  width: 100%;
  height: 0;
  padding-top: 66.66%;
  position: relative;
  overflow: hidden;
  background: #f0f0f0;
}
.p-la-rose-gallery__item figure a {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
.p-la-rose-gallery__item figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.p-la-rose-gallery__item figure:hover img {
  transform: scale(1.05);
}

.p-la-rose-menu {
  padding: 160px 0;
  position: relative;
  background-color: #fff;
}
.p-la-rose-menu::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url("../img/la-rose-japonais/menu-bg.webp");
  background-size: auto;
  background-position: top left;
  background-repeat: repeat;
  opacity: 0.2;
  z-index: 1;
}
.p-la-rose-menu .l-container {
  position: relative;
  z-index: 2;
  background-color: #fff;
  padding: 80px 60px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.05);
}
@media (max-width: 768px) {
  .p-la-rose-menu .l-container {
    padding: 40px 20px;
  }
}
@media (max-width: 768px) {
  .p-la-rose-menu {
    padding: 40px 0;
  }
}
.p-la-rose-menu__title {
  text-align: center;
  font-size: 2.8rem;
  margin-bottom: 60px;
  font-family: "Shippori Mincho", serif;
  font-weight: 500;
  color: #000;
  position: relative;
  display: inline-block;
  left: 50%;
  transform: translateX(-50%);
  padding: 0 40px;
}
.p-la-rose-menu__title::before, .p-la-rose-menu__title::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 30px;
  height: 1px;
  background-color: #763B2F;
  transform: translateY(-50%);
}
.p-la-rose-menu__title::before {
  left: 0;
}
.p-la-rose-menu__title::after {
  right: 0;
}
@media (max-width: 768px) {
  .p-la-rose-menu__title {
    font-size: 2.4rem;
    margin-bottom: 40px;
  }
}
.p-la-rose-menu__inner {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 80px;
}
@media (max-width: 768px) {
  .p-la-rose-menu__inner {
    gap: 50px;
    padding: 0 20px;
  }
}
.p-la-rose-menu__group {
  width: 100%;
  text-align: center;
}
.p-la-rose-menu__category-header {
  margin-bottom: 60px;
}
@media (max-width: 768px) {
  .p-la-rose-menu__category-header {
    margin-bottom: 40px;
  }
}
.p-la-rose-menu__group-title {
  font-size: 2.4rem;
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  margin-bottom: 20px;
  color: #000;
  line-height: 1.4;
  display: block;
  border-bottom: 1px dotted #763B2F;
  padding-bottom: 12px;
}
.p-la-rose-menu__group-text {
  font-size: 1.5rem;
  line-height: 1.8;
  font-family: "Shippori Mincho", serif;
  color: #763B2F;
  text-align: center;
  max-width: 700px;
  margin: 0 auto;
}
.p-la-rose-menu__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 40px 20px;
}
@media (max-width: 768px) {
  .p-la-rose-menu__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px 10px;
    align-items: start;
  }
}
.p-la-rose-menu__card {
  display: flex;
  flex-direction: column;
  cursor: pointer;
  position: relative;
  background-color: #fff;
  width: 100%;
}
.p-la-rose-menu__card-image {
  position: relative;
  width: 100%;
  aspect-ratio: 3/2;
  overflow: hidden;
  margin-bottom: 15px;
  border: 4px solid #C7A9A1;
}
.p-la-rose-menu__card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.33, 1, 0.68, 1), opacity 0.3s ease;
}
.p-la-rose-menu__card-image:hover img {
  opacity: 0.7;
}
.p-la-rose-menu__card-tag {
  position: absolute;
  top: -10px;
  left: -10px;
  background-color: #763B2F;
  color: #fff;
  font-size: 1.2rem;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  z-index: 3;
  letter-spacing: 0;
  line-height: 1.2;
}
.p-la-rose-menu__card-body {
  text-align: center;
}
.p-la-rose-menu__card-title {
  font-size: 1.5rem;
  font-weight: 600;
  color: #000;
  margin-bottom: 6px;
  font-family: "Shippori Mincho", serif;
  word-break: keep-all;
  overflow-wrap: break-word;
}
.p-la-rose-menu__card-price {
  font-size: 1.5rem;
  color: #000;
  font-family: "Shippori Mincho", serif;
}
.p-la-rose-menu__card-price small {
  font-size: 0.7em;
  margin-left: 0.2em;
}
.p-la-rose-menu__drink-list {
  max-width: 1000px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 15px 60px;
}
@media (max-width: 768px) {
  .p-la-rose-menu__drink-list {
    grid-template-columns: 1fr;
    gap: 15px;
  }
}
.p-la-rose-menu__drink-item {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding-bottom: 10px;
  border-bottom: 1px dotted #e0e0e0;
  font-family: "Shippori Mincho", serif;
}
.p-la-rose-menu__drink-item:last-child {
  border-bottom: none;
}
.p-la-rose-menu__drink-name {
  font-size: 1.6rem;
  font-weight: 500;
  color: #000;
  flex: 1;
  padding-right: 15px;
  text-align: left;
}
.p-la-rose-menu__drink-price {
  font-size: 1.6rem;
  color: #000;
  font-weight: 500;
  flex-shrink: 0;
  min-width: 85px;
  text-align: right;
  white-space: nowrap;
}
.p-la-rose-menu__drink-price small {
  font-size: 0.75em;
  font-weight: normal;
  margin-left: 0.2em;
}

.p-la-rose-menu-modal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 9999;
  align-items: center;
  justify-content: center;
}
.p-la-rose-menu-modal.is-active {
  display: flex;
}
.p-la-rose-menu-modal__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(4px);
  animation: modalFadeIn 0.3s ease;
}
.p-la-rose-menu-modal__content {
  position: relative;
  z-index: 1;
  background: #fff;
  max-width: 880px;
  width: 90%;
  max-height: 90vh;
  overflow-y: auto;
  display: flex;
  flex-direction: row;
  animation: modalSlideIn 0.35s cubic-bezier(0.33, 1, 0.68, 1);
}
@media (max-width: 768px) {
  .p-la-rose-menu-modal__content {
    max-width: 95%;
    flex-direction: column;
  }
}
.p-la-rose-menu-modal__close {
  position: absolute;
  top: 12px;
  right: 16px;
  z-index: 10;
  background: none;
  border: none;
  font-size: 2.8rem;
  color: #999;
  cursor: pointer;
  line-height: 1;
  transition: color 0.2s;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-la-rose-menu-modal__close:hover {
  color: #000;
}
.p-la-rose-menu-modal__image {
  position: relative;
  width: 50%;
  aspect-ratio: 3/2;
  overflow: hidden;
  flex-shrink: 0;
  border: 4px solid #C7A9A1;
}
@media (max-width: 768px) {
  .p-la-rose-menu-modal__image {
    width: 100%;
  }
}
.p-la-rose-menu-modal__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-la-rose-menu-modal__tag {
  display: inline-block;
  background-color: #763B2F;
  color: #fff;
  font-size: 1.2rem;
  padding: 4px 16px;
  border-radius: 20px;
  font-weight: bold;
  letter-spacing: 0.05em;
  margin-bottom: 12px;
  align-self: flex-start;
}
.p-la-rose-menu-modal__tag:empty {
  display: none;
}
.p-la-rose-menu-modal__body {
  padding: 30px;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.p-la-rose-menu-modal__title {
  font-size: 2.4rem;
  font-weight: 600;
  color: #000;
  margin-bottom: 8px;
  font-family: "Shippori Mincho", serif;
}
.p-la-rose-menu-modal__subtitle {
  font-size: 1.4rem;
  color: #763B2F;
  font-family: "Cinzel", serif;
  letter-spacing: 0.05em;
  margin-bottom: 20px;
}
.p-la-rose-menu-modal__subtitle:empty {
  display: none;
}
.p-la-rose-menu-modal__desc {
  font-size: 1.5rem;
  line-height: 1.8;
  color: #555;
  margin-bottom: 25px;
  font-family: "Shippori Mincho", serif;
}
.p-la-rose-menu-modal__desc:empty {
  display: none;
}
.p-la-rose-menu-modal__meta {
  border-top: 1px dotted #ccc;
  padding-top: 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.p-la-rose-menu-modal__price {
  font-size: 2rem;
  font-weight: bold;
  color: #000;
  font-family: "Shippori Mincho", serif;
}
.p-la-rose-menu-modal__price small {
  font-size: 0.6em;
  font-weight: normal;
  margin-left: 0.3em;
}
.p-la-rose-menu-modal__allergies {
  font-size: 1.2rem;
  color: #999;
}
.p-la-rose-menu-modal__allergies::before {
  content: "アレルギー：";
}
.p-la-rose-menu-modal__allergies:empty {
  display: none;
}

@keyframes modalFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes modalSlideIn {
  from {
    opacity: 0;
    transform: scale(0.95) translateY(10px);
  }
  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}
.p-la-rose-news {
  padding: 100px 0;
  background-color: #fff;
}
.p-la-rose-news--top {
  padding-top: 120px;
  padding-bottom: 50px;
}
@media (max-width: 768px) {
  .p-la-rose-news--top {
    padding-top: 40px;
    padding-bottom: 40px;
  }
}
.p-la-rose-news__title {
  text-align: center;
  font-size: 2.8rem;
  margin-bottom: 40px;
  font-family: "Shippori Mincho", serif;
  font-weight: 500;
  letter-spacing: 0.1em;
  position: relative;
  display: inline-block;
  width: 100%;
}
.p-la-rose-news__title::after {
  content: "";
  display: block;
  width: 40px;
  height: 2px;
  background: #763B2F;
  margin: 15px auto 0;
}
.p-la-rose-news__list-vertical {
  max-width: 700px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 30px;
}
@media (max-width: 768px) {
  .p-la-rose-news__list-vertical {
    gap: 20px;
  }
}
.p-la-rose-news__item-horizontal {
  border-bottom: 1px dotted #e0e0e0;
  padding-bottom: 30px;
}
.p-la-rose-news__item-horizontal:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
@media (max-width: 768px) {
  .p-la-rose-news__item-horizontal {
    padding-bottom: 20px;
  }
}
.p-la-rose-news__link-horizontal {
  display: block;
  text-decoration: none;
}
.p-la-rose-news__link-horizontal:hover .p-la-rose-news__title-horizontal, .p-la-rose-news__link-horizontal:focus .p-la-rose-news__title-horizontal {
  color: #bfa145;
  text-decoration: underline;
}
.p-la-rose-news__thumb-horizontal {
  display: none;
}
.p-la-rose-news__body-horizontal {
  display: flex;
  align-items: baseline;
  gap: 20px;
}
@media (max-width: 768px) {
  .p-la-rose-news__body-horizontal {
    flex-direction: column;
    gap: 5px;
  }
}
.p-la-rose-news__meta-horizontal {
  flex-shrink: 0;
}
.p-la-rose-news__date-horizontal {
  font-size: 1.2rem;
  color: #000;
  font-family: "Cinzel", serif;
  font-weight: bold;
}
.p-la-rose-news__title-horizontal {
  font-size: 1.7rem;
  font-weight: 500;
  line-height: 1.6;
  color: #763B2F;
  margin: 0;
  font-family: "Shippori Mincho", serif;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
@media (max-width: 768px) {
  .p-la-rose-news__title-horizontal {
    font-size: 1.4rem;
    -webkit-line-clamp: 3;
    line-clamp: 3;
  }
}

.p-la-rose-parallax {
  width: 100%;
  height: 60vh;
  min-height: 600px;
  position: relative;
  overflow: hidden;
}
.p-la-rose-parallax__bg {
  width: 100%;
  height: 130%;
  background-position: center center;
  background-size: cover;
  position: absolute;
  top: 0;
  left: 0;
  will-change: transform;
}
.p-la-rose-parallax__content {
  position: absolute;
  bottom: 80px;
  left: 60px;
  z-index: 10;
}
@media (max-width: 768px) {
  .p-la-rose-parallax__content {
    bottom: auto;
    top: 35px;
    left: 15px;
  }
}
.p-la-rose-parallax__text {
  font-family: "Shippori Mincho", serif;
  font-size: 2.22rem;
  color: #fff;
  line-height: 2.2;
  writing-mode: horizontal-tb;
  letter-spacing: 0.15em;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
  margin: 0;
}
@media (max-width: 768px) {
  .p-la-rose-parallax__text {
    font-size: 1.8rem;
    line-height: 2;
    writing-mode: vertical-rl;
    letter-spacing: 0.3em;
  }
}

.p-la-rose-access {
  background-color: #fff;
  padding: 160px 0;
}
@media (max-width: 768px) {
  .p-la-rose-access {
    padding: 0;
  }
}
.p-la-rose-access__title {
  text-align: center;
  margin-bottom: 60px;
  font-family: "Shippori Mincho", serif;
  font-size: 2.8rem;
  font-weight: 500;
  color: #000;
  position: relative;
  display: inline-block;
  left: 50%;
  transform: translateX(-50%);
  padding: 0 140px;
}
@media (max-width: 768px) {
  .p-la-rose-access__title {
    padding: 0;
    width: 100%;
  }
}
.p-la-rose-access__title {
  background-image: none;
}
.p-la-rose-access__title::before, .p-la-rose-access__title::after {
  display: none;
}
.p-la-rose-access__inner {
  max-width: 1100px;
  margin: 0 auto;
}
.p-la-rose-access__name {
  text-align: center;
  margin-bottom: 40px;
}
.p-la-rose-access__name .p-la-rose-access__logo {
  width: 120px;
  height: auto;
  margin-bottom: 20px;
}
.p-la-rose-access__name .en {
  display: block;
  font-family: "Cinzel", serif;
  font-size: 2rem;
  color: #763B2F;
  margin-bottom: 10px;
  letter-spacing: 0.1em;
}
.p-la-rose-access__name .ja {
  display: block;
  font-family: "Shippori Mincho", serif;
  font-size: 1.8rem;
  font-weight: 500;
}
.p-la-rose-access__data {
  border-top: 1px solid #e0e0e0;
  margin-bottom: 60px;
  font-family: "Shippori Mincho", serif;
}
.p-la-rose-access__row {
  display: flex;
  border-bottom: 1px solid #e0e0e0;
}
@media (max-width: 768px) {
  .p-la-rose-access__row {
    flex-direction: column;
  }
}
.p-la-rose-access__row dt {
  width: 200px;
  background: #fafafa;
  padding: 20px;
  font-weight: bold;
  display: flex;
  align-items: center;
}
@media (max-width: 768px) {
  .p-la-rose-access__row dt {
    width: 100%;
    background: #f4f4f4;
    padding: 15px 20px;
  }
}
.p-la-rose-access__row dd {
  flex: 1;
  padding: 20px;
  margin: 0;
  line-height: 1.8;
  font-size: 1.5rem;
}
@media (max-width: 768px) {
  .p-la-rose-access__row dd {
    width: 100%;
    padding: 15px 20px;
  }
}
.p-la-rose-access__row dd .note {
  font-size: 1.2rem;
  color: #888;
  display: block;
  margin-top: 5px;
}
.p-la-rose-access__row--sns dd {
  display: flex;
  align-items: center;
}
.p-la-rose-access__sns-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #EF4A5F;
  font-weight: bold;
  text-decoration: none;
  transition: opacity 0.3s ease;
}
.p-la-rose-access__sns-link:hover {
  opacity: 0.7;
  text-decoration: underline;
}
.p-la-rose-access__sns-link i {
  font-size: 1.4em;
}
.p-la-rose-access__map {
  width: 100%;
  height: 0;
  padding-bottom: 40%;
  position: relative;
}
@media (max-width: 768px) {
  .p-la-rose-access__map {
    padding-bottom: 100%;
  }
}
.p-la-rose-access__map iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  filter: grayscale(100%);
}

.lity.lity-opened {
  background: rgba(0, 0, 0, 0.8);
}
.lity .lity-container {
  max-width: 90%;
  max-height: 90%;
}
.lity .lity-content {
  background: #fff;
  padding: 10px;
  border-radius: 4px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
  display: inline-block;
  vertical-align: middle;
}
.lity .lity-content img {
  display: block;
  border-radius: 2px;
  max-width: 100%;
  height: auto;
  max-height: 80vh !important;
  width: auto;
  margin: 0 auto;
}
.lity .lity-close {
  top: 20px;
  right: 20px;
  text-shadow: none;
  color: #fff;
  background: rgba(0, 0, 0, 0.5);
  width: 40px;
  height: 40px;
  line-height: 40px;
  border-radius: 50%;
}
.lity .lity-close:hover {
  background: #763B2F;
  color: #fff;
}

.p-la-rose-insta-fix {
  position: fixed;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  z-index: 9999;
  background-color: #EF4A5F;
  color: #fff;
  padding: 15px 8px;
  border-radius: 8px 0 0 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  box-shadow: -2px 0 10px rgba(0, 0, 0, 0.2);
  transition: all 0.3s ease;
}
@media (max-width: 768px) {
  .p-la-rose-insta-fix {
    padding: 10px 6px;
  }
}
.p-la-rose-insta-fix i {
  font-size: 2.4rem;
}
@media (max-width: 768px) {
  .p-la-rose-insta-fix i {
    font-size: 2rem;
  }
}
.p-la-rose-insta-fix span {
  font-size: 1.1rem;
  writing-mode: vertical-rl;
  text-orientation: upright;
  letter-spacing: 0.15em;
  font-family: "Cinzel", serif;
  font-weight: bold;
}
@media (max-width: 768px) {
  .p-la-rose-insta-fix span {
    font-size: 1rem;
  }
}
.p-la-rose-insta-fix:hover, .p-la-rose-insta-fix:focus {
  opacity: 0.8;
  color: #fff;
  padding-right: 12px;
  text-decoration: none;
}

.page-la-rose-japonais .l-footer {
  background-image: linear-gradient(rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0.75)), url("../img/la-rose-japonais/gallery/exterior-05.webp");
  background-size: cover;
  background-position: center;
  background-attachment: scroll;
  border-top: none;
  position: relative;
  z-index: 10;
}
@media (max-width: 768px) {
  .page-la-rose-japonais .l-footer {
    padding: 40px 0;
  }
}

.p-contact-form {
  max-width: 700px;
  margin: 40px auto;
  background-color: #fff;
  padding: 40px;
  border-radius: 5px;
}
@media (max-width: 768px) {
  .p-contact-form {
    padding: 20px;
  }
}
.p-contact-form p {
  margin-bottom: 25px;
}
.p-contact-form label {
  display: block;
  font-size: 1.4rem;
  font-weight: 700;
  margin-bottom: 8px;
  color: #333;
}
.p-contact-form label .required {
  display: inline-block;
  background-color: #c91a1a;
  color: #fff;
  font-size: 1rem;
  padding: 2px 6px;
  margin-left: 5px;
  border-radius: 3px;
  vertical-align: text-bottom;
  font-weight: normal;
}
.p-contact-form input[type=text],
.p-contact-form input[type=email],
.p-contact-form input[type=tel],
.p-contact-form select,
.p-contact-form textarea {
  width: 100%;
  padding: 12px 15px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 1.6rem;
  background-color: #f9f9f9;
  transition: all 0.3s ease;
  appearance: none;
  margin-top: 5px;
}
.p-contact-form input[type=text]:focus,
.p-contact-form input[type=email]:focus,
.p-contact-form input[type=tel]:focus,
.p-contact-form select:focus,
.p-contact-form textarea:focus {
  outline: none;
  border-color: #bfa145;
  background-color: #fff;
  box-shadow: 0 0 5px rgba(191, 161, 69, 0.3);
}
.p-contact-form textarea {
  height: 200px;
  resize: vertical;
}
.p-contact-form input[type=checkbox],
.p-contact-form input[type=radio] {
  margin-right: 5px;
}
.p-contact-form input[type=submit] {
  display: block;
  width: 100%;
  max-width: 300px;
  margin: 40px auto 0;
  padding: 15px 30px;
  background-color: #bfa145;
  color: #fff;
  font-size: 1.6rem;
  font-weight: 700;
  border: none;
  border-radius: 5px;
  cursor: pointer;
  transition: all 0.3s ease;
  appearance: none;
}
.p-contact-form input[type=submit]:hover {
  background-color: #a38936;
  transform: translateY(-2px);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}
.p-contact-form input[type=submit]:disabled {
  background-color: #ccc;
  cursor: not-allowed;
  transform: none;
}
.p-contact-form .wpcf7-spinner {
  margin: 10px auto 0;
}
.p-contact-form .wpcf7-response-output {
  margin: 20px 0;
  padding: 15px;
  border-radius: 4px;
  font-size: 1.4rem;
}
.p-contact-form .wpcf7-response-output.wpcf7-display-none {
  display: none;
}
.p-contact-form .wpcf7-response-output.wpcf7-validation-errors {
  border: 1px solid #ffcc00;
  background-color: #fffff0;
  color: #d35400;
}
.p-contact-form .wpcf7-response-output.wpcf7-mail-sent-ok {
  border: 1px solid #46b450;
  background-color: #f0fdf4;
  color: #2c7a31;
}
.p-contact-form .wpcf7-not-valid-tip {
  font-size: 1.2rem;
  color: #e74c3c;
  margin-top: 5px;
}

#booking-package_inputFormPanel {
  max-width: 900px;
  margin: 40px auto;
  background: #fff;
  border: 1px solid #eee;
}
#booking-package_inputFormPanel #reservationHeader {
  background: #1e3a61;
  color: #fff;
  padding: 15px 20px;
  font-size: 1.8rem;
  font-weight: bold;
  text-align: center;
  margin-bottom: 0;
}
#booking-package_inputFormPanel .row {
  display: flex;
  border-bottom: 1px solid #eee;
  align-items: stretch;
  margin: 0;
}
@media (max-width: 768px) {
  #booking-package_inputFormPanel .row {
    display: block;
  }
}
#booking-package_inputFormPanel .row .name {
  width: 200px;
  background: #fdfbf9;
  padding: 20px;
  font-weight: bold;
  font-size: 1.5rem;
  display: flex;
  align-items: center;
  border-right: 1px solid #eee;
  flex-shrink: 0;
}
@media (max-width: 768px) {
  #booking-package_inputFormPanel .row .name {
    width: 100%;
    border-right: none;
    border-bottom: 1px solid #eee;
    padding: 15px;
  }
}
#booking-package_inputFormPanel .row .name.required::after {
  content: "*";
  color: #c91a1a;
  margin-left: 4px;
}
#booking-package_inputFormPanel .row .value {
  flex: 1;
  padding: 20px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 10px;
  text-align: left;
}
@media (max-width: 768px) {
  #booking-package_inputFormPanel .row .value {
    padding: 15px;
  }
}
#booking-package_inputFormPanel .row .value .addedService {
  width: 100%;
  text-align: left;
}
#booking-package_inputFormPanel .row .value input[type=text],
#booking-package_inputFormPanel .row .value input[type=email],
#booking-package_inputFormPanel .row .value input[type=tel],
#booking-package_inputFormPanel .row .value select {
  width: 100%;
  max-width: 400px;
  padding: 12px;
  border: 1px solid #ddd;
  border-radius: 4px;
  background: #fff;
}
#booking-package_inputFormPanel .bottomBarPanel {
  padding: 30px;
  text-align: center;
  background: #f9f9f9;
  display: flex;
  justify-content: center;
  gap: 20px;
}
#booking-package_inputFormPanel .bottomBarPanel button {
  padding: 15px 50px;
  font-size: 1.6rem;
  font-weight: bold;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.3s;
}
#booking-package_inputFormPanel .bottomBarPanel .book_now_button {
  background: #bfa145;
  color: #fff;
  border: none;
}
#booking-package_inputFormPanel .bottomBarPanel .book_now_button:hover {
  background: #a38936;
}
#booking-package_inputFormPanel .bottomBarPanel .return_form_button {
  background: #eee;
  color: #333;
  border: 1px solid #ddd;
}
#booking-package_inputFormPanel .bottomBarPanel .return_form_button:hover {
  background: #e0e0e0;
}

.p-contact-layout {
  display: block;
  margin-top: 40px;
}
.p-contact-layout__calendar {
  width: 100%;
  background: #fff;
  padding: 30px;
  border-radius: 5px;
  text-align: center;
  margin-bottom: 40px;
}
@media (max-width: 768px) {
  .p-contact-layout__calendar {
    padding: 20px;
    margin-bottom: 30px;
  }
}
.p-contact-layout__calendar .c-widget {
  margin-bottom: 0;
}
.p-contact-layout__form {
  width: 100%;
  min-width: 0;
}
.p-contact-layout__form .p-contact-form {
  margin: 0;
  max-width: 100%;
}

.p-repayment {
  margin-top: 60px;
  margin-bottom: 80px;
}
.p-repayment-intro {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 40px;
  margin-bottom: 60px;
}
.p-repayment-intro__body {
  width: 50%;
}
.p-repayment-intro__visual {
  width: 45%;
}
.p-repayment-intro__visual img {
  width: 100%;
  height: auto;
  border-radius: 5px;
}
@media (max-width: 768px) {
  .p-repayment-intro {
    display: block;
  }
  .p-repayment-intro__body {
    width: 100%;
    margin-bottom: 30px;
  }
  .p-repayment-intro__visual {
    width: 100%;
  }
}
.p-repayment-section {
  margin-bottom: 60px;
}
.p-repayment-section:last-child {
  margin-bottom: 0;
}
.p-repayment-block {
  margin-bottom: 30px;
  background: #fdfdfd;
  border: 1px solid #eee;
  padding: 30px;
  border-radius: 5px;
}
@media (max-width: 768px) {
  .p-repayment-block {
    padding: 20px;
  }
}
.p-repayment-block__title {
  font-size: 1.8rem;
  font-weight: bold;
  margin-bottom: 20px;
  padding-bottom: 15px;
  border-bottom: 1px solid #ddd;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 15px;
}
.p-repayment-block__title .u-text-small {
  font-size: 1.3rem;
  font-weight: normal;
  color: #666;
}
.p-repayment-label {
  display: inline-block;
  padding: 6px 16px;
  font-size: 1.6rem;
  font-weight: bold;
  color: #fff;
  border-radius: 4px;
  line-height: 1;
}
.p-repayment-label--free {
  background: #1e3a61;
}
.p-repayment-label--paid {
  background: #8e7446;
}
.p-repayment-list {
  margin-bottom: 30px;
}
.p-repayment-list--inline {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.p-repayment-list--inline li {
  background: #fff;
  border: 1px solid #ddd;
  padding: 10px 20px;
  border-radius: 4px;
  font-weight: bold;
  list-style: none;
}
@media (max-width: 768px) {
  .p-repayment-list--inline li {
    padding: 10px;
    width: 48%;
    max-width: 50%;
    text-align: center;
  }
}
.p-repayment-price-list {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}
.p-repayment-price-item {
  width: calc(50% - 10px);
  background: #fff;
  border: 1px solid #eee;
  padding: 20px;
}
.p-repayment-price-item dt {
  font-weight: bold;
  font-size: 1.6rem;
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px dotted #ddd;
  color: #000;
}
.p-repayment-price-item dd {
  font-size: 1.4rem;
  line-height: 1.6;
}
@media (max-width: 768px) {
  .p-repayment-price-item {
    width: 100%;
  }
}
.p-repayment-price-row {
  display: flex;
  align-items: baseline;
  margin-bottom: 8px;
}
.p-repayment-price-row span:first-child {
  flex: 1;
  display: flex;
  align-items: baseline;
  white-space: nowrap;
  color: #000;
}
.p-repayment-price-row span:first-child::after {
  content: "";
  flex: 1;
  border-bottom: 1px dotted #ccc;
  margin: 0 10px;
}
.p-repayment-price-row span:last-child {
  flex-shrink: 0;
  font-weight: bold;
  color: #1e3a61;
}
.p-repayment-price-row:last-child {
  margin-bottom: 0;
}
.p-repayment-item {
  margin-bottom: 40px;
}
.p-repayment-item__title {
  font-size: 1.8rem;
  font-weight: bold;
  margin-bottom: 15px;
  color: #333;
  border-bottom: 1px solid #ddd;
  padding-bottom: 10px;
}
.p-repayment-item p {
  line-height: 1.8;
}
.p-repayment-card {
  background: #fff;
  border: 2px solid #eee;
  padding: 40px;
  border-radius: 8px;
  margin-top: 40px;
  position: relative;
}
@media (max-width: 768px) {
  .p-repayment-card {
    padding: 30px 20px;
  }
}
.p-repayment-card__title {
  font-size: 1.8rem;
  font-weight: bold;
  margin-bottom: 30px;
  text-align: center;
  color: #1e3a61;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}
.p-repayment-card__title::before, .p-repayment-card__title::after {
  content: "";
  height: 1px;
  background: #ddd;
  flex: 1;
}
.p-repayment-card__title span {
  display: flex;
  align-items: center;
  gap: 8px;
}
.p-repayment-card__list {
  padding-left: 0;
  list-style: none;
  counter-reset: disposal-counter;
}
.p-repayment-card__list li {
  position: relative;
  padding-left: 45px;
  margin-bottom: 20px;
  line-height: 1.8;
  font-size: 1.5rem;
  display: flex;
  align-items: flex-start;
}
.p-repayment-card__list li::before {
  counter-increment: disposal-counter;
  content: counter(disposal-counter);
  position: absolute;
  left: 0;
  top: 2px;
  width: 30px;
  height: 30px;
  background: #1e3a61;
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  font-weight: bold;
  font-family: var(--font-cinzel);
}
.p-repayment-card__list li:last-child {
  margin-bottom: 0;
}
.p-repayment-warning-icon {
  color: #c0392b;
  margin-right: 5px;
}

.p-home-cta {
  display: none;
}
@media (max-width: 768px) {
  .p-home-cta {
    display: block;
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 999;
  }
}

@media (max-width: 768px) {
  body {
    padding-bottom: 50px;
  }
}
@media (max-width: 768px) {
  .p-home-cta__list {
    display: flex;
    align-items: stretch;
    height: 50px;
    filter: drop-shadow(0 -5px 15px rgba(0, 0, 0, 0.1));
  }
  .p-home-cta__item {
    flex: 1;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    transition: all 0.3s ease;
  }
  .p-home-cta__item--phone {
    background: #001f43;
    color: #fff !important;
  }
  .p-home-cta__item--phone h3, .p-home-cta__item--phone i {
    color: #fff !important;
  }
  .p-home-cta__item--contact {
    background: #8b5a2b;
    color: #fff !important;
    border-right: 1px solid rgba(255, 255, 255, 0.3);
  }
  .p-home-cta__item--contact h3, .p-home-cta__item--contact i {
    color: #fff !important;
  }
  .p-home-cta__item:active {
    filter: brightness(1.2);
  }
  .p-home-cta__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    line-height: 1.2;
  }
  .p-home-cta__content i {
    font-size: 1.6rem;
    margin-bottom: 2px;
  }
  .p-home-cta__title {
    font-size: 1.2rem;
    font-weight: bold;
    margin: 0;
    font-family: "Shippori Mincho", serif;
  }
  .p-home-cta__text {
    display: none;
  }
}

.p-lucky-calendar {
  background: #fff;
  border: 1px solid #e0d8c8;
  padding: 15px;
  border-radius: 8px;
  font-family: "Shippori Mincho", serif;
  margin-bottom: 20px;
}
.p-lucky-calendar__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
  border-bottom: 1px solid #f0ede6;
  padding-bottom: 12px;
}
.p-lucky-calendar__header a, .p-lucky-calendar__header .is-disabled {
  color: #1e3a61;
  font-size: 1.4rem;
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: background 0.3s;
  text-decoration: none;
}
.p-lucky-calendar__header a:hover:not(.is-disabled), .p-lucky-calendar__header .is-disabled:hover:not(.is-disabled) {
  background: #fdfbf9;
  color: #1e3a61;
}
.p-lucky-calendar__header a.is-disabled, .p-lucky-calendar__header .is-disabled.is-disabled {
  opacity: 0.2;
  cursor: default;
}
.p-lucky-calendar__year-month {
  font-size: 1.6rem;
  font-weight: bold;
  color: #1e3a61;
}
.p-lucky-calendar__table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.p-lucky-calendar__table th, .p-lucky-calendar__table td {
  text-align: center;
  font-size: 1.2rem;
  vertical-align: middle;
  padding: 5px;
}
.p-lucky-calendar__table th {
  color: #999;
  font-weight: normal;
  font-size: 1.1rem;
  border-bottom: 1px solid #f0ede6;
}
.p-lucky-calendar__table td {
  position: relative;
  border-bottom: 1px solid #faf9f6;
}
.p-lucky-calendar__table td.is-empty {
  background: transparent;
}
.p-lucky-calendar__table td .day-num {
  display: block;
  font-size: 1.4rem;
}
.p-lucky-calendar__table td.is-today {
  background-color: #fdfcf6;
}
.p-lucky-calendar__table td.is-today .day-num {
  background-color: #1e3a61;
  color: #fff !important;
  display: block;
  padding: 4px 0;
  border-radius: 4px;
}
.p-lucky-calendar__table td .label-taian, .p-lucky-calendar__table td .label-inu {
  display: block;
  font-size: 0.9rem;
  line-height: 1.2;
  font-weight: bold;
  padding: 1px 2px;
  border-radius: 2px;
}
.p-lucky-calendar__table td.is-taian {
  background-color: #dc9292;
  color: #fff !important;
}
.p-lucky-calendar__table td.is-taian .day-num {
  font-weight: bold;
}
.p-lucky-calendar__table td.is-inu {
  background-color: #d68b9f;
  color: #fff !important;
}
.p-lucky-calendar__table td.is-inu .day-num {
  font-weight: bold;
}
.p-lucky-calendar__table td.is-inu.is-taian {
  background: linear-gradient(135deg, #dc9292 50%, #d68b9f 50%);
}
.p-lucky-calendar__table td .label-taian, .p-lucky-calendar__table td .label-inu {
  display: none;
}
.p-lucky-calendar__table td:nth-child(1) {
  color: #dc9292;
}
.p-lucky-calendar__table td:nth-child(7) {
  color: #2980b9;
}
.p-lucky-calendar__footer {
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px solid #f0ede6;
  font-size: 1.1rem;
  color: #666;
  text-align: right;
}
.p-lucky-calendar__footer span {
  font-size: 1.4rem;
  vertical-align: middle;
  margin-left: 10px;
}
.p-lucky-calendar__footer span.is-taian {
  color: #dc9292;
}
.p-lucky-calendar__footer span.is-inu {
  color: #d68b9f;
}

/* ==========================================================================
   Project: Nankatsu SC Collaboration LP (in-page)
   ========================================================================== */
.p-nankatsu-lp-page {
  --ns-blue: #005bac;
  --ns-blue-dark: #003d78;
  --ns-card: #e8f2fb;
  position: relative;
  overflow-x: hidden;
}
.p-nankatsu-lp-page .p-nankatsu-lp__bg-decorations {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}
.p-nankatsu-lp-page .p-nankatsu-lp__bg-decor {
  position: absolute;
  width: clamp(280px, 32vw, 420px);
  height: auto;
  opacity: 0.12;
  transition: opacity 0.3s ease;
  z-index: 0;
}
.p-nankatsu-lp-page .p-nankatsu-lp__bg-decor--1 {
  top: 480px;
  left: calc(50% - 680px);
}
@media (max-width: 768px) {
  .p-nankatsu-lp-page .p-nankatsu-lp__bg-decor--1 {
    width: 180px;
    top: 420px;
    left: -60px;
    opacity: 0.08;
  }
}
.p-nankatsu-lp-page .p-nankatsu-lp__bg-decor--2 {
  top: 980px;
  right: calc(50% - 680px);
}
@media (max-width: 768px) {
  .p-nankatsu-lp-page .p-nankatsu-lp__bg-decor--2 {
    width: 180px;
    top: 920px;
    right: -60px;
    opacity: 0.08;
  }
}
.p-nankatsu-lp-page {
  /* KV：.l-container の外＝#smooth-content 直下なので幅100%で全幅 */
}
.p-nankatsu-lp-page .p-nankatsu-lp__hero {
  position: relative;
  width: 100%;
  max-width: none;
  min-height: 80vh;
  margin: 0 0 40px;
  box-sizing: border-box;
  background: radial-gradient(circle at 60% 40%, #0076d6 0%, #005bac 55%, #003870 100%);
  padding: 72px 40px 96px;
  color: #fff;
  overflow: hidden;
}
@media (min-width: 1025px) {
  .p-nankatsu-lp-page .p-nankatsu-lp__hero {
    display: grid;
    grid-template-columns: minmax(40px, 1fr) minmax(0, 520px) minmax(220px, 620px) minmax(40px, 1fr);
    grid-template-areas: ". copy visual ." ". support visual .";
    gap: 24px 32px;
    align-items: start;
    align-content: center;
  }
}
@media (max-width: 768px) {
  .p-nankatsu-lp-page .p-nankatsu-lp__hero {
    display: block;
    padding: 48px 20px 88px;
    margin-bottom: 28px;
  }
}
.p-nankatsu-lp-page .p-nankatsu-lp__hero::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 55%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
  background-image: radial-gradient(circle at 85% 50%, transparent 160px, rgba(255, 255, 255, 0.05) 161px, rgba(255, 255, 255, 0.05) 162px, transparent 163px), radial-gradient(circle at 85% 50%, transparent 260px, rgba(255, 255, 255, 0.05) 261px, rgba(255, 255, 255, 0.05) 262px, transparent 263px), radial-gradient(circle at 85% 50%, transparent 360px, rgba(255, 255, 255, 0.05) 361px, rgba(255, 255, 255, 0.05) 362px, transparent 363px), radial-gradient(rgba(255, 255, 255, 0.15) 1.5px, transparent 1.5px);
  background-size: 100% 100%, 100% 100%, 100% 100%, 24px 24px;
  -webkit-mask-image: linear-gradient(to left, rgba(0, 0, 0, 0.8) 20%, rgba(0, 0, 0, 0) 100%);
  mask-image: linear-gradient(to left, rgba(0, 0, 0, 0.8) 20%, rgba(0, 0, 0, 0) 100%);
}
@media (max-width: 768px) {
  .p-nankatsu-lp-page .p-nankatsu-lp__hero::before {
    width: 100%;
    height: 55%;
    top: auto;
    bottom: 0;
    background-image: radial-gradient(circle at 50% 85%, transparent 100px, rgba(255, 255, 255, 0.05) 101px, rgba(255, 255, 255, 0.05) 102px, transparent 103px), radial-gradient(circle at 50% 85%, transparent 180px, rgba(255, 255, 255, 0.05) 181px, rgba(255, 255, 255, 0.05) 182px, transparent 183px), radial-gradient(rgba(255, 255, 255, 0.12) 1.5px, transparent 1.5px);
    background-size: 100% 100%, 100% 100%, 20px 20px;
    -webkit-mask-image: linear-gradient(to top, rgba(0, 0, 0, 0.8) 20%, rgba(0, 0, 0, 0) 100%);
    mask-image: linear-gradient(to top, rgba(0, 0, 0, 0.8) 20%, rgba(0, 0, 0, 0) 100%);
  }
}
.p-nankatsu-lp-page .p-nankatsu-lp__hero::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 48px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 48' preserveAspectRatio='none'%3E%3Cpath fill='%23ffffff' d='M0,20 C180,44 360,4 540,22 C720,40 900,8 1080,24 C1260,40 1380,28 1440,22 L1440,48 L0,48 Z'/%3E%3C/svg%3E") no-repeat center bottom;
  background-size: 100% 100%;
  pointer-events: none;
  z-index: 1;
}
@media (max-width: 768px) {
  .p-nankatsu-lp-page .p-nankatsu-lp__hero::after {
    height: 28px;
  }
}
.p-nankatsu-lp-page .p-nankatsu-lp__hero-shrine-bg {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: clamp(320px, 45vw, 500px);
  height: auto;
  opacity: 0.12;
  pointer-events: none;
  z-index: 0;
}
.p-nankatsu-lp-page .p-nankatsu-lp__hero-inner {
  position: relative;
  z-index: 1;
}
@media (min-width: 1025px) {
  .p-nankatsu-lp-page .p-nankatsu-lp__hero-inner {
    display: contents;
  }
}
@media (max-width: 768px) {
  .p-nankatsu-lp-page .p-nankatsu-lp__hero-inner {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding-bottom: 56px;
  }
}
.p-nankatsu-lp-page .p-nankatsu-lp__hero-copy {
  grid-area: copy;
  padding-bottom: 8px;
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
}
@media (max-width: 768px) {
  .p-nankatsu-lp-page .p-nankatsu-lp__hero-copy {
    align-items: center;
    text-align: center;
  }
}
.p-nankatsu-lp-page .p-nankatsu-lp__hero-logo-block {
  display: inline-flex;
  flex-direction: row;
  align-items: stretch;
  justify-content: center;
  gap: clamp(16px, 3vw, 28px);
  width: fit-content;
  max-width: 100%;
}
@media (max-width: 768px) {
  .p-nankatsu-lp-page .p-nankatsu-lp__hero-logo-block {
    display: flex;
    margin: 0 auto;
    gap: 12px;
  }
}
.p-nankatsu-lp-page .p-nankatsu-lp__hero-logo-item {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(88px, 12vw, 150px);
  height: clamp(88px, 12vw, 150px);
}
@media (max-width: 768px) {
  .p-nankatsu-lp-page .p-nankatsu-lp__hero-logo-item {
    width: clamp(72px, 22vw, 100px);
    height: clamp(72px, 22vw, 100px);
  }
}
.p-nankatsu-lp-page .p-nankatsu-lp__hero-logo-item--shrine .p-nankatsu-lp__hero-logo--shrine {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.p-nankatsu-lp-page .p-nankatsu-lp__hero-logo-item--nankatsu .p-nankatsu-lp__hero-crest-wrap {
  width: 100%;
  height: 100%;
}
.p-nankatsu-lp-page .p-nankatsu-lp__hero-logo-divider {
  flex-shrink: 0;
  align-self: stretch;
  width: 2px;
  background: rgba(255, 255, 255, 0.9);
}
.p-nankatsu-lp-page .p-nankatsu-lp__hero-logo-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  color: #fff;
}
@media (max-width: 768px) {
  .p-nankatsu-lp-page .p-nankatsu-lp__hero-logo-row {
    gap: 12px;
  }
}
.p-nankatsu-lp-page .p-nankatsu-lp__hero-logo-row--shrine {
  font-size: clamp(2.4rem, 3.5vw, 3.8rem);
  font-weight: 700;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.05em;
}
.p-nankatsu-lp-page .p-nankatsu-lp__hero-logo-row--shrine .p-nankatsu-lp__hero-logo-icon {
  font-size: 1.1em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.p-nankatsu-lp-page .p-nankatsu-lp__hero-logo-row--nankatsu {
  flex-shrink: 0;
}
.p-nankatsu-lp-page .p-nankatsu-lp__hero-logo-row .p-nankatsu-lp__hero-logo {
  height: auto;
  max-width: 100%;
  object-fit: contain;
}
.p-nankatsu-lp-page .p-nankatsu-lp__hero-logo-row .p-nankatsu-lp__hero-logo--nankatsu {
  width: clamp(380px, 48vw, 560px);
}
@media (max-width: 768px) {
  .p-nankatsu-lp-page .p-nankatsu-lp__hero-logo-row .p-nankatsu-lp__hero-logo--nankatsu {
    width: 280px;
  }
}
.p-nankatsu-lp-page .p-nankatsu-lp__hero-crest-wrap {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: clamp(6px, 1vw, 10px);
  background: #fff;
  border: 2px solid #fff;
  border-radius: 4px;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.65);
}
.p-nankatsu-lp-page .p-nankatsu-lp__hero-crest-wrap .p-nankatsu-lp__hero-crest {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.p-nankatsu-lp-page .p-nankatsu-lp__hero-slogan {
  margin: 28px 0 0;
  font-size: clamp(2.2rem, 3vw, 3.2rem);
  font-weight: 500;
  letter-spacing: 0.08em;
  color: #fff;
  text-shadow: 0 2px 10px rgba(0, 50, 100, 0.3);
}
@media (max-width: 768px) {
  .p-nankatsu-lp-page .p-nankatsu-lp__hero-slogan {
    margin-top: 20px;
    text-align: center;
  }
}
.p-nankatsu-lp-page .p-nankatsu-lp__hero-support {
  grid-area: support;
  position: relative;
  z-index: 5;
  align-self: end;
  margin: 0;
  font-family: "Shippori Mincho", serif;
  font-size: clamp(1.6rem, 2.2vw, 2.2rem);
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.5;
  color: #fff;
  text-shadow: 0 2px 10px rgba(0, 50, 100, 0.3);
  text-align: left;
}
@media (max-width: 768px) {
  .p-nankatsu-lp-page .p-nankatsu-lp__hero-support {
    position: absolute;
    left: 20px;
    right: 20px;
    bottom: 36px;
    margin: 0;
    text-align: center;
    font-size: clamp(1.4rem, 4.2vw, 1.8rem);
  }
}
.p-nankatsu-lp-page .p-nankatsu-lp__hero-visual {
  grid-area: visual;
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  align-self: end;
  grid-row: 1/-1;
  margin-right: -40px;
  margin-bottom: -150px;
}
@media (max-width: 768px) {
  .p-nankatsu-lp-page .p-nankatsu-lp__hero-visual {
    grid-area: unset;
    grid-row: auto;
    justify-content: center;
    margin-right: 0;
    margin-bottom: 0;
    align-self: auto;
  }
}
.p-nankatsu-lp-page .p-nankatsu-lp__hero-visual img {
  display: block;
  width: 100%;
  max-height: 620px;
  height: auto;
  object-fit: contain;
  object-position: bottom right;
  transform: scale(1.18);
  transform-origin: bottom right;
}
@media (max-width: 768px) {
  .p-nankatsu-lp-page .p-nankatsu-lp__hero-visual img {
    width: 88%;
    max-height: 300px;
    height: auto;
    transform: none;
    object-position: bottom center;
  }
}
.p-nankatsu-lp-page .p-nankatsu-lp__hero-copyright {
  position: absolute;
  right: 32px;
  bottom: 0;
  line-height: 1;
  z-index: 3;
  color: #777;
  font-size: 1.1rem;
  font-weight: 500;
  margin: 0;
}
@media (max-width: 768px) {
  .p-nankatsu-lp-page .p-nankatsu-lp__hero-copyright {
    right: 18px;
    bottom: 8px;
    font-size: 0.9rem;
    z-index: 4;
  }
}
@media (min-width: 1025px) {
  .p-nankatsu-lp-page .p-front-grid {
    margin-right: 0;
  }
  .p-nankatsu-lp-page .p-front-grid .l-main-content {
    flex: 0 0 100%;
    max-width: 100%;
    width: 100%;
    padding-left: 0;
  }
}

.p-nankatsu-lp__kicker {
  text-align: center;
  font-size: clamp(2.4rem, 4.5vw, 4.2rem);
  font-weight: 900;
  color: var(--ns-blue-dark);
  letter-spacing: 0.15em;
  margin: 0 0 56px;
}
@media (max-width: 768px) {
  .p-nankatsu-lp__kicker {
    margin-bottom: 36px;
  }
}
.p-nankatsu-lp__cards {
  display: flex;
  flex-direction: column;
  gap: 36px;
  margin-bottom: 48px;
}
@media (max-width: 768px) {
  .p-nankatsu-lp__cards {
    gap: 28px;
    margin-bottom: 36px;
  }
}
.p-nankatsu-lp__cta-wrap {
  margin: 48px 0 20px;
  display: flex;
  justify-content: center;
}
@media (max-width: 768px) {
  .p-nankatsu-lp__cta-wrap {
    margin: 36px 0 16px;
  }
}
.p-nankatsu-lp__cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  min-height: 80px;
  width: 100%;
  max-width: 680px;
  padding: 20px 48px;
  background: linear-gradient(135deg, var(--ns-blue-dark) 0%, var(--ns-blue) 50%, #0076d6 100%);
  color: #fff !important;
  font-size: 2.2rem;
  font-weight: 800;
  text-decoration: none !important;
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(0, 91, 172, 0.35);
  overflow: hidden;
  transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
  border: 2px solid rgba(255, 255, 255, 0.1);
}
@media (max-width: 768px) {
  .p-nankatsu-lp__cta {
    font-size: 1.75rem;
    padding: 16px 32px;
    min-height: 64px;
    max-width: 100%;
    border-radius: 8px;
    gap: 12px;
  }
}
.p-nankatsu-lp__cta::before {
  content: "";
  position: absolute;
  top: 0;
  left: -150%;
  width: 50%;
  height: 100%;
  background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.3) 50%, rgba(255, 255, 255, 0) 100%);
  transform: skewX(-25deg);
  transition: 0.75s;
  z-index: 2;
}
.p-nankatsu-lp__cta:hover, .p-nankatsu-lp__cta:focus-visible {
  box-shadow: 0 15px 35px rgba(0, 91, 172, 0.45);
  background: linear-gradient(135deg, var(--ns-blue) 0%, #0076d6 100%);
  border-color: rgba(255, 255, 255, 0.25);
  color: #fff !important;
}
.p-nankatsu-lp__cta:hover::before, .p-nankatsu-lp__cta:focus-visible::before {
  left: 150%;
}
.p-nankatsu-lp__cta:hover .p-nankatsu-lp__cta-icon, .p-nankatsu-lp__cta:focus-visible .p-nankatsu-lp__cta-icon {
  transform: translateX(4px);
  background: #fff;
  color: var(--ns-blue);
  border-color: #fff;
}
.p-nankatsu-lp__cta:hover .p-nankatsu-lp__cta-ball, .p-nankatsu-lp__cta:focus-visible .p-nankatsu-lp__cta-ball {
  transform: rotate(60deg) scale(1.15);
  opacity: 0.25;
}
.p-nankatsu-lp__cta-label {
  position: relative;
  z-index: 3;
  letter-spacing: 0.05em;
}
.p-nankatsu-lp__cta-icon {
  position: relative;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.8);
  font-size: 1.2rem;
  transition: all 0.3s ease;
}
.p-nankatsu-lp__cta-ball {
  position: absolute;
  right: 16px;
  bottom: -24px;
  width: 140px;
  height: 140px;
  opacity: 0.12;
  pointer-events: none;
  transform: rotate(15deg);
  transition: all 0.5s ease;
  z-index: 1;
}
@media (max-width: 768px) {
  .p-nankatsu-lp__cta-ball {
    width: 100px;
    height: 100px;
    right: 8px;
    bottom: -15px;
  }
}
.p-nankatsu-lp__cta-ball img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.p-nankatsu-lp__foot {
  text-align: center;
  padding-top: 8px;
}
.p-nankatsu-lp__foot-copy {
  margin: 0 0 12px;
  font-size: 1.2rem;
  color: #555;
}
.p-nankatsu-lp__foot-nankatsu {
  margin: 0;
}
.p-nankatsu-lp__foot-nankatsu img {
  display: inline-block;
  max-width: min(320px, 100%);
  height: auto;
}
.p-nankatsu-lp {
  max-width: 1100px;
  margin: 0 auto;
  padding-bottom: 24px;
  font-family: "Noto Sans JP", sans-serif;
}
@media (max-width: 768px) {
  .p-nankatsu-lp {
    padding-bottom: 16px;
  }
}

/* ----- コラボカード ----- */
.p-nankatsu-lp-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 42%) minmax(0, 1fr);
  gap: 0 36px;
  align-items: center;
  padding: 44px 36px 36px;
  background: linear-gradient(135deg, #e4f0fa 0%, #f4f9fd 100%);
  border: 2px solid #a8d3f7;
  border-radius: 20px;
  box-shadow: 0 10px 30px rgba(0, 91, 172, 0.06);
}
@media (max-width: 768px) {
  .p-nankatsu-lp-card {
    grid-template-columns: 1fr;
    padding: 36px 20px 28px;
    gap: 20px;
  }
}
.p-nankatsu-lp-card__ribbon-wrap {
  display: contents; /* HTML構造の互換性を維持しつつラッパーを無効化 */
}
.p-nankatsu-lp-card__ribbon {
  display: inline-block;
  position: absolute;
  box-sizing: border-box;
  left: 0;
  top: 15px;
  padding: 0 20px 0 16px;
  height: 42px;
  line-height: 42px;
  font-size: 1.8rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  color: white;
  background: #4298fa; /* 明るめの青 */
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
  z-index: 2;
}
@media (max-width: 768px) {
  .p-nankatsu-lp-card__ribbon {
    height: 34px;
    line-height: 34px;
    font-size: 1.4rem;
    padding: 0 16px 0 12px;
    top: 12px;
  }
}
.p-nankatsu-lp-card__ribbon span {
  display: block;
  margin: 0;
  padding: 0;
  white-space: nowrap;
}
.p-nankatsu-lp-card__ribbon::before {
  position: absolute;
  content: "";
  top: 0;
  left: -10px;
  border: none;
  height: 52px; /* リボンの高さ42px + 折り返し突き出し10px */
  width: 10px;
  background: #4298fa;
  border-radius: 0;
}
@media (max-width: 768px) {
  .p-nankatsu-lp-card__ribbon::before {
    height: 42px; /* リボンの高さ34px + 突き出し8px */
    width: 8px;
    left: -8px;
    border-radius: 0;
  }
}
.p-nankatsu-lp-card__ribbon::after {
  position: absolute;
  content: "";
  bottom: -10px;
  left: -8px;
  border: none;
  height: 10px;
  width: 8px;
  background: #1e62b3; /* 暗めの影色 */
  border-radius: 0;
}
@media (max-width: 768px) {
  .p-nankatsu-lp-card__ribbon::after {
    bottom: -8px;
    left: -6px;
    height: 8px;
    width: 6px;
    border-radius: 0;
  }
}
.p-nankatsu-lp-card__watermark {
  position: absolute;
  right: -24px;
  bottom: -24px;
  width: 195px;
  height: 195px;
  background: url("../img/collaboration/nankatsu/nankatsu-soccer-ball.png") center/contain no-repeat;
  opacity: 1;
  pointer-events: none;
  z-index: 0;
}
@media (max-width: 768px) {
  .p-nankatsu-lp-card__watermark {
    width: 135px;
    height: 135px;
    bottom: -15px;
    right: -15px;
  }
}
.p-nankatsu-lp-card__media {
  position: relative;
  z-index: 1;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 6px 18px rgba(0, 45, 90, 0.08);
  border: 1px solid rgba(0, 91, 172, 0.08);
}
@media (max-width: 768px) {
  .p-nankatsu-lp-card__media {
    max-width: 280px;
    margin: 0 auto;
  }
}
.p-nankatsu-lp-card__media img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}
.p-nankatsu-lp-card__body {
  position: relative;
  z-index: 1;
  padding-top: 8px;
}
@media (max-width: 768px) {
  .p-nankatsu-lp-card__body {
    padding-top: 0;
    text-align: left;
  }
}
.p-nankatsu-lp-card__heading {
  margin: 0 0 16px;
  display: flex;
  flex-direction: column;
  line-height: 1.35;
  text-shadow: 0 0 6px #fff, 0 0 6px #fff, 0 0 6px #fff, 0 0 6px #fff, 0 0 6px #fff;
}
@media (max-width: 768px) {
  .p-nankatsu-lp-card__heading {
    align-items: center;
    text-align: center;
  }
}
.p-nankatsu-lp-card__heading-sub {
  font-size: clamp(1.8rem, 2.5vw, 2.2rem);
  font-weight: 700;
  color: var(--ns-blue-dark);
  letter-spacing: 0.05em;
  margin-bottom: 4px;
}
.p-nankatsu-lp-card__heading-main {
  font-size: clamp(3rem, 4.5vw, 4.2rem);
  font-weight: 900;
  color: var(--ns-blue-dark);
  letter-spacing: 0.08em;
}
.p-nankatsu-lp-card__text {
  margin: 0 0 16px;
  font-size: 1.65rem;
  line-height: 1.85;
  color: #222;
  font-weight: 500;
  text-shadow: 0 0 4px #fff, 0 0 4px #fff, 0 0 4px #fff, 0 0 4px #fff;
}
@media (max-width: 768px) {
  .p-nankatsu-lp-card__text {
    font-size: 1.55rem;
  }
}
.p-nankatsu-lp-card__text:last-of-type {
  margin-bottom: 0;
}
.p-nankatsu-lp-card__price {
  margin: 20px 0 0;
  font-size: 2rem;
  color: var(--ns-blue-dark);
  font-weight: 700;
  text-shadow: 0 0 4px #fff, 0 0 4px #fff, 0 0 4px #fff;
}
.p-nankatsu-lp-card__price strong {
  font-size: 3rem;
  font-weight: 800;
  color: var(--ns-blue);
  margin-left: 4px;
}
.p-nankatsu-lp-card__site-link {
  color: var(--ns-blue, #005bac);
  font-weight: 700;
  text-decoration: underline;
  word-break: break-all;
}
.p-nankatsu-lp-card__site-link:hover {
  text-decoration: none;
}
.p-nankatsu-lp-card__qr {
  margin-top: 16px;
}
.p-nankatsu-lp-card__qr img {
  display: block;
  width: 120px;
  height: auto;
  border: 4px solid #fff;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
}

/* ----- Section Title ----- */
.p-nankatsu-lp__section-title {
  text-align: center;
  font-size: clamp(2.8rem, 5vw, 4.8rem);
  font-weight: 900;
  color: var(--ns-blue-dark);
  letter-spacing: 0.15em;
  margin: 0 0 clamp(40px, 6vw, 60px);
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}
.p-nankatsu-lp__section-title::after {
  content: "";
  display: block;
  width: 60px;
  height: 4px;
  background-color: var(--ns-blue);
  border-radius: 2px;
}

/* ----- Pickup セクション ----- */
.p-nankatsu-lp-pickup-wrap {
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  background: linear-gradient(135deg, #e4f0fa 0%, #f4f9fd 100%);
  border-top: 2px solid #a8d3f7;
  border-bottom: 2px solid #a8d3f7;
  padding: clamp(60px, 8vw, 80px) 0;
  margin-top: clamp(60px, 8vw, 80px);
  margin-bottom: 0;
}

.p-nankatsu-lp-pickup {
  position: relative;
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  flex-direction: column;
  gap: 36px;
}
.p-nankatsu-lp-pickup::after {
  content: "";
  position: absolute;
  bottom: -24px;
  right: 0;
  width: 195px;
  height: 195px;
  background: url("../img/collaboration/nankatsu/nankatsu-soccer-ball.png") center/contain no-repeat;
  opacity: 1;
  pointer-events: none;
  z-index: 0;
}
@media (max-width: 768px) {
  .p-nankatsu-lp-pickup::after {
    width: 135px;
    height: 135px;
    bottom: -15px;
    right: 10px;
  }
}
.p-nankatsu-lp-pickup__media {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 6px 18px rgba(0, 45, 90, 0.08);
  border: 1px solid rgba(0, 91, 172, 0.08);
}
.p-nankatsu-lp-pickup__media img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}
.p-nankatsu-lp-pickup__body {
  position: relative;
  z-index: 1;
  text-align: center;
}
.p-nankatsu-lp-pickup__heading {
  margin: 0 0 16px;
  font-size: clamp(2.2rem, 3vw, 2.6rem);
  font-weight: 800;
  color: var(--ns-blue-dark);
  line-height: 1.4;
  letter-spacing: 0.02em;
}
.p-nankatsu-lp-pickup__text {
  max-width: 860px;
  margin: 0 auto;
  font-size: 1.5rem;
  line-height: 1.85;
  color: #444;
  text-align: left;
}
@media (max-width: 768px) {
  .p-nankatsu-lp-pickup__text {
    font-size: 1.4rem;
  }
}

body.page-kameari-katori-nankatsu-sc,
body.page-template-page-kameari-katori-nankatsu-sc,
body.page-template-page-kameari-katori-nankatsu-sc-php,
body:has(.p-nankatsu-lp-page) {
  background-color: #fff !important;
  background-image: none !important;
}
body.page-kameari-katori-nankatsu-sc .l-main-content,
body.page-template-page-kameari-katori-nankatsu-sc .l-main-content,
body.page-template-page-kameari-katori-nankatsu-sc-php .l-main-content,
body:has(.p-nankatsu-lp-page) .l-main-content {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* ==========================================================================
   Project: Kochikame SC Collaboration LP (in-page)
   ========================================================================== */
.p-kochikame-lp-page {
  --ns-blue: #416aac;
  --ns-red: #c80000;
  --ns-green: #009646;
  --ns-black: #21212b;
  --ns-card: #e8f5ec;
  position: relative;
}
.p-kochikame-lp-page .p-kochikame-lp__bg-decorations {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}
.p-kochikame-lp-page .p-kochikame-lp__bg-decor {
  position: absolute;
  width: clamp(280px, 32vw, 420px);
  height: auto;
  opacity: 0.12;
  transition: opacity 0.3s ease;
  z-index: 0;
}
.p-kochikame-lp-page .p-kochikame-lp__bg-decor--1 {
  top: 480px;
  left: calc(50% - 680px);
}
@media (max-width: 768px) {
  .p-kochikame-lp-page .p-kochikame-lp__bg-decor--1 {
    width: 180px;
    top: 420px;
    left: -60px;
    opacity: 0.08;
  }
}
.p-kochikame-lp-page .p-kochikame-lp__bg-decor--2 {
  top: 980px;
  right: calc(50% - 680px);
}
@media (max-width: 768px) {
  .p-kochikame-lp-page .p-kochikame-lp__bg-decor--2 {
    width: 180px;
    top: 920px;
    right: -60px;
    opacity: 0.08;
  }
}
.p-kochikame-lp-page {
  /* KV：.l-container の外＝#smooth-content 直下なので幅100%で全幅 */
}
.p-kochikame-lp-page .p-kochikame-lp__hero {
  position: relative;
  width: 100%;
  max-width: none;
  min-height: 80vh;
  margin: 0 0 40px;
  box-sizing: border-box;
  background: #009646;
  overflow: hidden;
  display: flex;
  align-items: center;
  padding: 72px 40px 96px;
  color: #fff;
}
@media (max-width: 768px) {
  .p-kochikame-lp-page .p-kochikame-lp__hero {
    padding: 48px 20px 88px;
    margin-bottom: 28px;
    min-height: auto;
    align-items: flex-start;
  }
}
.p-kochikame-lp-page .p-kochikame-lp__hero::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 48px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 48' preserveAspectRatio='none'%3E%3Cpath fill='%23ffffff' d='M0,20 C180,44 360,4 540,22 C720,40 900,8 1080,24 C1260,40 1380,28 1440,22 L1440,48 L0,48 Z'/%3E%3C/svg%3E") no-repeat center bottom;
  background-size: 100% 100%;
  pointer-events: none;
  z-index: 1;
}
@media (max-width: 768px) {
  .p-kochikame-lp-page .p-kochikame-lp__hero::after {
    height: 28px;
  }
}
.p-kochikame-lp-page .p-kochikame-lp__hero-shrine-bg {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: clamp(320px, 45vw, 500px);
  height: auto;
  opacity: 0.12;
  pointer-events: none;
  z-index: 0;
}
.p-kochikame-lp-page .p-kochikame-lp__hero-inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: min(1200px, 100%);
  margin-left: auto;
  margin-right: auto;
  display: grid;
  grid-template-columns: 1fr minmax(200px, 52%);
  gap: 24px 32px;
  align-items: center;
}
@media (max-width: 768px) {
  .p-kochikame-lp-page .p-kochikame-lp__hero-inner {
    grid-template-columns: 1fr;
    align-items: center;
    gap: 16px;
    height: auto;
  }
}
.p-kochikame-lp-page .p-kochikame-lp__hero-copy {
  padding-bottom: 8px;
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
@media (max-width: 768px) {
  .p-kochikame-lp-page .p-kochikame-lp__hero-copy {
    order: -1;
  }
}
.p-kochikame-lp-page .p-kochikame-lp__hero-logo-block {
  display: inline-flex;
  flex-direction: row;
  align-items: stretch;
  justify-content: center;
  gap: clamp(16px, 3vw, 28px);
  width: fit-content;
  max-width: 100%;
}
@media (max-width: 768px) {
  .p-kochikame-lp-page .p-kochikame-lp__hero-logo-block {
    display: flex;
    margin: 0 auto;
    gap: 12px;
  }
}
.p-kochikame-lp-page .p-kochikame-lp__hero-logo-item {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(88px, 12vw, 150px);
  height: clamp(88px, 12vw, 150px);
}
@media (max-width: 768px) {
  .p-kochikame-lp-page .p-kochikame-lp__hero-logo-item {
    width: clamp(72px, 22vw, 100px);
    height: clamp(72px, 22vw, 100px);
  }
}
.p-kochikame-lp-page .p-kochikame-lp__hero-logo-item--shrine .p-kochikame-lp__hero-logo--shrine {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.p-kochikame-lp-page .p-kochikame-lp__hero-logo-item--kochikame .p-kochikame-lp__hero-crest-wrap {
  width: 100%;
  height: 100%;
}
.p-kochikame-lp-page .p-kochikame-lp__hero-logo-divider {
  flex-shrink: 0;
  align-self: stretch;
  width: 2px;
  background: rgba(255, 255, 255, 0.9);
}
.p-kochikame-lp-page .p-kochikame-lp__hero-crest-wrap {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: clamp(6px, 1vw, 10px);
  background: #fff;
  border: 2px solid #fff;
  border-radius: 4px;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.65);
}
.p-kochikame-lp-page .p-kochikame-lp__hero-crest-wrap .p-kochikame-lp__hero-crest {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.p-kochikame-lp-page .p-kochikame-lp__hero-slogan {
  margin: 28px 0 0;
  font-size: clamp(2.2rem, 3vw, 3.2rem);
  font-weight: 500;
  letter-spacing: 0.08em;
  color: #fff;
  text-shadow: 0 2px 10px rgba(0, 50, 100, 0.3);
  line-height: 1.5;
}
@media (max-width: 768px) {
  .p-kochikame-lp-page .p-kochikame-lp__hero-slogan {
    margin-top: 20px;
    text-align: center;
    font-size: clamp(1.6rem, 5.5vw, 2.2rem);
  }
}
.p-kochikame-lp-page .p-kochikame-lp__hero-slogan-small {
  display: inline-block;
  font-size: clamp(1.4rem, 2vw, 2rem);
  margin-bottom: 4px;
}
@media (max-width: 768px) {
  .p-kochikame-lp-page .p-kochikame-lp__hero-slogan-small {
    font-size: clamp(1.2rem, 3.4vw, 1.4rem);
  }
}
.p-kochikame-lp-page .p-kochikame-lp__hero-visual {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: flex-start;
  align-items: flex-end;
  align-self: stretch;
  height: 0;
  min-height: 100%;
  margin-left: -60px;
  margin-bottom: -40px;
}
@media (max-width: 768px) {
  .p-kochikame-lp-page .p-kochikame-lp__hero-visual {
    justify-content: center;
    margin-left: 0;
    margin-right: 0;
    margin-bottom: 0;
    align-self: auto;
    height: auto;
    min-height: 0;
  }
}
.p-kochikame-lp-page .p-kochikame-lp__hero-visual img {
  display: block;
  width: 95%;
  max-height: 800px;
  height: auto;
  object-fit: contain;
  object-position: bottom center;
  transform: none;
  margin-bottom: -350px;
}
@media (max-width: 768px) {
  .p-kochikame-lp-page .p-kochikame-lp__hero-visual img {
    width: 100%;
    max-height: 400px;
    height: auto;
    transform: none;
    margin-bottom: -20px;
    object-position: bottom center;
  }
}
.p-kochikame-lp-page .p-kochikame-lp__hero-copyright {
  position: absolute;
  right: 32px;
  bottom: 0;
  line-height: 1;
  z-index: 3;
  color: #777;
  font-size: 1.1rem;
  font-weight: 500;
  margin: 0;
}
@media (max-width: 768px) {
  .p-kochikame-lp-page .p-kochikame-lp__hero-copyright {
    right: 18px;
    bottom: 0;
    font-size: 0.9rem;
  }
}
@media (min-width: 1025px) {
  .p-kochikame-lp-page .p-front-grid {
    margin-right: 0;
  }
  .p-kochikame-lp-page .p-front-grid .l-main-content {
    flex: 0 0 100%;
    max-width: 100%;
    width: 100%;
    padding-left: 0;
  }
}

.p-kochikame-lp__kicker {
  text-align: center;
  font-size: clamp(2.4rem, 4.5vw, 4.2rem);
  font-weight: 900;
  color: var(--ns-black);
  letter-spacing: 0.15em;
  margin: 0 0 56px;
}
@media (max-width: 768px) {
  .p-kochikame-lp__kicker {
    margin-bottom: 36px;
  }
}
.p-kochikame-lp__goshuin-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 36px;
  margin-bottom: 48px;
}
@media (max-width: 768px) {
  .p-kochikame-lp__goshuin-list {
    grid-template-columns: 1fr;
    gap: 28px;
    margin-bottom: 36px;
  }
}
.p-kochikame-lp__goshuin-list .p-kochikame-lp-card {
  grid-template-columns: 1fr;
  padding: 44px 24px 40px;
  gap: 20px;
}
.p-kochikame-lp__goshuin-list .p-kochikame-lp-card__media {
  max-width: 340px;
  margin: 0 auto;
}
@media (max-width: 768px) {
  .p-kochikame-lp__goshuin-list .p-kochikame-lp-card {
    padding: 36px 20px 32px;
  }
}
.p-kochikame-lp__ema-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-bottom: 48px;
}
@media (max-width: 768px) {
  .p-kochikame-lp__ema-list {
    grid-template-columns: 1fr;
    gap: 24px;
    margin-bottom: 36px;
  }
}
.p-kochikame-lp__ema-list .p-kochikame-lp-card {
  grid-template-columns: 1fr;
  padding: 40px 20px 24px;
  gap: 16px;
}
.p-kochikame-lp__ema-list .p-kochikame-lp-card--placeholder .p-kochikame-lp-card__body {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 200px;
  text-align: center;
}
.p-kochikame-lp__cta-wrap {
  margin: 48px 0;
  display: flex;
  justify-content: center;
}
.p-kochikame-lp__cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  min-height: 80px;
  width: 100%;
  max-width: 680px;
  padding: 20px 48px;
  background: linear-gradient(135deg, var(--ns-black) 0%, var(--ns-green) 50%, #ffd54f 100%);
  color: #fff !important;
  font-size: 2.2rem;
  font-weight: 800;
  text-decoration: none !important;
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(0, 91, 172, 0.35);
  overflow: hidden;
  transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
  border: 2px solid rgba(255, 255, 255, 0.1);
}
@media (max-width: 768px) {
  .p-kochikame-lp__cta {
    font-size: 1.75rem;
    padding: 16px 32px;
    min-height: 64px;
    max-width: 100%;
    border-radius: 8px;
    gap: 12px;
  }
}
.p-kochikame-lp__cta::before {
  content: "";
  position: absolute;
  top: 0;
  left: -150%;
  width: 50%;
  height: 100%;
  background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.3) 50%, rgba(255, 255, 255, 0) 100%);
  transform: skewX(-25deg);
  transition: 0.75s;
  z-index: 2;
}
.p-kochikame-lp__cta:hover, .p-kochikame-lp__cta:focus-visible {
  box-shadow: 0 15px 35px rgba(0, 91, 172, 0.45);
  background: linear-gradient(135deg, var(--ns-green) 0%, #ffd54f 100%);
  border-color: rgba(255, 255, 255, 0.25);
  color: #fff !important;
}
.p-kochikame-lp__cta:hover::before, .p-kochikame-lp__cta:focus-visible::before {
  left: 150%;
}
.p-kochikame-lp__cta:hover .p-kochikame-lp__cta-icon, .p-kochikame-lp__cta:focus-visible .p-kochikame-lp__cta-icon {
  transform: translateX(4px);
  background: #fff;
  color: var(--ns-green);
  border-color: #fff;
}
.p-kochikame-lp__cta:hover .p-kochikame-lp__cta-ball, .p-kochikame-lp__cta:focus-visible .p-kochikame-lp__cta-ball {
  transform: rotate(60deg) scale(1.15);
  opacity: 0.25;
}
.p-kochikame-lp__cta-label {
  position: relative;
  z-index: 3;
  letter-spacing: 0.05em;
}
.p-kochikame-lp__cta-icon {
  position: relative;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.8);
  font-size: 1.2rem;
  transition: all 0.3s ease;
}
.p-kochikame-lp__cta-ball {
  position: absolute;
  right: 16px;
  bottom: -24px;
  width: 140px;
  height: 140px;
  opacity: 0.12;
  pointer-events: none;
  transform: rotate(15deg);
  transition: all 0.5s ease;
  z-index: 1;
}
@media (max-width: 768px) {
  .p-kochikame-lp__cta-ball {
    width: 100px;
    height: 100px;
    right: 8px;
    bottom: -15px;
  }
}
.p-kochikame-lp__cta-ball img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.p-kochikame-lp__foot {
  text-align: center;
  padding-top: 8px;
}
.p-kochikame-lp__foot-copy {
  margin: 0 0 12px;
  font-size: 1.2rem;
  color: #555;
}
.p-kochikame-lp__foot-kochikame {
  margin: 0;
}
.p-kochikame-lp__foot-kochikame img {
  display: inline-block;
  max-width: min(320px, 100%);
  height: auto;
}
.p-kochikame-lp {
  max-width: 1100px;
  margin: 0 auto;
  padding-bottom: clamp(48px, 8vw, 80px);
  font-family: "Noto Sans JP", sans-serif;
}

/* ----- コラボカード ----- */
.p-kochikame-lp-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 42%) minmax(0, 1fr);
  gap: 0 36px;
  align-items: center;
  padding: 44px 36px 36px;
  background: #e8f5ec;
  border: 4px solid #21212b;
  border-radius: 20px;
}
@media (max-width: 768px) {
  .p-kochikame-lp-card {
    grid-template-columns: 1fr;
    padding: 36px 20px 28px;
    gap: 20px;
  }
}
.p-kochikame-lp-card__ribbon-wrap {
  display: contents; /* HTML構造の互換性を維持しつつラッパーを無効化 */
}
.p-kochikame-lp-card__ribbon {
  display: inline-block;
  position: absolute;
  box-sizing: border-box;
  left: 0;
  top: 15px;
  padding: 0 20px 0 16px;
  height: 42px;
  line-height: 42px;
  font-size: 1.8rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  color: white;
  background: #4caf50; /* 明るめの緑 */
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
  z-index: 2;
}
@media (max-width: 768px) {
  .p-kochikame-lp-card__ribbon {
    height: 34px;
    line-height: 34px;
    font-size: 1.4rem;
    padding: 0 16px 0 12px;
    top: 12px;
  }
}
.p-kochikame-lp-card__ribbon span {
  display: block;
  margin: 0;
  padding: 0;
  white-space: nowrap;
}
.p-kochikame-lp-card__ribbon::before {
  position: absolute;
  content: "";
  top: 0;
  left: -10px;
  border: none;
  height: 52px; /* リボンの高さ42px + 折り返し突き出し10px */
  width: 10px;
  background: #4caf50;
  border-radius: 0;
}
@media (max-width: 768px) {
  .p-kochikame-lp-card__ribbon::before {
    height: 42px; /* リボンの高さ34px + 突き出し8px */
    width: 8px;
    left: -8px;
    border-radius: 0;
  }
}
.p-kochikame-lp-card__ribbon::after {
  position: absolute;
  content: "";
  bottom: -10px;
  left: -8px;
  border: none;
  height: 10px;
  width: 8px;
  background: #2e7d32; /* 暗めの影色 */
  border-radius: 0;
}
@media (max-width: 768px) {
  .p-kochikame-lp-card__ribbon::after {
    bottom: -8px;
    left: -6px;
    height: 8px;
    width: 6px;
    border-radius: 0;
  }
}
.p-kochikame-lp-card__watermark {
  position: absolute;
  right: -24px;
  bottom: -24px;
  width: 195px;
  height: 195px;
  background: url("../img/collaboration/kochikame/kochikame-logo.png") center/contain no-repeat;
  opacity: 1;
  pointer-events: none;
  z-index: 0;
}
@media (max-width: 768px) {
  .p-kochikame-lp-card__watermark {
    width: 135px;
    height: 135px;
    bottom: -15px;
    right: -15px;
  }
}
.p-kochikame-lp-card__media {
  position: relative;
  z-index: 1;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  border: 4px solid #21212b;
}
@media (max-width: 768px) {
  .p-kochikame-lp-card__media {
    max-width: 280px;
    margin: 0 auto;
  }
}
.p-kochikame-lp-card__media img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}
.p-kochikame-lp-card__body {
  position: relative;
  z-index: 1;
  padding-top: 8px;
}
@media (max-width: 768px) {
  .p-kochikame-lp-card__body {
    padding-top: 0;
    text-align: left;
  }
}
.p-kochikame-lp-card__heading {
  margin: 0 0 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  line-height: 1.35;
  text-shadow: 0 0 6px #fff, 0 0 6px #fff, 0 0 6px #fff, 0 0 6px #fff, 0 0 6px #fff;
}
.p-kochikame-lp-card__heading-sub {
  font-size: clamp(1.5rem, 2vw, 1.8rem);
  font-weight: 700;
  color: var(--ns-black);
  letter-spacing: 0.05em;
  margin-bottom: 4px;
}
.p-kochikame-lp-card__heading-main {
  font-size: clamp(2.4rem, 3.4vw, 3.2rem);
  font-weight: 900;
  color: var(--ns-black);
  letter-spacing: 0.08em;
}
.p-kochikame-lp-card__text {
  margin: 0 0 16px;
  font-size: 1.5rem;
  line-height: 1.85;
  color: #222;
  font-weight: 500;
  text-shadow: 0 0 4px #fff, 0 0 4px #fff, 0 0 4px #fff, 0 0 4px #fff;
  overflow-wrap: anywhere;
}
.p-kochikame-lp-card__text:last-of-type {
  margin-bottom: 0;
}
.p-kochikame-lp-card__note {
  display: block;
  margin-top: 10px;
  font-size: 1.3rem;
  line-height: 1.7;
}
.p-kochikame-lp-card__price {
  margin: 20px 0 0;
  font-size: 2rem;
  color: var(--ns-black);
  font-weight: 700;
  text-shadow: 0 0 4px #fff, 0 0 4px #fff, 0 0 4px #fff;
}
.p-kochikame-lp-card__price strong {
  font-size: 3rem;
  font-weight: 800;
  color: var(--ns-green);
  margin-left: 4px;
}
.p-kochikame-lp-card__site-link {
  color: var(--ns-green, #009646);
  font-weight: 700;
  text-decoration: underline;
  word-break: break-all;
}
.p-kochikame-lp-card__site-link:hover {
  text-decoration: none;
}
.p-kochikame-lp-card__qr {
  margin-top: 16px;
}
.p-kochikame-lp-card__qr img {
  display: block;
  width: 120px;
  height: auto;
  border: 4px solid #fff;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
}

/* ----- Section Title ----- */
.p-kochikame-lp__section-title {
  text-align: center;
  font-size: clamp(2.8rem, 5vw, 4.8rem);
  font-weight: 900;
  color: var(--ns-black);
  letter-spacing: 0.15em;
  margin: 0 0 clamp(40px, 6vw, 60px);
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}
.p-kochikame-lp__section-title::after {
  content: "";
  display: block;
  width: 60px;
  height: 4px;
  background-color: var(--ns-green);
  border-radius: 2px;
}

/* ----- Pickup セクション ----- */
.p-kochikame-lp-pickup-wrap {
  width: auto;
  max-width: 100vw;
  margin-inline: calc(50% - 50vw);
  padding-inline: calc(50vw - 50%);
  background: #e8f5ec;
  border-top: 4px solid #21212b;
  border-bottom: 4px solid #21212b;
  padding: clamp(60px, 8vw, 80px) 0;
  margin-top: clamp(60px, 8vw, 80px);
  margin-bottom: 0;
}

.p-kochikame-lp-pickup-grid {
  position: relative;
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 20px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
}
@media (max-width: 768px) {
  .p-kochikame-lp-pickup-grid {
    grid-template-columns: 1fr;
    gap: 60px;
  }
}

.p-kochikame-lp-pickup {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.p-kochikame-lp-pickup__media {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  border: 4px solid #21212b;
}
.p-kochikame-lp-pickup__media img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}
.p-kochikame-lp-pickup__body {
  position: relative;
  z-index: 1;
  text-align: center;
}
.p-kochikame-lp-pickup__heading {
  margin: 0 0 16px;
  font-size: clamp(2.2rem, 3vw, 2.6rem);
  font-weight: 800;
  color: var(--ns-black);
  line-height: 1.4;
  letter-spacing: 0.02em;
}
.p-kochikame-lp-pickup__text {
  max-width: 860px;
  margin: 0 auto;
  font-size: 1.5rem;
  line-height: 1.85;
  color: #444;
  text-align: left;
}
@media (max-width: 768px) {
  .p-kochikame-lp-pickup__text {
    font-size: 1.4rem;
  }
}

body.page-kameari-katori-kochikame-sc,
body.page-template-page-kameari-katori-kochikame-sc,
body.page-template-page-kameari-katori-kochikame-sc-php,
body:has(.p-kochikame-lp-page) {
  background-color: #fff !important;
  background-image: none !important;
}
body.page-kameari-katori-kochikame-sc .c-page-header,
body.page-kameari-katori-kochikame-sc .p-page-header,
body.page-template-page-kameari-katori-kochikame-sc .c-page-header,
body.page-template-page-kameari-katori-kochikame-sc .p-page-header,
body.page-template-page-kameari-katori-kochikame-sc-php .c-page-header,
body.page-template-page-kameari-katori-kochikame-sc-php .p-page-header,
body:has(.p-kochikame-lp-page) .c-page-header,
body:has(.p-kochikame-lp-page) .p-page-header {
  display: none !important;
}
body.page-kameari-katori-kochikame-sc .l-breadcrumb,
body.page-template-page-kameari-katori-kochikame-sc .l-breadcrumb,
body.page-template-page-kameari-katori-kochikame-sc-php .l-breadcrumb,
body:has(.p-kochikame-lp-page) .l-breadcrumb {
  display: none !important;
}
body.page-kameari-katori-kochikame-sc .l-main-content,
body.page-template-page-kameari-katori-kochikame-sc .l-main-content,
body.page-template-page-kameari-katori-kochikame-sc-php .l-main-content,
body:has(.p-kochikame-lp-page) .l-main-content {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

@media (max-width: 768px) {
  #kochikame-card-ema-title {
    text-align: center;
  }
}
/* ==========================================================================
   Project: Coming Soon Page
   ========================================================================== */
.p-coming-soon {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: clamp(320px, 55vh, 560px);
  padding: clamp(60px, 10vw, 120px) 24px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.p-coming-soon::before {
  content: "";
  position: absolute;
  top: clamp(-20px, -2vw, -10px);
  left: clamp(-30px, -3vw, -10px);
  width: clamp(140px, 22vw, 240px);
  aspect-ratio: 1.5/1;
  background-image: url("../img/cloude/cloud-4.svg");
  background-repeat: no-repeat;
  background-size: contain;
  opacity: 0.35;
  pointer-events: none;
  z-index: 0;
}
.p-coming-soon::after {
  content: "";
  position: absolute;
  bottom: clamp(-20px, -2vw, -10px);
  right: clamp(-30px, -3vw, -10px);
  width: clamp(120px, 18vw, 200px);
  aspect-ratio: 1.5/1;
  background-image: url("../img/cloude/cloud-1.svg");
  background-repeat: no-repeat;
  background-size: contain;
  opacity: 0.3;
  pointer-events: none;
  z-index: 0;
}
.p-coming-soon__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(32px, 5vw, 48px);
  max-width: 640px;
  width: 100%;
  position: relative;
  z-index: 1;
}
.p-coming-soon__icon img {
  display: block;
  width: clamp(140px, 22vw, 200px);
  height: auto;
}
.p-coming-soon__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}
.p-coming-soon__label {
  display: inline-block;
  margin: 0;
  font-family: "Shippori Mincho", serif;
  font-size: 1.3rem;
  font-weight: 400;
  letter-spacing: 0.4em;
  color: #bfa145;
}
.p-coming-soon__title {
  margin: 0;
  font-family: "Shippori Mincho", serif;
  font-size: clamp(2.4rem, 5vw, 3.6rem);
  font-weight: 700;
  color: #1e3a61;
  letter-spacing: 0.1em;
  line-height: 1.5;
}
.p-coming-soon__lead {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(1.4rem, 2.5vw, 1.6rem);
  line-height: 2;
  color: #666;
  letter-spacing: 0.05em;
}
.p-coming-soon__divider {
  width: 40px;
  height: 1px;
  background-color: rgba(191, 161, 69, 0.4);
  margin: 8px 0;
}
.p-coming-soon__back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  padding: 12px 32px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.4rem;
  letter-spacing: 0.06em;
  color: #1e3a61;
  border: 1px solid rgba(30, 58, 97, 0.3);
  text-decoration: none;
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}
.p-coming-soon__back .fa-house {
  font-size: 1.2rem;
}
.p-coming-soon__back:hover, .p-coming-soon__back:focus-visible {
  background-color: #1e3a61;
  color: #fff;
  border-color: #1e3a61;
  text-decoration: none;
  outline: none;
}
.p-coming-soon__back:focus-visible {
  outline: 2px solid #1e3a61;
  outline-offset: 3px;
}