/*
Theme Name: jnisa
Theme URI: https://jnisa.jp/
Author: 一般社団法人 海外ネイル協会
Description: 一般社団法人 海外ネイル協会（jnisa）オリジナルWordPressテーマ
Version: 1.0.0
*/

/* ------------------------------------------------
   FONTS
------------------------------------------------ */
@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600&family=Noto+Sans+JP:wght@400;700;900&family=Open+Sans:wght@400;500;600;700&family=Cinzel:wght@400;500;700&display=swap");

/* ------------------------------------------------
   RESET
------------------------------------------------ */
.config-error {
display:none!important;
}
* { box-sizing: border-box; }
*:focus { outline: none; }

html,body,div,span,object,iframe,
h1,h2,h3,h4,h5,h6,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,body { height:100vh; }
html { font-size:62.5%; }

body {
  font: normal normal normal 1.6em/1 "Open Sans","游ゴシック体",YuGothic,"游ゴシック Medium","Yu Gothic Medium","游ゴシック","Yu Gothic","Hiragino Kaku Gothic ProN","メイリオ",Meiryo,sans-serif;
  letter-spacing:0.1em;
  color:#4d4d4d;
  word-break:break-all;
  overflow-x:hidden;
}
@media screen and (max-width:767px) {
  body { font-size:1.4rem; overflow-x:hidden; }
}

article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section { display:block; }
ul,dl,ol { list-style:none; }
h1,h2,h3,h4,h5 { font-weight:normal; }
blockquote,q { quotes:none; }

a {
  margin:0; padding:0; font-size:100%; vertical-align:baseline;
  background:transparent; text-decoration:none; color:#000;
}
a:hover { opacity:.85; }

img { border-style:none; height:auto; max-width:100%; vertical-align:middle; }
input,select { vertical-align:middle; }
button,input,optgroup,select,textarea {
  font:inherit; margin:0; padding:0; border:0; border-radius:0; background-color:transparent;
}
[type=submit],[type=button],button,select { cursor:pointer; }
[hidden] { display:none; }
table { border-collapse:collapse; border-spacing:0; }

/* ------------------------------------------------
   COLOR VARIABLES
------------------------------------------------ */
:root {
  --color-main:   #cc1039;
  --color-mid:    #d13047;
  --color-light:  #e46172;
  --color-pale:   #f9eaed;
  --color-dark:   #4d4d4d;
  --color-border: #e8c0c7;
}

/* ------------------------------------------------
   UTILITY
------------------------------------------------ */
.bg-gray  { background:#eee; }
.bg-gold  { background:var(--color-pale); }

.pc { display:block; }
@media screen and (max-width:767px) { .pc { display:none !important; } }
.sp { display:none; }
@media screen and (max-width:767px) { .sp { display:block !important; } }
.u-hidden-sp { display:block; }
@media screen and (max-width:767px) { .u-hidden-sp { display:none !important; } }

/* ------------------------------------------------
   TYPOGRAPHY
------------------------------------------------ */
.c-ttl {
  font-family:"Cormorant Garamond","游明朝体",YuMincho,"游明朝","Yu Mincho","ヒラギノ明朝 ProN W3","Hiragino Mincho ProN W3",HiraMinProN-W3,"ヒラギノ明朝 ProN","Hiragino Mincho ProN","ヒラギノ明朝 Pro","Hiragino Mincho Pro","HGS明朝E",serif;
  font-size:3.2rem;
  letter-spacing:0.1em;
  line-height:1;
  margin-bottom:40px;
}
@media screen and (max-width:767px) { .c-ttl { font-size:2.4rem; margin-bottom:20px; } }

.c-ttl-left   { text-align:left; }
.c-ttl-center { text-align:center; }
.c-ttl-right  { text-align:right; }

.c-sub-ttl {
  font-family:"Cormorant Garamond","游明朝体",YuMincho,"游明朝","Yu Mincho","ヒラギノ明朝 ProN W3","Hiragino Mincho ProN W3",HiraMinProN-W3,"ヒラギノ明朝 ProN","Hiragino Mincho ProN","ヒラギノ明朝 Pro","Hiragino Mincho Pro","HGS明朝E",serif;
  font-size:2.4rem;
  letter-spacing:0.1em;
  line-height:1.5;
  margin-bottom:20px;
}
@media screen and (max-width:767px) { .c-sub-ttl { font-size:1.8rem; margin-bottom:20px; } }

.c-headline-border {
  position:relative;
  padding-bottom:48px;
}
.c-headline-border::before {
  content:"";
  position:absolute;
  left:50%;
  bottom:24px;
  transform:translateX(-50%);
  display:block;
  width:48px;
  height:2px;
  background:var(--color-main);
}
@media screen and (max-width:767px) { .c-headline-border::before { width:32px; } }

.c-paragraph {
  font-size:1.6rem;
  line-height:2;
  color:#4d4d4d;
}
@media screen and (max-width:767px) { .c-paragraph { font-size:1.4rem; } }

@media screen and (min-width:768px) and (max-width:1024px) {
  .home .c-ttl { font-size:2.4vw; }
  .home .c-sub-ttl { font-size:2vw; }
  .home .c-paragraph { font-size:1.4vw; }
}

.c-text-link { text-decoration:underline; }
.c-text-link:hover { opacity:.7; }
.c-text-indent { display:inline-block; padding-left:1em; text-indent:-1em; }

/* ------------------------------------------------
   SECTION
------------------------------------------------ */
.c-section {
  padding:120px 64px;
  background-size:cover;
  background-position:center;
}
@media screen and (max-width:1024px) { .c-section { padding:88px 64px; } }
@media screen and (max-width:767px)  { .c-section { padding:64px 20px; } }

.c-inner       { max-width:1080px; width:100%; margin:0 auto; }
.c-inner-small { max-width:960px;  width:100%; margin:0 auto; }

/* ------------------------------------------------
   DL / DT / DD
------------------------------------------------ */
.c-summary-list { line-height:1.8; }
.c-summary-list-row {
  display:flex;
  padding:32px 0;
  border-bottom:1px solid #eee;
}
@media screen and (max-width:1024px) { .c-summary-list-row { display:block; } }
@media screen and (max-width:767px)  { .c-summary-list-row { padding:20px 0; } }
.c-summary-list-row:first-child { border-top:1px solid #eee; }
.c-summary-list-ttl {
  min-width:180px;
  color:#555;
  padding-right:24px;
}
@media screen and (max-width:1024px) { .c-summary-list-ttl { margin-bottom:10px; } }
@media screen and (max-width:767px)  { .c-summary-list-ttl { min-width:96px; font-weight:600; } }

/* ------------------------------------------------
   SCROLL ARROW
------------------------------------------------ */
.c-scroll {
  display:inline-block;
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  bottom:-60px;
  z-index:2;
  padding:10px 0px 140px;
  overflow:hidden;
  color:#fff;
  font-size:1.2rem;
  font-family:"Cormorant Garamond",serif;
  font-weight:700;
  line-height:1;
  letter-spacing:0.2em;
  text-transform:uppercase;
}
@media screen and (max-width:767px) { .c-scroll { bottom:-40px; padding:10px 0 100px; font-size:1rem; } }
.c-scroll::before,.c-scroll::after {
  content:"";
  position:absolute;
  bottom:0;
  left:50%;
  width:1px;
  height:120px;
}
@media screen and (max-width:767px) { .c-scroll::before,.c-scroll::after { height:80px; } }
.c-scroll::before { background:rgba(255,255,255,0.3); }
.c-scroll::after  { background:#fff; animation:arrow 2s cubic-bezier(1,0,0,1) infinite; }

@keyframes arrow {
  0%    { transform:scale(1,0); transform-origin:0 0; }
  50%   { transform:scale(1,1); transform-origin:0 0; }
  50.1% { transform:scale(1,1); transform-origin:0 100%; }
  100%  { transform:scale(1,0); transform-origin:0 100%; }
}

/* ------------------------------------------------
   BUTTON
------------------------------------------------ */
.c-btn { text-align:center; margin-top:48px; }
@media screen and (max-width:767px) { .c-btn { margin-top:32px; } }

.c-btn-body {
  position:relative;
  display:inline-flex;
  justify-content:center;
  align-items:center;
  font-family:"游明朝体",YuMincho,"游明朝","Yu Mincho","ヒラギノ明朝 ProN W3","Hiragino Mincho ProN W3",HiraMinProN-W3,"ヒラギノ明朝 ProN","Hiragino Mincho ProN","ヒラギノ明朝 Pro","Hiragino Mincho Pro","HGS明朝E",serif;
  font-size:1.6rem;
  line-height:1;
  color:#fff;
  letter-spacing:0.1em;
  text-align:center;
  max-width:320px;
  width:100%;
  height:60px;
  margin:0 auto;
  background:var(--color-main);
  border:2px solid var(--color-main);
  overflow:hidden;
  z-index:0;
  transition:0.3s;
}
@media screen and (max-width:1024px) { .c-btn-body { font-size:1.5vw; } }
@media screen and (max-width:767px)  { .c-btn-body { font-size:1.4rem; font-weight:600; line-height:2; letter-spacing:0.04em; max-width:unset; height:50px; } }

.c-btn-body:hover {
  background-color:#fff;
  border:2px solid var(--color-main);
  color:var(--color-main);
  opacity:1;
}

.c-btn.-white .c-btn-body {
  background:transparent;
  border-color:#fff;
}
.c-btn.-white .c-btn-body:hover { color:#4d4d4d; }
.c-btn.c-btn-left .c-btn-body { margin:0; }

.c-btn-border {
  position:relative;
  display:inline-block;
  padding:10px;
  width:160px;
  border-radius:0;
  text-align:center;
}
@media screen and (max-width:767px) { .c-btn-border { width:100%; } }
.c-btn-border::after {
  position:absolute;
  bottom:0; left:0;
  content:"";
  width:100%; height:2px;
  background:var(--color-main);
  transform:scale(0.1,1);
  transform-origin:center top;
  transition:transform 0.5s;
}
.c-btn-border:hover::after { transform:scale(0.3,1); }

/* ------------------------------------------------
   ARROW
------------------------------------------------ */
.c-arrow {
  width:91%;
  height:11px;
  border-bottom:2px solid var(--color-main);
  border-right:3px solid var(--color-main);
  transform:skew(40deg);
}
@media screen and (max-width:767px) { .c-arrow { width:98%; } }
.c-arrow.c-arrow-left {
  border-right:none;
  border-left:3px solid var(--color-main);
  transform:skew(-40deg);
}

/* ------------------------------------------------
   MAP
------------------------------------------------ */
.c-map { width:100%; height:560px; }
@media screen and (max-width:767px) { .c-map { height:300px; } }
.c-map iframe { width:100% !important; height:100% !important; }

/* ------------------------------------------------
   ARTICLES
------------------------------------------------ */
.c-article-list { display:flex; flex-wrap:wrap; margin:0 -24px; }
.c-article-item { width:33.333%; padding:0 24px; margin-bottom:48px; }
@media screen and (max-width:1024px) { .c-article-item { width:50%; } }
@media screen and (max-width:767px)  { .c-article-item { width:100%; margin-bottom:40px; } }
.c-article-item:hover .c-article-figure-img { transform:scale(1.15); }
.c-article-figure {
  overflow:hidden;
  width:100%;
  padding:62.25% 0 0;
  position:relative;
  transition:transform ease 1.5s;
}
.c-article-figure-img {
  position:absolute; top:0; left:0;
  width:100%; height:100%;
  object-fit:cover;
  transition:transform ease 1.5s;
}
.c-article-caption { padding-top:16px; }
.c-article-meta {
  font-size:1.3rem;
  color:#4d4d4d;
  display:flex;
  align-items:center;
  margin-bottom:8px;
}
.c-article-cat {
  font-size:1.4rem;
  border-left:1px solid #999;
  padding-left:10px;
  margin-left:10px;
}
.c-article-time {
  position:relative;
  font-family:"Cinzel",serif;
  font-size:1.6rem;
}
.c-article-ttl {
  color:#4d4d4d;
  font-size:1.6rem;
  line-height:1.8;
  word-break:break-all;
}

/* ------------------------------------------------
   ANIMATIONS
------------------------------------------------ */
/* Loader spinner */
.sk-circle { width:40px; height:40px; position:absolute; left:50%; bottom:-100px; transform:translate(-50%,-50%); }
.sk-circle .sk-child { width:100%; height:100%; position:absolute; left:0; top:0; }
.sk-circle .sk-child:before { content:""; display:block; margin:0 auto; width:15%; height:15%; background-color:var(--color-main); border-radius:100%; animation:sk-circleBounceDelay 1.2s infinite ease-in-out both; }
.sk-circle .sk-circle2 { transform:rotate(30deg); }
.sk-circle .sk-circle3 { transform:rotate(60deg); }
.sk-circle .sk-circle4 { transform:rotate(90deg); }
.sk-circle .sk-circle5 { transform:rotate(120deg); }
.sk-circle .sk-circle6 { transform:rotate(150deg); }
.sk-circle .sk-circle7 { transform:rotate(180deg); }
.sk-circle .sk-circle8 { transform:rotate(210deg); }
.sk-circle .sk-circle9 { transform:rotate(240deg); }
.sk-circle .sk-circle10 { transform:rotate(270deg); }
.sk-circle .sk-circle11 { transform:rotate(300deg); }
.sk-circle .sk-circle12 { transform:rotate(330deg); }
.sk-circle .sk-circle2:before  { animation-delay:-1.1s; }
.sk-circle .sk-circle3:before  { animation-delay:-1s; }
.sk-circle .sk-circle4:before  { animation-delay:-0.9s; }
.sk-circle .sk-circle5:before  { animation-delay:-0.8s; }
.sk-circle .sk-circle6:before  { animation-delay:-0.7s; }
.sk-circle .sk-circle7:before  { animation-delay:-0.6s; }
.sk-circle .sk-circle8:before  { animation-delay:-0.5s; }
.sk-circle .sk-circle9:before  { animation-delay:-0.4s; }
.sk-circle .sk-circle10:before { animation-delay:-0.3s; }
.sk-circle .sk-circle11:before { animation-delay:-0.2s; }
.sk-circle .sk-circle12:before { animation-delay:-0.1s; }
@keyframes sk-circleBounceDelay {
  0%,80%,100% { transform:scale(0); }
  40%         { transform:scale(1); }
}

/* Scroll animations */
.js-animate  { opacity:0; }
.js-fade-in  { opacity:0; }
.js-fade-in.is-animated { animation:fade-in 1.2s ease 0s forwards; }
@keyframes fade-in { 0% { opacity:0; } 100% { opacity:1; } }

.js-fade-in-right.is-animated { animation:fade-in-right 1.2s ease 0s forwards; }
@keyframes fade-in-right {
  0%   { transform:translateX(-30px); opacity:0; }
  100% { transform:translateX(0); opacity:1; }
}

.js-zoom-in-wrap { overflow:hidden; }
.js-zoom-in.is-animated { animation:zoom-in 2s cubic-bezier(0.075,0.82,0.165,1) forwards; }
@keyframes zoom-in {
  0%   { transform:scale(1.2); }
  100% { transform:scale(1); }
}

[class^=js-gradually-in],[class*=" js-gradually-in"] { display:table-cell; }
.js-gradually-in-left,
.js-gradually-in-right {
  position:relative; overflow:hidden; visibility:hidden;
}
.js-gradually-in-left.is-animated,
.js-gradually-in-right.is-animated { visibility:visible; }
.js-gradually-in-left.is-animated::before,
.js-gradually-in-right.is-animated::before {
  content:"";
  position:absolute; top:0; left:0; right:0; bottom:0;
  background:#fff;
  pointer-events:none;
  z-index:2;
  animation:transform 1s cubic-bezier(0.39,0.575,0.565,1) forwards;
}
.js-gradually-in-left.is-animated::before  { animation-name:gradually-in-left; }
.js-gradually-in-right.is-animated::before { animation-name:gradually-in-right; }
.bg-gold .js-gradually-in-left.is-animated::before  { background:var(--color-pale); }
@keyframes gradually-in-left  { 100% { transform:translateX(100%); } }
@keyframes gradually-in-right { 100% { transform:translateX(-100%); } }

/* Accordion */
.js-accordion-btn { position:relative; cursor:pointer; transition:0.3s; }

@media screen and (max-width:767px) {
  .js-accordion-btn::before,.js-accordion-btn::after { top:28px; right:15px; width:12px; }
}
.js-accordion-btn::before { transform:rotate(90deg); }
.js-accordion-btn + .js-accordion-target { display:none; }
.js-accordion-btn.is-active::before { opacity:0; transform:rotate(270deg); }
.js-accordion-btn.is-active + .js-accordion-target { display:flex; }

/* ================================================
   LOADER
================================================ */
body[data-status=loading] .l-loader { pointer-events:auto; opacity:1; }
body[data-status=loading] .l-loader-inner { opacity:1; }

.l-loader {
  position:fixed; z-index:99999;
  top:0; right:0; bottom:0; left:0;
  pointer-events:none; opacity:0;
  transition:0.5s ease-in-out;
}
.l-loader-bg {
  position:absolute; z-index:99999;
  top:0; right:0; bottom:0; left:0;
  background:#fff;
  transition:transform cubic-bezier(0.19,1,0.22,1) 1.5s;
}
.l-loader-inner {
  position:absolute; z-index:999999;
  top:50%; left:50%;
  opacity:0;
  transition:opacity cubic-bezier(0.19,1,0.22,1) 1.5s;
  transform:translate(-50%,-50%);
}

.l-loader-logo { max-width:280px; }
.l-loader-logo-img { width:100%; height:auto; }
.l-loader.is-hidden { opacity:0 !important; pointer-events:none; }
.l-wrapper.is-loaded { /* nothing special */ }

/* ================================================
   LAYOUT
================================================ */
.l-wrapper { overflow:hidden; }
.l-header {
  position:fixed; z-index:1000;
  top:0; right:0; left:0;
}
.l-main { position:relative; }
.l-footer { width:100%; }

/* ================================================
   HEADER
================================================ */
.p-header {
  height:88px;
  color:#222;
  align-items:center;
  display:flex;
  justify-content:space-between;
  padding:0 16px;
  background:rgba(255,255,255,0.97);
  box-shadow:0 2px 12px rgba(0,0,0,0.08);
  transition:0.3s;
}
@media screen and (max-width:1024px) { .p-header { height:64px; padding:0 16px 0 0; } }
@media screen and (max-width:767px)  { .p-header { padding-right:0; } }

.l-header.is-scrolled .p-header { box-shadow:0 2px 20px rgba(0,0,0,0.14); }

.p-header-logo { width:165px; display:flex; align-items:center; gap:10px; }
@media screen and (max-width:1024px) { .p-header-logo { width:145px; } }
.p-header-logo-img { max-height:60px; }
@media screen and (max-width:1024px) { .p-header-logo-img { max-height:40px; } }
.p-header-logo-txt {
  font-family:"Noto Sans JP",sans-serif;
  font-size:1.1rem;
  font-weight:500;
  color:#333;
  line-height:1.5;
  white-space:nowrap;
}
@media screen and (max-width:1024px) { .p-header-logo-txt { display:none; } }

/* NAV — hidden by default, full-screen overlay menu only */
.p-gnav { display:none; }

.p-header-right { display:flex; align-items:center; gap:0; }

.p-global-header-sp-block {
    position: absolute;
    width: 64px;
    height: 64px;
    display: block;
    transition: 0.3s;
    right: 180px;
}
.p-burger-icon {
  position:absolute;
  width:100%; height:100%;
  opacity:1; cursor:pointer;
}
.p-burger-icon:hover .p-burger-icon-line { background:#999; }
.p-burger-icon-line {
  position:absolute;
  top:calc(50% - 2px);
  left:30%;
  display:inline-block;
  width:40%; height:2px;
  margin:auto;
  background:#222;
  transition:cubic-bezier(0.19,1,0.22,1) 0.4s;
}
.p-burger-icon-line:first-child { transform:translateY(-4px); }
.p-burger-icon-line:last-child  { transform:translateY(4px); }

.p-header-contact {}
.p-header-contact-link {
  font-family:"游明朝体",YuMincho,"游明朝","Yu Mincho",serif;
  font-size:1.5rem;
  letter-spacing:0.1em;
  width:140px; height:60px;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  background:var(--color-main);
  color:#fff !important;
  transition:0.3s;
}
@media screen and (max-width:1024px) { .p-header-contact-link { height:50px; width:120px; } }
@media screen and (max-width:767px) {
  .p-header-contact-link { width:64px; height:64px; flex-flow:column; }
}
.p-header-contact-link:hover { background:var(--color-mid); opacity:1; }
.p-header-contact-link-txt { display:flex; align-items:baseline; justify-content:center; }
.p-header-contact-icon { font-size:1.8rem; margin-right:8px; }
@media screen and (max-width:767px) { .p-header-contact-icon { font-size:2.2rem; margin-right:0; } }
.p-header-contact-ttl { font-size:1.4rem; letter-spacing:0.1em; }
@media screen and (max-width:767px) { .p-header-contact-ttl { font-size:0.9rem; margin-top:4px; } }

/* ================================================
   SP MENU (Full screen, slides from top)
================================================ */
body.menu-open { position:fixed; width:100%; }
body.menu-open .p-sp-menu { visibility:visible; pointer-events:auto; }
body.menu-open .p-sp-menu-bg { transform:translateY(0); }
body.menu-open .p-sp-menu-container { opacity:1; }
body.menu-open .p-sp-menu-item .p-sp-menu-link { opacity:1; transform:translateY(0); }

.p-sp-menu {
  position:fixed; z-index:9999;
  top:0; right:0; bottom:0; left:0;
  width:100%;
  color:#4d4d4d;
  pointer-events:none;
  visibility:hidden;
}
.p-sp-menu-bg {
  position:absolute; z-index:1;
  top:0; right:0; bottom:0; left:0;
  background:#fff;
  transition:transform cubic-bezier(0.19,1,0.22,1) 0.8s;
  transform:translateY(-100%);
}
.p-sp-menu-container {
  position:relative; z-index:2;
  overflow-y:auto;
  height:100%;
  opacity:0;
  transition:opacity 0.6s 0.3s;
}
.p-sp-menu-btn {
  position:absolute;
  right: 180px; top:12px;
  width:64px; height:64px;
  border:0; background:none; z-index:100;
}
.p-sp-menu-btn-line {
  position:absolute;
  top:50%; left:50%;
  width:30px; height:2px;
  background:#000;
}
.p-sp-menu-btn-line:first-child { transform:translate(-50%,-50%) rotate(45deg); }
.p-sp-menu-btn-line:last-child  { transform:translate(-50%,-50%) rotate(-45deg); }

.p-sp-menu-inner {
  display:flex; align-items:center; justify-content:center;
  flex-flow:column;
  max-width:800px; height:100%;
  margin:0 auto;
  padding:88px 0 64px;
  text-align:center;
}
.p-sp-menu-items { display:flex; flex-wrap:wrap; justify-content:flex-start; }
.p-sp-menu-link {
  font-family:"Cormorant Garamond","游明朝体",YuMincho,serif;
  position:relative;
  display:inline-block;
  opacity:0;
  transform:translateY(-20%);
  transition:opacity 0.4s, transform 0.5s cubic-bezier(0.19,1,0.22,1);
  padding:8px 16px;
  font-size:1.6rem;
  color:#4d4d4d;
  letter-spacing:0.12em;
  white-space:nowrap;
  cursor:pointer;
}
.p-sp-menu-link:hover { color:var(--color-main); opacity:1; }
.p-sp-menu-item {
  position:relative; display:flex; align-items:center; justify-content:center;
  width:50%; padding:10px;
}
@media screen and (max-width:767px) { .p-sp-menu-item { padding:6px; } }
.p-sp-menu-contact { margin-top:24px; }
.p-sp-menu-contact-link {
  font-family:"游明朝体",YuMincho,serif;
  font-size:1.5rem;
  color:#fff;
  letter-spacing:0.15em;
  width:280px; height:60px;
  display:flex; align-items:center; justify-content:center;
  background-color:var(--color-main);
  border:2px solid var(--color-main);
  transition:0.3s; cursor:pointer;
}
.p-sp-menu-contact-link:hover { color:var(--color-main); background-color:#fff; border-color:var(--color-main); opacity:1; }
.p-sp-menu-contact-item-mail-txt { display:flex; align-items:center; gap:8px; }

/* ================================================
   MODAL
================================================ */
body.modal-open { position:fixed; width:100%; }
.c-modal {
  position:fixed; z-index:10000;
  top:0; right:0; bottom:0; left:0;
  pointer-events:none;
  opacity:0; display:none;
  transition:opacity 0.3s ease;
  align-items:center; justify-content:center;
}
.c-modal.is-open { display:flex; pointer-events:auto; opacity:1; }
@media screen and (max-width:767px) { .c-modal { width:100%; padding:20px; } }
.c-modal__bg {
  position:absolute; z-index:0;
  top:0; right:0; bottom:0; left:0;
  background-color:rgba(0,0,0,0.5);
}
.c-modal__close {
  position:absolute;
  top:-40px; right:0;
  width:30px; height:30px;
  cursor:pointer; z-index:9999;
}
.c-modal__close::before,.c-modal__close::after {
  content:"";
  position:absolute; top:15px; right:0;
  width:30px; height:2px;
  background-color:#fff;
}
.c-modal__close::before { transform:rotate(45deg); }
.c-modal__close::after  { transform:rotate(-45deg); }
.c-modal__container {
  position:absolute; top:50%; left:50%;
  z-index:1;
  transform:translate(-50%,-50%);
  max-width:400px; width:100%;
}
@media screen and (max-width:767px) { .c-modal__container { width:calc(100% - 40px); } }
.c-modal__inner {
  position:relative;
  padding:60px 40px;
  background-color:#fff;
}
@media screen and (max-width:767px) { .c-modal__inner { max-width:100%; padding:32px 20px; } }
.p-modal-reserve { display:flex; flex-direction:column; align-items:center; }
.p-modal-reserve-btn { position:relative; margin-top:0; width:100%; }
.p-modal-reserve-btn:not(:first-child) { margin-top:20px; }
.p-modal-reserve-btn-link {
  font-family:"游明朝体",YuMincho,serif;
  font-size:1.5rem;
  letter-spacing:0.1em;
  max-width:320px; width:100%;
  padding:12px;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; line-height:1.5;
}
.p-modal-reserve-btn-icon { position:absolute; left:24px; font-size:1.8rem; }
.p-modal-reserve-btn-ttl { margin-left:8px; font-size:1.5rem; text-align:center; }

/* ================================================
   FOOTER
================================================ */
.p-global-footer { display:flex; justify-content:space-between; margin:0 auto; }
@media screen and (max-width:767px) { .p-global-footer { flex-flow:column; } }
.p-global-footer-inner {
  max-width:1200px; width:100%;
  padding:80px 64px;
  margin:0 auto;
}
@media screen and (max-width:1024px) { .p-global-footer-inner { padding:60px 40px; } }
@media screen and (max-width:767px)  { .p-global-footer-inner { padding:40px 20px; } }

.p-footer-contact {
  position:relative;
  padding:130px 20px;
}
@media screen and (max-width:767px) { .p-footer-contact { padding:64px 20px; } }
.p-footer-contact-bg {
  position:absolute; z-index:-1;
  top:0; right:0; bottom:0; left:0;
  background-size:cover !important;
  background-position:center;
  pointer-events:none;
}
.p-footer-contact-bg::before {
  position:absolute; top:0; left:0;
  width:100%; height:100%;
  background-color:rgba(180,20,40,0.55);
  z-index:1; content:"";
}
.p-footer-contact-inner { position:relative; z-index:2; }
.p-footer-contact-list {
  display:flex; justify-content:center;
  flex-wrap:wrap;
  gap:20px;
}
.p-footer-contact-item { width:calc(40% - 20px); }
@media screen and (max-width:1024px) { .p-footer-contact-item { width:70%; } }
@media screen and (max-width:767px)  { .p-footer-contact-item { width:100%; } }
.p-footer-contact-btn { margin-top:0; }
.p-footer-contact-btn-link {
  color:var(--color-main);
  background:rgba(255,255,255,0.92);
  font-size:2rem;
  line-height:1.5;
  max-width:unset; width:100%; height:88px;
  display:flex; justify-content:center; align-items:center;
  letter-spacing:0.08em; padding:16px;
  border:none; cursor:pointer; transition:0.3s;
}
.p-footer-contact-btn-link:hover { opacity:0.85; background:#fff; color:var(--color-main); }
.p-footer-contact-item-mail-txt { display:flex; align-items:center; gap:8px; }
.p-footer-contact-item-mail-icon { font-size:2rem; }

.p-footer-information { display:flex; flex-flow:column; justify-content:space-between; }
.p-footer-nav-list { display:flex; flex-wrap:wrap; width:100%; }
.p-footer-nav-item { width:20%; padding:15px; }
@media screen and (max-width:767px) { .p-footer-nav-item { width:50%; padding:15px 0; } }
.p-footer-nav-link {
  font-family:"Cormorant Garamond","游明朝体",YuMincho,serif;
  width:100%; display:block;
  line-height:1.5; font-size:1.4rem;
  transition:0.2s; color:#4d4d4d;
}
.p-footer-nav-link:hover { color:var(--color-main); opacity:1; }
.p-footer-nav-link-txt { display:block; }
.p-copy {
  display:block;
  font-family:"Noto Sans JP","游ゴシック体",YuGothic,sans-serif;
  font-size:1.2rem;
  text-align:center;
  margin-top:60px;
  line-height:1.7;
  color:#888;
}

/* ================================================
   MAIN VISUAL / HERO
================================================ */
.p-main-header {
  position:relative;
  height:100vh;
  min-height:600px;
  overflow:hidden;
}
.p-main-visual {
  position:absolute;
  inset:0;
  width:100%; height:100%;
}
.p-main-visual-bg {
  position:absolute; inset:0;
  background-size:cover;
  background-position:center;
  transform:scale(1.05);
  transition:transform 2s ease;
}
.p-main-visual-bg.is-loaded { transform:scale(1); }
/* メインビジュアル 3枚クロスフェード */
.p-main-visual-slide {
  position:absolute; inset:0;
  background-size:cover;
  background-position:center;
  opacity:0;
  transition:opacity 1.5s ease;
  will-change:opacity;
}
.p-main-visual-slide.is-active {
  opacity:1;
  z-index:1;
}
.p-main-visual .overlay::after {
  position:absolute; top:0; left:0;
  display:block; width:100%; height:100%;
  content:"";
  background:rgba(255,255,255,0.3);
}
.p-main-visual-catchcopy {
  font-family:"Cormorant Garamond","游明朝体",YuMincho,serif;
  position:absolute;
  top:50%; left:50%;
  transform:translate(-50%,-50%);
  color:#fff;
  text-align:center;
  z-index:3;
  width:100%;
}
.p-main-visual-catchcopy-link { display:block; }
.p-main-visual-catchcopy-img {
  max-width:280px; max-height:200px;
  width:auto; height:auto;
  filter:brightness(0) invert(1) drop-shadow(0 2px 8px rgba(0,0,0,0.4));
}
@media screen and (max-width:767px) { .p-main-visual-catchcopy-img { max-width:180px; } }
.p-main-visual-tagline {
  font-family:"Cormorant Garamond",serif;
  font-size:1.4rem;
  letter-spacing:0.3em;
  color:#fff;
  margin-top:20px;
  text-shadow:0 1px 4px rgba(0,0,0,0.5);
}
@media screen and (max-width:767px) { .p-main-visual-tagline { font-size:1.1rem; letter-spacing:0.15em; } }

/* ================================================
   INTRO SECTION
================================================ */
.p-home-intro { position:relative; color:#4d4d4d; }
.p-home-intro-inner {
  padding:100px 0 0;
  display:flex;
  flex-wrap:wrap;
}
@media screen and (max-width:767px) { .p-home-intro-inner { flex-flow:column; padding:64px 0 0; } }

.p-home-intro-thumb { width:47%; }
@media screen and (max-width:767px) { .p-home-intro-thumb { width:100%; padding:0 20px; } }
.p-home-intro-img {
  width:100%; height:100%;
  object-fit:cover;
  display:block;
}

.p-home-intro-content {
  width:50%;
  padding:0 8vw 0 5vw;
  display:flex;
  flex-flow:column;
  justify-content:center;
}
@media screen and (max-width:767px) { .p-home-intro-content { width:100%; padding:24px 20px 0; } }
.p-home-intro-content-inner { width:100%; }
.p-home-intro-ttl { line-height:1.5; }


.p-home-intro-txt-more { margin-top:2em; }

/* Intro links row — FULL WIDTH, with image overlay */
.p-home-intro-links {
  width:100%;
  padding:80px 0 0;
}
@media screen and (max-width:767px) { .p-home-intro-links { padding:40px 0 0; } }
.p-home-intro-list {
  display:flex;
  justify-content:space-between;
  width:100%;
  margin:0;
}
@media screen and (max-width:767px) { .p-home-intro-list { flex-wrap:wrap; } }
.p-home-intro-item {
  width:calc(25% - 0px);
  position:relative;
  overflow:hidden;
}
@media screen and (max-width:767px) {
  .p-home-intro-item { width:calc(50%); }
  .p-home-intro-item:nth-child(1),.p-home-intro-item:nth-child(2) { margin-bottom:0; }
}

.p-home-intro-link {
  position:relative;
  display:block;
  overflow:hidden;
  text-align:center;
}
.p-home-intro-link::before {
  content:"";
  position:absolute; inset:0;
  display:block;
  background-color:rgba(180,20,40,0.55);
  z-index:1;
  transition:background-color 0.3s;
}
.p-home-intro-link:hover::before { background-color:rgba(180,20,40,0.7); opacity:1; }
.p-home-intro-item-figure {
  padding-top:100%; /* square */
  overflow:hidden;
  position:relative;
  transition:transform ease 1.5s;
}
.p-home-intro-item-figure .c-article-figure-img {
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  transition:transform ease 1.5s;
}
.p-home-intro-link:hover .p-home-intro-item-figure { transform:scale(1.08); }

.p-home-intro-cnt {
  position:absolute; inset:0;
  display:flex;
  justify-content:center;
  align-items:center;
  flex-flow:column;
  z-index:3;
}
.p-home-intro-item-ttl {
  display:flex;
  flex-flow:column;
  align-items:center;
  color:#fff;
  line-height:1;
  margin-bottom:0;
}
.p-home-intro-item-ttl .c-headline-border {
  padding-bottom:40px;
  color:#fff;
}
.p-home-intro-item-ttl .c-headline-border::before {
  background-color:#fff;
  bottom:20px;
}
.p-home-intro-item-txt {
  color:#fff;
  font-size:1.4rem;
  line-height:1.5;
}
@media screen and (max-width:1024px) { .p-home-intro-item-txt { font-size:1.3vw; } }
@media screen and (max-width:767px)  { .p-home-intro-item-txt { font-size:1.2rem; } }

/* ================================================
   MENU SECTION
================================================ */
.p-home-menu {
  position:relative;
  background-size:cover;
  background-position:center;
}
.p-home-menu-inner {
  padding:120px 0;
  margin:0 auto;
}
@media screen and (max-width:767px) { .p-home-menu-inner { padding:0 0 64px; } }

.p-home-menu-list {
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
}
.p-home-menu-item {
  position:relative;
  width:100%;
}
@media screen and (max-width:767px) { .p-home-menu-item { width:100%; margin-bottom:48px; } }
.p-home-menu-item + .p-home-menu-item { margin-top:10vw; }
@media screen and (max-width:767px) { .p-home-menu-item + .p-home-menu-item { margin-top:0; } }

/* Odd: image RIGHT, box overlaps from LEFT */
.p-home-menu-eyecatch {
  width:58%;
  margin-left:auto;
}
@media screen and (max-width:767px) { .p-home-menu-eyecatch { width:100%; } }
.p-home-menu-eyecatch-link { display:block; overflow:hidden; }
.p-home-menu-eyecatch-figure {
  padding-top:62%;
  position:relative;
  overflow:hidden;
  transition:transform ease 1.5s;
}
.p-home-menu-eyecatch-figure .p-home-menu-eyecatch-figure-img {
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  transition:transform ease 1.5s;
}
.p-home-menu-eyecatch-link:hover .p-home-menu-eyecatch-figure { transform:scale(1.05); }

/* Text box: absolutely positioned overlapping the image */
.p-home-menu-box {
  position:absolute;
  right:42%;
  bottom:-8%;
  width:680px;
  max-width:42%;
}
@media screen and (max-width:1550px) { .p-home-menu-box { max-width:45%; } }
@media screen and (max-width:1330px) { .p-home-menu-box { max-width:50%; } }
@media screen and (max-width:767px) {
  .p-home-menu-box {
    position:relative; right:unset; bottom:unset;
    max-width:100%; width:100%;
    padding:0 20px; margin-top:-20px;
  }
}
.p-home-menu-box-inner {
  box-shadow:0 0 20px rgba(51,51,51,0.16);
  transition:0.5s;
}
.p-home-menu-box-inner:hover { box-shadow:0 0 30px rgba(51,51,51,0.3); }
.p-home-menu-box-link {
  display:block;
  padding:4vw;
  background:#fff;
}
@media screen and (max-width:767px) { .p-home-menu-box-link { padding:30px; } }

.p-home-menu-box-ttl {
  color:var(--color-main);
  line-height:1.8;
  margin-bottom:0;
}
@media screen and (max-width:767px) { .p-home-menu-box-ttl { font-size:2rem; } }
.p-home-menu-box-ttl + .p-home-menu-box-desc { margin-top:20px; }

/* EVEN items: image LEFT, box RIGHT */
.p-home-menu-item:nth-child(even) .p-home-menu-eyecatch {
  order:1;
  margin-left:0;
  margin-right:auto;
}
.p-home-menu-item:nth-child(even) .p-home-menu-box {
  order:2;
  right:unset;
  left:42%;
  bottom:-8%;
}
@media screen and (max-width:767px) {
  .p-home-menu-item:nth-child(even) .p-home-menu-box { left:unset; }
}

/* Price item (box only, centered) */
.p-home-menu-item.is-box-only {
  width:1032px;
  max-width:54%;
  margin-left:auto;
  margin-right:auto;
  display:flex;
  justify-content:flex-start;
  margin-top:9.5vw;
}
@media screen and (max-width:767px) { .p-home-menu-item.is-box-only { max-width:100%; width:100%; margin-top:0; } }
.p-home-menu-item.is-box-only .p-home-menu-box {
  width:100%; max-width:100%;
  order:1; position:relative;
  top:0; left:0; right:unset; bottom:unset;
}
.p-home-menu-item-btn { text-align:left; }

/* Price table */
.p-home-menu-box-price-table {
  display:block;
  padding:0 4vw 4vw;
  background:#fff;
}
.p-home-menu-box-price-table-body {}
.p-home-menu-box-price-table-row {
  display:flex; flex-wrap:wrap; justify-content:flex-end;
  padding:16px 32px;
  border-top:1px dotted var(--color-border);
  border-bottom:none;
}
@media screen and (max-width:767px) { .p-home-menu-box-price-table-row { font-size:1.4rem; padding:16px 0; } }
.p-home-menu-box-price-table-row:first-child { border-top:none; }
.p-home-menu-box-price-table-row:last-child { border-bottom:1px dotted var(--color-border); }
.p-home-menu-box-price-table-ttl { width:45%;margin-top: 7px; }
@media screen and (max-width:767px) { .p-home-menu-box-price-table-ttl { width:100%; padding-right:0; } }
.p-home-menu-box-price-table-ttl.is-w100 { width:100%; padding-right:0; }
.p-home-menu-box-price-table-desc { width:20%; text-align:left;line-height:1.8; 
}
.p-home-menu-box-price-table-desc.is-price-only { width:55%; }
@media screen and (max-width:767px) { .p-home-menu-box-price-table-desc.is-price-only { width:100%; } }

/* ================================================
   VOICE SECTION
================================================ */
.p-home-voice { padding:0 0 80px; }
.p-home-voice-inner { max-width:1120px; margin:0 auto; padding:80px 64px; }
@media screen and (max-width:767px) { .p-home-voice-inner { padding:60px 20px; } }
.p-home-voice-ttl { color:var(--color-main); margin-bottom:50px; }
.p-home-voice-list { display:flex; flex-wrap:wrap; gap:40px; margin-bottom:40px; }
@media screen and (max-width:767px) { .p-home-voice-list { gap:24px; } }
.p-home-voice-item { flex:1; min-width:260px; }
.p-home-voice-figure { overflow:hidden; margin-bottom:16px; aspect-ratio:4/3; }
.p-home-voice-img { width:100%; height:100%; object-fit:cover; display:block; }
.p-home-voice-item-ttl {
  font-size:1.6rem;
  font-weight:700;
  color:#333;
  margin-bottom:10px;
  line-height:1.5;
}
.p-home-voice-item-txt { font-size:1.4rem; line-height:1.9; color:#666; }
.p-home-voice-btn { text-align:center; }

/* ================================================
   FAQ SECTION
================================================ */
.p-home-faq { position:relative; padding:80px 0; background:var(--color-pale); }
.p-home-faq-inner {
  max-width:1100px; width:100%;
  padding:0 64px;
  margin:0 auto;
  display:flex;
  justify-content:space-between;
  align-items:center;
}
@media screen and (max-width:767px) { .p-home-faq-inner { flex-flow:column; max-width:100%; width:100%; padding:0 20px 64px; } }
.p-home-faq-content { width:100%; }
@media screen and (max-width:767px) { .p-home-faq-content { width:100%; } }
.p-home-faq-ttl { color:var(--color-main); margin-bottom:40px; }
.p-home-faq-list { }
.p-home-faq-item { border-bottom:1px solid #e0d4d6; }
.p-home-faq-q {
  display:flex;
  align-items:center;
  gap:12px;
  padding:20px 40px 20px 0;
  font-size:1.5rem;
  color:#333;
  cursor:pointer;
  position:relative;
}
.p-home-faq-q::before,.p-home-faq-q::after {
  position:absolute;
  right:10px; top:50%;
  width:14px; height:2px;
  background:var(--color-main);
  content:""; transition:0.3s;
}
.p-home-faq-q::before { transform:translateY(-50%) rotate(90deg); }
.p-home-faq-q.is-active::before { opacity:0; }
.p-home-faq-q-icon {
  font-family:"Cormorant Garamond",serif;
  font-size:2rem;
  color:var(--color-main);
  line-height:1.4;
  min-width:24px;
}
.p-home-faq-a { display:none; padding:0 0 20px 0px; 
	gap:12px;
	line-height:1.7
}
.p-home-faq-a.is-open { display:block; }
.p-home-faq-a-inner { display:flex; gap:12px; }
.p-home-faq-a-icon {
  font-family:"Cormorant Garamond",serif;
  font-size:2rem;
  color:var(--color-main);
  line-height:1.4;
  min-width:24px;
}
.p-home-faq-contact { margin-top:30px; text-align:center; }
.p-home-faq-contact .c-btn { text-align:center!important; margin-top:0; }
.p-home-faq-arrow { display:block; width:40%; padding-left:40px; }
@media screen and (max-width:767px) { .p-home-faq-arrow { display:none; } }
.p-home-faq-link { display:block; padding:60px 0; }
.p-home-faq-link:hover .c-arrow { width:100%; opacity:.7; }
.p-home-faq-arrow .c-arrow { position:relative; height:20px; border-color:var(--color-main); transition:0.5s; }

/* ================================================
   RECRUIT / GALLERY SECTION
================================================ */
.p-home-recruit { position:relative; color:#4d4d4d; }
.p-home-recruit-inner {
  padding:120px 0;
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
}
@media screen and (max-width:767px) { .p-home-recruit-inner { flex-flow:column; padding:0 20px 64px; } }
.p-home-recruit-intro {
  width:100%; padding:0 0 120px;
  display:flex; justify-content:space-between; flex-wrap:wrap;
}
@media screen and (max-width:767px) { .p-home-recruit-intro { flex-flow:column; padding:0 0 64px; } }
.p-home-recruit-eyecatch { width:50%; }
@media screen and (max-width:767px) { .p-home-recruit-eyecatch { width:100%; order:1; } }
.p-home-director-figure {
  padding-top:75%;
  position:relative;
  overflow:hidden;
}
.p-home-recruit-img {
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  transition:0.3s;
}
.p-home-recruit-content {
  display:flex; align-items:flex-end;
  width:50%; height:100%; padding-top:4%;
}
@media screen and (max-width:767px) { .p-home-recruit-content { width:100%; order:2; padding-top:0; } }
.p-home-recruit-content-inner {
  display:flex; flex-flow:column; justify-content:center;
  width:100%; height:100%;
  padding:40px 8vw;
}
@media screen and (max-width:1200px) { .p-home-recruit-content-inner { padding:40px 64px; } }
@media screen and (max-width:767px)  { .p-home-recruit-content-inner { padding:30px; } }
.p-home-recruit-ttl { line-height:1.5; color:var(--color-main); margin-bottom:20px; }
.p-home-recruit-txt { line-height:2; font-size:1.5rem; }

.p-home-recruit-box {
  width:1006px; max-width:54%;
  margin-left:auto; margin-right:auto;
}
@media screen and (max-width:767px) { .p-home-recruit-box { max-width:100%; width:100%; } }
.p-home-recruit-box-inner {
  width:100%; max-width:100%;
  padding:4vw; background:#fff;
  box-shadow:0 0 20px rgba(51,51,51,0.16);
}
@media screen and (max-width:767px) { .p-home-recruit-box-inner { padding:30px; } }
.p-home-recruit-box-ttl {
  color:var(--color-main);
  margin-top:0;
  margin-bottom:3vw;
	text-align:center;
}
@media screen and (max-width:767px) { .p-home-recruit-box-ttl { margin-top:0; margin-bottom:20px; } }
.p-home-recruit-btn { text-align:center; }
.p-home-recruit-box-desc { font-size:1.6rem; line-height:2; margin-bottom:10px;text-align:center;}

/* ================================================
   ACCESS SECTION
================================================ */
.p-home-access { position:relative; padding:0 0 120px; }
@media screen and (max-width:767px) { .p-home-access { padding:0 20px 64px; } }
.p-home-access-bg {
  position:absolute; z-index:-1;
  bottom:0; left:0;
  width:100%; height:530px;
  background-size:cover;
  background-position:center;
}
@media screen and (max-width:767px) { .p-home-access-bg { height:200px; } }
.p-home-access-inner {
  width:1006px; max-width:54%;
  margin-left:auto; margin-right:auto;
  display:flex; flex-flow:column;
  padding:80px 80px;
  background:#fff;
  box-shadow:0 0 20px rgba(51,51,51,0.16);
}
@media screen and (max-width:1024px) { .p-home-access-inner { padding:6vw 4vw; } }
@media screen and (max-width:767px)  { .p-home-access-inner { padding:50px 30px; max-width:100%; width:100%; } }
.p-home-access-ttl { color:var(--color-main); margin-bottom:30px; }
.p-home-access-data { margin-bottom:40px; }
.p-home-access-data-dt { font-size:1.4rem; }
.p-home-access-data-dd { font-size:1.4rem; }
.p-home-access-map { margin-bottom:40px; }
.p-home-access-way { margin-bottom:30px; }
.p-home-access-way-ttl { color:var(--color-main); font-size:1.6rem; margin-bottom:10px; }
.p-home-access-way-txt { font-size:1.4rem; line-height:2; }
.p-home-access-btn .c-btn { text-align:left; }

/* ================================================
   BLOG SECTION
================================================ */
.p-home-blog { padding:80px 0; background:#f7f7f7; }
.p-home-blog-inner { max-width:1080px; margin:0 auto; padding:0 64px; }
@media screen and (max-width:767px) { .p-home-blog-inner { padding:0 20px; } }
.p-home-blog-ttl { color:#333; text-align:center; margin-bottom:50px; }
.p-home-blog-list { margin:0 -24px 0; }
.p-home-blog-item { width:33.333%; }
.p-home-blog-btn { margin-top:40px; text-align:center; }

/* ================================================
   BLOG / ARCHIVE / SINGLE PAGES
================================================ */
.l-blog {
  display:flex; justify-content:space-between;
  max-width:1400px; margin:0 auto;
  padding:120px 64px; width:100%;
}
@media screen and (max-width:1024px) { .l-blog { flex-wrap:wrap; padding:80px 40px; } }
@media screen and (max-width:767px)  { .l-blog { padding:40px 20px; } }
.l-blog-main { width:calc(70% - 48px); }
@media screen and (max-width:1024px) { .l-blog-main { width:100%; } }
.l-blog-aside { width:30%; }
@media screen and (max-width:1024px) { .l-blog-aside { width:100%; margin-left:0; margin-top:64px; } }

.p-page-content {}
.p-page-hero {
  padding:150px 64px 60px;
  background:var(--color-pale);
  margin-bottom:60px;
}
@media screen and (max-width:767px) { .p-page-hero { padding:100px 20px 40px; margin-bottom:40px; } }
.p-page-ttl { font-size:2.8rem; color:#333; }
.entry-content { font-size:1.5rem; line-height:2; color:#555; }
.entry-content h2 { font-size:2rem; margin:40px 0 20px; color:#333; }
.entry-content h3 { font-size:1.8rem; margin:30px 0 16px; color:#333; }
.entry-content p  { margin-bottom:1.5em; }
.entry-content img { margin:20px 0; }

/* Widget */
.widget { margin-bottom:40px; }
.widget-title { font-size:1.4rem; border-bottom:2px solid var(--color-main); padding-bottom:8px; margin-bottom:16px; color:#333; }

/* =================================================
   FIX: Scroll animation visibility
   画像が所々見えない問題の修正
================================================= */

/* js系アニメーション初期状態 */
.js-animate,
.js-fade-in,
.js-fade-in-right,
.js-fade-in-left,
.js-zoom-in {
  opacity: 0;
}

/* JSで is-animated が付いたら必ず表示 */
.js-animate.is-animated,
.js-fade-in.is-animated,
.js-fade-in-right.is-animated,
.js-fade-in-left.is-animated,
.js-zoom-in.is-animated {
  opacity: 1;
}

/* 通常フェードイン */
.js-fade-in.is-animated {
  animation: fade-in 1.2s ease 0s forwards;
}

@keyframes fade-in {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

/* 左から右へ */
.js-fade-in-right {
  transform: translateX(-30px);
}

.js-fade-in-right.is-animated {
  animation: fade-in-right 1.2s ease 0s forwards;
}

@keyframes fade-in-right {
  0% {
    transform: translateX(-30px);
    opacity: 0;
  }

  100% {
    transform: translateX(0);
    opacity: 1;
  }
}

/* 右から左へ */
.js-fade-in-left {
  transform: translateX(30px);
}

.js-fade-in-left.is-animated {
  animation: fade-in-left 1.2s ease 0s forwards;
}

@keyframes fade-in-left {
  0% {
    transform: translateX(30px);
    opacity: 0;
  }

  100% {
    transform: translateX(0);
    opacity: 1;
  }
}

/* ズームイン */
.js-zoom-in-wrap {
  overflow: hidden;
}

.js-zoom-in {
  transform: scale(1.2);
}

.js-zoom-in.is-animated {
  animation: zoom-in 2s cubic-bezier(0.075, 0.82, 0.165, 1) forwards;
}

@keyframes zoom-in {
  0% {
    transform: scale(1.2);
    opacity: 0;
  }

  100% {
    transform: scale(1);
    opacity: 1;
  }
}

/* imgタグはアニメーション後に必ず表示 */
img.js-animate.is-animated,
img.js-fade-in.is-animated,
img.js-fade-in-right.is-animated,
img.js-fade-in-left.is-animated,
img.js-zoom-in.is-animated {
  opacity: 1 !important;
}

/* 親に js-animate が付いている場合も表示 */
.js-animate.is-animated img,
.js-fade-in.is-animated img,
.js-fade-in-right.is-animated img,
.js-fade-in-left.is-animated img {
  opacity: 1 !important;
}

/* gradually in */
[class^=js-gradually-in],
[class*=" js-gradually-in"] {
  display: table-cell;
}

.js-gradually-in-left,
.js-gradually-in-right {
  position: relative;
  overflow: hidden;
  visibility: hidden;
}

.js-gradually-in-left.is-animated,
.js-gradually-in-right.is-animated {
  visibility: visible;
}

.js-gradually-in-left.is-animated::before,
.js-gradually-in-right.is-animated::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #fff;
  pointer-events: none;
  z-index: 2;
  animation: transform 1s cubic-bezier(0.39, 0.575, 0.565, 1) forwards;
}

.js-gradually-in-left.is-animated::before {
  animation-name: gradually-in-left;
}

.js-gradually-in-right.is-animated::before {
  animation-name: gradually-in-right;
}

.bg-gold .js-gradually-in-left.is-animated::before,
.bg-gold .js-gradually-in-right.is-animated::before {
  background: var(--color-pale);
}

@keyframes gradually-in-left {
  100% {
    transform: translateX(100%);
  }
}

@keyframes gradually-in-right {
  100% {
    transform: translateX(-100%);
  }
}

/* =================================================
   FIX: HERO overlay selector
================================================= */

/* 元の .p-main-visual .overlay::after は効かないため修正 */
.p-main-visual.overlay::after {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  content: "";
  background: rgb(0 0 0 / 20%);
  z-index: 1;
  pointer-events: none;
}

/* FVの背景画像が隠れないように */
.p-main-visual-bg {
  z-index: 0;
}

/* FV中央ロゴ・テキストを前面へ */
.p-main-visual-catchcopy {
  z-index: 3;
}

/* スクロール文字も前面へ */
.c-scroll {
  z-index: 4;
}
