:root{
    --main-color: #8c5f5f;
    --sub-color: #bc0000;
    --vw-min: 1200px;
}
@media (max-width: 768px){
    :root {
        --vw-min:90%;
    }
}


body {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 20px;
  line-height: 1.4;
  color: var(--main-color);
  letter-spacing: 0.05rem;
}
.en {
  font-family: "Zen Old Mincho", serif;
}

.cont-bg-wrap {
    width: 100%;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: -3;
}
.cont-bg {
    width: 100%;
    height: min(100vh, 100%);
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: url(../img/common/bg.webp) no-repeat center / cover;
}

.sec__inner {
    max-width: var(--vw-min);
    width: 90%;
    margin: 0 auto;
}

.site-title {
    text-align: center;
    padding-bottom: 0.5rem;
    max-width: 240px;
    margin: 0 auto;
}
.site-title.sp-only {
    display: none;
}
/* header */
.header-wrap {
  position: relative;
  width: 100%;
  z-index: 1000;
}

.header-inner {
  max-width: var(--vw-min);
  margin: 0 auto;
  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: space-between;
  padding: 1.25rem 0;
}

.menu {
  display: flex;
  gap: 0 2.5rem;
  align-items: center;
  justify-content: space-between;
}

.menu li {
  list-style: none;
  position: relative;
}

.menu li:not(:last-child)::after {
  content: "";
  display: block;
  width: 14px;
  height: 14px;
  background: url(../img/common/menu_icon.webp) no-repeat center / contain;
  position: absolute;
  top: 0.5rem;
  right: -1.75rem;
}

.menu a {
  display: block;
  text-decoration: none;
  color: var(--sub-color);
  font-size: 1.4rem;
  font-weight: 900;
  text-align: center;
  line-height: 1.2;
  transition: all 0.3s ease;
}

.menu .jp {
  font-size: 0.9rem;
  color: var(--main-color);
  display: block;
  margin-top: 0.2rem;
  font-weight: 400;
  line-height: 1.2;
}

/* Mobile 2-line hamburger button */
.hamburger{
  display: none;
  position: fixed;
  top: 0.8rem;
  right: 1rem;
  width: 4rem;
  height: 4rem;
  background: transparent;
  border: none;
  padding: 0;
  z-index: 1100;
  background:url(../img/common/icon_open_sp.webp) no-repeat center / contain;
  cursor: pointer;
}
.hamburger::before,
.hamburger::after{
  content: "";
  position: absolute;
  left: 25%;
  width: 50%;
  height: 2px;
  background: #FFF;
  border-radius: 2px;
  transition: transform 220ms ease, opacity 220ms ease;
}
.hamburger::before{ top: calc(50% - 4px); }
.hamburger::after{ bottom: calc(50% - 4px); }
.hamburger[aria-expanded="true"]::before{ transform: translateY(25%) rotate(45deg); top:50%; }
.hamburger[aria-expanded="true"]::after{ transform: translateY(-25%) rotate(-45deg); bottom:45%; }

@media (max-width: 768px){

  .hamburger{ display: block; }
  /* hide header-inner on mobile and reveal when .open is toggled */
  .header-inner{ display: none; }
  .header-inner.open{ display: block !important; position: fixed; top: 0; right: 0; background: #fff; width: 100vw; height: 100vh; box-shadow: none; z-index: 1090; padding: 0 1.5rem 1.5rem !important; box-sizing: border-box; max-width: 100vw; }
  .header-inner.open .menu{ flex-direction: column; gap: 0; padding: 0; margin: 0; }
  .header-inner.open .menu li{ width: 100%; }
  .header-inner.open .menu a{ display: block; padding: 1rem 1.2rem; font-size:1.2rem; }
  .header-inner.open .menu .jp { font-size:0.9rem;}

    .header-inner.open .site-title,
    .site-title.sp-only {
        display:block;
    }
    .site-title { width:45%; height:auto; padding-top:0.5rem;  }
    .header-inner.open nav {
        padding: 0.5rem;
        border: 2px solid var(--sub-color);
        height:calc(100% - 16vmin);
        display:flex;
        justify-content:center;
        align-items:center;
        position:relative;
    }
    .header-inner.open .menu li:not(:last-child)::after { display:none; }

    .menu__frame {
        width: 100%;
        height: 100%;
        display: block;
        position: absolute;
        inset: 0;
        z-index: 1;
        margin: auto;
        pointer-events: none;
    }
    .menu__frame::before, .menu__frame::after {
        content: "";
        width: calc(50 / var(--mv-vw-min) * 100vw);
        aspect-ratio: 1 / 1;
        display: block;
        position: absolute;
        background: url(../img/common/item2_red.webp) no-repeat center / contain;
    }

    .menu__frame.--top::before {
        top: 1rem;
        left: 1rem;
    }
    .menu__frame.--top::after {
        top: 1rem;
        right: 1rem;
        transform: scale(-1, 1);
    }
    .menu__frame.--bottom::before {
        bottom: 1rem;
        left: 1rem;
        transform: scale(1, -1);
    }
    .menu__frame.--bottom::after {
        bottom: 1rem;
        right: 1rem;
        transform: scale(-1, -1);
    }

}

/* fixed header when scrolled */
.header-fixed {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  box-shadow: 0 2px 6px rgba(0,0,0,.08);
  background-color: #fff;
}
.header-fixed::before,
.header-fixed::after {
    content: "";
    display: block;
    width: 2%;
    aspect-ratio: 1 / 1;
    position: absolute;
    background: url(../img/common/item2.webp) no-repeat center / contain;
}
.header-fixed::before {
    top: 10px;
    left: 10px;
}
.header-fixed::after {
    bottom: 10px;
    right: 10px;
    transform: scale(-1, -1);
}

.header-fixed .header-inner {
    padding: 0.5rem 0;
}
.header-fixed .site-title {
    display: none;
}
@media (max-width: 768px){
    .header-fixed::before,
    .header-fixed::after {
        display: none;
    }
}

/* apply main/sub colors */
.menu a:hover {
  opacity: 0.7;
}

@media (max-width:600px) {
  body {
    font-size: 16px;
  }
}


@media (max-width:1200px){
  .menu{flex-wrap:nowrap;gap:0 1.5rem}
  .menu a{white-space:nowrap;font-size:clamp(0.8rem,0.95rem + 0.6vw,1rem)}
  .menu .jp{white-space:nowrap;font-size:clamp(0.6rem,0.75rem + 0.6vw,0.7rem)}
  .menu li:not(:last-child)::after{right:-1rem;width:10px;height:10px;background-size:contain;}
}

footer {
  text-align: center;
  padding: 20px;
  background-color: #fff;
  color: var(--main-color);
  position: relative;
  font-size: 0.8rem;
}
footer::before {
    content: "";
    display: block;
    position: absolute;
    top: -0.5rem;
    left: 0;
    width: 100%;
    height: 1rem;
    background: url(../img/common/item3.webp) no-repeat center / contain;
}
@media (max-width: 768px){
    footer::before { height: 0.5rem; top: -0.25rem;}
}
.sec-ttlWrap {
    position: relative;
    margin-bottom: 2rem;
}
.sec-ttlWrap .en {
    font-size: 4rem;
    font-weight: 900;
    opacity: 0.23;
    display: block;
    line-height: 1;
}
.sec-ttlWrap .jp {
    color: var(--sub-color);
    font-size: 1rem;
    margin-left: 1.5rem;
    margin-top: -0.75rem;
    display: block;
    line-height: 1;
}
.sec-ttlWrap.center { text-align: center;}

@media (max-width: 768px){
    .sec-ttlWrap .en {
        font-size: 3rem;
    }
    .sec-ttlWrap .jp {
        font-size: 0.9rem;
        margin-left: 1rem;
        margin-top: -0.5rem;
    }
}

.common-btn {
    padding: 2rem 0;
}
.common-btn .btn-Wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2rem;
}
.common-btn a {
    display: block;
    padding: 0.78em 2em;
    min-width: 280px;
    position: relative;
    border: 1px solid var(--sub-color);
    color: var(--sub-color);
    text-decoration: none;
    line-height: 1;
    box-sizing: border-box;
    transition: all 0.3s;
}
.common-btn a:hover { opacity: 0.6;}

.common-btn a::before {
    content: "";
    display: block;
    width: 2em;
    height: 0.9em;
    background: url(../img/common/arrow_red.png) no-repeat center / contain;
    position: absolute;
    top: calc(50% - 0.5em);
    right: 1rem;
}
.common-btn a::after {
    content: "";
    display: block;
    width: 104%;
    aspect-ratio: 1 / 0.21;
    /* height: 115%; */
    position: absolute;
    top: -0.25em;
    left: -0.25em;
    background: url(../img/common/btn_red_frame.webp) no-repeat center / contain;
    pointer-events: none;
}

.common-btn.big-btn .btn-Wrap {
    flex-direction: column;
}
.common-btn.big-btn a {
    font-size: 2rem;
    font-weight: bold;
    min-width: 452px;
    border-width: 2px;
}

.common-btn.center a {
    text-align: center;
}
.common-btn a.brown {
    border-color: var(--main-color);
    color: var(--main-color);
}
.common-btn a.brown::after {
    background: url(../img/common/btn_brown_frame.webp) no-repeat center / contain;
}
.common-btn a.brown::before {
    background: url(../img/common/arrow_brown.png) no-repeat center / contain;
}

.common-btn.caution {
    flex-direction: column;
}
.common-btn.caution p {
    text-align: center;
    font-size: 0.8rem;
    padding-top: 1rem;
}

@media (max-width: 768px){
    .common-btn a {
        min-width: 224px;
    }
}
@media (max-width: 460px){
    .common-btn.big-btn a {
        padding: 0.5em 2em;
    }
    .common-btn.big-btn a {
        min-width: 98%;
        padding: 0.5em 2em;
    }

}

.news__list ul {
    display: flex;
    flex-direction: column;
    gap: 0.5rem 0;
}
.news__list ul li {
    padding: 1.5rem 3.5rem;
    position: relative;
    background: #fff;
}
.news__list ul li:nth-child(odd)::after,
.news__list ul li:nth-child(even)::after {
    content: "";
    display: block;
    width: 2.5rem;
    aspect-ratio: 1 / 1;
    position: absolute;
    background: url(../img/common/item2.webp) no-repeat center / contain;
}
.news__list ul li:nth-child(odd)::after {
    top: 0;
    left: 0;
}
.news__list ul li:nth-child(even)::after {
    bottom: 0;
    right: 0;
    transform: scale(-1, -1);
}

.news__list ul li a,
.news__list ul li span {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap:0 2rem;
    text-decoration: none;
    line-height: 1.4;
}
.news__list ul li a::after {
    content: "";
    display: block;
    width: 2.5rem;
    height: 0.9rem;
    background: url(../img/common/arrow_red.png) no-repeat center / contain;
    position: absolute;
    top: calc(50% - 0.5rem);
    right: 1rem;    
}

.news__list .date {
    color: var(--sub-color);
    font-style: normal;
}
.news__list .txt {
    color: var(--main-color);
    font-size: 0.95rem;
    padding-right: 2rem;
}

@media (max-width: 768px){
    .news__list ul li { padding: 1rem 1.5rem; }
    .news__list ul li a, .news__list ul li span {
        flex-direction: column;
        gap: 0.5rem 0;
        align-items: flex-start;
    }
    .news__list .txt { padding-right: 0; }
    .news__list ul li a::after { top: 1rem;}

    .news__list ul li:nth-child(odd)::after,
    .news__list ul li:nth-child(even)::after {
        width: 1.5rem;
    }
}

.popup { position: relative;}
.popup::after{
    content: "";
    display: block;
    width: 2.5rem;
    aspect-ratio: 1 / 1;
    background: url(../img/common/icon_zoom.webp) no-repeat center / contain;
    position: absolute;
    bottom: 0.5rem;
    right: 0.5rem;
}
.popup.pop-movie::after{
    content: "";
    display: block;
    width: 4rem;
    aspect-ratio: 1 / 1;
    background: url(../img/common/icon_play.webp) no-repeat center / contain;
    position: absolute;
    top: calc(50% - 2rem);
    right: calc(50% - 2rem);
}
.popup-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(140,95,95,0.8);
  z-index: 9999;
  justify-content: center;
  align-items: center;
  padding: 20px;
}

.popup-overlay.active {
  display: flex;
}

.popup-content {
  position: relative;
  width: min(80vw, 1200px);
  max-width: 100%;
  max-height: 90vh;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: 8px;
}

.popup-content img {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 90vh;
    object-fit: contain;
}

.popup-content iframe {
  width: 100%;
  height: auto;
  max-height: 80vh;
  aspect-ratio: 16/9;
  border: 0;
  display: block;
}

.popup-close {
  position: fixed;
  top: 1rem;
  right: 1rem;
  width: 3rem;
  height: 3rem;
  background: url(../img/common/icon_close.webp) no-repeat center/contain;
  border: 0;
  background-color: transparent;
  cursor: pointer;
  z-index: 10001;
}

@media (max-width: 600px) {
  .popup-content {
    width: 100vw;
    max-width: 100vw;
    height: 100vh;
    align-items: start;
    padding-top: 12px;
  }
    .popup-content img {
        display: block;
        width: auto;
        height: auto;
        max-width: 100%;
        max-height: 90vh;
        object-fit: contain;
    }
  .popup-close {
    top: 12px;
    right: 12px;
  }
}
@media (max-width:600px){
  .popup-content{width:100vw;max-width:100vw;height:100vh;align-items:center;padding-top:12px}
  .popup-content img{max-width:100%;height:auto}
  .popup-close{top:12px;right:12px}
}

section:last-child { padding-bottom: 7rem;}

@media (max-width: 768px) {
  section:last-child { padding-bottom: 4rem;}
}