
:root{
  --bg:#060607;
  --gold:#d7b66d;
  --gold-soft:#f1d9a0;
  --text:#f2ead8;
  --muted:#b7a98c;
  --navy:#d9e6f5;
  --line:rgba(215,182,109,.36);
  --panel:rgba(12,12,13,.68);
  --panel-soft:rgba(255,255,255,.04);
  --salmon:#d98a83;
  --ice:#dff1ff;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:radial-gradient(circle at 73% 12%,rgba(215,182,109,.10),transparent 18%),radial-gradient(circle at 22% 10%,rgba(81,105,138,.16),transparent 24%),linear-gradient(180deg,#070707 0%,#0d0f13 48%,#050505 100%);color:var(--text);font-family:"Noto Serif JP",serif;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.28;background:linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(180deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:84px 84px;mask-image:linear-gradient(180deg,transparent 0%,#000 18%,#000 82%,transparent 100%)}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

.global-header{position:fixed;z-index:50;top:0;left:0;right:0;height:104px;display:flex;align-items:flex-start;justify-content:space-between;padding:22px clamp(24px,4vw,58px);pointer-events:none}
.global-nav{display:flex;align-items:flex-start;gap:10px;pointer-events:auto}
.global-nav a{position:relative;display:flex;align-items:center;justify-content:center;min-height:42px;padding:10px 15px;color:var(--text);font-size:14px;font-weight:600;letter-spacing:.08em;text-shadow:0 2px 12px rgba(0,0,0,.78);transition:.25s ease}
.global-nav a:not(.contact-nav)::after{content:"";position:absolute;left:16px;right:16px;bottom:2px;height:1px;background:var(--gold);opacity:0;transform:scaleX(.35);transition:.25s ease}
.global-nav a:not(.contact-nav):hover{color:var(--gold-soft);transform:translateY(-2px)}
.global-nav a:not(.contact-nav):hover::after{opacity:1;transform:scaleX(1)}
.contact-nav{margin-left:30px;min-width:148px;min-height:58px;flex-direction:column;gap:3px;border:1px solid rgba(217,230,245,.72);background:rgba(217,230,245,.17);color:#eef6ff;box-shadow:0 10px 26px rgba(0,0,0,.32),inset 0 0 22px rgba(217,230,245,.08);backdrop-filter:blur(8px)}
.contact-nav:hover{background:rgba(217,230,245,.25);border-color:rgba(217,230,245,.94);transform:translateY(-2px)}
.bell-placeholder{width:17px;height:17px;display:block;border:2px solid #eef6ff;border-radius:10px 10px 6px 6px;position:relative;opacity:.82}
.bell-placeholder::before{content:"";position:absolute;top:-5px;left:50%;width:6px;height:5px;border:2px solid #eef6ff;border-bottom:0;border-radius:6px 6px 0 0;transform:translateX(-50%)}
.bell-placeholder::after{content:"";position:absolute;bottom:-7px;left:50%;width:6px;height:6px;background:#eef6ff;border-radius:50%;transform:translateX(-50%)}
.site-mark{pointer-events:auto;display:block;width:clamp(118px,11vw,178px);filter:drop-shadow(0 10px 28px rgba(0,0,0,.66)) drop-shadow(0 0 18px rgba(215,182,109,.20));transition:.3s ease}
.site-mark:hover{transform:translateY(-2px) scale(1.02);filter:drop-shadow(0 14px 34px rgba(0,0,0,.74)) drop-shadow(0 0 24px rgba(215,182,109,.30))}

body.is-entering{overflow:hidden}
.entry-splash{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:#ffffff;opacity:1;visibility:visible;transition:opacity .45s ease, visibility .45s ease}
.entry-splash img{width:min(150px,24vw);height:auto;opacity:0;transform:translateY(8px) scale(.88);filter:drop-shadow(0 10px 20px rgba(0,0,0,.10));animation:entryLogoFloat 1s ease forwards}
.entry-splash.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
body.is-entering .global-header, body.is-entering .top-page{opacity:0}
.global-header, .top-page{transition:opacity .55s ease}
@keyframes entryLogoFloat{0%{opacity:0;transform:translateY(12px) scale(.82)}35%{opacity:1;transform:translateY(0) scale(1)}72%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-4px) scale(.96)}}

.top-page{min-height:100vh}
.top-hero{position:relative;min-height:100vh;display:grid;place-items:center;overflow:hidden;padding:120px 24px 70px;background:#050505}
.top-hero__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0}
.top-hero__shade{position:absolute;inset:0;z-index:1;background:radial-gradient(ellipse at 50% 43%, rgba(255,248,224,.08) 0%, rgba(0,0,0,.08) 34%, rgba(0,0,0,.42) 86%),linear-gradient(180deg, rgba(0,0,0,.18) 0%, rgba(0,0,0,.04) 42%, rgba(0,0,0,.44) 100%);pointer-events:none}
.top-hero__content{position:relative;z-index:2;width:min(1060px,92vw);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;transform:translateY(26px)}
.top-hero__title{width:min(860px,74vw);height:auto;object-fit:contain;filter:drop-shadow(0 18px 32px rgba(0,0,0,.42)) drop-shadow(0 0 24px rgba(255,240,196,.22))}
.top-hero__buttons{width:min(860px,74vw);display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center}
.top-hero__button{display:block;transition:transform .25s ease, filter .25s ease}
.top-hero__button:hover{transform:translateY(-3px) scale(1.015);filter:brightness(1.08) drop-shadow(0 12px 22px rgba(0,0,0,.38))}

.content-section{width:min(1180px, calc(100% - 40px));margin:0 auto;padding:72px 0;position:relative}
.section-heading{text-align:center;margin:0 0 30px}
.section-heading__sub{display:block;margin-bottom:8px;color:var(--gold);font-family:"Cinzel",serif;font-size:14px;letter-spacing:.22em;text-transform:uppercase}
.section-heading h2{margin:0;font-size:clamp(28px,3.3vw,40px);font-weight:600;letter-spacing:.08em;color:var(--gold-soft)}
.section-heading--with-line{position:relative;padding-bottom:24px}
.section-heading--with-line::after{content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:0;width:min(380px,70%);height:1px;background:linear-gradient(90deg,transparent,rgba(215,182,109,.92),transparent)}
.section-heading--compact{margin-bottom:0;opacity:.6}
.framed-panel{position:relative;background:linear-gradient(180deg,rgba(19,19,21,.90),rgba(8,9,12,.84));border:1px solid var(--line);box-shadow:0 24px 60px rgba(0,0,0,.28), inset 0 0 0 1px rgba(255,255,255,.03)}

.feature-card{display:grid;grid-template-columns:minmax(320px, 490px) 1fr;gap:32px;padding:28px;border-radius:26px;overflow:hidden}
.feature-card__media img{width:100%;height:100%;object-fit:cover;border-radius:18px;border:1px solid rgba(215,182,109,.24);box-shadow:0 16px 36px rgba(0,0,0,.35)}
.feature-card__body{display:flex;flex-direction:column;justify-content:flex-start;padding-top:10px}
.feature-card__body h3{margin:0 0 18px;font-size:clamp(28px,3vw,40px);color:#fff4db;letter-spacing:.06em}
.spec-pills{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}
.spec-pills span{display:inline-flex;align-items:center;justify-content:center;padding:11px 18px;border-radius:999px;background:rgba(217,138,131,.95);color:#fff7f5;font-weight:700;font-size:15px;letter-spacing:.05em;box-shadow:0 10px 20px rgba(0,0,0,.18)}
.feature-card__notice{margin:0;color:#f0e5d8;font-size:15px;line-height:2.05;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);padding:18px 20px;border-radius:18px}

.series-section{padding-top:94px}
.series-section::before{content:"";position:absolute;top:26px;left:50%;transform:translateX(-50%);width:min(960px,92%);height:1px;background:linear-gradient(90deg,transparent, rgba(215,182,109,.90) 18%, rgba(215,182,109,.90) 82%, transparent)}
.series-carousel-wrap{padding:34px 86px 78px;border-radius:28px;overflow:hidden}
.series-carousel{overflow:hidden;cursor:grab;user-select:none}
.series-carousel.is-dragging{cursor:grabbing}
.series-track{display:flex;gap:22px;transition:transform .45s ease;will-change:transform}
.series-card{flex:0 0 calc((100% - 44px)/3);display:block;background:rgba(255,255,255,.03);border:1px solid rgba(215,182,109,.18);border-radius:20px;overflow:hidden;box-shadow:0 12px 32px rgba(0,0,0,.22);transform:scale(.96);opacity:.68;transition:transform .35s ease, opacity .35s ease, box-shadow .35s ease}
.series-card.is-active{opacity:1;transform:scale(1);box-shadow:0 18px 40px rgba(0,0,0,.34), 0 0 0 1px rgba(241,217,160,.20)}
.series-card:hover{opacity:1;transform:translateY(-4px) scale(.985)}
.series-card img{aspect-ratio:16/9;width:100%;object-fit:cover}
.series-card__label{display:block;padding:16px 18px 18px;text-align:center;font-size:17px;font-weight:700;color:#f4e9d3}
.carousel-arrow{position:absolute;top:50%;transform:translateY(calc(-50% - 18px));width:50px;height:50px;border-radius:50%;border:1px solid rgba(215,182,109,.46);background:rgba(11,11,14,.80);color:#f6e7c1;font-size:34px;line-height:1;display:grid;place-items:center;cursor:pointer;transition:.25s ease;z-index:2}
.carousel-arrow:hover{background:rgba(33,26,18,.96);transform:translateY(calc(-50% - 18px)) scale(1.06)}
.carousel-arrow--prev{left:22px}
.carousel-arrow--next{right:22px}
.carousel-dots{position:absolute;left:0;right:0;bottom:28px;display:flex;justify-content:center;gap:10px}
.carousel-dots button{width:11px;height:11px;border-radius:50%;border:0;padding:0;background:rgba(255,255,255,.28);cursor:pointer;transition:.25s ease}
.carousel-dots button.is-active{background:var(--gold-soft);transform:scale(1.15)}

.latest-section{padding-top:94px}
.news-frame{position:relative;padding:44px 46px;background:rgba(18,22,28,.92);border:1px solid rgba(215,182,109,.26);border-radius:28px;overflow:hidden;box-shadow:0 24px 56px rgba(0,0,0,.24)}
.corner{position:absolute;width:112px;height:112px;opacity:.9;pointer-events:none}
.corner--tl{top:0;left:0}.corner--tr{top:0;right:0}.corner--bl{bottom:0;left:0}.corner--br{bottom:0;right:0}
.news-list{position:relative;z-index:1;display:flex;flex-direction:column;gap:20px}
.news-item{display:grid;grid-template-columns:110px 140px 1fr;align-items:start;gap:10px;padding:0 0 18px;border-bottom:1px solid rgba(223,241,255,.14)}
.news-item:last-child{border-bottom:0;padding-bottom:0}
.news-item__kind,.news-item__date,.news-item__text{color:rgba(223,241,255,.95)}
.news-item__kind{font-weight:700;letter-spacing:.14em}
.news-item__date{font-family:"Noto Sans JP",sans-serif;color:rgba(223,241,255,.82)}
.news-item__text{margin:0;line-height:1.8;font-size:16px}

.simple-anchor{padding-top:24px;padding-bottom:24px;min-height:60px;opacity:.35}

@media(max-width:1080px){
  .feature-card{grid-template-columns:1fr;gap:22px}
  .feature-card__body{padding-top:0}
  .series-card{flex-basis:calc((100% - 22px)/2)}
}
@media(max-width:880px){
  .global-header{position:absolute;height:auto;align-items:flex-start;gap:20px;padding:18px}
  .global-nav{flex-wrap:wrap;max-width:calc(100% - 120px);gap:6px}
  .global-nav a{font-size:12px;padding:8px 10px;min-height:34px}
  .contact-nav{margin-left:0;min-width:126px;min-height:50px}
  .site-mark{width:108px}
  .top-hero{padding-top:210px}
  .top-hero__content{gap:20px;transform:translateY(6px)}
  .top-hero__title,.top-hero__buttons{width:min(760px,88vw)}
  .top-hero__buttons{gap:16px}
  .content-section{width:min(100%, calc(100% - 24px));padding:58px 0}
  .series-carousel-wrap{padding-left:64px;padding-right:64px}
  .news-item{grid-template-columns:100px 120px 1fr}
}
@media(max-width:560px){
  .global-header{display:block}
  .site-mark{position:absolute;right:18px;top:18px;width:92px}
  .global-nav{max-width:100%;padding-right:106px}
  .top-hero{padding:210px 18px 54px}
  .top-hero__buttons{grid-template-columns:1fr;width:min(420px,86vw);gap:12px}
  .top-hero__title{width:min(520px,92vw)}
  .feature-card{padding:18px;border-radius:20px}
  .feature-card__body h3{font-size:28px}
  .spec-pills span{width:100%;justify-content:flex-start}
  .series-section::before{top:20px}
  .series-carousel-wrap{padding:22px 18px 62px}
  .series-card{flex-basis:100%}
  .carousel-arrow{width:42px;height:42px;top:auto;bottom:14px;transform:none}
  .carousel-arrow:hover{transform:scale(1.05)}
  .carousel-arrow--prev{left:14px}
  .carousel-arrow--next{right:14px}
  .carousel-dots{bottom:18px}
  .news-frame{padding:30px 22px}
  .corner{width:88px;height:88px}
  .news-item{grid-template-columns:1fr;gap:4px;padding-bottom:16px}
  .news-item__kind{margin-bottom:2px}
}

/* ===== Step5: media preparation banners ===== */
.media-banners{
  padding-top:58px;
  padding-bottom:38px;
}

.media-banners__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
}

.media-banner{
  display:block;
  position:relative;
  overflow:hidden;
  border-radius:18px;
  border:1px solid rgba(215,182,109,.24);
  background:rgba(255,255,255,.035);
  box-shadow:0 18px 42px rgba(0,0,0,.26);
  transition:transform .28s ease, filter .28s ease, box-shadow .28s ease;
}

.media-banner::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,rgba(255,255,255,.10),transparent 36%,rgba(0,0,0,.16));
  pointer-events:none;
}

.media-banner:hover{
  transform:translateY(-5px);
  filter:brightness(1.05);
  box-shadow:0 24px 54px rgba(0,0,0,.34),0 0 0 1px rgba(241,217,160,.16);
}

.media-banner img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
}

@media(max-width:880px){
  .media-banners__grid{
    grid-template-columns:1fr;
    gap:16px;
    width:min(520px,100%);
    margin:0 auto;
  }
}


/* ===== Step6: support/contact cards ===== */
.support-links{
  padding-top:48px;
  padding-bottom:34px;
}

.support-links__grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px;
}

.support-card{
  display:grid;
  grid-template-columns:116px 1fr;
  align-items:center;
  gap:24px;
  min-height:176px;
  padding:28px 30px;
  border-radius:24px;
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.025));
  border:1px solid rgba(215,182,109,.22);
  box-shadow:0 22px 46px rgba(0,0,0,.26);
  transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease, background .28s ease;
}

.support-card:hover{
  transform:translateY(-5px);
  border-color:rgba(241,217,160,.46);
  box-shadow:0 28px 56px rgba(0,0,0,.34),0 0 0 1px rgba(241,217,160,.14);
  background:linear-gradient(180deg,rgba(255,255,255,.085),rgba(255,255,255,.03));
}

.support-card__icon{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:12px;
  border-radius:18px;
  background:rgba(255,255,255,.03);
  border:1px solid rgba(215,182,109,.18);
}

.support-card__icon img{
  width:84px;
  height:84px;
  object-fit:contain;
}

.support-card__body h3{
  margin:0 0 10px;
  font-size:28px;
  font-weight:700;
  color:#f3e6cb;
}

.support-card__body p{
  margin:0;
  color:rgba(242,234,216,.86);
  line-height:1.9;
  font-size:15px;
}

.sub-page-body{
  background:radial-gradient(circle at 18% 10%,rgba(215,182,109,.12),transparent 22%),linear-gradient(180deg,#080808 0%,#101115 55%,#060606 100%);
}

.sub-page-main{
  width:min(960px,calc(100% - 36px));
  margin:0 auto;
  padding:136px 0 80px;
}

.sub-page-card{
  position:relative;
  padding:44px 40px 40px;
  border-radius:28px;
}

.sub-page-card h1{
  margin:0 0 14px;
  font-size:40px;
  color:#f4e7cb;
}

.sub-page-card p{
  margin:0 0 16px;
  line-height:1.95;
  color:rgba(242,234,216,.86);
}

.sub-page-back{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:14px;
  color:#f3deb0;
  font-weight:700;
}

@media(max-width:880px){
  .support-links__grid{grid-template-columns:1fr;}
}

@media(max-width:560px){
  .support-card{
    grid-template-columns:1fr;
    gap:18px;
    padding:22px 18px;
    min-height:auto;
  }
  .support-card__icon img{width:72px;height:72px;}
  .support-card__body h3{font-size:24px;}
  .sub-page-main{padding:120px 0 52px;}
  .sub-page-card{padding:32px 20px 26px;}
  .sub-page-card h1{font-size:30px;}
}

/* ===== Step7: lower CTA after support cards ===== */
.lower-cta{
  padding-top:34px;
  padding-bottom:64px;
}

.lower-cta__inner{
  display:grid;
  grid-template-columns:1fr minmax(420px, 540px);
  align-items:center;
  gap:32px;
  padding:30px 34px;
  border-radius:24px;
  background:
    radial-gradient(circle at 18% 50%, rgba(215,182,109,.12), transparent 34%),
    linear-gradient(180deg, rgba(22,22,24,.92), rgba(8,9,12,.86));
}

.lower-cta__copy{
  margin:0;
  color:#f4e6c8;
  font-size:clamp(24px, 2.8vw, 38px);
  font-weight:700;
  letter-spacing:.08em;
  line-height:1.55;
  text-shadow:0 8px 22px rgba(0,0,0,.45);
}

.lower-cta__buttons{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  align-items:center;
}

.lower-cta__button{
  display:block;
  transition:transform .25s ease, filter .25s ease;
}

.lower-cta__button:hover{
  transform:translateY(-3px);
  filter:brightness(1.06) drop-shadow(0 12px 24px rgba(0,0,0,.36));
}

.lower-cta__button img{
  width:100%;
  height:auto;
  object-fit:contain;
}

@media(max-width:880px){
  .lower-cta__inner{
    grid-template-columns:1fr;
    text-align:center;
  }

  .lower-cta__buttons{
    width:min(560px,100%);
    margin:0 auto;
  }
}

@media(max-width:560px){
  .lower-cta{
    padding-top:22px;
    padding-bottom:44px;
  }

  .lower-cta__inner{
    padding:24px 18px;
    gap:20px;
  }

  .lower-cta__buttons{
    grid-template-columns:1fr;
    gap:12px;
  }
}

/* ===== Step8: faded cream site background ===== */
body{
  background:
    radial-gradient(circle at 18% 8%, rgba(255,255,255,.44), transparent 24%),
    radial-gradient(circle at 82% 18%, rgba(204,170,104,.20), transparent 26%),
    radial-gradient(circle at 50% 86%, rgba(151,112,67,.14), transparent 34%),
    linear-gradient(180deg, #f3e5c3 0%, #ead7ad 44%, #dfc796 100%) !important;
  color:#2f2017;
}

body::before{
  opacity:.36;
  background:
    linear-gradient(90deg, rgba(92,61,35,.045) 1px, transparent 1px),
    linear-gradient(180deg, rgba(92,61,35,.038) 1px, transparent 1px),
    radial-gradient(circle at 25% 24%, rgba(70,45,27,.055), transparent 20%),
    radial-gradient(circle at 78% 72%, rgba(70,45,27,.05), transparent 22%);
  background-size:84px 84px,84px 84px,520px 520px,620px 620px;
  mask-image:none;
}

.content-section{
  color:#2f2017;
}

.section-heading h2{
  color:#4a2b18;
}

.section-heading__sub{
  color:#8a622f;
}

.framed-panel,
.news-frame,
.support-card,
.lower-cta__inner{
  background:
    linear-gradient(180deg, rgba(255,249,232,.78), rgba(238,220,177,.66)) !important;
  border-color:rgba(93,56,24,.24) !important;
  box-shadow:0 22px 52px rgba(83,52,24,.18), inset 0 0 0 1px rgba(255,255,255,.28) !important;
}

.feature-card__body h3,
.support-card__body h3,
.lower-cta__copy,
.news-item__kind,
.news-item__date,
.news-item__text{
  color:#3b2416 !important;
}

.feature-card__notice,
.support-card__body p{
  color:#4c3a2a !important;
  background:rgba(255,255,255,.26) !important;
  border-color:rgba(93,56,24,.14) !important;
}

.series-card,
.support-card__icon{
  background:rgba(255,255,255,.34) !important;
  border-color:rgba(93,56,24,.18) !important;
}

.series-card__label{
  color:#3b2416 !important;
}

.news-frame{
  background:
    linear-gradient(180deg, rgba(31,29,27,.90), rgba(16,17,19,.90)) !important;
  border-color:rgba(215,182,109,.30) !important;
}

.news-frame .news-item__kind,
.news-frame .news-item__date,
.news-frame .news-item__text{
  color:rgba(223,241,255,.95) !important;
}

.simple-anchor{
  color:#4a2b18;
}

/* ===== Step9: support icon background color ===== */
.support-card__icon{
  background:
    radial-gradient(circle at 35% 28%, rgba(255,255,255,.24), transparent 34%),
    linear-gradient(135deg, rgba(126,47,52,.46), rgba(244,226,188,.72)) !important;
  border-color:rgba(126,47,52,.28) !important;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.22),
    0 10px 22px rgba(98,49,35,.12);
}

.support-card:nth-child(even) .support-card__icon{
  background:
    radial-gradient(circle at 35% 28%, rgba(255,255,255,.38), transparent 34%),
    linear-gradient(135deg, rgba(248,233,199,.88), rgba(118,43,49,.26)) !important;
}

/* ===== Step10: replace hero Actor title image ===== */
.top-hero__title{
  width:min(890px,76vw);
  filter:
    drop-shadow(0 18px 34px rgba(0,0,0,.46))
    drop-shadow(0 0 18px rgba(255,235,186,.16));
}

/* ===== Step11: web UI size balance + fitting CTA + looping carousel ===== */

/* 全体の余白を少し整理して、縦に間延びしないよう調整 */
.content-section{
  width:min(1120px, calc(100% - 48px));
  padding-top:56px;
  padding-bottom:56px;
}

.section-heading{
  margin-bottom:22px;
}

.section-heading h2{
  font-size:clamp(26px, 2.7vw, 36px);
}

/* ヘッダー直下の作品紹介を少し締める */
.feature-card{
  grid-template-columns:minmax(300px, 430px) 1fr;
  gap:28px;
  padding:24px;
}

.feature-card__body h3{
  font-size:clamp(28px, 2.8vw, 36px);
}

.feature-card__notice{
  font-size:14px;
  line-height:1.9;
}

/* CTA文が枠内に確実に収まるように変更 */
.lower-cta{
  padding-top:26px;
  padding-bottom:52px;
}

.lower-cta__inner{
  grid-template-columns:minmax(0, 1fr) minmax(360px, 500px);
  gap:26px;
  padding:24px 28px;
  overflow:hidden;
}

.lower-cta__copy{
  max-width:100%;
  font-size:clamp(20px, 2.05vw, 30px) !important;
  letter-spacing:.045em;
  line-height:1.45;
  white-space:normal;
  overflow-wrap:anywhere;
}

.lower-cta__buttons{
  gap:14px;
}

.lower-cta__button img{
  display:block;
  max-height:94px;
  object-fit:contain;
}

/* シリーズ一覧カルーセル：1枚ずつ見せる形にして、左右・丸アイコンで1周できるように調整 */
.series-section{
  padding-top:76px;
}

.series-carousel-wrap{
  width:min(980px,100%);
  margin-inline:auto;
  padding:30px 74px 72px;
  border-radius:26px;
}

.series-carousel{
  border-radius:22px;
}

.series-track{
  gap:0;
}

.series-card{
  flex:0 0 100% !important;
  transform:scale(.985);
  opacity:1;
  border-radius:22px;
}

.series-card.is-active{
  transform:scale(1);
}

.series-card img{
  aspect-ratio:16/9;
  width:100%;
  object-fit:cover;
}

.series-card__label{
  padding:14px 16px 16px;
  font-size:16px;
}

.carousel-arrow{
  width:46px;
  height:46px;
}

.carousel-arrow--prev{
  left:18px;
}

.carousel-arrow--next{
  right:18px;
}

.carousel-dots{
  bottom:24px;
}

/* バナーや案内カードも全体の大きさを少し控えめに */
.media-banners{
  padding-top:46px;
  padding-bottom:30px;
}

.media-banners__grid{
  gap:18px;
}

.support-links{
  padding-top:40px;
  padding-bottom:26px;
}

.support-links__grid{
  gap:18px;
}

.support-card{
  min-height:154px;
  grid-template-columns:96px 1fr;
  gap:20px;
  padding:22px 24px;
}

.support-card__icon img{
  width:72px;
  height:72px;
}

.support-card__body h3{
  font-size:24px;
  margin-bottom:8px;
}

.support-card__body p{
  font-size:14px;
  line-height:1.75;
}

.latest-section{
  padding-top:70px;
}

.news-frame{
  padding:38px 42px;
}

@media(max-width:980px){
  .lower-cta__inner{
    grid-template-columns:1fr;
    text-align:center;
  }

  .lower-cta__copy{
    font-size:clamp(21px, 4vw, 30px) !important;
  }

  .lower-cta__buttons{
    width:min(560px,100%);
    margin-inline:auto;
  }
}

@media(max-width:880px){
  .content-section{
    width:min(100%, calc(100% - 28px));
    padding-top:48px;
    padding-bottom:48px;
  }

  .feature-card{
    grid-template-columns:1fr;
  }

  .series-carousel-wrap{
    padding:24px 58px 64px;
  }
}

@media(max-width:560px){
  .content-section{
    width:min(100%, calc(100% - 20px));
    padding-top:38px;
    padding-bottom:38px;
  }

  .lower-cta__inner{
    padding:20px 16px;
  }

  .lower-cta__copy{
    font-size:21px !important;
    line-height:1.5;
  }

  .lower-cta__buttons{
    grid-template-columns:1fr;
    gap:10px;
  }

  .lower-cta__button img{
    max-height:86px;
    margin:auto;
  }

  .series-carousel-wrap{
    padding:20px 14px 58px;
  }

  .carousel-arrow{
    bottom:10px;
  }

  .carousel-dots{
    bottom:16px;
  }

  .support-card{
    grid-template-columns:82px 1fr;
    gap:14px;
    padding:18px 16px;
  }

  .support-card__icon img{
    width:62px;
    height:62px;
  }

  .support-card__body h3{
    font-size:21px;
  }
}

/* ===== Step12: pale navy background + 3-visible carousel ===== */
body{
  background:
    radial-gradient(circle at 18% 8%, rgba(255,255,255,.32), transparent 22%),
    radial-gradient(circle at 78% 12%, rgba(244,226,188,.20), transparent 24%),
    radial-gradient(circle at 50% 88%, rgba(47,70,100,.22), transparent 34%),
    linear-gradient(180deg, #dbe6ef 0%, #c8d7e5 42%, #b8cadd 100%) !important;
  color:#18273a;
}

body::before{
  opacity:.28;
  background:
    linear-gradient(90deg, rgba(21,42,66,.055) 1px, transparent 1px),
    linear-gradient(180deg, rgba(21,42,66,.045) 1px, transparent 1px),
    radial-gradient(circle at 25% 24%, rgba(10,28,48,.055), transparent 20%),
    radial-gradient(circle at 78% 72%, rgba(93,56,24,.04), transparent 22%);
  background-size:84px 84px,84px 84px,540px 540px,680px 680px;
  mask-image:none;
}

.content-section{
  color:#18273a;
}

.section-heading h2{
  color:#24364d;
}

.section-heading__sub{
  color:#7a5b2c;
}

.framed-panel,
.support-card,
.lower-cta__inner{
  background:
    linear-gradient(180deg, rgba(244,248,250,.80), rgba(220,231,240,.70)) !important;
  border-color:rgba(37,61,88,.24) !important;
  box-shadow:0 22px 52px rgba(31,52,75,.18), inset 0 0 0 1px rgba(255,255,255,.35) !important;
}

.feature-card__body h3,
.support-card__body h3,
.lower-cta__copy{
  color:#22344c !important;
}

.feature-card__notice,
.support-card__body p{
  color:#31445c !important;
  background:rgba(255,255,255,.28) !important;
  border-color:rgba(37,61,88,.14) !important;
}

/* カルーセルはPCで3作品表示 */
.series-carousel-wrap{
  width:min(1120px,100%);
  padding:30px 70px 70px;
}

.series-carousel{
  overflow:hidden;
  border-radius:22px;
}

.series-track{
  display:flex;
  gap:18px;
  transition:transform .45s ease;
}

.series-card{
  flex:0 0 calc((100% - 36px) / 3) !important;
  opacity:1 !important;
  transform:none !important;
  border-radius:20px;
  background:rgba(255,255,255,.42) !important;
  border-color:rgba(37,61,88,.18) !important;
}

.series-card.is-active{
  transform:none !important;
  box-shadow:0 18px 40px rgba(31,52,75,.22), 0 0 0 1px rgba(241,217,160,.20);
}

.series-card:hover{
  transform:translateY(-4px) !important;
}

.series-card img{
  aspect-ratio:16/9;
  width:100%;
  object-fit:cover;
}

.series-card__label{
  color:#22344c !important;
  font-size:15px;
  padding:13px 14px 15px;
}

.carousel-arrow{
  background:rgba(31,52,75,.86);
  color:#f8e8c2;
  border-color:rgba(215,182,109,.55);
}

.carousel-arrow:hover{
  background:rgba(23,39,58,.96);
}

.carousel-dots button{
  background:rgba(31,52,75,.30);
}

.carousel-dots button.is-active{
  background:#7d5f31;
}

/* 最新情報は黒寄りを維持 */
.news-frame{
  background:
    linear-gradient(180deg, rgba(18,22,28,.94), rgba(12,14,18,.94)) !important;
  border-color:rgba(215,182,109,.30) !important;
}

@media(max-width:880px){
  .series-carousel-wrap{
    padding:24px 58px 64px;
  }

  .series-track{
    gap:16px;
  }

  .series-card{
    flex-basis:calc((100% - 16px) / 2) !important;
  }
}

@media(max-width:560px){
  .series-carousel-wrap{
    padding:20px 14px 58px;
  }

  .series-track{
    gap:0;
  }

  .series-card{
    flex-basis:100% !important;
  }
}

/* ===== Step13: header left logo / nav right / warm pale brown background / footer ===== */
body{
  background:
    radial-gradient(circle at 18% 8%, rgba(255,255,255,.66), transparent 24%),
    radial-gradient(circle at 82% 18%, rgba(149,62,52,.14), transparent 25%),
    radial-gradient(circle at 48% 86%, rgba(128,78,50,.12), transparent 34%),
    linear-gradient(180deg, #f7efe4 0%, #efe0cc 44%, #e5ceb8 100%) !important;
  color:#2f211b;
}

body::before{
  opacity:.26;
  background:
    linear-gradient(90deg, rgba(107,62,43,.052) 1px, transparent 1px),
    linear-gradient(180deg, rgba(107,62,43,.042) 1px, transparent 1px),
    radial-gradient(circle at 24% 24%, rgba(122,50,45,.045), transparent 20%),
    radial-gradient(circle at 78% 70%, rgba(74,44,34,.045), transparent 22%);
  background-size:84px 84px,84px 84px,540px 540px,680px 680px;
  mask-image:none;
}

/* ロゴ左上、グローバルナビ右上 */
.global-header{
  align-items:flex-start;
  flex-direction:row-reverse;
  padding:18px clamp(22px,4vw,56px);
}

.site-mark{
  width:clamp(76px,7.6vw,116px) !important;
  border-radius:50%;
  overflow:hidden;
  filter:drop-shadow(0 10px 22px rgba(64,32,24,.30)) drop-shadow(0 0 10px rgba(211,164,90,.20));
}

.site-mark img{
  border-radius:50%;
}

.global-nav{
  justify-content:flex-end;
  flex-wrap:wrap;
  max-width:min(860px, calc(100vw - 170px));
  gap:8px;
}

.global-nav a{
  color:#33231b;
  text-shadow:0 1px 10px rgba(255,255,255,.54);
}

.global-nav a:not(.contact-nav):hover{
  color:#7b3930;
}

.contact-nav{
  background:rgba(122,50,45,.14);
  border-color:rgba(122,50,45,.34);
  color:#33231b;
  box-shadow:0 10px 24px rgba(70,38,28,.12), inset 0 0 18px rgba(255,255,255,.16);
}

.contact-nav:hover{
  background:rgba(122,50,45,.20);
  border-color:rgba(122,50,45,.46);
}

.bell-placeholder,
.bell-placeholder::before{
  border-color:#5a3026;
}
.bell-placeholder::after{
  background:#5a3026;
}

.framed-panel,
.support-card,
.lower-cta__inner{
  background:
    linear-gradient(180deg, rgba(255,249,239,.82), rgba(236,218,198,.70)) !important;
  border-color:rgba(117,62,44,.22) !important;
  box-shadow:0 22px 52px rgba(96,54,42,.16), inset 0 0 0 1px rgba(255,255,255,.36) !important;
}

.section-heading h2,
.feature-card__body h3,
.support-card__body h3,
.lower-cta__copy,
.series-card__label{
  color:#3a261d !important;
}

.section-heading__sub{
  color:#8b5a35 !important;
}

.feature-card__notice,
.support-card__body p{
  color:#4b372d !important;
}

.series-card{
  background:rgba(255,255,255,.42) !important;
  border-color:rgba(117,62,44,.18) !important;
}

/* フッター */
.site-footer{
  margin-top:70px;
  background:
    radial-gradient(circle at 18% 26%, rgba(218,163,94,.12), transparent 28%),
    linear-gradient(180deg, #4b221c 0%, #321712 100%);
  border-top:1px solid rgba(219,176,108,.34);
  color:#f2e2c5;
  font-family:"Noto Serif JP",serif;
}

.site-footer__inner{
  width:min(1180px, calc(100% - 44px));
  margin:0 auto;
  min-height:158px;
  padding:28px 0;
  display:grid;
  grid-template-columns:104px auto 1fr;
  align-items:center;
  gap:28px;
}

.site-footer__mark{
  display:block;
  width:92px;
  height:92px;
  border-radius:50%;
  overflow:hidden;
  box-shadow:0 12px 26px rgba(0,0,0,.34), 0 0 0 1px rgba(219,176,108,.24);
}

.site-footer__mark img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.site-footer__sns{
  display:flex;
  align-items:center;
  gap:14px;
}

.site-footer__sns a{
  width:52px;
  height:52px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(242,226,197,.20);
  overflow:hidden;
  transition:transform .25s ease, background .25s ease;
}

.site-footer__sns a:hover{
  transform:translateY(-3px);
  background:rgba(255,255,255,.14);
}

.site-footer__sns img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:50%;
}

.site-footer__links{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:12px 20px;
  font-size:14px;
  letter-spacing:.04em;
}

.site-footer__links a{
  color:#f2e2c5;
  opacity:.88;
  transition:opacity .25s ease, color .25s ease;
}

.site-footer__links a:hover{
  opacity:1;
  color:#ffe3a8;
}

@media(max-width:880px){
  .global-header{
    flex-direction:row-reverse;
    align-items:flex-start;
    padding:16px 18px;
  }

  .site-mark{
    width:82px !important;
  }

  .global-nav{
    max-width:calc(100vw - 122px);
    justify-content:flex-end;
  }

  .site-footer__inner{
    grid-template-columns:84px 1fr;
    gap:18px;
  }

  .site-footer__mark{
    width:78px;
    height:78px;
  }

  .site-footer__sns{
    justify-content:flex-start;
  }

  .site-footer__links{
    grid-column:1 / -1;
    justify-content:flex-start;
  }
}

@media(max-width:560px){
  .global-header{
    display:flex;
    gap:12px;
  }

  .site-mark{
    position:static;
    width:68px !important;
    flex:0 0 auto;
  }

  .global-nav{
    max-width:none;
    padding-right:0;
    justify-content:flex-end;
  }

  .global-nav a{
    font-size:11px;
    padding:7px 8px;
  }

  .contact-nav{
    min-width:112px;
  }

  .site-footer__inner{
    width:min(100%, calc(100% - 28px));
    grid-template-columns:70px 1fr;
    gap:14px;
    padding:24px 0;
  }

  .site-footer__mark{
    width:64px;
    height:64px;
  }

  .site-footer__sns a{
    width:44px;
    height:44px;
  }

  .site-footer__links{
    gap:10px 14px;
    font-size:12px;
  }
}

/* ===== Step14: clearer 3-card carousel with sliding animation ===== */
.series-carousel-wrap{
  background:
    linear-gradient(180deg, rgba(255,250,240,.82), rgba(232,214,195,.70)) !important;
  border:1px solid rgba(117,62,44,.22);
  box-shadow:0 24px 54px rgba(95,50,38,.16), inset 0 0 0 1px rgba(255,255,255,.38);
}

.series-carousel{
  overflow:hidden;
  border-radius:22px;
  padding:4px;
}

.series-track{
  display:flex;
  gap:18px;
  will-change:transform;
  transition:transform .55s cubic-bezier(.22,.72,.25,1) !important;
}

.series-card{
  flex:0 0 calc((100% - 36px) / 3) !important;
  opacity:1 !important;
  transform:none !important;
  background:rgba(255,255,255,.70) !important;
  border:1px solid rgba(96,54,42,.24) !important;
  box-shadow:0 14px 32px rgba(67,39,31,.16) !important;
}

.series-card:hover{
  transform:translateY(-4px) !important;
  box-shadow:0 22px 42px rgba(67,39,31,.22) !important;
}

.series-card.is-active{
  box-shadow:
    0 22px 44px rgba(67,39,31,.24),
    0 0 0 2px rgba(168,115,58,.26) !important;
}

.series-card img{
  display:block;
  filter:saturate(1.03) contrast(1.02);
}

.carousel-arrow{
  width:48px;
  height:48px;
  background:rgba(72,35,28,.90) !important;
  color:#fff0ca !important;
  border-color:rgba(218,172,94,.62) !important;
}

.carousel-arrow:hover{
  background:rgba(96,43,34,.96) !important;
}

.carousel-dots button{
  background:rgba(72,35,28,.28) !important;
}

.carousel-dots button.is-active{
  background:#8e4c3e !important;
}

@media(max-width:880px){
  .series-card{
    flex-basis:calc((100% - 18px) / 2) !important;
  }
}

@media(max-width:560px){
  .series-track{
    gap:0;
  }

  .series-card{
    flex-basis:100% !important;
  }
}

/* ===== Step15: compact header, remove footer placeholders, sharper light news, smaller hero/CTA ===== */

/* ヘッダー圧迫感の軽減 */
.global-header{
  padding:10px clamp(18px, 3vw, 42px) !important;
  min-height:72px;
  align-items:center !important;
}

.site-mark{
  width:clamp(58px, 5.2vw, 78px) !important;
  height:clamp(58px, 5.2vw, 78px) !important;
  border-radius:0 !important;
  overflow:visible !important;
  background:transparent !important;
  box-shadow:none !important;
  filter:drop-shadow(0 8px 14px rgba(74,31,25,.22)) !important;
}

.site-mark img{
  width:100%;
  height:100%;
  object-fit:contain !important;
  border-radius:0 !important;
}

.global-nav{
  gap:6px !important;
  align-items:center;
}

.global-nav a{
  padding:7px 10px !important;
  font-size:12px !important;
  letter-spacing:.04em !important;
}

.contact-nav{
  min-width:auto !important;
  padding:7px 12px !important;
}

.bell-placeholder{
  width:12px !important;
  height:10px !important;
}

/* TOP中央のActor画像と導線ボタンを縮小 */
.top-hero{
  min-height:clamp(520px, 68vh, 720px) !important;
}

.top-hero__content{
  width:min(860px, 82vw) !important;
  transform:translateY(8px);
}

.top-hero__title{
  width:min(680px, 62vw) !important;
  max-height:300px;
  object-fit:contain;
}

.top-hero__buttons{
  width:min(560px, 58vw) !important;
  gap:14px !important;
  margin-top:18px !important;
}

.top-hero__button img{
  max-height:82px !important;
  object-fit:contain;
}

/* 下部CTAも少し控えめに */
.lower-cta{
  padding-top:18px !important;
  padding-bottom:38px !important;
}

.lower-cta__inner{
  grid-template-columns:minmax(0, .95fr) minmax(330px, 440px) !important;
  padding:20px 24px !important;
  gap:20px !important;
}

.lower-cta__copy{
  font-size:clamp(18px, 1.8vw, 25px) !important;
  line-height:1.42 !important;
}

.lower-cta__button img{
  max-height:76px !important;
}

/* 最新情報：角を尖らせ、背景を少し薄く */
.news-frame{
  border-radius:0 !important;
  background:
    linear-gradient(180deg, rgba(64,62,63,.92), rgba(43,45,49,.90)) !important;
  border:1px solid rgba(218,184,124,.42) !important;
  box-shadow:
    0 22px 42px rgba(70,38,31,.16),
    inset 0 0 0 1px rgba(255,255,255,.06) !important;
  clip-path:polygon(
    18px 0,
    calc(100% - 18px) 0,
    100% 18px,
    100% calc(100% - 18px),
    calc(100% - 18px) 100%,
    18px 100%,
    0 calc(100% - 18px),
    0 18px
  );
}

.news-frame .corner{
  opacity:.62 !important;
}

.news-frame .news-item{
  background:rgba(255,255,255,.045);
  border-color:rgba(223,241,255,.13);
}

.news-frame .news-item__kind,
.news-frame .news-item__date,
.news-frame .news-item__text{
  color:rgba(236,247,255,.96) !important;
}

/* 削除済みのsimple-anchorが残っても非表示 */
.simple-anchor{
  display:none !important;
}

@media(max-width:880px){
  .global-header{
    min-height:66px;
    padding:9px 16px !important;
  }

  .site-mark{
    width:60px !important;
    height:60px !important;
  }

  .global-nav{
    max-width:calc(100vw - 94px) !important;
  }

  .global-nav a{
    font-size:11px !important;
    padding:6px 8px !important;
  }

  .top-hero__title{
    width:min(620px, 76vw) !important;
  }

  .top-hero__buttons{
    width:min(500px, 72vw) !important;
  }

  .lower-cta__inner{
    grid-template-columns:1fr !important;
    text-align:center;
  }
}

@media(max-width:560px){
  .global-header{
    min-height:auto;
    padding:8px 12px !important;
  }

  .site-mark{
    width:52px !important;
    height:52px !important;
  }

  .top-hero{
    min-height:500px !important;
  }

  .top-hero__title{
    width:min(360px, 82vw) !important;
  }

  .top-hero__buttons{
    width:min(330px, 84vw) !important;
    grid-template-columns:1fr !important;
  }

  .top-hero__button img{
    max-height:70px !important;
  }

  .lower-cta__buttons{
    grid-template-columns:1fr !important;
  }
}

/* ===== Step16: header balance / stage restore / clean news and CTA ===== */

/* ヘッダーは中くらいに戻し、横並びのバランスを整える */
.global-header{
  min-height:92px !important;
  padding:16px clamp(24px, 4vw, 58px) !important;
  align-items:center !important;
}

.site-mark{
  width:clamp(82px, 7vw, 108px) !important;
  height:clamp(82px, 7vw, 108px) !important;
  flex:0 0 auto;
}

.global-nav{
  max-width:min(920px, calc(100vw - 180px)) !important;
  gap:9px !important;
  align-items:center !important;
  justify-content:flex-end !important;
}

.global-nav a{
  font-size:13.5px !important;
  padding:9px 13px !important;
  letter-spacing:.055em !important;
  line-height:1.2 !important;
}

.contact-nav{
  padding:9px 15px !important;
}

/* 舞台背景の見え方を戻す */
.top-hero{
  min-height:clamp(620px, 78vh, 860px) !important;
  background:#efe0cc !important;
}

.top-hero__bg{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
  opacity:1 !important;
  filter:none !important;
}

.top-hero__shade{
  background:
    radial-gradient(circle at 50% 35%, rgba(255,243,217,.18), transparent 36%),
    linear-gradient(180deg, rgba(37,18,10,.12), rgba(37,18,10,.24)) !important;
}

/* 中央ロゴ・上部導線は縮小しすぎない範囲で自然なサイズへ */
.top-hero__content{
  width:min(960px, 86vw) !important;
  transform:translateY(0) !important;
}

.top-hero__title{
  width:min(760px, 68vw) !important;
  max-height:360px !important;
  object-fit:contain !important;
}

.top-hero__buttons{
  width:min(640px, 64vw) !important;
  gap:18px !important;
  margin-top:22px !important;
}

.top-hero__button img{
  max-height:96px !important;
  object-fit:contain !important;
}

/* 最新情報：文章ごとの変な枠を消し、枠全体は尖ったまま薄めに */
.news-frame{
  border-radius:0 !important;
  background:
    linear-gradient(180deg, rgba(76,76,78,.88), rgba(56,57,61,.86)) !important;
  border:1px solid rgba(218,184,124,.44) !important;
  box-shadow:
    0 20px 40px rgba(70,38,31,.13),
    inset 0 0 0 1px rgba(255,255,255,.055) !important;
  clip-path:polygon(
    18px 0,
    calc(100% - 18px) 0,
    100% 18px,
    100% calc(100% - 18px),
    calc(100% - 18px) 100%,
    18px 100%,
    0 calc(100% - 18px),
    0 18px
  );
}

.news-list{
  gap:0 !important;
}

.news-item{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  border-radius:0 !important;
  padding:13px 6px !important;
}

.news-item + .news-item{
  border-top:1px solid rgba(226,235,243,.16) !important;
}

/* 下部CTA：枠を完全に消す */
.lower-cta__inner,
.lower-cta__inner.framed-panel{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  padding:8px 0 22px !important;
}

.lower-cta__copy{
  text-shadow:0 1px 0 rgba(255,255,255,.55);
}

.lower-cta__button{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}

.lower-cta__button img{
  filter:drop-shadow(0 10px 18px rgba(70,38,31,.20));
}

/* 万一残っているフッター直前の簡易見出しは非表示維持 */
.simple-anchor{
  display:none !important;
}

@media(max-width:880px){
  .global-header{
    min-height:82px !important;
    padding:13px 18px !important;
  }

  .site-mark{
    width:76px !important;
    height:76px !important;
  }

  .global-nav{
    max-width:calc(100vw - 118px) !important;
    gap:7px !important;
  }

  .global-nav a{
    font-size:12px !important;
    padding:8px 10px !important;
  }

  .top-hero__title{
    width:min(650px, 78vw) !important;
  }

  .top-hero__buttons{
    width:min(540px, 74vw) !important;
  }
}

@media(max-width:560px){
  .global-header{
    min-height:auto !important;
    padding:10px 12px !important;
    align-items:flex-start !important;
  }

  .site-mark{
    width:62px !important;
    height:62px !important;
  }

  .global-nav{
    max-width:calc(100vw - 86px) !important;
  }

  .global-nav a{
    font-size:11px !important;
    padding:7px 8px !important;
  }

  .top-hero{
    min-height:560px !important;
  }

  .top-hero__title{
    width:min(390px, 86vw) !important;
  }

  .top-hero__buttons{
    width:min(350px, 86vw) !important;
  }

  .top-hero__button img{
    max-height:78px !important;
  }
}

/* ===== Step17: larger global nav / top play button right / centered lower CTA ===== */

/* グローバルナビを少し拡大し、読みやすく */
.global-header{
  min-height:98px !important;
  padding:16px clamp(24px, 4vw, 60px) !important;
}

.site-mark{
  width:clamp(86px, 7.2vw, 112px) !important;
  height:clamp(86px, 7.2vw, 112px) !important;
}

.global-nav{
  gap:11px !important;
  max-width:min(1040px, calc(100vw - 190px)) !important;
}

.global-nav a{
  font-size:15px !important;
  padding:10px 15px !important;
  letter-spacing:.06em !important;
  line-height:1.2 !important;
}

.contact-nav{
  padding:10px 18px !important;
}

/* ヘッダー内の導線：今すぐ遊ぶを右側に寄せる */
.top-hero__buttons{
  width:min(680px, 68vw) !important;
  margin-left:auto !important;
  margin-right:clamp(28px, 7vw, 110px) !important;
  justify-content:flex-end !important;
  justify-items:end !important;
}

.top-hero__button{
  justify-self:end !important;
}

.top-hero__button img{
  max-height:96px !important;
}

/* フッター付近のCTA：文字を大きく、中央寄せ。ボタンも中央寄せ */
.lower-cta{
  padding-top:30px !important;
  padding-bottom:46px !important;
}

.lower-cta__inner,
.lower-cta__inner.framed-panel{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  gap:20px !important;
  width:min(980px, calc(100% - 44px)) !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding:14px 0 26px !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}

.lower-cta__copy{
  width:100% !important;
  text-align:center !important;
  font-size:clamp(28px, 3.2vw, 44px) !important;
  line-height:1.45 !important;
  letter-spacing:.08em !important;
  margin:0 auto !important;
}

.lower-cta__buttons{
  width:min(640px, 74vw) !important;
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:18px !important;
  justify-content:center !important;
  justify-items:center !important;
  margin:0 auto !important;
}

.lower-cta__button{
  width:100% !important;
  max-width:310px !important;
  justify-self:center !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}

.lower-cta__button img{
  width:100% !important;
  max-height:90px !important;
  object-fit:contain !important;
}

/* スマホ・タブレット調整 */
@media(max-width:880px){
  .global-header{
    min-height:90px !important;
    padding:14px 18px !important;
  }

  .site-mark{
    width:82px !important;
    height:82px !important;
  }

  .global-nav{
    max-width:calc(100vw - 125px) !important;
    gap:8px !important;
  }

  .global-nav a{
    font-size:13px !important;
    padding:8px 11px !important;
  }

  .top-hero__buttons{
    width:min(560px, 76vw) !important;
    margin-right:clamp(14px, 4vw, 42px) !important;
  }

  .lower-cta__copy{
    font-size:clamp(24px, 4.4vw, 36px) !important;
  }

  .lower-cta__buttons{
    width:min(560px, 82vw) !important;
  }
}

@media(max-width:560px){
  .global-header{
    min-height:auto !important;
    padding:10px 12px !important;
  }

  .site-mark{
    width:66px !important;
    height:66px !important;
  }

  .global-nav{
    max-width:calc(100vw - 90px) !important;
    gap:6px !important;
  }

  .global-nav a{
    font-size:11.5px !important;
    padding:7px 8px !important;
  }

  .top-hero__buttons{
    width:min(350px, 86vw) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    grid-template-columns:1fr !important;
    justify-items:center !important;
  }

  .top-hero__button{
    justify-self:center !important;
  }

  .lower-cta__copy{
    font-size:24px !important;
  }

  .lower-cta__buttons{
    grid-template-columns:1fr !important;
    width:min(340px, 86vw) !important;
  }
}

/* ===== Step18: center top hero buttons and tighten balance ===== */

/* ヘッダー側の「今すぐ遊ぶ」「作品を探す」を中央寄せ。
   2つのボタン間を近づけて、Actorロゴ下にまとまるよう調整 */
.top-hero__buttons{
  width:min(520px, 54vw) !important;
  margin-left:auto !important;
  margin-right:auto !important;
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:10px !important;
  justify-content:center !important;
  justify-items:center !important;
  align-items:center !important;
}

.top-hero__button{
  justify-self:center !important;
  width:100% !important;
  max-width:250px !important;
}

.top-hero__button img{
  width:100% !important;
  max-height:88px !important;
  object-fit:contain !important;
}

/* 中央ロゴとの間隔も少し詰めて一体感を出す */
.top-hero__content{
  gap:10px !important;
}

.top-hero__title{
  margin-bottom:4px !important;
}

/* フッター付近CTAも現状の中央寄せを維持しつつ、ボタン間を近づける */
.lower-cta__buttons{
  width:min(560px, 70vw) !important;
  gap:12px !important;
}

.lower-cta__button{
  max-width:270px !important;
}

@media(max-width:880px){
  .top-hero__buttons{
    width:min(480px, 72vw) !important;
    gap:9px !important;
  }

  .top-hero__button{
    max-width:230px !important;
  }
}

@media(max-width:560px){
  .top-hero__buttons{
    width:min(330px, 86vw) !important;
    grid-template-columns:1fr !important;
    gap:8px !important;
  }

  .top-hero__button{
    max-width:300px !important;
  }

  .lower-cta__buttons{
    width:min(330px, 86vw) !important;
    grid-template-columns:1fr !important;
    gap:8px !important;
  }
}

/* ===== Step19: works search Coming Soon page ===== */
.works-page{
  min-height:100vh;
}

.works-main{
  width:min(1120px, calc(100% - 44px));
  margin:54px auto 80px;
}

.works-search-panel{
  position:relative;
  overflow:hidden;
  min-height:620px;
  padding:56px clamp(22px, 4vw, 58px) 62px;
  background:
    linear-gradient(180deg, rgba(255,250,241,.86), rgba(238,221,203,.80)),
    radial-gradient(circle at 18% 18%, rgba(126,55,49,.10), transparent 28%);
  border:1px solid rgba(118,62,45,.24);
  box-shadow:
    0 30px 70px rgba(86,47,36,.16),
    inset 0 0 0 1px rgba(255,255,255,.46);
  clip-path:polygon(
    22px 0,
    calc(100% - 22px) 0,
    100% 22px,
    100% calc(100% - 22px),
    calc(100% - 22px) 100%,
    22px 100%,
    0 calc(100% - 22px),
    0 22px
  );
}

.works-search-panel::before,
.works-search-panel::after{
  content:"";
  position:absolute;
  width:190px;
  height:190px;
  border:1px solid rgba(118,62,45,.20);
  pointer-events:none;
}

.works-search-panel::before{
  left:22px;
  top:22px;
  border-right:0;
  border-bottom:0;
}

.works-search-panel::after{
  right:22px;
  bottom:22px;
  border-left:0;
  border-top:0;
}

.works-coming-ribbon{
  position:absolute;
  z-index:3;
  top:45%;
  left:50%;
  width:130%;
  transform:translate(-50%, -50%) rotate(-12deg);
  padding:22px 0 28px;
  text-align:center;
  font-family:"Cinzel", "Noto Serif JP", serif;
  font-size:clamp(46px, 8vw, 112px);
  font-weight:700;
  letter-spacing:.10em;
  color:rgba(255,242,214,.92);
  background:
    linear-gradient(90deg, rgba(66,28,22,.90), rgba(108,53,40,.92), rgba(66,28,22,.90));
  border-top:2px solid rgba(218,176,108,.68);
  border-bottom:2px solid rgba(218,176,108,.68);
  box-shadow:
    0 22px 42px rgba(56,27,21,.26),
    inset 0 0 0 1px rgba(255,255,255,.12);
  opacity:.96;
  pointer-events:none;
}

.works-page-heading{
  position:relative;
  z-index:4;
  max-width:720px;
  margin-bottom:34px;
}

.works-page-heading__sub{
  display:block;
  font-family:"Cinzel", serif;
  letter-spacing:.18em;
  color:#9a5c3d;
  font-size:13px;
  margin-bottom:8px;
}

.works-page-heading h1{
  margin:0;
  font-family:"Noto Serif JP", serif;
  font-size:clamp(34px, 5vw, 58px);
  color:#36231b;
  letter-spacing:.12em;
}

.works-page-heading p{
  margin:12px 0 0;
  color:#5b4236;
  line-height:1.9;
  font-family:"Noto Serif JP", serif;
}

.works-filter{
  position:relative;
  z-index:4;
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:18px 20px;
  max-width:850px;
  padding:24px;
  background:rgba(255,255,255,.50);
  border:1px solid rgba(118,62,45,.18);
  box-shadow:0 16px 36px rgba(86,47,36,.10);
}

.works-filter__field{
  display:grid;
  gap:8px;
  font-family:"Noto Serif JP", serif;
  color:#3a261d;
}

.works-filter__field span{
  font-size:14px;
  letter-spacing:.08em;
  font-weight:700;
}

.works-filter__field select{
  appearance:none;
  width:100%;
  min-height:48px;
  padding:0 42px 0 16px;
  color:#2f211b;
  background:
    linear-gradient(45deg, transparent 50%, #704536 50%) right 16px center / 8px 8px no-repeat,
    linear-gradient(135deg, #704536 50%, transparent 50%) right 10px center / 8px 8px no-repeat,
    rgba(255,252,245,.90);
  border:1px solid rgba(112,69,54,.34);
  border-radius:0;
  font-family:"Noto Serif JP", serif;
  font-size:15px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65);
}

.works-search-note{
  position:relative;
  z-index:4;
  margin-top:22px;
  max-width:850px;
  padding:16px 18px;
  color:#f7ead0;
  background:rgba(74,35,28,.82);
  border-left:4px solid rgba(218,176,108,.78);
  font-family:"Noto Serif JP", serif;
  letter-spacing:.05em;
}

.works-search-note p{
  margin:0;
}

@media(max-width:760px){
  .works-main{
    width:min(100%, calc(100% - 28px));
    margin-top:34px;
  }

  .works-search-panel{
    padding:42px 18px 48px;
    min-height:680px;
  }

  .works-filter{
    grid-template-columns:1fr;
    padding:18px;
  }

  .works-coming-ribbon{
    font-size:clamp(40px, 11vw, 72px);
    top:48%;
  }
}

/* ===== Step20: Actorとは page ===== */
.about-page{
  background:
    radial-gradient(circle at 50% 0%, rgba(255,255,255,.52), transparent 38%),
    linear-gradient(180deg, #f3e7d7, #ead7c2 54%, #e0c3ad);
}

.about-main{
  width:min(1120px, calc(100% - 40px));
  margin:46px auto 86px;
}

.about-hero{
  text-align:center;
  margin:0 auto 34px;
  padding:26px 0 18px;
  color:#352019;
  font-family:"Noto Serif JP", serif;
}

.about-hero__sub{
  display:block;
  font-family:"Cinzel", serif;
  font-size:13px;
  letter-spacing:.22em;
  color:#986045;
  margin-bottom:8px;
}

.about-hero h1{
  margin:0;
  font-size:clamp(34px, 4.6vw, 56px);
  letter-spacing:.16em;
  font-weight:600;
}

.about-hero p{
  margin:12px 0 0;
  line-height:1.9;
  color:#6b4938;
  letter-spacing:.06em;
}

.about-sheet-list{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:42px;
}

.about-sheet{
  width:min(860px, 100%);
  position:relative;
  background:rgba(255,250,240,.58);
  border:1px solid rgba(120,75,52,.16);
  box-shadow:
    0 24px 54px rgba(88,52,35,.14),
    0 0 0 1px rgba(255,255,255,.35) inset;
}

.about-sheet img{
  display:block;
  width:100%;
  height:auto;
}

.about-sheet::after{
  content:"";
  position:absolute;
  inset:12px;
  border:1px solid rgba(170,127,78,.10);
  pointer-events:none;
}

@media(max-width:760px){
  .about-main{
    width:min(100%, calc(100% - 24px));
    margin:28px auto 58px;
  }

  .about-sheet-list{
    gap:26px;
  }

  .about-hero{
    margin-bottom:24px;
  }
}

/* ===== Step21: consistent jump-page header layout ===== */
/* 全ページでロゴマークを左上、グローバルナビを右上に統一 */
.global-header{
  display:flex !important;
  flex-direction:row !important;
  justify-content:space-between !important;
  align-items:center !important;
  gap:24px !important;
}

.site-mark{
  order:1 !important;
  flex:0 0 auto !important;
}

.global-nav{
  order:2 !important;
  margin-left:auto !important;
  margin-right:0 !important;
  justify-content:flex-end !important;
  align-items:center !important;
}

/* Actorとはページの説明文削除後、見出し周りの余白を詰める */
.about-hero{
  margin-bottom:28px !important;
  padding-bottom:8px !important;
}

.about-hero h1{
  margin-bottom:0 !important;
}

/* ジャンプページでもヘッダーが大きく崩れないように固定寄りに調整 */
body:not(.works-page) .global-header,
.works-page .global-header,
.about-page .global-header{
  min-height:92px !important;
  padding:16px clamp(24px, 4vw, 58px) !important;
}

@media(max-width:880px){
  .global-header{
    gap:14px !important;
  }

  .global-nav{
    flex-wrap:wrap !important;
  }
}

@media(max-width:560px){
  .global-header{
    align-items:flex-start !important;
  }

  .global-nav{
    justify-content:flex-end !important;
  }
}

/* ===== Step22: contact forms and legal pages ===== */
.sub-main{
  width:min(1120px, calc(100% - 40px));
  margin:44px auto 88px;
}

.form-main,
.legal-main,
.help-main{
  font-family:"Noto Serif JP", serif;
  color:#34231c;
}

.form-hero{
  max-width:920px;
  margin:0 auto 28px;
  padding:30px clamp(20px, 4vw, 46px);
  background:rgba(255,248,236,.62);
  border:1px solid rgba(123,76,54,.18);
  box-shadow:0 18px 44px rgba(87,52,35,.10);
}

.form-hero__sub{
  display:block;
  font-family:"Cinzel", serif;
  letter-spacing:.18em;
  color:#9b6043;
  font-size:13px;
  margin-bottom:8px;
}

.form-hero h1{
  margin:0 0 12px;
  font-size:clamp(32px, 4.8vw, 54px);
  letter-spacing:.10em;
  line-height:1.25;
}

.form-hero h2{
  margin:8px 0 12px;
  font-size:clamp(22px, 3vw, 32px);
  letter-spacing:.08em;
}

.form-hero p{
  line-height:1.95;
  margin:10px 0;
}

.actor-form,
.help-panel,
.legal-document,
.help-list{
  width:min(920px, 100%);
  margin:0 auto 30px;
  padding:clamp(22px, 4vw, 42px);
  background:rgba(255,252,245,.72);
  border:1px solid rgba(112,69,54,.22);
  box-shadow:0 24px 58px rgba(87,52,35,.12);
}

.actor-form h2{
  margin:0 0 22px;
  font-size:26px;
  letter-spacing:.10em;
}

.form-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:18px 20px;
}

.form-field{
  display:grid;
  gap:8px;
}

.form-field--full{
  grid-column:1 / -1;
}

.form-field > span,
.form-consent span{
  font-weight:700;
  letter-spacing:.04em;
}

.form-field em,
.form-consent em{
  font-style:normal;
  color:#9c4d42;
  margin-left:.35em;
  font-size:.88em;
}

.form-field input[type="text"],
.form-field input[type="email"],
.form-field input[type="url"],
.form-field input[type="tel"],
.form-field input[type="file"],
.form-field select,
.form-field textarea,
.inline-extra{
  width:100%;
  box-sizing:border-box;
  border:1px solid rgba(101,62,48,.30);
  background:rgba(255,255,255,.78);
  color:#2f211b;
  padding:12px 14px;
  font-family:"Noto Serif JP", serif;
  font-size:15px;
  border-radius:3px;
}

.form-field textarea{
  resize:vertical;
  min-height:150px;
  line-height:1.75;
}

.form-field small{
  color:#755343;
  line-height:1.65;
}

.check-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px 14px;
  padding:14px;
  background:rgba(255,255,255,.50);
  border:1px solid rgba(101,62,48,.18);
}

.check-grid label{
  display:flex;
  align-items:center;
  gap:8px;
  line-height:1.5;
}

.form-consent{
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding:16px;
  background:rgba(246,231,216,.74);
  border:1px solid rgba(101,62,48,.18);
}

.form-note{
  margin-top:20px;
  padding:16px 18px;
  background:rgba(111,55,45,.10);
  border-left:4px solid rgba(120,65,50,.54);
  line-height:1.8;
}

.form-note p{
  margin:.35em 0;
}

.form-submit,
.help-button{
  display:inline-flex;
  justify-content:center;
  align-items:center;
  min-height:48px;
  margin-top:22px;
  padding:0 28px;
  color:#fff7ea;
  background:#6f302c;
  border:1px solid rgba(219,175,104,.45);
  text-decoration:none;
  font-family:"Noto Serif JP", serif;
  letter-spacing:.08em;
  cursor:pointer;
}

.help-panel h2,
.help-panel h3{
  margin-top:0;
}

.help-jump-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
  margin-top:18px;
}

.help-jump-grid a,
.sitemap-list a{
  color:#5a3028;
  text-decoration:none;
  border-bottom:1px solid rgba(90,48,40,.25);
}

.help-item{
  padding:22px 0;
  border-bottom:1px solid rgba(113,74,57,.18);
}

.help-item:last-child{
  border-bottom:0;
}

.help-item h2{
  margin:0 0 8px;
  font-size:22px;
}

.help-item p{
  margin:0;
  line-height:1.8;
}

.legal-document{
  line-height:1.92;
}

.legal-document h1{
  margin:0 0 26px;
  font-size:clamp(32px, 4.6vw, 52px);
  letter-spacing:.10em;
}

.legal-document h2{
  margin:34px 0 10px;
  font-size:22px;
  color:#4b2b22;
  border-bottom:1px solid rgba(115,76,56,.22);
  padding-bottom:8px;
}

.legal-document p{
  margin:10px 0;
}

.legal-date{
  margin-top:34px !important;
  color:#6b4b3b;
}

.sitemap-list{
  display:grid;
  gap:12px;
  padding-left:1.2em;
}

@media(max-width:760px){
  .sub-main{
    width:min(100%, calc(100% - 24px));
    margin:28px auto 58px;
  }

  .form-grid{
    grid-template-columns:1fr;
  }

  .check-grid,
  .help-jump-grid{
    grid-template-columns:1fr;
  }

  .actor-form,
  .help-panel,
  .legal-document,
  .help-list{
    padding:22px 18px;
  }
}

/* ===== Step23: TOP entry animation only once ===== */
body.skip-entry-animation .entry-splash{
  display:none !important;
}
body.skip-entry-animation{
  animation:none !important;
}

/* ===== Step24: site overview page ===== */
.overview-list{
  display:grid;
  grid-template-columns: 180px 1fr;
  gap: 22px 34px;
  margin-top: 34px;
  color: #2e2018;
}
.overview-list dt{
  font-weight: 700;
  letter-spacing: .08em;
  color:#5c2c24;
  border-left: 4px solid rgba(107,48,40,.55);
  padding-left: 14px;
}
.overview-list dd{
  margin:0;
  line-height: 2;
}
.overview-list p{
  margin:0 0 10px;
}
.plain-list{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-wrap:wrap;
  gap:10px 18px;
}
.plain-list li{
  padding: 4px 14px;
  border: 1px solid rgba(96,55,44,.28);
  background: rgba(255,248,232,.55);
}
.operator-list{
  display:grid;
  gap:14px;
}
.operator-list strong{
  font-size:1.12rem;
  letter-spacing:.08em;
}
.operator-list span{
  color:#61483c;
}
@media (max-width: 720px){
  .overview-list{
    grid-template-columns:1fr;
    gap:8px 0;
  }
  .overview-list dt{
    margin-top:18px;
  }
}

/* ===== Step25: Howto page ===== */
.howto-main{
  width:min(1080px, calc(100% - 40px));
  margin:46px auto 88px;
  color:#34231c;
  font-family:"Noto Serif JP", serif;
}

.howto-top,
.howto-section,
.howto-bottom{
  position:relative;
  background:rgba(255,250,240,.74);
  border:1px solid rgba(112,69,54,.20);
  box-shadow:0 22px 54px rgba(87,52,35,.11);
}

.howto-top{
  display:grid;
  grid-template-columns:90px 1fr;
  gap:22px;
  align-items:center;
  padding:42px clamp(22px, 5vw, 58px);
  margin-bottom:34px;
}

.howto-top__number,
.howto-number{
  font-family:"Cinzel", serif;
  color:rgba(112,45,40,.52);
  font-size:clamp(42px, 6vw, 76px);
  line-height:1;
}

.howto-top__label{
  margin:0 0 8px;
  font-family:"Cinzel", serif;
  letter-spacing:.20em;
  color:#9a5d3e;
  font-size:13px;
}

.howto-top h1{
  margin:0 0 12px;
  font-size:clamp(34px, 5vw, 58px);
  letter-spacing:.10em;
  line-height:1.35;
}

.howto-top p{
  margin:0;
  line-height:1.9;
}

.howto-start-cards{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:16px;
  margin-top:8px;
}

.howto-start-cards a{
  display:grid;
  gap:6px;
  padding:20px 18px;
  color:#3a231d;
  background:rgba(255,255,255,.52);
  border:1px solid rgba(112,69,54,.20);
  text-decoration:none;
  transition:.25s ease;
}

.howto-start-cards a:hover{
  transform:translateY(-3px);
  box-shadow:0 16px 32px rgba(87,52,35,.13);
}

.howto-start-cards strong{
  font-size:20px;
}

.howto-start-cards span{
  color:#72513f;
}

.howto-section{
  padding:36px clamp(22px, 5vw, 54px);
  margin-bottom:24px;
}

.howto-section .howto-number{
  position:absolute;
  right:24px;
  top:22px;
  font-size:58px;
  opacity:.36;
}

.howto-section h2,
.howto-bottom h2{
  margin:0 0 20px;
  font-size:clamp(28px, 3.6vw, 42px);
  letter-spacing:.10em;
  line-height:1.35;
}

.howto-section h3{
  margin:18px 0 10px;
  font-size:22px;
  color:#4b2b22;
}

.howto-section p,
.howto-section li{
  line-height:1.95;
}

.howto-section blockquote{
  margin:18px 0 22px;
  padding:20px 22px;
  background:rgba(104,48,42,.10);
  border-left:5px solid rgba(104,48,42,.52);
  line-height:2;
}

.flow-line{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:12px;
  margin:24px 0;
}

.flow-line span,
.sample-spec span{
  display:flex;
  justify-content:center;
  align-items:center;
  min-height:48px;
  padding:10px;
  background:rgba(255,255,255,.55);
  border:1px solid rgba(112,69,54,.18);
  text-align:center;
  font-weight:700;
}

.howto-note{
  padding:18px 20px;
  background:rgba(109,50,43,.08);
  border-left:4px solid rgba(109,50,43,.42);
}

.howto-note a,
.text-button,
.series-rule-list a{
  color:#7c342e;
  font-weight:700;
}

.step-list{
  list-style:none;
  display:grid;
  gap:12px;
  padding:0;
  margin:22px 0;
}

.step-list li{
  display:grid;
  grid-template-columns:120px 1fr;
  gap:14px;
  align-items:center;
  padding:16px 18px;
  background:rgba(255,255,255,.54);
  border:1px solid rgba(112,69,54,.17);
}

.step-list strong{
  color:#7b332c;
  font-family:"Cinzel", serif;
  letter-spacing:.08em;
}

.howto-caption{
  color:#755240;
  font-size:14px;
}

.two-column,
.term-grid,
.series-rule-list{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:18px;
}

.two-column > div,
.term-grid article,
.series-rule-list article{
  padding:20px;
  background:rgba(255,255,255,.48);
  border:1px solid rgba(112,69,54,.16);
}

.sample-spec{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:22px;
}

.sample-spec span{
  min-height:40px;
  flex:1 1 150px;
}

.term-grid{
  grid-template-columns:repeat(3, 1fr);
}

.term-grid h3,
.series-rule-list h3{
  margin-top:0;
}

.howto-section--important{
  background:linear-gradient(180deg, rgba(255,247,233,.82), rgba(246,224,211,.76));
  border-color:rgba(133,55,47,.28);
}

.text-button{
  display:inline-flex;
  margin-top:12px;
  padding:12px 24px;
  border:1px solid rgba(112,69,54,.28);
  background:rgba(255,255,255,.52);
  text-decoration:none;
}

.howto-bottom{
  text-align:center;
  padding:42px 24px 52px;
  margin-top:34px;
}

.howto-bottom .howto-number{
  display:block;
  margin-bottom:10px;
  font-size:50px;
}

.howto-bottom__buttons{
  display:flex;
  justify-content:center;
  gap:16px;
  flex-wrap:wrap;
}

.howto-bottom__buttons a{
  min-width:180px;
  padding:14px 24px;
  color:#fff5df;
  background:#6f302c;
  border:1px solid rgba(219,175,104,.48);
  text-decoration:none;
  font-weight:700;
  letter-spacing:.08em;
}

@media(max-width:820px){
  .howto-main{
    width:min(100%, calc(100% - 24px));
  }

  .howto-top{
    grid-template-columns:1fr;
  }

  .howto-start-cards,
  .flow-line,
  .term-grid,
  .two-column,
  .series-rule-list{
    grid-template-columns:1fr;
  }

  .step-list li{
    grid-template-columns:1fr;
  }

  .howto-section .howto-number{
    position:static;
    display:block;
    margin-bottom:10px;
  }
}

/* ===== Step26: fix site overview broken layout ===== */
.overview-page .global-header{
  display:flex !important;
  flex-direction:row !important;
  justify-content:space-between !important;
  align-items:center !important;
}

.overview-main{
  width:min(1120px, calc(100% - 40px)) !important;
  margin:44px auto 88px !important;
}

.overview-document{
  width:min(920px, 100%) !important;
  margin:0 auto !important;
  box-sizing:border-box !important;
}

.overview-list{
  display:grid !important;
  grid-template-columns:minmax(150px, 190px) minmax(0, 1fr) !important;
  gap:22px 34px !important;
  margin:34px 0 0 !important;
  padding:0 !important;
}

.overview-list dt{
  margin:0 !important;
  padding:0 0 0 14px !important;
  font-weight:700 !important;
  letter-spacing:.08em !important;
  color:#5c2c24 !important;
  border-left:4px solid rgba(107,48,40,.55) !important;
  line-height:1.8 !important;
}

.overview-list dd{
  margin:0 !important;
  min-width:0 !important;
  line-height:2 !important;
}

.overview-list p{
  margin:0 0 10px !important;
}

.plain-list{
  list-style:none !important;
  padding:0 !important;
  margin:0 !important;
  display:flex !important;
  flex-wrap:wrap !important;
  gap:10px 18px !important;
}

.plain-list li{
  padding:4px 14px !important;
  border:1px solid rgba(96,55,44,.28) !important;
  background:rgba(255,248,232,.55) !important;
}

.operator-list{
  display:grid !important;
  gap:14px !important;
}

.operator-list strong{
  font-size:1.12rem !important;
  letter-spacing:.08em !important;
}

.operator-list span{
  color:#61483c !important;
}

@media(max-width:720px){
  .overview-main{
    width:min(100%, calc(100% - 24px)) !important;
  }

  .overview-list{
    grid-template-columns:1fr !important;
    gap:8px 0 !important;
  }

  .overview-list dt{
    margin-top:18px !important;
  }
}

/* ===== Step28: smartphone comfortable layout ===== */
/* 全体：スマホ横スクロール防止 */
html,
body{
  max-width:100%;
  overflow-x:hidden !important;
}

img,
video{
  max-width:100%;
  height:auto;
}

/* タップしやすい基本サイズ */
a,
button,
select,
input,
textarea{
  -webkit-tap-highlight-color:rgba(111,48,44,.16);
}

@media(max-width:760px){
  body{
    font-size:15px;
    line-height:1.75;
  }

  /* ヘッダー：スマホではロゴ上・ナビ下。横にはみ出さない */
  .global-header{
    position:sticky !important;
    top:0 !important;
    z-index:50 !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:8px !important;
    min-height:auto !important;
    padding:9px 10px 10px !important;
    background:rgba(246,232,214,.94) !important;
    backdrop-filter:blur(10px);
  }

  .site-mark{
    width:54px !important;
    height:54px !important;
    margin:0 auto !important;
  }

  .global-nav{
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    display:flex !important;
    flex-wrap:nowrap !important;
    justify-content:flex-start !important;
    gap:6px !important;
    overflow-x:auto !important;
    padding:2px 2px 4px !important;
    scrollbar-width:none;
  }

  .global-nav::-webkit-scrollbar{
    display:none;
  }

  .global-nav a{
    flex:0 0 auto !important;
    min-height:38px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding:8px 11px !important;
    font-size:12px !important;
    line-height:1 !important;
    white-space:nowrap !important;
    border-radius:999px !important;
    background:rgba(255,255,255,.42);
  }

  .contact-nav{
    padding:8px 12px !important;
  }

  .bell-placeholder{
    display:none !important;
  }

  /* TOPファーストビュー：スマホでは縦を詰めて見やすく */
  .top-hero{
    min-height:calc(100svh - 96px) !important;
    padding-top:18px !important;
    padding-bottom:30px !important;
  }

  .top-hero__content{
    width:min(100%, calc(100vw - 24px)) !important;
    gap:8px !important;
  }

  .top-hero__title{
    width:min(390px, 90vw) !important;
    max-height:330px !important;
  }

  .top-hero__buttons{
    width:min(330px, 88vw) !important;
    grid-template-columns:1fr !important;
    gap:8px !important;
    margin:10px auto 0 !important;
  }

  .top-hero__button{
    max-width:300px !important;
  }

  .top-hero__button img{
    max-height:72px !important;
  }

  /* 共通セクション幅 */
  .top-section,
  .section,
  .featured-section,
  .series-section,
  .latest-section,
  .media-section,
  .support-section,
  .sub-main,
  .howto-main,
  .about-main,
  .works-main{
    width:min(100%, calc(100vw - 24px)) !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  /* 見出し・余白をスマホ向けに調整 */
  .section-heading,
  .featured-heading,
  .latest-heading,
  .media-heading,
  .support-heading{
    margin-bottom:18px !important;
  }

  .section-heading h2,
  .featured-heading h2,
  .latest-heading h2,
  .media-heading h2,
  .support-heading h2,
  .form-hero h1,
  .legal-document h1,
  .about-hero h1,
  .howto-top h1{
    font-size:clamp(27px, 8vw, 36px) !important;
    line-height:1.32 !important;
    letter-spacing:.08em !important;
  }

  /* 注目作品・カード類 */
  .featured-card,
  .news-frame,
  .actor-form,
  .help-panel,
  .legal-document,
  .help-list,
  .form-hero,
  .works-search-panel,
  .howto-top,
  .howto-section,
  .howto-bottom{
    box-sizing:border-box !important;
    width:100% !important;
    padding:22px 16px !important;
  }

  .featured-card{
    grid-template-columns:1fr !important;
    gap:16px !important;
  }

  .featured-card__image,
  .featured-card__body{
    width:100% !important;
  }

  .featured-card__body{
    text-align:left !important;
  }

  .featured-specs,
  .sample-spec{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:8px !important;
  }

  .featured-specs span,
  .sample-spec span{
    min-height:38px !important;
    padding:8px !important;
    font-size:12px !important;
  }

  /* カルーセル：1枚表示を安定化 */
  .series-carousel{
    overflow:hidden !important;
  }

  .series-track{
    gap:12px !important;
  }

  .series-card{
    flex:0 0 100% !important;
    min-width:100% !important;
  }

  .carousel-arrow{
    width:38px !important;
    height:38px !important;
  }

  .carousel-arrow--prev{
    left:2px !important;
  }

  .carousel-arrow--next{
    right:2px !important;
  }

  /* メディア・サポート・ニュース */
  .media-grid,
  .support-grid,
  .term-grid,
  .two-column,
  .series-rule-list,
  .howto-start-cards,
  .flow-line{
    grid-template-columns:1fr !important;
  }

  .news-item{
    grid-template-columns:1fr !important;
    gap:4px !important;
    padding:13px 4px !important;
  }

  .news-item__date,
  .news-item__kind,
  .news-item__text{
    font-size:13px !important;
  }

  /* 下部CTA */
  .lower-cta__inner{
    width:min(100%, calc(100vw - 24px)) !important;
    padding:18px 0 22px !important;
  }

  .lower-cta__copy{
    font-size:clamp(23px, 7vw, 30px) !important;
    line-height:1.5 !important;
    letter-spacing:.06em !important;
  }

  .lower-cta__buttons{
    width:min(330px, 88vw) !important;
    grid-template-columns:1fr !important;
    gap:8px !important;
  }

  .lower-cta__button{
    max-width:300px !important;
  }

  .lower-cta__button img{
    max-height:72px !important;
  }

  /* フッター */
  .site-footer{
    padding:28px 14px 34px !important;
  }

  .site-footer__inner{
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    text-align:center !important;
    gap:18px !important;
  }

  .site-footer__mark img{
    max-width:78px !important;
  }

  .site-footer__sns{
    justify-content:center !important;
  }

  .site-footer__links{
    width:100% !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
  }

  .site-footer__links a{
    display:block !important;
    padding:8px 0 !important;
  }

  /* お問い合わせフォーム */
  .form-grid{
    grid-template-columns:1fr !important;
    gap:15px !important;
  }

  .form-field input[type="text"],
  .form-field input[type="email"],
  .form-field input[type="url"],
  .form-field input[type="tel"],
  .form-field input[type="file"],
  .form-field select,
  .form-field textarea,
  .inline-extra{
    min-height:46px !important;
    font-size:16px !important;
  }

  .check-grid,
  .help-jump-grid{
    grid-template-columns:1fr !important;
  }

  .form-submit,
  .help-button,
  .text-button{
    width:100% !important;
    min-height:48px !important;
    box-sizing:border-box !important;
  }

  /* 遊び方ページ */
  .howto-top{
    grid-template-columns:1fr !important;
    gap:12px !important;
  }

  .howto-top__number,
  .howto-number{
    font-size:42px !important;
  }

  .howto-section .howto-number{
    position:static !important;
    display:block !important;
    margin-bottom:8px !important;
  }

  .step-list li{
    grid-template-columns:1fr !important;
    gap:4px !important;
  }

  .howto-bottom__buttons{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
  }

  .howto-bottom__buttons a{
    width:100% !important;
    box-sizing:border-box !important;
  }

  /* Actorとは画像ページ */
  .about-sheet-list{
    gap:18px !important;
  }

  .about-sheet{
    width:100% !important;
    box-shadow:0 14px 34px rgba(88,52,35,.12) !important;
  }

  .about-sheet::after{
    display:none !important;
  }

  /* 作品検索ページ */
  .works-main{
    margin-top:28px !important;
  }

  .works-search-panel{
    min-height:640px !important;
  }

  .works-filter{
    grid-template-columns:1fr !important;
    padding:16px !important;
  }

  .works-coming-ribbon{
    width:155% !important;
    top:50% !important;
    font-size:clamp(38px, 12vw, 72px) !important;
  }

  /* サイト概要・法務ページ */
  .overview-list{
    grid-template-columns:1fr !important;
    gap:8px !important;
  }

  .overview-list dt{
    margin-top:16px !important;
  }

  .plain-list{
    gap:8px !important;
  }

  .plain-list li{
    flex:1 1 auto !important;
    text-align:center !important;
  }
}

@media(max-width:420px){
  .global-nav a{
    font-size:11.5px !important;
    padding:8px 10px !important;
  }

  .site-mark{
    width:48px !important;
    height:48px !important;
  }

  .top-hero__title{
    width:92vw !important;
  }

  .featured-specs,
  .sample-spec{
    grid-template-columns:1fr !important;
  }

  .form-hero,
  .actor-form,
  .legal-document,
  .help-panel,
  .howto-section,
  .howto-top,
  .howto-bottom{
    padding:20px 14px !important;
  }
}

/* 横持ちスマホ・低い画面用 */
@media(max-height:520px) and (orientation:landscape){
  .global-header{
    position:relative !important;
  }

  .top-hero{
    min-height:560px !important;
  }
}

/* ===== Step30: streaming available badge ===== */
.streaming-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.35em;
  vertical-align:middle;
  min-height:24px;
  padding:3px 10px 4px;
  margin-left:.45em;
  color:#fff8e8;
  background:
    linear-gradient(135deg, #1f6f76, #2e8a82);
  border:1px solid rgba(226,190,112,.72);
  border-radius:999px;
  box-shadow:
    0 6px 16px rgba(23,77,80,.18),
    inset 0 0 0 1px rgba(255,255,255,.18);
  font-family:"Noto Serif JP", serif;
  font-size:12px;
  font-weight:700;
  letter-spacing:.08em;
  line-height:1;
  white-space:nowrap;
}

.streaming-badge::before{
  content:"▶";
  font-size:.82em;
  transform:translateY(-.02em);
}

.streaming-badge--large{
  min-height:30px;
  padding:5px 13px 6px;
  font-size:13px;
  margin-left:0;
}

.featured-streaming-row,
.streaming-note{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin:12px 0 14px;
  color:#3e2a20;
  font-family:"Noto Serif JP", serif;
  line-height:1.7;
}

.streaming-note{
  position:relative;
  z-index:5;
  width:min(850px, 100%);
  box-sizing:border-box;
  padding:12px 15px;
  background:rgba(255,255,255,.58);
  border:1px solid rgba(48,120,121,.25);
  box-shadow:0 10px 24px rgba(44,80,76,.08);
}

.works-search-panel > .streaming-note{
  margin:0 0 22px;
}

@media(max-width:760px){
  .streaming-badge{
    font-size:11px;
    min-height:22px;
    padding:3px 8px 4px;
    margin-left:.25em;
  }

  .featured-streaming-row,
  .streaming-note{
    align-items:flex-start;
    gap:8px;
    font-size:13px;
  }
}


/* ===== Step32: Mori work Coming Soon ribbon only / non-clickable ===== */
.feature-card--mori-coming-soon{
  position:relative;
  overflow:hidden;
  pointer-events:none;
  cursor:default;
}
.feature-card--mori-coming-soon .streaming-badge,
.feature-card--mori-coming-soon .featured-streaming-row{
  display:none !important;
}
.mori-coming-soon-ribbon{
  position:absolute;
  top:28px;
  right:-58px;
  z-index:20;
  width:230px;
  padding:9px 0 10px;
  transform:rotate(34deg);
  text-align:center;
  font-family:'Cinzel','Noto Serif JP',serif;
  font-size:15px;
  font-weight:700;
  letter-spacing:.12em;
  color:#fff8e8;
  background:linear-gradient(135deg, #8f2e2e, #5f1717);
  border-top:1px solid rgba(255,255,255,.46);
  border-bottom:1px solid rgba(0,0,0,.28);
  box-shadow:0 10px 24px rgba(0,0,0,.34);
}
.coming-soon-mini{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:5px 10px;
  border-radius:999px;
  background:#5f1717;
  color:#fff8e8;
  font-size:12px;
  letter-spacing:.08em;
  font-family:'Cinzel','Noto Serif JP',serif;
}
@media(max-width:700px){
  .mori-coming-soon-ribbon{
    top:20px;
    right:-70px;
    width:220px;
    font-size:13px;
  }
}
