@charset "utf-8";

/*リセットCSS*/
html, body, div, span, object, iframe,
p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
  margin:0;
  padding:0;
  border:0;
  outline:0;
  font-size:100%;
  vertical-align:baseline;
  background:transparent;
}
html {
    scroll-behavior: smooth;
}
:target {
  scroll-margin-top: 65px; /* ← 固定ヘッダーの高さ分 */
}
p {
    font-size: 14px;
    line-height:1.8;
}
li {
    font-size: 14px;
    line-height:1.8;
    list-style: none;
}
li a {
    display: flex;
    height: 100%;
    align-items: center;
}
.list-style li {
    list-style: disc;
}
.list-style {
    padding-left :1rem;
    margin-bottom: 20px;
}
:root{
    --container: min(980px, 90%);
    --gold: #b79b4b;   /* 枠線と文字の色 */
    --purple: #8B7BA0;
    --bg: #fff;     /* 背景色（必要に応じて変更） */
    --line: #e5e5e5;
    --rule: #dcdcdc;
}

/*========================
共通
=========================*/
body {
    font-family:
    'YuMincho',  /* Mac用 */
	'Yu Mincho', /* Windows用 */
    'Times New Roman',
     Times,
     serif;
     margin: 0;
     letter-spacing: 0.1em;
     background-color: #F2F1E4;
     background-image: url("https://www.transparenttextures.com/patterns/otis-redding.png");
     color: #626262;
}
img {
    max-width: 100%;
    height: auto;
    margin: 0 auto;
    display: block;
}
.top {
    width: 100vw;
    text-align:center;
    margin: 50px auto 0;
    overflow: hidden;
}
.mv_text {
    width: 100px;
    position: absolute; 
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    opacity: 0.9;
}
.footer_img {
    height: 300px;
}
figcaption {
    font-size: 12px;
    text-align: center;
    margin-top: 5px;
}
h2 {
    color: var(--gold);
    text-align: center;
    font-weight: 500;
    margin-top: 10px;
    margin-bottom: 30px;
}
.sub_h2 {
    font-size: 0.6em;
}
h2::after {
    display: block;
    width: 40px;
    height: 20px;
    content: "";
    border-bottom: solid 1px var(--gold);;
    margin: 0 auto;
}
.ttl_area {
    margin-bottom: 100px;
}
.ttl_area p {
    margin-bottom: 50px;
}
.ttl_area ul {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    text-align:center;
}
.ttl_area li {
    width: 47%;
    height: 40px;
    font-size: 18px;
    border: solid 1px var(--gold);;
    border-radius: 30px;
    margin-bottom: 15px;
}
.ttl_area a {
    color: #AA9244;
}
h3 {
    text-align: center;
    font-weight: 500;
    margin-top: 50px;
    margin-bottom: 50px;
    color: #AA9244;
}
h3.h3-m-no {
    margin-top: 0;
    margin-bottom: 20px;
}
h4 {
    text-align: center;
    font-weight: 500;
    margin-top: 50px;
    margin-bottom: 50px;
}
.section_h2 {
    margin-top: 50px;
}
.section_h3 {
    margin-top: 150px; 
}
.section_h3:first-of-type {
    margin-top: 100px;
}
.section_h4 {
    margin-top: 100px;
}
@media screen and (max-width: 767px) {
    h2 {
        margin-top: 60px;
    }
    h3 {
        margin-top: 30px;
        margin-bottom: 30px;
    }
    h3.h3-m-no {
        margin-top: 30px;
    }
    .section_h2 {
        margin-top: 0px;
    }
    .section_h3 {
        margin-top: 100px; 
    }
    .section_h3:first-of-type {
        margin-top: 50px;
    }
    .section_h4 {
        margin-top: 100px;
    }
  }
.text {
    width:780px; 
    margin: 0 auto;
    line-height: 2;
}
.s-txt {
    font-size: 0.9rem;
}
a {
    text-decoration: none;
    color: #626262;
    font-size: 14px;
}
a.txt-link {
    text-decoration: underline;
    text-underline-offset: 5px;
}
a:hover::after {
    transform: scale(1,1);
}
a.txt-white {
    color: #fff;
}
.txt_link {
    padding-bottom: 10px; /* テキストと下線の間隔 */
    background-image: linear-gradient(#000, #000);
    background-repeat: no-repeat;
    background-position: bottom right; /* 下線の初期位置 */
    background-size: 0 1px; /* 下線のサイズ（横幅、高さ） */
    transition: background-size 0.3s;
}
.txt_link:hover {
    background-position: bottom left; /* 下線のホバー時位置 */
    background-size: 100% 1px; /* 下線の横幅を100%にする */
}
.link_tel {
    color: 	#0066c0;
}
.all {
    width: 80%;
    max-width: 1200px;
    margin:0 auto 200px;
}
.inner {
    width: 80%;
    max-width: 1200px;
    margin: 0 auto;
}
.notice {
    font-size: 12px;
}
.gmap_iframe {
    width: 100%;
}
@media screen and (max-width: 768px) {
    .all {
        width: 90%;
    }
    .inner {
        width: 90%;
    }
    .text {
        width:100%;
    }
    .only_pc {
        display: none;
    }
    .only_smt {
        display: block;
    }
    .flex_box {
        display: block;
    }
    .flex-item {
        width: 100%;
    }
}


/*========================
button
=========================*/
.anc-link{
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 5px 50px;
    border: 1px solid var(--gold);
    border-radius: 9999px;
    text-decoration: none;
    color: var(--gold);
    letter-spacing: .05em;
    transition: background-color .2s ease, transform .06s ease;
}
.kuyou .anc-link {
    border: 1px solid var(--purple);
    color: var(--purple);
}
.anc-link:hover{
    background: rgba(183,155,75,.08);
}
.anc-link:active{
    transform: translateY(1px);
}
.anc-link__icon{
    width: 16px;
    height: 16px;
    display: inline-block;
}
.pray_anc_navi {
    width: 380px;
    margin: 0 auto;
}
@media screen and (max-width: 767px) {
    .pray_anc_navi {
        width: 100%;
    }
}

/*========================
汎用CSS
=========================*/
.inview1{
    opacity: 0;
    transform: translateY(20px);
    transition: 0.8s;
    transition-delay: 0.1s;
}
.inview1.show{
    opacity: 1;
    transform: translateY(0px); 
}
.only_smt {
    display:none;
}
.inline {
    display: inline !important;
}
.bg-white {
    background-color: #fff;
}
.inline,
.footer .inline {
    display: inline;
}
.w-70 {
    width: 70%;
}

/*=======マージン=======*/
.mt-20 { 
    margin-top: 20px !important;
}
.mt-30 { 
    margin-top: 30px !important;
}
.mt-40 { 
    margin-top: 40px !important;
}
.mt-80 { 
    margin-top: 80px !important;
}
.mt-100 {
    margin-top: 100px !important;
}
.mt-pc40-smt20 {
    margin-top: 40px;
}
.mt-pc80-smt40,
.mt-pc80-smt60 {
    margin-top: 80px;
}
.mb-20 {
    margin-bottom: 20px !important;
}
@media screen and (max-width: 767px) {
    .mt-pc40-smt20 {
        margin-top: 20px !important;
    }
    .mt-pc80-smt40 {
        margin-top: 40px !important;
    }
    .mt-smt80 {
        margin-top: 80px !important;
    }
    .mt-pc80-smt60 {
        margin-top: 60px !important;
     }

  }

/*=======text-align=======*/
.ta-l {
    text-align: left;
}
.ta-c {
    text-align: center;
}
.ta-r {
    text-align: right;
}
.txt-red {
    color: #f85151;
}
.txt-s {
    font-size: 0.8rem;
}


/*========================
index.html
=========================*/
.img-frame{
   position: relative;
   width: 100%;
   height: 100vh;
   overflow: hidden;
   margin: 0 auto;
}
.img-01, .img-02, .img-03,.img-04,.img-05{
   position: absolute;
   top:0;
   left:0;
   width: 100%;
   height: 100%;
   background-size: cover;
   background-repeat: no-repeat;
   background-position: center;
}
.img-01{
   background-image: url('../img/index/mv_pc_01.JPG');
   animation: slide-animation-01 30s infinite;
}
.img-02{
   background-image: url('../img/index/mv_pc_02.JPG');
   animation: slide-animation-02 30s infinite;
}
.img-03{
   background-image: url('../img/index/mv_pc_03.png');
   animation: slide-animation-03 30s infinite;
}
.img-04{
   background-image: url('../img/index/mv_pcsmt_04.JPG');
   animation: slide-animation-04 30s infinite;
}
.img-05{
   background-image: url('../img/index/mv_pc_05.JPG');
   animation: slide-animation-05 30s infinite;
}
@keyframes slide-animation-01 {
  0%   {opacity:1; transform:scale(1.0);}
  15%  {opacity:1;}
  20%  {opacity:0; transform:scale(1.1);}
  95%  {opacity:0;}
  100% {opacity:1; transform:scale(1.0);}
}
@keyframes slide-animation-02 {
  0%   {opacity:0;}
  15%  {opacity:0; transform:scale(1.1);}
  20%  {opacity:1;}
  35%  {opacity:1;}
  40%  {opacity:0; transform:scale(1.0);}
  100% {opacity:0;}
}
@keyframes slide-animation-03 {
  0%   {opacity:0;}
  35%  {opacity:0; transform:scale(1.0);}
  40%  {opacity:1;}
  55%  {opacity:1;}
  60%  {opacity:0; transform:scale(1.1);}
  100% {opacity:0;}
}
@keyframes slide-animation-04 {
  0%   {opacity:0;}
  55%  {opacity:0; transform:scale(1.1);}
  60%  {opacity:1;}
  75%  {opacity:1;}
  80%  {opacity:0; transform:scale(1.0);}
  100% {opacity:0;}
}
@keyframes slide-animation-05 {
  0%   {opacity:0;}
  75%  {opacity:0; transform:scale(1.0);}
  80%  {opacity:1;}
  95%  {opacity:1;}
  100% {opacity:0; transform:scale(1.1);}
}
@media screen and (max-width: 767px){
  .img-01, .img-02, .img-03,.img-04,.img-05{
     width: 100vw;
     height: 100vh;
  }
  .img-01{
      background-image: url('../img/index/mv_smt_01.JPG');
      background-position: center;
   }
   .img-02{
      background-image: url('../img/index/mv_smt_02.JPG');
      background-position: center;
   }
   .img-03{
      background-image: url('../img/index/mv_smt_03.JPG');
      background-position: center;
   }
   .img-05{
      background-image: url('../img/index/mv_smt_05.JPG');
      background-position: center;
   }
  }

/*=======お知らせエリア=======*/
.area-info {
    background-color: #fff;
    padding: 20px 50px;
}

.area-info .inner {
    display: flex;
}

.info-box {
    width: 65%;
    padding-block: clamp(24px, 5vw, 48px);
    padding-inline: clamp(12px, 3vw, 24px);
}

.area-info ul li {
    border-bottom: solid 1px #555;
    padding: 15px 10px 15px 20px;
}

.area-info ul li span {
    margin-right: 50px;
    font-size: 12px;
}

.info-ttl-box {
    position: relative;
    block-size: auto;
    margin: 0 50px 0 0;
    padding-block: clamp(24px, 5vw, 48px);
    padding-inline: clamp(12px, 3vw, 24px);
}
@media screen and (max-width: 768px) {
    .area-info {
        margin: 0 auto;
        padding: 20px 10px;
    }

    .area-info .inner {
        display: block;
    }

    .info-box {
        width: 100%;
        padding-inline: 0;
    }
    .info-box li a {
        display: block;
        text-align: left;
    }
    .info-ttl-box {
        margin: 0 auto;
    }
    .area-info ul li span {
        margin-right: 0px;
        display: block;
        text-align: left;
    }
    
}

/* 縦書き見出し */
.info-ttl {
    position: absolute;
    writing-mode: vertical-rl;     /* 縦書き */
    /* 画像に少し重ねるなら微調整（好みで調整） */
    translate: -6% 0;
}

h2.info-ttl::after,
.area-shoot h2::after {
    display: none;
}
  
/* 円形の画像（img そのまま使用） */
.info-ttl-box img {
    display: block;
    inline-size: 100%;
    max-inline-size: 520px;
    aspect-ratio: 1 / 1;
    margin: 0 auto;
    object-fit: cover;        /* 万一の非正方形でも綺麗に収まる */
    border-radius: 9999px;    /* 円形マスク */
    /* 薄い縁取りが欲しければ */
    /* outline: 1px solid #e7e1d8; */
}
  
  /* スマホでの重なり量を少し抑える */
  @media (max-width: 480px){
    .notice__title{ translate: -2% 0; }
  }

  /* ホバー表現（PCのみ） */
@media (hover:hover){
  .area-info ul li:hover,
  .news__link:hover{
    background:
      linear-gradient(to right, rgba(0,0,0,0.03), rgba(0,0,0,0));
    cursor: pointer;
  }
}


/* ===== 画像グリッド ===== */
.photo-grid {
    max-width: 1140px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;   /* 2列 */
    gap: 0;                           /* 隙間なし */
}
  
.photo-grid__item {
position: relative;
display: block;
overflow: hidden;
aspect-ratio: 16/9;                /* カードの比率を固定 */
}

.photo-grid__item img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform .5s ease;
}

/* フィルターと文字 */
.photo-grid__item::after {
content: "";
position: absolute;
inset: 0;
background: rgba(120,110,92,0.35);     /* 半透明の黒フィルター */
transition: background .4s ease;
}

.photo-grid__text {
position: absolute;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
font-size: 20px;
text-align: center;
z-index: 1; /* フィルターの上に置く */
}

@media screen and (max-width: 767px) {
.photo-grid {
    display: block;
}
}
  
/* ===== ホバー時の動き ===== */
.photo-grid__item:hover img {
transform: scale(1.1);           /* ズーム */
}
.photo-grid__item:hover::after {
background: rgba(0,0,0,0.5);     /* 濃くなる */
}

/*=======flex関係=======*/
.flex_box,
.flex_box-smt {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}
.flex_box.col-2, 
.flex_box.col-3,
.flex_box.col-2-smt  {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
.col-2 .flex-item,
.col-2-smt .flex-item-smt {
    width: 48%;
}
.col-3 .flex-item,
.col-3-smt .flex-item-smt {
    width: 31%;
}
.col-3-2 {
    width: 72%;
    margin: 80px auto 0;
}
.col-2 .flex-item:nth-child(n+3),
.col-3 .flex-item:nth-child(n+4),
.col-2-smt .flex-item-smt:nth-child(n+3),
.col-3-smt .flex-item-smt:nth-child(n+4)  {
    margin-top: 80px;
}
.flex-item {
    width: 48%;
}
.btn {
    margin-top: 30px;
    text-align: center;
}
@media screen and (max-width: 768px) {
    .col-2,
    .col-3,
    .col-3-2 {
        width: 100%;
        margin: 0 auto 0;
    }
    .flex_box.col-2 {
        display: block;
    }
    .flex_box.col-2-smt {
        display: flex;
    }
    .col-2 .flex-item,
    .col-3 .flex-item {
        width: 100%;
    }
    .text {
        width:100%;
    }
    .only_pc {
        display: none;
    }
    .only_smt {
        display: block;
    }
    .flex_box {
        display: block;
    }
    .flex-item {
        width: 100%;
    }
    .col-2 .flex-item:nth-child(n+2) {
        margin-top: 50px;
    }
}

/*========================
indexページ
=========================*/
.index_all {
    margin-bottom: 100px;
}
.mv_index {
    position: relative; 
}
.mv_logo {
    width: 20%;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    clip-path: inset(0 100% 0 0);   /* 最初は右を100%カット */
    animation: reveal 1.5s ease forwards;
}
.intro{
    position: relative;
    background: var(--paper);
    margin-top:100px;
    overflow: hidden;
  }
@keyframes reveal {
to {
    clip-path: inset(0 0 0 0);    /* 全部表示 */
}
}
@media screen and (max-width: 768px) {
    .mv_logo {
        width: 50%;
    }
    .intro{
        margin-top:0px;
    }
}
/* 左右の淡い縦ライン（飾り） */
.intro::before,
.intro::after{
  content:"";
  position: absolute;
  top: 0; bottom: 0;
  width: 2px;
  background: color-mix(in oklab, var(--aqua) 55%, transparent);
}
.intro::before{ left: 10px; }
.intro::after { right: 10px; }

.intro__inner{
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.05fr 1fr auto; /* 画像 / 本文 / 縦リボン */
  gap: 26px;
  align-items: center;
  position: relative;
}
/* 右：本文＋ボタン */
.intro__body {
    text-align: center;
}
.intro__text{
  margin: 0 0 18px;
}
.btn_box {
    text-align: center;
}
.intro__btn,
.btn {
  display: inline-block;
  padding: 8px 20px;
  border: 1px solid var(--gold);
  color: var(--gold);
  text-decoration: none;
  border-radius: 9999px;
  transition: background-color .2s ease, transform .06s ease;
}
.intro__btn:hover,
.btn:hover{ background: rgba(183,155,75,.08); }
.intro__btn:active,
.btn:active{ transform: translateY(1px); }

/* 右端：縦書きリボン */
.intro__ribbon{
  justify-self: end;
  display: grid;
  gap: 10px;
  writing-mode: vertical-rl;
}
.ribbon__title_01,
.ribbon__title_02{
  display: inline-block;
  background: #fff;
  padding: 12px 10px;
  color: var(--gold);
  letter-spacing: 0.45em;
}
.ribbon__title_01 {
    transform: translate(0px,-30px);
}
.ribbon__title_02 {
    transform: translate(0px,30px);
}
.intro h2 {
    font-size: 20px;
}
.intro h2::after {
    display: none;
}
.access_text {
    background-color: #fff;
}
.area-season {
    max-width: 1140px;
    margin: 0 auto;
}
.area-season img {
    width: 100vw;
}
/* レスポンシブ：縦積み */
@media (max-width: 768px){
  .intro__inner{
    grid-template-columns: 1fr;      /* 1列 */
    gap: 18px;
  }
  .intro__ribbon{
    order: -1;                        /* 縦リボンを上へ */
    justify-self: start;
    padding-left: 0;
    writing-mode:unset;
  }
  .ribbon__title_01 {
    transform: translate(-10px,0);
    }
    .ribbon__title_02 {
        transform: translate(70px,0);
    }
  .intro__media img{ aspect-ratio: 16/9; }
}
@media (max-width: 520px){
  .intro__text{ font-size: 14px; line-height: 1.9; }
}

/* ===== Access Section ===== */
.access{
    background:#fff;
    padding: clamp(24px, 4vw, 48px) 0;
  }
.access__inner{
width:min(1100px, 92vw);
margin-inline:auto;
display:grid;
grid-template-columns: 1fr 1.2fr; /* 左右比率は好みで */
gap: clamp(16px, 3vw, 32px);
align-items: stretch;
}
@media (max-width: 768px){
.access{
padding: 20px 20px 80px 20px;
}
.access__inner{
    grid-template-columns: 1fr; /* モバイルは縦並び */
}
}

/* 左：情報 */
.access__info{
display:flex;
flex-direction:column;
gap: 14px;
}
.access__title{
margin:0 0 6px;
font-weight:600;
font-size: clamp(22px, 3.2vw, 28px);
letter-spacing:.05em;
}
.access__address{
font-style:normal;
line-height:1.9;
}
.access__tel a{
color:inherit;
text-decoration: underline;
text-underline-offset: 2px;
}
.access__list{
margin: 6px 0 0;
}
.access__row{
display:grid;
grid-template-columns: 7em 1fr;
gap: 10px;
padding-block: 6px;
border-bottom: 1px solid #eee;
}
.access__row dt{
color:#666;
}
.access__row dd{
margin:0;
}
/* 右：マップ（比率固定でレスポンシブ） */
.access__map{
position: relative;
border-radius: 12px;
overflow: hidden;
box-shadow: 0 8px 20px rgba(0,0,0,.06);
min-height: 320px;              /* 縦が潰れないように保険 */
}
.access__map::before{
content:"";
display:block;
padding-top: 62%;               /* 16:10 くらいの比率 */
}
.access__map iframe{
position:absolute;
inset:0;
width:100%;
height:100%;
border:0;
}

.area-season {
position: relative;
}
.season_txt {
    background-color: #fff;
    width: 30%;
    margin: 0 auto;
    padding: 20px 20px 80px 20px;
    border-radius: 0 0 30px 30px;
    position: absolute;
    top: 0;
    right: 35%;
    box-sizing: border-box;
}
.season_txt h2 {
    writing-mode: vertical-rl;
    margin: 30px auto;
}
.season_txt h2::after {
    display: none;
}

@media screen and (max-width: 768px) {
    .season_txt {
        position: static;
        width: 100%;
        border-radius: 0px;
    }
}

/*========================
撮影ページ
=========================*/
.section_h3.plan-detail {
    margin-top: 80px;
}
/* プラン名ラベル */
.plan-card__label{
  display: inline-block;
  padding: 6px 18px;
  border: 1.5px solid var(--gold);
  color: var(--gold);
  border-radius: 4px;
  background: #fff;
}
.plan-card__label-area {
  margin-top: -20px;
}

/* 下矢印 */
.chevron{
  display: inline-block;
  font-size: 20px;
  color: var(--gold);
  line-height: 1;
}
.plan-detail{
  padding: 48px 0px 64px;
}
.plan-detail__wrap{
  max-width: 960px;
  margin: 0 auto;
}

/* ── ヒーロー写真 ─────────────────── */
.plan-hero{
  margin: 0;
  border-radius: var(--radius-hero);
  overflow: hidden;
  box-shadow: var(--shadow);
}
.plan-hero img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ── 白いカード本体 ───────────────── */
.plan-card{
  position: relative;
  background: #fff;
  margin-top: -30px; /* 写真と重ねるために上へ */
  padding: 44px 28px 28px;
  border-radius: 0 0 20px 20px;
  box-shadow: var(--shadow);
}

/* タイトルの楕円ラベル */
.plan-label{
  position: absolute;
  left: 50%;
  top: -16px;
  transform: translateX(-50%);
  margin: 0;
  padding: 10px 26px;
  background: #fff;
  color: var(--gold);
  border-radius: 9999px;
  font-size: 16px;
  letter-spacing: .06em;
}

/* 説明文 */
.plan-text{
  text-align: center;
  color: var(--ink);
  font-size: 15px;
  line-height: 2;
}
.plan-text p{ margin: 0 0 12px; }
.plan-text p:last-child{ margin-bottom: 0; }

/* ── 情報ボックス ───────────────── */
.plan-info{
  margin-top: 24px;
  background: #EFE8CB;
  border-radius: 14px;
  padding: 18px 18px;
}
.info-grid{
  margin: 0;
}
.info-row{
  font-size: 14px;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 12px 14px;
  align-items: start;
  + .info-row{ margin-top: 10px; }
}
.info-tag{
  padding: 6px 12px;
  color: #fff;
  background: var(--gold);
  border-radius: 10px;
  white-space: nowrap;
}
.area-shoot,
.area-nav {
    max-width: 1140px;
    margin: 100px auto 0;
}
.area-shoot .shoot-box,
.area-nav .nav-box {
    display: flex;
    flex-wrap: wrap;
}
.area-shoot .shoot-item,
.area-nav .nav-item {
    width: 50%;
    position: relative;
}

.area-shoot .shoot-item.shoot-txt {
    padding: 50px 20px;
    box-sizing: border-box;
}

.area-shoot .shoot-item  h2 {
    writing-mode: vertical-rl;
    position: absolute;
}

.area-shoot .shoot-item p {
    width: 70%;
    margin: 120px auto 0;
}

/* ── スライダー ───────────────── */
.autoplay {
    margin-top: 30px;
}
.autoplay img {
    width: 85%;
    border-radius: 20px;
}

/* ── レスポンシブ ───────────────── */
@media (max-width: 768px){
  .plan-card{ padding: 40px 16px 20px; }
  .plan-label{ top: -14px; padding: 8px 20px;}
  .plan-text{ line-height: 1.9; }
  .plan-info{ padding: 14px; }
  .info-row{ grid-template-columns: minmax(72px, auto) 1fr; gap: 10px 12px; }

  .area-shoot .shoot-item  h2 {
    writing-mode:horizontal-tb;
    position: static;
    margin-top: 0;
    }

    .area-shoot .shoot-item p {
        width: 100%;
        margin-top: 50px;
    }

  .area-shoot .shoot-box,
  .area-nav .nav-box {
      display: block;
  }

  .area-shoot .shoot-item,
    .area-nav .nav-item {
        width: 100%;
    }
    .autoplay img {
        border-radius: 8px;
    }

}

/*========================
体験ページ
=========================*/
.taiken_box {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

.taiken_items {
    width :48%;
    position: relative;
    margin-bottom: 90px;
    gap: 0.5rem;
}

.taiken_items h3 {
    position: absolute;
    top: 0;
    left: 20px;
    color: #fff;
    writing-mode: vertical-rl;
    letter-spacing: 0.5em;
}

.taiken_items img {
    border-radius: 30px;
    margin-bottom: 20px;
}

.taiken_items ul {
    background-color: #EFE8CB;
    padding: 20px 30px;
    border-radius: 15px;
    margin-top: 10px;
}

.taiken_items ul li {
    text-align: left;
    margin-bottom: 10px;
    display: flex;
    align-items: flex-start; /* ラベルと本文の1行目を揃える */
    margin-bottom: 10px;
}

.taiken_items .kari {
    display: inline-block;
    background-color: #AA9244;
    color: #fff;
    padding: 0px 4px;
    width: 50px;
    text-align: center;
    border-radius: 30px;
    font-size: 12px;
    margin-right: 15px;
    flex-shrink: 0;   
}

@media screen and (max-width: 768px) {
    .ttl_area {
    margin-bottom: 60px;
}
    .taiken_items {
        width :100%;
    }
    .taiken_items p{
        height: auto;
    }
}





/*========================
結婚式ページ
=========================*/
.wedding-img-box img:nth-child(odd) {
    margin-left: 0;
}
.wedding-img-box img:nth-child(even) {
    margin-right: 0;
}





/*========================
行事ページ
=========================*/
.events-wrap{
  max-width: 820px; /* 画像の比率に合わせて程よい幅 */
  margin: 0 auto;
  display: grid;
  gap: 18px;
}

/* カード本体 */
.event-card{
  display: grid;
  grid-template-columns: 36% 1fr; /* 画像 : 本文（PC） */
  gap: 18px;
  background: #fff;
  border-radius: 20px;
  box-shadow: var(--shadow);
  overflow: hidden; /* 角丸で画像をクリップ */
}

/* 左の画像 */
.event-media{
  margin: 0;
  line-height: 0;
  position: relative;
}
.event-media img{
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;     /* 画像を切り抜いてフィット */
  min-height: 160px;     /* 高さがつぶれないよう下限 */
}

/* 右の本文 */
.event-body{
  padding: 35px 20px;
}
.event-month{
  margin: 0 0 8px;
  font-size: 18px;
  color: var(--gold);
  text-align: left;
}
.event-list{
  margin: 0;
  padding: 0;
  list-style: none;
  line-height: 1.9;
  font-size: 15px;
}

.event-list time{
  color: var(--muted);
  margin-right: .4em;
  white-space: nowrap;
}
/* スマホ：縦積み＋余白調整 */
@media (max-width: 720px){
  .event-card{
    grid-template-columns: 1fr; /* 画像→本文の縦並び */
  }
  .event-media img{
    aspect-ratio: 16/9;   /* トップにワイド画像 */
    min-height: auto;
  }
  .event-body{ 
      padding: 14px 16px 16px; 
}
  .event-month{ 
      font-size: 16px; 
      text-align: center;
}
  .event-list{ 
      font-size: 14px; 
}
}





/*========================
納骨堂ページ
=========================*/
.nokotsudo .flex-item {
    background-color: #fff;
    border-radius: 10px;;
}

.nokotsudo .flex-item h3 {
    font-size: 1rem;
    background-color: var(--gold);
    color: #fff;
    margin: 0 auto;
    padding: 20px 10px;
    border-radius: 10px 10px 0 0;
}

.nokotsudo .flex-item .flex-card {
   padding : 20px 25px;
}

@media screen and (max-width: 768px) {
    .nokotsudo .flex-item {
    margin-top: 30px;
}
.nokotsudo .flex-item .flex-card {
   padding : 20px 25px;
}
}





/*============
祈願ページ
=============*/
body {
    background-color: #fdfaf3;
    margin: 0;
    padding: 0;
    line-height: 1.8;
}

header, section {
    text-align: center;
}

.section-title {
    font-size: 1.8em;
    font-weight: bold;
    margin-bottom: 0.5em;
}

.sub-title {
    color: #888;
    font-size: 0.9em;
    margin-bottom: 1em;
}

.lead-text {
    max-width: 800px;
    margin: 0 auto 2em;
    color: #444;
}

.prayer-list dl {
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-width: 900px;
    margin: 0 auto;
}

.prayer-list dl div {
    display: flex;
}

.prayer-list dt {
    background-color: var(--gold);;
    color: white;
    padding: 1em;
    width: 160px;
    box-sizing: border-box;
}

.kuyou .prayer-list dt,
.c-reserve__title.bg-purple {
    background-color: #8B7BA0;
}

.prayer-list dd {
    background-color: #fff;
    padding: 1em 2em;
    margin: 0;
    flex: 1;
    text-align: left;
}

.kuyou h3 {
    color: #8B7BA0;
}

.pray_info {
    background-color: #fff;
    margin-bottom: 80px;
    height: 100px;
    padding: 30px;
    border-top: solid 1px #aaa;
    border-bottom: solid 1px #aaa;
}

@media (max-width: 768px) {
    .prayer-list dt {
    width: 32%;
}
}

.c-reserve {
    max-width: 900px;
    margin: 30px auto 0;
  }
  
  .c-reserve__title {
    margin: 0;
    padding: 10px;
    text-align: center;
    letter-spacing: 0.25em;
    color: #fff;
    background: var(--gold); /* 画像のオリーブ系 */
  }
  
  .c-reserve__body {
    background: #fff;
    padding: 16px 32px;
    border: 1px solid rgba(0, 0, 0, 0.06);
  }
  
  .c-reserve__row {
    display: flex;
    justify-content: center;
    align-items: baseline;
  }
  
  .c-reserve__label,
  .c-reserve__value {
    margin: 0;
    color: #333;
  }
  
  .c-reserve__label {
    min-width: 5em;
    text-align: left;
  }
  
  .c-reserve__value {
    min-width: 12em;
    text-align: left;
  }
  
  .c-reserve__tel {
    color: inherit;
    text-decoration: none;
  }
  
  .c-reserve__tel:hover {
    text-decoration: underline;
  }
  
  /* Responsive */
  @media (max-width: 768px) {
    .prayer-list {
        font-size: 14px;
    }
    .c-reserve__title {
      font-size: 18px;
      padding: 14px 12px;
      letter-spacing: 0.2em;
    }
  
    .c-reserve__row {
      justify-content: flex-start;
      gap: 20px;
    }
  
    .c-reserve__label,
    .c-reserve__value {
      font-size: 16px;
      letter-spacing: 0.18em;
    }
  
    .c-reserve__value {
      min-width: auto;
    }
  }





/*============
境内ページ
=============*/
.map_img {
    margin-bottom: 80px;
}
.map_img img {
    width: 100%;
    width: 600px;
}
.map_box {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
.map_items {
    width :48%;
    margin-bottom: 90px;
}
.map_items img {
    border-radius: 30px;
    margin-bottom: 20px;
}
.map_items h3 {
    color: #AA9244;
    text-align: left;
    margin: 30px auto 30px 10px;
}
.map_items ul li {
    margin-bottom: 10px;
}
.map_num {
    background-color: #fff;
    color: #AA9244;
    border: solid 1px #AA9244;
    padding: 13px;
    width: 50px;
    text-align: center;
    border-radius: 30px;
    margin-right: 15px;
}
@media screen and (max-width: 768px) {
    .ttl_area {
    margin-bottom: 60px;
    }
    .map_items {
        width :100%;
    }
    .map_items p {
    height: auto;
    }
} 





/*============
四季ページ
=============*/
.all.season {
    max-width: 800px;
}
.all.season img {
    margin-bottom: 20px;
}
h3 span {
    font-size: 14px;
    margin-left: 10px;
}

.season_anc_btn li a {
    justify-content: center;
}