@charset "UTF-8";
/* =========================================================
 * parts.css — 部品
 *   パンくず／タグ・カテゴリー／ページネーション
 *   ヒーロー（.editorial-hero）／画像ライトボックス（.gallery）／フッターカルーセル（.carousel）
 * ========================================================= */


/*================================================
　　breadcrumb   
 ================================================*/
.breadcrumb {margin: 0 1em;}
.breadcrumb ol {
    font-size:0.9em;
    margin: 1em 0 ;
    padding: 0;
}
.breadcrumb ol li {
    display: inline;
    list-style: none;
    color: var(--color-c);
    font-weight: bold;
    margin-right: -10px;
    background: rgb(255 255 255 / 5%);
    padding: 0.5em 0.8em 0.5em 0;
    border-radius: 5px;
}
.breadcrumb ol li:first-child:before {
    content: none;
}
.breadcrumb ol li > a{
    color: var(--color-c);
    margin-right: 5px;
    text-decoration: none;  
}
.breadcrumb ol li a:hover {
    text-decoration: underline;
    color: var(--color-d);
    opacity: 0.8;
}
@media print, screen and (max-width: 540px) {
    .breadcrumb ol li span.e-title{
        display: block;
    }   
}
/*================================================
 *　tagcloud
 ================================================*/
.tagcloud, .tags{
    list-style: none;
    margin: 0;
    overflow: hidden;
    padding: 0.0em 0 0;
    display: inline-block;
    clear: both;
}
.tagcloud li, .tags li{
    display: inline-block;
    padding: 0;
    margin: 0 0.2em 0.2em 0;
}
.tagcloud a, .tags a{
 background:var(--color-b);
 color:#fff;
 padding:4px 8px 3px;
 margin:3px;
 border-radius:5px;
 text-decoration:none;
 font-size:12px;
 line-height: 1em;
 font-weight:600;
 white-space: nowrap;
}
.tagcloud a:hover, .tags a:hover{
 opacity: 0.8;
 font-weight:400;
}
.tagcloud a:before, .tags a:before{
 font-family:"Font Awesome 6 Free";
 content:"\f02b"; 
 font-weight:600;
 color:#fff;
 padding-right:6px;
}
.tagcloud a span, .tags a span{
 padding-left:0.5em;
 color:#fff;
}
.tagcloud li.rrr a, .tags li.rrr a{
 background:#ff0000;
}

/*================================================
 *　catcloud
 ================================================*/
.catcloud, .post-categories{
    list-style: none;
    margin: 0;
    overflow: hidden;
    padding: 0.0em 0 0;
    display: inline-block;
    clear: both;
}
.catcloud li, .post-categories li{
    display: inline-block;
    padding: 0;
    margin: 0 0.2em 0.2em 0;
}
.catcloud a, .post-categories a{
 background:var(--color-a);
 color:#fff;
 padding:4px 8px 3px;
 margin:3px;
 border-radius:5px;
 text-decoration:none;
 font-size:12px;
 line-height: 1em;
 font-weight:600;
 white-space: nowrap;
}
.catcloud a:hover, .post-categories a:hover{
 opacity: 0.8;
 font-weight:400;
}
.catcloud a:before, .post-categories a:before{
 font-family:"Font Awesome 6 Free";
 content:"\f35a"; 
 font-weight:600;
 color:#fff;
 padding-right:6px;
}
.catcloud a span, .post-categories a span{
 padding-left:0.5em;
 color:#fff;
}

/*================================================
 *　pagination
 ================================================*/
.pagination {
  margin: 0 auto 2em;
  padding: 0em 0;
  text-align: center;
  display: block;
}
.pagination a {
  font-size: 1em;
  line-height: 2em;
  text-align: center;
  color: #fff;
  text-decoration: none;
  letter-spacing: 0;
  display: inline-block;
  height: 2em;
  width: 2em;
  border-radius: 50%;
  background: var(--color-a);
  transition: .3s
}
.pagination a:hover {
 opacity: 0.8;
}
.pagination span {
  font-size: 1em;
  line-height: 2em;
  text-align: center;
  letter-spacing: 0;
  display: inline-block;
  height: 2em;
  width: 2em;
  border-radius: 50%;
  background: var(--color-a);
}
.pagination span.dots {
  background: 0
}
.pagination span.current {
  background: var(--color-c);
  color: #fff
}
/*================================================
　footer カルーセル（.carousel を本文・ウィジェットに置いたときだけ有効）
 ================================================*/
@media screen and (max-width: 999.9px){
/* カルーセルの外枠 */
.carousel {
    position: fixed;
    bottom: 10px;
    left: -web-kids-calc(50% - 130px);
    left: calc(50% - 130px);
  width: 260px;
  height: 80px;
  display: flex;
  overflow: hidden;
  margin: 0 auto;
  z-index:2;
}
/* カルーセル内の画像 */
.carousel img {
  width: 260px;
  height: 80px;
max-width:260px;
  margin: 0;
  padding: 0 10px 0 0;
  display: block;
}
/* スクロールアニメーションのキーフレーム */
@keyframes scroll {
  0% { margin-left: 0; }      
  20% { margin-left: -260px; }
  25% { margin-left: -260px; }
  45% { margin-left: 0px; }
  50% { margin-left: 0px; }
  70% { margin-left: -260px; }
  75% { margin-left: -260px; }
  95% { margin-left: 0%; }
  100% { margin-left: 0%; }
}
/* カルーセルの子要素にスクロールアニメーションを設定 */
.carousel > :first-child {
  animation-name: scroll;
  animation-duration: 30s;
  animation-delay: 0s;
  animation-iteration-count: infinite;
}
}

@media print, screen and (min-width: 1000px){
/* カルーセルの外枠  右MENUなら  50% - 260px - 130px  */
.carousel {
    position: fixed;
    bottom: 10px;
    left: -web-kids-calc(50% - 260px + 130px);
    left: calc(50% - 260px + 130px);
  width: 520px;
  height: 80px;
  display: flex;
  overflow: hidden;
  margin: 0 auto;
  z-index:2;
}
/* カルーセル内の画像 */
.carousel img {
  width: 260px;
  height: 80px;
  margin: 0;
  padding: 0 20px 0 0;
  display: block;
}
}

/* =========================================================
 * Editorial hero
 * ========================================================= */
.editorial-hero{
	position:relative;
	min-height:min(100vh,820px);
	overflow:hidden;
	isolation:isolate;
	color:#fff;
}
.editorial-hero .hero-background,
.editorial-hero .hero-background img{
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
}
.editorial-hero .hero-background img{object-fit:cover;}
.editorial-hero .hero-dark-layer{
	position:absolute;
	inset:0;
	background:
		linear-gradient(90deg,var(--color-a) 0%,var(--color-b) 41%,var(--color-c) 72%),
		linear-gradient(to top,rgba(0,28,24,.62),transparent 45%);
}
.editorial-hero .hero-grid-pattern{
	position:absolute;
	inset:0;
	opacity:.17;
	background-image:
		linear-gradient(rgba(255,255,255,.22) 1px,transparent 1px),
		linear-gradient(90deg,rgba(255,255,255,.22) 1px,transparent 1px);
	background-size:70px 70px;
	-webkit-mask-image:linear-gradient(to right,#000,transparent 64%);
	mask-image:linear-gradient(to right,#000,transparent 64%);
}
.editorial-hero .editorial-copy{
	position:relative;
	z-index:5;
	width:min(660px,62%);
	padding:clamp(110px,13vh,160px) 4.5vw 100px;
}
.editorial-hero .editorial-kicker,
.editorial-hero .editorial-copy h1 span,
.editorial-hero .editorial-copy h1 strong,
.editorial-hero .editorial-lead,
.editorial-hero .editorial-actions{opacity:0;}
.editorial-hero .editorial-kicker{
	margin:0 0 24px;
	font-size:.8rem;
	font-weight:800;
	letter-spacing:.25em;
	transform:translateY(18px);
}
.editorial-hero .editorial-copy h1{
	margin:0;
	line-height:1.08;
	font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
	font-weight:500;
}
.editorial-hero .editorial-copy h1 span{
	display:block;
	margin-bottom:1rem;
	font-size:clamp(1.5rem,2.6vw,2.6rem);
	letter-spacing:.12em;
	transform:translateX(-28px);
}
.editorial-hero .editorial-copy h1 strong{
	position:relative;
	display:block;
	overflow:hidden;
	font-size:clamp(1.5rem,2.6vw,2.6rem);
	letter-spacing:-.04em;
	color:#fff;
	text-shadow:0 8px 30px rgba(0,0,0,.26);
	transform:translateY(38px);
}
.editorial-hero .editorial-copy h1 strong::after{
	content:"";
	position:absolute;
	inset:-20%;
	background:linear-gradient(110deg,transparent 0%,rgba(255,255,255,.85) 45%,transparent 70%);
	transform:translateX(-170%) skewX(-25deg);
	pointer-events:none;
}
.editorial-hero .editorial-lead{
	max-width:590px;
	margin:28px 0 0;
	font-size:clamp(.98rem,1.35vw,1.2rem);
	line-height:2;
	letter-spacing:.08em;
	transform:translateY(24px);
}
.editorial-hero .editorial-actions{
	display:flex;
	flex-wrap:wrap;
	gap:12px;
	margin-top:30px;
	transform:translateY(22px);
}
.editorial-hero .editorial-actions a{
	min-height:54px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:11px 24px;
	border-radius:4px;
	text-decoration:none;
	font-weight:800;
	transition:.23s ease;
}
.editorial-hero .editorial-actions a:hover{transform:translateY(-3px);}
.editorial-hero .editorial-primary{background:#e9c84b;color:#153d31;}
.editorial-hero .editorial-secondary{
	border:1px solid rgba(255,255,255,.65);
	background:rgba(4,50,42,.5);
	color:#fff;
}

/* Hero animation */
.editorial-hero.is-visible .editorial-kicker{animation:yokoHeroFadeUp .8s ease .25s forwards;}
.editorial-hero.is-visible .editorial-copy h1 span{animation:yokoHeroSlide .9s ease .52s forwards;}
.editorial-hero.is-visible .editorial-copy h1 strong{
	animation:yokoHeroFadeUp 1s cubic-bezier(.18,.78,.22,1) .75s forwards,yokoHeroGold 1.3s ease 1.8s forwards;
}
.editorial-hero.is-visible .editorial-copy h1 strong::after{animation:yokoHeroShine 1.2s ease 2s forwards;}
.editorial-hero.is-visible .editorial-lead{animation:yokoHeroFadeUp .85s ease 1.08s forwards;}
.editorial-hero.is-visible .editorial-actions{animation:yokoHeroFadeUp .8s ease 1.34s forwards;}

@keyframes yokoHeroFadeUp{to{opacity:1;transform:none;}}
@keyframes yokoHeroSlide{to{opacity:1;transform:none;}}
@keyframes yokoHeroGold{
0%{color:#fff;text-shadow:0 8px 30px rgba(0,0,0,.26);}
45%{color:#fff8b8;text-shadow:0 0 12px rgba(255,240,120,.65),0 8px 30px rgba(0,0,0,.26);}
100%{color:#ffd84d;text-shadow:0 0 18px rgba(255,221,70,.45),0 8px 30px rgba(0,0,0,.26);}
}
@keyframes yokoHeroShine{
0%{transform:translateX(-170%) skewX(-25deg);opacity:0;}
15%,85%{opacity:1;}
100%{transform:translateX(170%) skewX(-25deg);opacity:0;}
}

@media screen and (max-width:999.9px){
.editorial-hero{min-height:100svh;}
.editorial-hero .hero-background img{object-position:center;}
.editorial-hero .hero-dark-layer{
	background:
		linear-gradient(to bottom,rgba(2,35,32,.62),rgba(2,35,32,.18) 48%,rgba(2,30,28,.68)),
		linear-gradient(90deg,rgba(2,35,32,.4),transparent);
}
.editorial-hero .editorial-copy{
	width:100%;
	padding:105px 6vw 120px;
	text-align:center;
}
.editorial-hero .editorial-lead{
	margin-left:auto;
	margin-right:auto;
}
.editorial-hero .editorial-actions{justify-content:center;}
}

@media screen and (max-width:540px){
.editorial-hero .editorial-copy{padding:90px 20px;}
.editorial-hero .editorial-actions{
	display:grid;
	justify-items:center;
}
.editorial-hero .editorial-actions a{width:min(330px,90vw);}
}

/* =========================================================
 * Reduced motion
 * ========================================================= */
@media(prefers-reduced-motion:reduce){
.editorial-hero .editorial-kicker,
.editorial-hero .editorial-copy h1 span,
.editorial-hero .editorial-copy h1 strong,
.editorial-hero .editorial-lead,
.editorial-hero .editorial-actions{
	opacity:1!important;
	transform:none!important;
	animation:none!important;
	transition:none!important;
}
.editorial-hero .editorial-copy h1 strong::after{display:none;}
}
/* =========================================================
 * 画像ライトボックス（.gallery 内の画像クリックで拡大）
 * JS: assets/js/theme.js
 * ========================================================= */
#case-lightbox{position:fixed; inset:0; z-index:999999; display:none;}
#case-lightbox.is-open{display:block;}
#case-lightbox .lb-backdrop{position:absolute; inset:0; background:rgba(0,0,0,.7);}
#case-lightbox .lb-inner{position:absolute; inset:0; display:grid; place-items:center; padding:24px;}
#case-lightbox .lb-img{
  max-width:min(1200px, 92vw);
  max-height:86vh;
  width:auto;
  height:auto;
  border-radius:12px;
  background:#fff;
  box-shadow:0 10px 40px rgba(0,0,0,.35);
}
#case-lightbox .lb-close{
  position:absolute;
  top:16px;
  right:16px;
  width:44px;
  height:44px;
  border:none;
  border-radius:999px;
  background:rgba(255,255,255,.9);
  font-size:28px;
  line-height:44px;
  cursor:pointer;
}
/* ライトボックス表示中はスクロール禁止 */
html.lb-noscroll, html.lb-noscroll body{overflow:hidden;}
