:root{--navy:#171f3b;--wine:#7a1f3d;--gold:#caa462;--ivory:#fff8eb;--ink:#241b2f;--muted:#7a7285;--pink:#f4dce6;--shadow:0 18px 50px rgba(20,20,40,.14)}*{box-sizing:border-box}body{margin:0;font-family:'Noto Sans JP',sans-serif;color:var(--ink);background:linear-gradient(180deg,#fff8eb 0%,#fff 45%,#fff8eb 100%);line-height:1.8}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}.site-header{position:sticky;top:0;z-index:20;background:rgba(255,248,235,.92);backdrop-filter:blur(14px);border-bottom:1px solid rgba(202,164,98,.25)}.site-header__inner{max-width:1180px;margin:auto;padding:14px 24px;display:flex;align-items:center;justify-content:space-between}.site-brand{display:flex;flex-direction:column;line-height:1.1}.site-brand__mark{font-family:Cinzel,serif;font-size:28px;color:var(--wine);letter-spacing:.06em}.site-brand__sub{font-size:11px;letter-spacing:.18em;color:var(--gold)}.global-nav ul{display:flex;gap:24px;list-style:none;margin:0;padding:0}.global-nav a{font-family:Cinzel,serif;font-size:14px;letter-spacing:.08em}.nav-toggle{display:none;background:none;border:0;width:42px;height:42px}.nav-toggle span{display:block;height:2px;background:var(--navy);margin:8px}.hero{position:relative;min-height:78vh;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at top left,rgba(244,220,230,.9),transparent 34%),linear-gradient(135deg,var(--navy),#2c2145 54%,var(--wine));color:#fff}.hero__bg{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(#000,transparent 80%)}.hero__inner{position:relative;max-width:900px;padding:80px 24px;text-align:center}.hero__label,.section__head p{font-family:Cinzel,serif;color:var(--gold);letter-spacing:.2em;font-weight:700}.hero__title{font-family:Cinzel,serif;font-size:clamp(44px,8vw,92px);line-height:1.05;margin:10px 0 22px}.hero__lead{font-size:clamp(16px,2vw,20px);max-width:760px;margin:0 auto 34px}.hero__actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;min-width:180px;padding:13px 24px;border-radius:999px;font-weight:700;transition:.25s}.button--primary{background:var(--gold);color:var(--navy)}.button--outline{border:1px solid rgba(255,255,255,.65);color:#fff}.button:hover{transform:translateY(-3px)}.section{max-width:1180px;margin:auto;padding:88px 24px}.section__head{text-align:center;margin-bottom:34px}.section__head h1,.section__head h2{font-family:Cinzel,serif;font-size:clamp(30px,4vw,48px);margin:0;color:var(--navy)}.news-list,.post-list{display:grid;gap:16px}.news-card,.concept-box,.step-card,.access-box,.event-card,.cast-card{background:rgba(255,255,255,.82);border:1px solid rgba(202,164,98,.28);box-shadow:var(--shadow);border-radius:24px}.news-card{padding:22px 26px}.news-card time,.event-card time{color:var(--gold);font-family:Cinzel,serif}.news-card h3,.news-card h2{margin:4px 0 0}.concept-box{padding:38px;max-width:860px;margin:auto;text-align:center;font-size:18px}.concept-box--story{text-align:left}.concept-box__lead{font-weight:700;color:var(--wine);font-size:20px;text-align:center}.story-card{margin-top:26px;padding:26px;border-radius:22px;background:linear-gradient(135deg,rgba(255,248,235,.92),rgba(244,220,230,.55));border:1px solid rgba(202,164,98,.24)}.story-card p{margin:0 0 12px}.story-card p:last-child{margin-bottom:0}.story-card__closing{font-weight:700;color:var(--navy);text-align:right}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.cast-card{overflow:hidden;transition:.28s}.cast-card:hover{transform:translateY(-6px)}.cast-card__image{aspect-ratio:4/5;background:linear-gradient(135deg,var(--pink),var(--ivory));display:grid;place-items:center;color:var(--muted)}.cast-card__image img{width:100%;height:100%;object-fit:cover}.cast-card__body{padding:20px}.cast-card__body h3{margin:0 0 8px;color:var(--wine)}.event-swiper{padding:10px 10px 48px}.event-card{overflow:hidden}.event-card__image{aspect-ratio:16/10;background:linear-gradient(135deg,#efe1bd,#f6dce9);display:grid;place-items:center}.event-card__image img{width:100%;height:100%;object-fit:cover}.event-card__body{padding:20px}.step-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.step-card{padding:28px}.step-card span{font-family:Cinzel,serif;font-size:34px;color:var(--gold)}.step-card h3{margin:8px 0;color:var(--wine)}.access-box{padding:32px;max-width:720px;margin:auto}.site-footer{background:var(--navy);color:#fff;text-align:center;padding:46px 24px}.site-footer__brand{font-family:Cinzel,serif;color:var(--gold);font-size:22px}.empty-text{text-align:center;color:var(--muted)}.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}.reveal.is-visible{opacity:1;transform:none}.entry-content{max-width:860px;margin:auto}.single-thumb{max-width:860px;margin:0 auto 28px;border-radius:24px;overflow:hidden}.wp-block-image img{border-radius:18px}@media(max-width:820px){.global-nav{position:fixed;inset:70px 16px auto;background:#fff;border-radius:20px;box-shadow:var(--shadow);padding:20px;display:none}.global-nav.is-open{display:block}.global-nav ul{display:grid;gap:12px}.nav-toggle{display:block}.card-grid,.step-grid{grid-template-columns:1fr}.section{padding:64px 18px}.hero{min-height:72vh}.site-header__inner{padding:12px 16px}}

/* Cast detail / ACF profile */
.cast-detail__hero{display:grid;grid-template-columns:minmax(280px,420px) 1fr;gap:42px;align-items:center;background:rgba(255,255,255,.82);border:1px solid rgba(202,164,98,.28);box-shadow:var(--shadow);border-radius:32px;padding:34px}.cast-detail__photo{aspect-ratio:4/5;border-radius:26px;overflow:hidden;background:linear-gradient(135deg,var(--pink),var(--ivory));display:grid;place-items:center;color:var(--muted)}.cast-detail__photo img{width:100%;height:100%;object-fit:cover}.cast-detail__label{font-family:Cinzel,serif;color:var(--gold);letter-spacing:.18em;font-weight:700}.cast-detail__intro h1{font-size:clamp(34px,5vw,64px);line-height:1.08;margin:8px 0;color:var(--wine)}.cast-detail__kana{color:var(--muted);letter-spacing:.12em;margin:0 0 18px}.cast-detail__catch{font-size:20px;font-weight:700;color:var(--navy);margin:0 0 26px}.cast-detail__actions{display:flex;gap:12px;flex-wrap:wrap}.button--small{min-width:auto;padding:9px 18px;background:var(--navy);color:#fff;font-size:14px}.cast-detail__content{max-width:920px;margin:36px auto 0;display:grid;gap:24px}.profile-panel{background:rgba(255,255,255,.86);border:1px solid rgba(202,164,98,.28);box-shadow:var(--shadow);border-radius:26px;padding:30px}.profile-panel h2{font-family:Cinzel,serif;color:var(--navy);margin:0 0 18px}.profile-list{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0}.profile-list__row{border-bottom:1px solid rgba(202,164,98,.24);padding:0 0 14px}.profile-list dt{font-weight:700;color:var(--gold);font-size:13px;letter-spacing:.08em}.profile-list dd{margin:4px 0 0}.profile-panel--message{background:linear-gradient(135deg,rgba(255,248,235,.94),rgba(244,220,230,.72))}.cast-detail__back{text-align:center}.cast-detail__back a{color:var(--wine);font-weight:700}@media(max-width:820px){.cast-detail__hero{grid-template-columns:1fr;padding:22px}.profile-list{grid-template-columns:1fr}.cast-detail__content{margin-top:24px}.profile-panel{padding:22px}}


/* Hash view: cast only */
body.angeu-cast-only .site-main > section:not(#cast){display:none !important;}
body.angeu-cast-only .site-main > #cast{display:block;max-width:1180px;margin:0 auto;padding-top:72px;min-height:calc(100vh - 90px);}
body.angeu-cast-only .site-main > #cast.reveal{opacity:1;transform:none;}
body.angeu-cast-only .site-main > #cast .section__head{margin-bottom:34px;}
@media(max-width:820px){body.angeu-cast-only .site-main > #cast{padding-top:48px;}}

/* Cast search / ACF filter */
.cast-filter{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:14px;align-items:end;margin:0 auto 18px;padding:18px;background:rgba(255,255,255,.88);border:1px solid rgba(202,164,98,.28);border-radius:24px;box-shadow:var(--shadow)}
.cast-filter__field{display:grid;gap:6px}.cast-filter__field label{font-size:12px;font-weight:700;color:var(--gold);letter-spacing:.08em}.cast-filter__input,.cast-filter__select{width:100%;min-height:44px;border:1px solid rgba(202,164,98,.38);border-radius:999px;padding:9px 15px;background:#fff;color:var(--ink);font:inherit;outline:none}.cast-filter__input:focus,.cast-filter__select:focus{border-color:var(--wine);box-shadow:0 0 0 3px rgba(122,31,61,.12)}.cast-filter__reset{min-height:44px;border:0;border-radius:999px;padding:9px 18px;background:var(--navy);color:#fff;font-weight:700;cursor:pointer}.cast-filter__reset:hover{transform:translateY(-2px)}.cast-filter__count{text-align:center;color:var(--muted);margin:0 0 24px}.cast-filter__empty{margin-top:24px}.cast-card[hidden]{display:none!important}.cast-card__status{display:inline-flex;margin-bottom:8px;padding:2px 10px;border-radius:999px;background:rgba(202,164,98,.18);color:var(--wine);font-size:12px;font-weight:700}.cast-card__kana{margin:-4px 0 8px;color:var(--muted);font-size:13px}.cast-card__meta{display:grid;gap:6px;margin:12px 0 0}.cast-card__meta div{display:flex;gap:8px;align-items:center}.cast-card__meta dt{font-size:12px;color:var(--gold);font-weight:700}.cast-card__meta dd{margin:0;color:var(--ink);font-size:13px}
@media(max-width:980px){.cast-filter{grid-template-columns:1fr 1fr}.cast-filter__field--search{grid-column:1/-1}.cast-filter__reset{grid-column:1/-1}}
@media(max-width:620px){.cast-filter{grid-template-columns:1fr}}

/* Ange:U logo */
.site-brand--logo{display:inline-flex;align-items:center;line-height:1}.site-brand__logo{width:168px;max-width:38vw;height:auto;display:block}.custom-logo-link{display:inline-flex;align-items:center}.custom-logo{max-width:168px;height:auto}.hero__logo{width:min(520px,86vw);margin:0 auto 22px;filter:drop-shadow(0 20px 34px rgba(0,0,0,.28))}.hero__title{margin-top:4px}@media(max-width:820px){.site-brand__logo,.custom-logo{width:132px}.hero__logo{width:min(380px,88vw);margin-bottom:18px}}

/* Cast detail visual hero v1.0.15 */
.cast-detail--visual{max-width:none;margin:0;padding:0}.cast-visual{position:relative;min-height:calc(100vh - 74px);background-size:cover;background-position:center;background-repeat:no-repeat;background-color:#f4dce6;overflow:hidden}.cast-visual::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 18% 20%,rgba(255,255,255,.42),transparent 28%),linear-gradient(90deg,rgba(255,248,235,.9) 0%,rgba(255,248,235,.52) 28%,rgba(255,248,235,.12) 58%,rgba(23,31,59,.22) 100%);pointer-events:none}.cast-visual__shade{position:absolute;inset:auto 0 0;height:42%;background:linear-gradient(0deg,rgba(23,31,59,.72),rgba(23,31,59,0));pointer-events:none}.cast-visual__inner{position:relative;z-index:1;max-width:1280px;min-height:calc(100vh - 74px);margin:0 auto;padding:70px 28px;display:flex;flex-direction:column;justify-content:space-between;gap:36px}.cast-visual__quote{width:min(430px,46vw);min-height:96px;display:flex;align-items:flex-start;justify-content:flex-start;filter:drop-shadow(0 8px 16px rgba(255,255,255,.55))}.cast-visual__quote img{width:100%;height:auto;object-fit:contain}.cast-visual__quote p{margin:0;font-weight:900;font-size:clamp(26px,4vw,56px);line-height:1.25;letter-spacing:.06em;color:#2f180d;text-shadow:0 2px 0 rgba(255,255,255,.8),0 12px 28px rgba(255,255,255,.55);transform:rotate(-3deg)}.cast-visual__profile-card{align-self:flex-start;width:min(520px,92vw);padding:28px 30px;border-radius:26px;background:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.62);box-shadow:0 24px 70px rgba(20,20,40,.24);backdrop-filter:blur(12px)}.cast-visual__profile-card h1{font-size:clamp(36px,5vw,72px);line-height:1.02;margin:6px 0;color:var(--wine)}.cast-detail__content--visual{max-width:1080px;padding:48px 24px 88px}.cast-detail--visual.reveal{opacity:1;transform:none}.cast-detail--visual .profile-panel{background:rgba(255,255,255,.92)}@media(max-width:820px){.cast-visual{min-height:640px;background-size:contain;background-position:center top;background-color:#fff8eb}.cast-visual::before{background:linear-gradient(180deg,rgba(255,248,235,.18) 0%,rgba(255,248,235,.06) 44%,rgba(23,31,59,.68) 100%)}.cast-visual__inner{min-height:640px;padding:38px 18px 28px}.cast-visual__quote{width:min(320px,72vw);min-height:72px}.cast-visual__quote p{font-size:clamp(24px,8vw,42px)}.cast-visual__profile-card{width:100%;padding:22px;border-radius:22px}.cast-detail__content--visual{padding:32px 18px 64px}}


/* v1.0.17: CAST一覧 スマホ2列表示 */
@media(max-width:620px){
  #cast .card-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:12px;
  }
  #cast .cast-card{
    border-radius:18px;
  }
  #cast .cast-card__body{
    padding:12px 10px 14px;
  }
  #cast .cast-card__body h3{
    font-size:16px;
    line-height:1.35;
    margin-bottom:4px;
  }
  #cast .cast-card__kana{
    font-size:11px;
    margin:0 0 6px;
  }
  #cast .cast-card__status{
    font-size:10px;
    padding:1px 8px;
    margin-bottom:6px;
  }
  #cast .cast-card__meta{
    gap:3px;
    margin-top:8px;
  }
  #cast .cast-card__meta div{
    display:block;
  }
  #cast .cast-card__meta dt,
  #cast .cast-card__meta dd{
    font-size:11px;
    line-height:1.45;
  }
  #cast .cast-card__image{
    aspect-ratio:3/4;
  }
}


/* v1.0.18: Schedule image page/section */
.schedule-section{background:linear-gradient(180deg,rgba(255,255,255,.24),rgba(244,220,230,.34));}
.schedule-panel{max-width:980px;margin:0 auto;padding:24px;border-radius:28px;background:rgba(255,255,255,.9);border:1px solid rgba(202,164,98,.28);box-shadow:var(--shadow)}
.schedule-panel__head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:0 0 18px;border-bottom:1px solid rgba(202,164,98,.24);padding-bottom:14px}
.schedule-panel__head h3{margin:0;color:var(--wine);font-size:clamp(22px,3vw,34px)}
.schedule-panel__head time{color:var(--muted);font-weight:700;white-space:nowrap}
.schedule-panel__image{display:grid;place-items:center;min-height:220px;border-radius:22px;overflow:hidden;background:#fff8eb;border:1px solid rgba(202,164,98,.18)}
.schedule-panel__image img{display:block;width:100%;height:auto;object-fit:contain}
.schedule-panel__image span{padding:32px;text-align:center;color:var(--muted)}
.schedule-panel__x-note{margin:18px 0 0;text-align:center;color:var(--muted);font-size:15px;font-weight:700;letter-spacing:.04em}
.schedule-panel__x-note a{display:inline-flex;align-items:center;justify-content:center;margin:0 .25em;color:var(--wine);text-decoration:none;border-bottom:2px solid rgba(214,91,143,.35);font-weight:900}
.schedule-panel__x-note a:hover{color:var(--pink);border-bottom-color:rgba(214,91,143,.75)}
.schedule-panel__x-note--detail{max-width:980px;margin:18px auto 0}

.schedule-panel--empty{padding:34px}
.schedule-archive{max-width:1040px;margin:0 auto;padding:72px 24px}
.schedule-list{display:grid;gap:32px}.schedule-detail-image{max-width:1080px;margin:0 auto 34px;border-radius:28px;overflow:hidden;background:#fff;box-shadow:var(--shadow)}.schedule-detail-image img{display:block;width:100%;height:auto;object-fit:contain}
@media(max-width:620px){.schedule-panel{padding:14px;border-radius:22px}.schedule-panel__head{display:block}.schedule-panel__head time{display:block;margin-top:6px}.schedule-panel__image{border-radius:16px;min-height:160px}.schedule-archive{padding:48px 16px}}


/* v1.0.19: White based color refinement */
:root{
  --navy:#3c4668;
  --wine:#d85f9a;
  --gold:#58c7e8;
  --ivory:#ffffff;
  --ink:#2d3042;
  --muted:#7b8194;
  --pink:#ffe8f3;
  --shadow:0 18px 46px rgba(77,86,120,.11);
}
body{
  color:var(--ink);
  background:
    radial-gradient(circle at 8% 0%,rgba(255,232,243,.62),transparent 28%),
    radial-gradient(circle at 92% 10%,rgba(226,247,255,.72),transparent 30%),
    linear-gradient(180deg,#ffffff 0%,#ffffff 48%,#fbfdff 100%);
}
.site-header{
  background:rgba(255,255,255,.94);
  border-bottom:1px solid rgba(88,199,232,.22);
}
.nav-toggle span{background:var(--navy)}
.global-nav a{color:var(--navy)}
.global-nav a:hover{color:var(--wine)}
.hero{
  color:var(--ink);
  background:
    radial-gradient(circle at top left,rgba(255,232,243,.96),transparent 35%),
    radial-gradient(circle at top right,rgba(218,247,255,.95),transparent 38%),
    linear-gradient(135deg,#ffffff 0%,#fff7fb 45%,#edfaff 100%);
}
.hero__bg{
  background-image:
    linear-gradient(rgba(88,199,232,.16) 1px,transparent 1px),
    linear-gradient(90deg,rgba(216,95,154,.12) 1px,transparent 1px);
}
.hero__label,.section__head p{color:var(--gold)}
.hero__lead{color:#555b72}.button--primary{background:linear-gradient(135deg,#ff9bc5,#7fdaf2);color:#fff;box-shadow:0 10px 26px rgba(216,95,154,.22)}
.button--outline{border:1px solid rgba(60,70,104,.28);color:var(--navy);background:rgba(255,255,255,.62)}
.section__head h1,.section__head h2{color:var(--navy)}
.news-card,.concept-box,.step-card,.access-box,.event-card,.cast-card,.profile-panel,.schedule-panel{
  background:rgba(255,255,255,.94);
  border-color:rgba(88,199,232,.23);
}
.news-card time,.event-card time,.step-card span,.profile-list dt,.cast-filter__field label,.cast-card__meta dt{color:var(--gold)}
.concept-box__lead,.step-card h3,.news-card h3,.news-card h2,.cast-card__body h3,.schedule-panel__head h3{color:var(--wine)}
.concept-box__lead span{display:block}
.story-card,.profile-panel--message{
  background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(255,232,243,.58) 52%,rgba(232,249,255,.74));
  border-color:rgba(88,199,232,.2);
}
.cast-card__image,.cast-detail__photo,.event-card__image,.schedule-panel__image{
  background:linear-gradient(135deg,#fff5fa,#e8f9ff);
}
.cast-filter{background:rgba(255,255,255,.95);border-color:rgba(88,199,232,.22)}
.cast-filter__input,.cast-filter__select{border-color:rgba(88,199,232,.34);background:#fff}.cast-filter__input:focus,.cast-filter__select:focus{border-color:var(--wine);box-shadow:0 0 0 3px rgba(216,95,154,.13)}
.cast-filter__reset,.button--small{background:var(--navy);color:#fff}.cast-card__status{background:rgba(255,232,243,.86);color:var(--wine)}
.site-footer{background:#f8fcff;color:var(--ink);border-top:1px solid rgba(88,199,232,.22)}.site-footer__brand{color:var(--wine)}
.cast-visual{background-color:#ffffff}.cast-visual::before{background:radial-gradient(circle at 18% 20%,rgba(255,255,255,.46),transparent 28%),linear-gradient(90deg,rgba(255,255,255,.88) 0%,rgba(255,255,255,.48) 30%,rgba(255,255,255,.1) 62%,rgba(88,199,232,.2) 100%)}
@media(max-width:820px){
  .global-nav{background:rgba(255,255,255,.98);border:1px solid rgba(88,199,232,.18)}
  .cast-visual{background-color:#fff}.cast-visual::before{background:linear-gradient(180deg,rgba(255,255,255,.05) 0%,rgba(255,255,255,.08) 44%,rgba(60,70,104,.62) 100%)}
}

/* v1.0.126: SP navigation open/close animation */
@media(max-width:820px){
  .nav-toggle{
    position:relative;
    z-index:22;
    transition:transform .28s ease,background-color .28s ease;
  }
  .nav-toggle span{
    transform-origin:center;
    transition:transform .32s cubic-bezier(.2,.8,.3,1),opacity .2s ease,background-color .25s ease;
  }
  .nav-toggle[aria-expanded="true"]{
    transform:rotate(180deg);
    background:rgba(255,232,243,.62);
    border-radius:999px;
  }
  .nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(10px) rotate(45deg);}
  .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;transform:scaleX(.2);}
  .nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-10px) rotate(-45deg);}
  .global-nav{
    display:block;
    opacity:0;
    visibility:hidden;
    transform:translateY(-14px) scale(.97);
    transform-origin:top right;
    pointer-events:none;
    transition:opacity .28s ease,visibility .28s ease,transform .34s cubic-bezier(.2,.8,.3,1);
  }
  .global-nav.is-open{
    opacity:1;
    visibility:visible;
    transform:translateY(0) scale(1);
    pointer-events:auto;
  }
  .global-nav li{
    opacity:0;
    transform:translateY(-8px);
  }
  .global-nav.is-open li{
    animation:angeu-nav-item-in .36s ease forwards;
  }
  .global-nav.is-open li:nth-child(1){animation-delay:.04s}
  .global-nav.is-open li:nth-child(2){animation-delay:.07s}
  .global-nav.is-open li:nth-child(3){animation-delay:.10s}
  .global-nav.is-open li:nth-child(4){animation-delay:.13s}
  .global-nav.is-open li:nth-child(5){animation-delay:.16s}
  .global-nav.is-open li:nth-child(6){animation-delay:.19s}
  .global-nav.is-open li:nth-child(7){animation-delay:.22s}
  .global-nav.is-open li:nth-child(8){animation-delay:.25s}
  @keyframes angeu-nav-item-in{
    to{opacity:1;transform:translateY(0)}
  }
}
@media(max-width:820px) and (prefers-reduced-motion:reduce){
  .nav-toggle,
  .nav-toggle span,
  .global-nav{transition:none}
  .global-nav.is-open li{animation:none;opacity:1;transform:none}
}


/* v1.0.20: Official SNS links section */
.sns-section{
  position:relative;
}
.sns-section::before{
  content:"";
  position:absolute;
  inset:32px 24px auto;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(88,199,232,.35),rgba(216,95,154,.28),transparent);
  pointer-events:none;
}
.sns-lead{
  max-width:720px;
  margin:-12px auto 28px;
  text-align:center;
  color:var(--muted);
}
.sns-lead span{display:block}
.sns-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
  max-width:960px;
  margin:0 auto;
}
.sns-card{
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  gap:10px;
  min-height:190px;
  padding:26px;
  border-radius:26px;
  background:rgba(255,255,255,.95);
  border:1px solid rgba(88,199,232,.23);
  box-shadow:var(--shadow);
  transition:transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}
.sns-card::after{
  content:"";
  position:absolute;
  inset:auto -40px -54px auto;
  width:150px;
  height:150px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,232,243,.9),rgba(232,249,255,.5) 58%,transparent 72%);
  pointer-events:none;
}
.sns-card:hover{
  transform:translateY(-5px);
  border-color:rgba(216,95,154,.34);
  box-shadow:0 24px 58px rgba(77,86,120,.16);
}
.sns-card__icon{
  display:inline-grid;
  place-items:center;
  width:48px;
  height:48px;
  border-radius:16px;
  background:linear-gradient(135deg,#fff5fa,#e8f9ff);
  color:var(--wine);
  font-family:Cinzel,serif;
  font-weight:700;
  letter-spacing:.04em;
}

.sns-card__image{
  width:30px;
  height:30px;
  display:block;
  object-fit:contain;
}
.sns-card h3{
  margin:4px 0 0;
  color:var(--navy);
  font-size:22px;
}
.sns-card__handle{
  margin:0;
  color:var(--wine);
  font-weight:700;
  word-break:break-all;
}
.sns-card__text{
  margin:0;
  color:var(--muted);
  font-size:14px;
}
.sns-card__more{
  margin-top:auto;
  color:var(--gold);
  font-weight:700;
  font-size:14px;
}
.sns-note{
  max-width:760px;
  margin:24px auto 0;
  padding:18px 22px;
  border-radius:22px;
  background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(255,232,243,.48),rgba(232,249,255,.58));
  border:1px solid rgba(88,199,232,.2);
  text-align:center;
  color:var(--muted);
}
@media(min-width:821px){
  .concept-box__lead{max-width:780px;margin-left:auto;margin-right:auto;text-wrap:balance}
}
@media(max-width:620px){
  .concept-box__lead span{display:inline}
  .sns-lead span{display:inline}
  .sns-lead span + span::before{content:" "}
}
@media(max-width:820px){
  .sns-grid{grid-template-columns:1fr;gap:14px}
  .sns-card{min-height:0;padding:22px;border-radius:22px}
  .sns-section::before{inset:20px 18px auto}
}


/* v1.0.21: Header SNS icons */
.header-sns{
  display:flex;
  align-items:center;
  gap:8px;
  margin-left:auto;
  margin-right:18px;
}
.header-sns__link{
  width:40px;
  height:40px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(255,232,243,.88));
  border:1px solid rgba(88,199,232,.26);
  box-shadow:0 10px 22px rgba(77,86,120,.09);
  color:var(--wine);
  transition:transform .22s ease,box-shadow .22s ease,background .22s ease;
}
.header-sns__link:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 28px rgba(77,86,120,.14);
  background:linear-gradient(135deg,#fff,#e8f9ff);
}
.header-sns__icon{
  font-family:Cinzel,'Noto Sans JP',sans-serif;
  font-weight:700;
  font-size:14px;
  line-height:1;
  letter-spacing:.02em;
}

.header-sns__image{
  width:20px;
  height:20px;
  display:block;
  object-fit:contain;
}
.header-sns__label{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
@media(max-width:820px){
  .site-header__inner{gap:8px}
  .header-sns{
    gap:6px;
    margin-left:auto;
    margin-right:6px;
  }
  .header-sns__link{
    width:34px;
    height:34px;
  }
  .header-sns__icon{font-size:12px}
  .header-sns__image{width:18px;height:18px}
}
@media(max-width:380px){
  .header-sns{gap:4px}
  .header-sns__link{width:31px;height:31px}
  .site-brand__logo,.custom-logo{width:116px}
}


/* v1.0.22: キャスト詳細のプロフィール文字を背景ビジュアル左下へ固定 */
.cast-visual__inner{position:relative;}
.cast-visual__profile-card{
  position:absolute;
  left:28px;
  bottom:44px;
  align-self:auto;
  text-align:left;
}
.cast-visual__profile-card .cast-detail__label,
.cast-visual__profile-card h1,
.cast-visual__profile-card .cast-detail__kana,
.cast-visual__profile-card .cast-detail__catch{
  text-align:left;
}
@media(max-width:820px){
  .cast-visual__inner{padding:32px 16px 24px;}
  .cast-visual__profile-card{
    left:16px;
    right:16px;
    bottom:24px;
    width:auto;
    max-width:none;
  }
  .cast-visual__profile-card h1{font-size:clamp(32px,10vw,54px);}
  .cast-visual__profile-card .cast-detail__catch{font-size:15px;line-height:1.6;}
}


/* v1.0.23: キャスト詳細の格言画像とプロフィール文字を確実に左下へ配置 */
.cast-visual__inner{
  position:relative !important;
  display:block !important;
}
.cast-visual__bottom-left{
  position:absolute !important;
  left:28px !important;
  bottom:42px !important;
  z-index:3 !important;
  width:min(560px,calc(100% - 56px)) !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:flex-end !important;
  gap:14px !important;
}
.cast-visual__bottom-left .cast-visual__quote{
  position:relative !important;
  left:auto !important;
  right:auto !important;
  top:auto !important;
  bottom:auto !important;
  width:min(420px,100%) !important;
  min-height:0 !important;
  display:block !important;
  align-items:initial !important;
  justify-content:initial !important;
  margin:0 !important;
}
.cast-visual__bottom-left .cast-visual__quote img{
  width:100% !important;
  height:auto !important;
  object-fit:contain !important;
}
.cast-visual__bottom-left .cast-visual__quote p{
  margin:0 !important;
}
.cast-visual__bottom-left .cast-visual__profile-card{
  position:relative !important;
  left:auto !important;
  right:auto !important;
  top:auto !important;
  bottom:auto !important;
  width:min(520px,100%) !important;
  max-width:100% !important;
  align-self:flex-start !important;
  text-align:left !important;
  margin:0 !important;
}
.cast-visual__bottom-left .cast-detail__label,
.cast-visual__bottom-left h1,
.cast-visual__bottom-left .cast-detail__kana,
.cast-visual__bottom-left .cast-detail__catch{
  text-align:left !important;
}
@media(max-width:820px){
  .cast-visual__bottom-left{
    left:16px !important;
    right:16px !important;
    bottom:22px !important;
    width:auto !important;
    gap:10px !important;
  }
  .cast-visual__bottom-left .cast-visual__quote{
    width:min(300px,78vw) !important;
  }
  .cast-visual__bottom-left .cast-visual__profile-card{
    width:100% !important;
    padding:18px !important;
    border-radius:20px !important;
  }
}


/* v1.0.24 access map */
.access-box--with-map{max-width:980px;display:grid;grid-template-columns:minmax(240px,320px) 1fr;gap:24px;align-items:stretch}
.access-box__info{display:flex;flex-direction:column;justify-content:center}
.access-map{position:relative;overflow:hidden;border-radius:20px;border:1px solid rgba(202,164,98,.28);box-shadow:0 14px 36px rgba(20,20,40,.10);background:#fff;min-height:320px}
.access-map iframe{position:absolute;inset:0;width:100%;height:100%;display:block}
@media(max-width:820px){.access-box--with-map{grid-template-columns:1fr;gap:18px}.access-map{min-height:0;aspect-ratio:4/3;border-radius:18px}}


/* v1.0.28: Hash view system only */
body.angeu-system-only .site-main > section:not(#system){display:none !important;}
body.angeu-system-only .site-main > #system{display:block;max-width:1180px;margin:0 auto;padding-top:72px;min-height:calc(100vh - 90px);}
body.angeu-system-only .site-main > #system.reveal{opacity:1;transform:none;}
body.angeu-system-only .site-main > #system .section__head{margin-bottom:34px;}
@media(max-width:820px){body.angeu-system-only .site-main > #system{padding-top:48px;}}

/* v1.0.28: System page content */
.system-layout{display:grid;gap:22px;max-width:1040px;margin:0 auto;}
.system-panel{position:relative;overflow:hidden;padding:28px;border-radius:28px;background:rgba(255,255,255,.95);border:1px solid rgba(88,199,232,.23);box-shadow:var(--shadow);}
.system-panel::before{content:"";position:absolute;inset:0 auto auto 0;width:6px;height:100%;background:linear-gradient(180deg,var(--wine),var(--gold));opacity:.85;}
.system-panel h3{margin:0 0 16px;color:var(--wine);font-size:clamp(20px,2.4vw,28px);}
.system-panel p{margin:0 0 10px;}.system-panel p:last-child{margin-bottom:0;}
.system-panel--lead{background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(255,232,243,.55),rgba(232,249,255,.64));}
.price-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0;}
.price-list div{padding:18px;border-radius:20px;background:#fff;border:1px solid rgba(88,199,232,.22);}
.price-list span{display:block;color:var(--muted);font-size:13px;font-weight:700;}.price-list strong{display:block;color:var(--navy);font-size:clamp(26px,4vw,40px);line-height:1.1;}
.system-note{color:var(--muted);font-size:14px;}.system-table-wrap{overflow-x:auto;border-radius:20px;border:1px solid rgba(88,199,232,.2);background:#fff;}
.system-online-link{margin:22px 0 0;text-align:center;}
.system-online-link a{position:relative;isolation:isolate;overflow:visible;display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:11px 24px;border-radius:999px;background:linear-gradient(135deg,#ff9bc5,#7fdaf2);color:#fff;font-weight:700;box-shadow:0 10px 26px rgba(216,95,154,.22);transition:transform .22s ease,box-shadow .22s ease;}
.system-online-link a:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(216,95,154,.28);}
.system-online-link a::before{content:"";position:absolute;z-index:-1;inset:0;border-radius:inherit;background:rgba(255,255,255,.72);opacity:0;transform:scale(.25);pointer-events:none;}
.system-online-link a.is-heart-clicked{animation:angeu-heart-button-bounce .52s cubic-bezier(.2,.8,.3,1);}
.system-online-link a.is-heart-clicked::before{animation:angeu-heart-ripple .58s ease-out;}
.system-online-link .heart-burst{position:absolute;z-index:3;left:var(--heart-x,50%);top:var(--heart-y,50%);font-size:var(--heart-size,16px);line-height:1;color:var(--heart-color,#ff5f9e);opacity:0;pointer-events:none;text-shadow:0 2px 8px rgba(216,95,154,.22);animation:angeu-heart-burst .72s cubic-bezier(.15,.75,.25,1) forwards;}
@keyframes angeu-heart-button-bounce{0%{transform:scale(1)}28%{transform:scale(.94)}62%{transform:scale(1.07)}100%{transform:scale(1)}}
@keyframes angeu-heart-ripple{0%{opacity:.78;transform:scale(.25)}100%{opacity:0;transform:scale(1.55)}}
@keyframes angeu-heart-burst{0%{opacity:0;transform:translate(-50%,-50%) scale(.35) rotate(0deg)}18%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--heart-tx)),calc(-50% + var(--heart-ty))) scale(1.15) rotate(var(--heart-rotate))}}
@media(prefers-reduced-motion:reduce){.system-online-link a.is-heart-clicked,.system-online-link a.is-heart-clicked::before,.system-online-link .heart-burst{animation:none}.system-online-link .heart-burst{display:none}}
.system-table{width:100%;border-collapse:collapse;min-width:520px;}.system-table tr:not(:last-child){border-bottom:1px solid rgba(88,199,232,.16);}
.system-table th,.system-table td{padding:14px 18px;text-align:left;vertical-align:middle;}.system-table th{font-weight:700;color:var(--ink);}.system-table td{width:190px;text-align:right;color:var(--wine);font-weight:800;white-space:nowrap;}.system-table small{display:block;color:var(--muted);font-weight:600;font-size:12px;}
.payment-icons{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin:18px 0;padding:18px;border-radius:22px;background:#fff;border:1px solid rgba(88,199,232,.22);box-shadow:0 12px 30px rgba(65,82,114,.08);}.payment-icons img{display:block;width:auto;height:34px;max-width:112px;object-fit:contain;}.payment-icons img[alt="交通系IC"]{height:78px;max-width:330px;}.payment-icons img[alt="PayPay"]{height:42px;}.payment-icons img[alt="QUICPay"]{height:40px;}@media (max-width:640px){.payment-icons{gap:10px 12px;padding:14px;}.payment-icons img{height:28px;max-width:88px;}.payment-icons img[alt="交通系IC"]{height:auto;width:100%;max-width:270px;}.payment-icons img[alt="PayPay"]{height:34px;}.payment-icons img[alt="QUICPay"]{height:32px;}}
@media(max-width:620px){.system-panel{padding:22px;border-radius:22px}.price-list{grid-template-columns:1fr}.system-table{min-width:0}.system-table th,.system-table td{display:block;width:100%;text-align:left;padding:12px 14px}.system-table td{padding-top:0}.system-table tr{display:block}.system-table tr:not(:last-child){border-bottom:1px solid rgba(88,199,232,.16)}}

/* v1.0.29: キャスト詳細の格言・プロフィールを背景画像そのものの左下へ固定 */
.cast-detail--visual .cast-visual{
  min-height:calc(100svh - 74px);
  background:linear-gradient(180deg,#fff8eb 0%,#fff 100%);
  display:grid;
  place-items:center;
  overflow:hidden;
  padding:0;
}
.cast-detail--visual .cast-visual::before{display:none !important;}
.cast-visual__stage{
  position:relative;
  display:block;
  width:fit-content;
  max-width:100vw;
  max-height:calc(100svh - 74px);
  margin:0 auto;
  overflow:hidden;
  background:#fff8eb;
}
.cast-visual__stage--empty{
  width:100%;
  min-height:calc(100svh - 74px);
}
.cast-visual__bg-image{
  display:block;
  width:auto;
  height:auto;
  max-width:100vw;
  max-height:calc(100svh - 74px);
  object-fit:contain;
}
.cast-visual__stage .cast-visual__shade{
  position:absolute !important;
  inset:auto 0 0 0 !important;
  height:45% !important;
  background:linear-gradient(0deg,rgba(23,31,59,.62),rgba(23,31,59,0)) !important;
  pointer-events:none;
  z-index:1;
}
.cast-visual__stage .cast-visual__bottom-left{
  position:absolute !important;
  left:clamp(18px,4.2%,54px) !important;
  bottom:clamp(18px,5%,58px) !important;
  width:min(520px,calc(100% - clamp(36px,8.4%,108px))) !important;
  max-width:none !important;
  z-index:3 !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:flex-end !important;
  gap:14px !important;
  margin:0 !important;
  transform:none !important;
}
.cast-visual__stage .cast-visual__quote{
  width:min(420px,100%) !important;
  max-width:100% !important;
  margin:0 !important;
}
.cast-visual__stage .cast-visual__profile-card{
  width:min(520px,100%) !important;
  max-width:100% !important;
  margin:0 !important;
}
@media(max-width:820px){
  .cast-detail--visual .cast-visual{
    min-height:auto;
    padding:0;
    align-items:start;
  }
  .cast-visual__stage{
    width:100%;
    max-width:100vw;
    max-height:none;
  }
  .cast-visual__bg-image{
    width:100%;
    max-width:100%;
    max-height:none;
  }
  .cast-visual__stage .cast-visual__bottom-left{
    left:14px !important;
    right:14px !important;
    bottom:16px !important;
    width:auto !important;
    gap:9px !important;
  }
  .cast-visual__stage .cast-visual__quote{
    width:min(280px,68vw) !important;
  }
  .cast-visual__stage .cast-visual__profile-card{
    padding:16px !important;
    border-radius:18px !important;
  }
}

/* v1.0.30: iPhone Google Map iframe fix */
.access-map{position:relative;overflow:hidden;height:450px;min-height:320px}.access-map iframe{position:relative!important;width:100%!important;height:100%!important;display:block!important;border:0!important}.access-map__fallback{display:none;margin:10px 0 0;text-align:center}.access-map__fallback a{display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;border-radius:999px;background:var(--navy);color:#fff;font-weight:700}@media(max-width:820px){.access-map{height:clamp(260px,78vw,380px);min-height:260px;aspect-ratio:auto}.access-map__fallback{display:block}}

/* v1.0.31: キャスト詳細を参考画像のような上部ロゴ＋ビジュアル＋下部名前帯レイアウトへ変更 */
.cast-detail--visual{
  background:#31343b;
}
.cast-detail--visual .cast-visual{
  min-height:auto;
  padding:0 clamp(0px,5vw,56px);
  background:#31343b;
  display:block;
  overflow:visible;
}
.cast-detail--visual .cast-visual::before{display:none!important;}
.cast-visual__stage{
  position:relative!important;
  width:min(920px,100%)!important;
  max-width:100%!important;
  max-height:none!important;
  margin:0 auto!important;
  overflow:hidden!important;
  background:#fff!important;
  box-shadow:0 24px 70px rgba(0,0,0,.28);
}
.cast-visual__bg-image{
  display:block!important;
  width:100%!important;
  height:auto!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:contain!important;
}
.cast-visual__logo-cap{
  position:absolute;
  z-index:4;
  left:50%;
  top:0;
  transform:translateX(-50%);
  width:min(360px,48%);
  padding:18px 34px 24px;
  background:rgba(255,255,255,.92);
  border-radius:0 0 46% 46% / 0 0 28% 28%;
  box-shadow:0 12px 28px rgba(255,255,255,.25);
  display:flex;
  align-items:center;
  justify-content:center;
}
.cast-visual__logo-cap img{
  width:100%;
  height:auto;
  display:block;
}
.cast-visual__stage .cast-visual__shade{
  height:var(--cast-image-haze-height, 42%)!important;
  background:linear-gradient(0deg, rgb(255 245 248 / var(--cast-image-haze-opacity, .76)), rgb(255 245 248 / 0))!important;
  z-index:1!important;
}
.cast-visual__stage .cast-visual__bottom-left{
  left:clamp(18px,7%,70px)!important;
  bottom:clamp(36px,11%,112px)!important;
  width:min(520px,62%)!important;
  z-index:5!important;
}
.cast-visual__stage .cast-visual__quote{
  width:100%!important;
  max-width:100%!important;
  filter:drop-shadow(0 8px 14px rgba(255,255,255,.55));
}
.cast-visual__stage .cast-visual__quote img{
  width:100%!important;
  height:auto!important;
  opacity:.78;
}
.cast-visual__stage .cast-visual__quote p{
  color:#2f180d!important;
  opacity:.75;
  font-size:clamp(24px,4.2vw,52px)!important;
  text-shadow:0 2px 0 rgba(255,255,255,.88),0 12px 24px rgba(255,255,255,.65)!important;
}
.cast-visual__profile-card{display:none!important;}
.cast-visual__name-strip{
  width:min(920px,100%);
  margin:0 auto;
  background:rgba(255,255,255,.98);
  border-top:1px solid rgba(88,199,232,.18);
  box-shadow:0 24px 70px rgba(0,0,0,.18);
}
.cast-visual__name-inner{
  min-height:150px;
  padding:34px clamp(24px,5vw,70px);
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(220px,.8fr);
  gap:28px;
  align-items:center;
}
.cast-visual__name-main h1{
  margin:6px 0 0;
  color:#3c2f2a;
  font-family:Cinzel,'Noto Sans JP',serif;
  font-size:clamp(42px,5.4vw,76px);
  line-height:1.06;
  font-weight:500;
  letter-spacing:.08em;
}
.cast-visual__name-main .cast-detail__label{
  color:var(--gold);
  margin:0;
  font-size:12px;
}
.cast-visual__name-main .cast-detail__kana{
  margin:10px 0 0;
  color:#b85a73;
  letter-spacing:.18em;
}
.cast-visual__name-sub{
  border-left:1px solid rgba(60,47,42,.14);
  padding-left:28px;
}
.cast-visual__name-sub .cast-detail__catch{
  margin:0 0 14px;
  color:#b85a73;
  font-size:clamp(15px,1.8vw,20px);
  line-height:1.7;
}
.cast-detail__content--visual{
  background:#fff;
  margin-top:0;
}
@media(max-width:820px){
  .cast-detail--visual .cast-visual{
    padding:0;
    background:#31343b;
  }
  .cast-visual__stage{
    width:100%!important;
  }
  .cast-visual__logo-cap{
    width:min(250px,54%);
    padding:12px 22px 18px;
    border-radius:0 0 42% 42% / 0 0 24% 24%;
  }
  .cast-visual__stage .cast-visual__bottom-left{
    left:7%!important;
    bottom:10%!important;
    width:58%!important;
    right:auto!important;
  }
  .cast-visual__stage .cast-visual__quote{
    width:100%!important;
  }
  .cast-visual__name-strip{
    width:100%;
  }
  .cast-visual__name-inner{
    min-height:auto;
    padding:28px 22px;
    grid-template-columns:1fr;
    gap:14px;
  }
  .cast-visual__name-main h1{
    font-size:clamp(34px,11vw,56px);
    letter-spacing:.04em;
  }
  .cast-visual__name-sub{
    border-left:0;
    border-top:1px solid rgba(60,47,42,.12);
    padding-left:0;
    padding-top:14px;
  }
}
@media(max-width:420px){
  .cast-visual__logo-cap{width:62%;padding:10px 18px 15px;}
  .cast-visual__stage .cast-visual__bottom-left{left:6%!important;bottom:9%!important;width:60%!important;}
}


/* v1.0.32: キャスト詳細の背景ビジュアル上にロゴを重ねない */
.cast-detail--visual .cast-visual__logo-cap{
  display:none!important;
}


/* v1.0.33: Recruit page/section */
body.angeu-recruit-only .site-main > section:not(#recruit){display:none !important;}
body.angeu-recruit-only .site-main > #recruit{display:block;max-width:1180px;margin:0 auto;padding-top:72px;min-height:calc(100vh - 90px);}
body.angeu-recruit-only .site-main > #recruit.reveal{opacity:1;transform:none;}
body.angeu-recruit-only .site-main > #recruit .section__head{margin-bottom:34px;}
.recruit-section{position:relative;background:linear-gradient(180deg,rgba(255,255,255,.38),rgba(255,232,243,.28));}
.recruit-wrap{max-width:980px;margin:0 auto;display:grid;gap:24px;}
.recruit-panel{position:relative;overflow:hidden;padding:30px;border-radius:28px;background:rgba(255,255,255,.95);border:1px solid rgba(88,199,232,.23);box-shadow:var(--shadow);}
.recruit-panel::before{content:"";position:absolute;inset:0 auto auto 0;width:6px;height:100%;background:linear-gradient(180deg,var(--wine),var(--gold));opacity:.85;}
.recruit-panel h3{margin:0 0 18px;color:var(--wine);font-size:clamp(22px,2.6vw,32px);}
.recruit-panel--lead{text-align:center;background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(255,232,243,.58),rgba(232,249,255,.72));}
.recruit-lead{max-width:720px;margin:0 auto 22px;color:var(--ink);font-weight:700;font-size:clamp(16px,2vw,20px);}
.recruit-hero-image{margin:0 auto 24px;max-width:1080px;border-radius:28px;overflow:hidden;box-shadow:0 24px 70px rgba(78,95,122,.18);border:1px solid rgba(88,199,232,.22);background:#fff;}
.recruit-hero-image img{display:block;width:100%;height:auto;}
.recruit-line-button{min-width:min(100%,280px);}
.recruit-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
.recruit-step{padding:22px;border-radius:22px;background:linear-gradient(135deg,#fff,#fff5fa);border:1px solid rgba(88,199,232,.18);}
.recruit-step span{display:inline-block;margin-bottom:10px;font-family:Cinzel,serif;font-weight:800;letter-spacing:.12em;color:var(--gold);}
.recruit-step h4{margin:0 0 8px;color:var(--navy);font-size:18px;}
.recruit-step p{margin:0;color:var(--muted);}
.recruit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;}
.recruit-list{margin:0;padding:0;list-style:none;display:grid;gap:12px;}
.recruit-list li{position:relative;padding:12px 14px 12px 34px;border-radius:16px;background:#fff;border:1px solid rgba(88,199,232,.16);}
.recruit-list li::before{content:"✦";position:absolute;left:14px;top:12px;color:var(--gold);}
@media(max-width:820px){body.angeu-recruit-only .site-main > #recruit{padding-top:48px}.recruit-steps,.recruit-grid{grid-template-columns:1fr}.recruit-panel{padding:22px;border-radius:22px}}


/* v1.0.34 access page mode */
body.angeu-access-only .site-main > section:not(#access){display:none !important;}
body.angeu-access-only .site-main > #access{display:block;max-width:1180px;margin:0 auto;padding-top:72px;min-height:calc(100vh - 90px);}
body.angeu-access-only .site-main > #access.reveal{opacity:1;transform:none;}
body.angeu-access-only .site-main > #access .section__head{margin-bottom:34px;}
.access-section{position:relative;background:linear-gradient(180deg,rgba(255,255,255,.48),rgba(224,247,255,.22));}
.access-box--full{max-width:1120px;grid-template-columns:minmax(320px,1.05fr) minmax(320px,.95fr);align-items:start;}
.access-summary__label{font-family:Cinzel,serif;letter-spacing:.18em;color:var(--gold);font-weight:700;margin:0 0 4px;}
.access-summary h3,.access-route h3,.access-host h3{font-size:24px;margin:0 0 16px;color:var(--navy);}
.access-list{margin:0;display:grid;gap:14px;}
.access-list div{display:grid;grid-template-columns:92px 1fr;gap:14px;padding-bottom:14px;border-bottom:1px solid rgba(202,164,98,.22);}
.access-list dt{font-weight:700;color:var(--wine);}
.access-list dd{margin:0;}
.access-list span{font-size:13px;color:var(--muted);}
.access-route{margin-top:28px;}
.route-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.route-card{padding:16px;border-radius:18px;background:rgba(255,255,255,.86);border:1px solid rgba(202,164,98,.24);}
.route-card p{margin:0 0 8px;}
.route-card__station{font-weight:700;color:var(--navy);}
.route-card a{display:inline-flex;margin-top:2px;font-size:13px;font-weight:700;color:var(--wine);border-bottom:1px solid currentColor;}
.access-note{margin:18px 0 0;padding:18px;border-radius:18px;background:linear-gradient(135deg,rgba(255,248,235,.9),rgba(255,255,255,.9));border:1px solid rgba(202,164,98,.20);}
.access-host{margin-top:22px;padding:20px;border-radius:20px;background:rgba(255,255,255,.72);border:1px solid rgba(202,164,98,.22);}
.access-host p{margin:0;}
body.angeu-access-only .access-map{position:sticky;top:110px;}
@media(max-width:820px){body.angeu-access-only .site-main > #access{padding-top:48px}.access-box--full{grid-template-columns:1fr;gap:20px}.access-list div{grid-template-columns:1fr;gap:4px}.route-grid{grid-template-columns:1fr}body.angeu-access-only .access-map{position:relative;top:auto}}


/* v1.0.35: キャスト詳細のふりがなをACFメンバーカラーで上書き可能にする */
.cast-visual__name-main .cast-detail__kana[style]{
  text-shadow: 0 1px 0 rgba(255,255,255,.85);
}


/* v1.0.36: キャスト詳細のふりがなを太字にする */
.cast-visual__name-main .cast-detail__kana{
  font-weight:800;
}


/* v1.0.38: CAST一覧を学年グループ表示へ変更 */
.cast-grade-groups{
  display:grid;
  gap:40px;
}
.cast-grade-group{
  position:relative;
}
.cast-grade-group[hidden]{display:none!important;}
.cast-grade-group__head{
  display:flex;
  align-items:center;
  gap:16px;
  margin:0 0 18px;
}
.cast-grade-group__label{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:92px;
  padding:7px 18px;
  border-radius:999px;
  background:#fff;
  font-weight:900;
  letter-spacing:.1em;
  box-shadow:0 10px 24px rgba(77,86,120,.09);
}
.cast-grade-group__line{
  flex:1;
  height:2px;
  border-radius:999px;
  background:currentColor;
  opacity:.26;
}
.cast-grade-group--grade-1{color:#37a96b;}
.cast-grade-group--grade-2{color:#3c8ee8;}
.cast-grade-group--grade-3{color:#e25564;}
.cast-grade-group--grade-other{color:var(--muted);}
.cast-grid--grade{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:22px;
}
.cast-card--select{
  border-width:3px;
  background:#fff;
  box-shadow:0 18px 42px rgba(77,86,120,.12);
}
.cast-card--grade-1{border-color:#37a96b;}
.cast-card--grade-2{border-color:#3c8ee8;}
.cast-card--grade-3{border-color:#e25564;}
.cast-card--grade-other{border-color:rgba(123,129,148,.45);}
.cast-card--select a{
  display:block;
  height:100%;
}
.cast-card--select .cast-card__image{
  aspect-ratio:4/5;
  border-bottom:1px solid rgba(77,86,120,.08);
}
.cast-card--select .cast-card__body{
  padding:15px 12px 17px;
  text-align:center;
  background:linear-gradient(180deg,#fff,rgba(248,252,255,.96));
}
.cast-card--select .cast-card__body h3{
  margin:0;
  font-size:20px;
  line-height:1.35;
  color:var(--ink);
  font-weight:900;
}
.cast-card--select .cast-card__kana{
  margin:3px 0 0;
  color:var(--muted);
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
}
.cast-card--select .cast-card__status,
.cast-card--select .cast-card__meta,
.cast-card--select .cast-card__body > p:not(.cast-card__kana){
  display:none !important;
}
@media(max-width:980px){
  .cast-grid--grade{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
}
@media(max-width:620px){
  #cast .cast-grid--grade{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:12px;
  }
  .cast-grade-groups{gap:30px;}
  .cast-grade-group__head{gap:10px;margin-bottom:12px;}
  .cast-grade-group__label{min-width:72px;padding:5px 12px;font-size:13px;}
  #cast .cast-card--select{border-radius:18px;border-width:2px;}
  #cast .cast-card--select .cast-card__body{padding:11px 8px 13px;}
  #cast .cast-card--select .cast-card__body h3{font-size:15px;line-height:1.35;}
  #cast .cast-card--select .cast-card__kana{font-size:10px;margin-top:2px;}
  #cast .cast-card--select .cast-card__image{aspect-ratio:3/4;}
}

/* v1.0.39 Cast list category layout based on reference sketch */
.cast-category-panel{
  margin:0 auto 26px;
  padding:22px 18px;
  border-radius:28px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(88,199,232,.24);
  box-shadow:0 18px 44px rgba(46,74,116,.08);
  text-align:center;
}
.cast-category-panel__label{
  margin:0 0 14px;
  font-family:Cinzel,serif;
  letter-spacing:.22em;
  color:var(--navy);
  font-weight:700;
}
.cast-category-buttons{
  display:flex;
  justify-content:center;
  gap:14px;
  flex-wrap:wrap;
}
.cast-category-button{
  min-width:90px;
  min-height:58px;
  padding:10px 16px;
  border-radius:8px;
  background:#fff;
  color:var(--navy);
  font-weight:800;
  letter-spacing:.08em;
  border:3px solid rgba(123,129,148,.35);
  box-shadow:0 10px 22px rgba(46,74,116,.08);
  cursor:pointer;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.cast-category-button:hover,
.cast-category-button.is-active{
  transform:translateY(-3px);
  box-shadow:0 16px 30px rgba(46,74,116,.13);
  background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);
}
.cast-category-button--grade-1{border-color:#37a96b;}
.cast-category-button--grade-2{border-color:#3c8ee8;}
.cast-category-button--grade-3{border-color:#e25564;}
.cast-category-button--all.is-active{border-color:var(--gold);}
.cast-category-button--grade-1.is-active{background:rgba(55,169,107,.08);}
.cast-category-button--grade-2.is-active{background:rgba(60,142,232,.08);}
.cast-category-button--grade-3.is-active{background:rgba(226,85,100,.08);}
.cast-grade-group__title{
  font-weight:800;
  letter-spacing:.08em;
  color:currentColor;
  white-space:nowrap;
}
.cast-grade-group--grade-1 .cast-grade-group__title::before{content:'1年のメンバー';font-size:0;}
.cast-grade-group--grade-2 .cast-grade-group__title::before{content:'2年のメンバー';font-size:0;}
.cast-grade-group--grade-3 .cast-grade-group__title::before{content:'3年のメンバー';font-size:0;}
.cast-card--select{
  position:relative;
  background:#fff;
}
.cast-card--select::before{
  content:'';
  position:absolute;
  inset:6px;
  border-radius:20px;
  border:1px solid rgba(255,255,255,.75);
  pointer-events:none;
  z-index:1;
}
.cast-card--select .cast-card__body{
  position:relative;
  z-index:2;
  background:linear-gradient(180deg,rgba(255,255,255,.96),#fff);
}
.cast-card--select .cast-card__kana{
  color:var(--muted);
  letter-spacing:.08em;
  font-weight:700;
}
@media(max-width:620px){
  .cast-category-panel{padding:16px 10px;border-radius:22px;margin-bottom:20px;}
  .cast-category-buttons{gap:8px;}
  .cast-category-button{min-width:66px;min-height:48px;padding:8px 10px;font-size:13px;border-width:2px;}
  .cast-grade-group__title{font-size:13px;}
}


/* v1.0.40: キャスト一覧のふりがなを太字・メンバーカラー対応にする */
.cast-card--select .cast-card__kana{
  font-weight:900;
}
.cast-card--select .cast-card__kana[style]{
  color:inherit;
}


/* v1.0.44: PCキャスト詳細の左右余白を黒背景から白基調の淡い背景へ変更 */
.cast-detail--visual{
  background:
    radial-gradient(circle at 18% 12%, rgba(255,232,243,.72) 0%, rgba(255,232,243,0) 32%),
    radial-gradient(circle at 84% 18%, rgba(232,249,255,.78) 0%, rgba(232,249,255,0) 34%),
    linear-gradient(180deg,#ffffff 0%,#f8fbff 46%,#fff5fa 100%) !important;
}
.cast-detail--visual .cast-visual{
  background:transparent !important;
  padding:0 clamp(18px,4vw,72px) !important;
}
.cast-detail--visual .cast-visual::after{
  content:'';
  position:absolute;
  inset:74px 0 auto 0;
  height:min(54vw,620px);
  background:linear-gradient(90deg,rgba(255,255,255,.0),rgba(255,232,243,.22),rgba(232,249,255,.24),rgba(255,255,255,.0));
  pointer-events:none;
  z-index:0;
}
.cast-detail--visual .cast-visual__stage,
.cast-detail--visual .cast-visual__name-strip{
  position:relative;
  z-index:1;
  width:min(1180px,100%) !important;
}
.cast-detail--visual .cast-visual__stage{
  box-shadow:0 24px 70px rgba(46,74,116,.14) !important;
  border-left:1px solid rgba(88,199,232,.14);
  border-right:1px solid rgba(255,143,190,.12);
}
.cast-detail--visual .cast-visual__name-strip{
  box-shadow:0 24px 70px rgba(46,74,116,.10) !important;
}
.cast-detail--visual .cast-detail__content--visual{
  background:transparent !important;
}
@media(max-width:820px){
  .cast-detail--visual .cast-visual{padding:0!important;}
  .cast-detail--visual .cast-visual::after{display:none;}
}

/* v1.0.45: アクセスのルート表示をiframe更新式に変更 */
/* v1.0.46: アクセスからホスト部住所を削除 */
.route-card .js-access-route{cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;}
.route-card .js-access-route.is-active{padding:6px 12px;border-radius:999px;background:var(--navy);color:#fff;border-bottom-color:transparent;transform:translateY(-1px);}


/* v1.0.49: bilingual global navigation */
.global-nav a{display:flex;flex-direction:column;align-items:center;gap:2px;line-height:1.15;white-space:nowrap;}
.global-nav .nav-en{display:none;}
.global-nav .nav-ja{font-family:'Noto Sans JP',sans-serif;font-size:13px;letter-spacing:.05em;font-weight:700;white-space:nowrap;}
@media(max-width:820px){.global-nav a{align-items:flex-start}.global-nav .nav-ja{font-size:14px}}


/* v1.0.50: top hero academy logo replacement */
.hero__logo{width:min(760px,78vw);max-height:360px;object-fit:contain;margin:0 auto 28px;filter:drop-shadow(0 18px 28px rgba(95,120,210,.18));}
@media(max-width:820px){.hero__logo{width:min(560px,82vw);max-height:250px;margin-bottom:20px;}}


/* v1.0.53: SNSページ専用表示 */
body.angeu-sns-only .site-main > section:not(#sns){display:none !important;}
body.angeu-sns-only .site-main > #sns{display:block;max-width:1180px;margin:0 auto;padding-top:72px;min-height:calc(100vh - 90px);}
body.angeu-sns-only .site-main > #sns.reveal{opacity:1;transform:none;}
body.angeu-sns-only .site-main > #sns .section__head{margin-bottom:34px;}
@media(max-width:820px){body.angeu-sns-only .site-main > #sns{padding-top:48px;}}

/* v1.0.54: 生徒会グループをキャスト一覧の先頭に表示 */
.cast-category-button--student-council{
  border-color:#e25564;
  color:#e25564;
  background:linear-gradient(180deg,#fff,#fff5f7);
}
.cast-category-button--student-council.is-active{
  background:#e25564;
  color:#fff;
}
.cast-grade-group--student-council{
  color:#e25564;
}
.cast-grade-group--student-council .cast-grade-group__label{
  border-color:#e25564;
  background:#fff5f7;
  color:#e25564;
}
.cast-grade-group--student-council .cast-grade-group__title::before{
  content:'生徒会メンバー';
  font-size:0;
}
.cast-card--student-council{
  border-color:#e25564 !important;
  box-shadow:0 16px 36px rgba(226,85,100,.14);
}

/* v1.0.56: 生徒会メンバーのカード枠は各キャストの学年色（1年=緑 / 2年=青 / 3年=赤）を使用 */


/* v1.0.57: セクション見出しの英字ラベルを非表示化し、各メニューの単独表示を安定化 */
.section__head > p{display:none !important;}

body.angeu-concept-only .site-main > section:not(#concept),
body.angeu-event-only .site-main > section:not(#event),
body.angeu-schedule-only .site-main > section:not(#schedule){display:none !important;}

body.angeu-concept-only .site-main > #concept,
body.angeu-event-only .site-main > #event,
body.angeu-schedule-only .site-main > #schedule{display:block;max-width:1180px;margin:0 auto;padding-top:72px;min-height:calc(100vh - 90px);}

body.angeu-concept-only .site-main > #concept.reveal,
body.angeu-event-only .site-main > #event.reveal,
body.angeu-schedule-only .site-main > #schedule.reveal{opacity:1;transform:none;}

body.angeu-concept-only .site-main > #concept .section__head,
body.angeu-event-only .site-main > #event .section__head,
body.angeu-schedule-only .site-main > #schedule .section__head{margin-bottom:34px;}

@media(max-width:820px){
  body.angeu-concept-only .site-main > #concept,
  body.angeu-event-only .site-main > #event,
  body.angeu-schedule-only .site-main > #schedule{padding-top:48px;}
}


/* v1.0.101 ファンマーク表示調整 */
.cast-card__name {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.34em;
  flex-wrap: nowrap;
  overflow: visible;
}
.cast-card__fan-mark {
  width: 34px;
  height: 34px;
  object-fit: contain;
  flex: 0 0 34px;
  vertical-align: middle;
  image-rendering: auto;
  position: relative;
  z-index: 1;
  padding: 4px;
  border: 1px solid #cfd3dc;
  border-radius: 8px;
  background: rgba(255,255,255,.92);
  box-shadow: 0 4px 10px rgba(65,82,114,.10);
  box-sizing: border-box;
}
.profile-fan-mark {
  width: 52px;
  height: 52px;
  object-fit: contain;
  vertical-align: middle;
  padding: 6px;
  border: 1px solid #cfd3dc;
  border-radius: 10px;
  background: rgba(255,255,255,.92);
  box-shadow: 0 4px 10px rgba(65,82,114,.10);
  box-sizing: border-box;
}
@media (max-width: 640px) {
  .cast-card__name {
    gap: 0.26em;
  }
  .cast-card__fan-mark {
    width: 28px;
    height: 28px;
    flex-basis: 28px;
    padding: 3px;
    border-radius: 7px;
  }
  .profile-fan-mark {
    width: 46px;
    height: 46px;
    padding: 5px;
  }
}

/* v1.0.65: System menu image gallery */
.system-menu-images{max-width:1040px;margin:34px auto 0;padding:28px;border-radius:30px;background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(255,245,250,.7),rgba(236,250,255,.72));border:1px solid rgba(88,199,232,.22);box-shadow:var(--shadow);}
.system-menu-images__head{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:20px;border-bottom:1px solid rgba(88,199,232,.22);padding-bottom:16px;}
.system-menu-images__head h3{margin:0;color:var(--wine);font-size:clamp(22px,2.8vw,34px);letter-spacing:.08em;}
.system-menu-images__head p{margin:0;color:var(--muted);font-size:14px;}
.system-menu-images__grid{display:grid;grid-template-columns:1fr;gap:22px;}
.system-menu-image{margin:0;border-radius:22px;overflow:hidden;background:#fff;border:1px solid rgba(65,82,114,.12);box-shadow:0 14px 32px rgba(65,82,114,.10);}
.system-menu-image a{display:block;}
.system-menu-image img{display:block;width:100%;height:auto;}
@media(min-width:900px){.system-menu-images__grid{grid-template-columns:1fr;}.system-menu-image{grid-column:1 / -1;width:100%;}}
 .system-menu-images__nav{display:none;}
@media(max-width:640px){.system-menu-images{padding:18px 0 20px;border-radius:22px;margin-top:24px;overflow:hidden;}.system-menu-images__head{display:block;padding:0 18px;margin-bottom:14px;}.system-menu-images__head p{margin-top:8px;}.system-menu-images__nav{display:flex;justify-content:flex-end;gap:10px;padding:0 18px 12px;}.system-menu-images__arrow{width:42px;height:42px;border-radius:999px;border:1px solid rgba(88,199,232,.32);background:#fff;color:var(--navy);box-shadow:0 8px 18px rgba(65,82,114,.12);font-size:30px;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;}.system-menu-images__arrow:active{transform:translateY(1px);}.system-menu-images__grid{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:0 18px 10px;scrollbar-width:none;}.system-menu-images__grid::-webkit-scrollbar{display:none;}.system-menu-image{border-radius:16px;flex:0 0 86%;scroll-snap-align:center;}.system-menu-image img{height:auto;}.system-menu-image a{height:100%;}.system-menu-images::after{content:'横にスワイプできます';display:block;text-align:center;font-size:12px;color:var(--muted);margin-top:8px;letter-spacing:.08em;}}


/* v1.0.67: 先生グループをキャスト一覧の一番下に追加 */
.cast-category-button--teacher{
  border-color:#9aa0a6;
  color:#68707a;
  background:linear-gradient(180deg,#fff,#f7f8fa);
}
.cast-category-button--teacher.is-active{
  background:#68707a;
  color:#fff;
}
.cast-grade-group--teacher{
  color:#68707a;
}
.cast-grade-group--teacher .cast-grade-group__label{
  border-color:#9aa0a6;
  background:#f7f8fa;
  color:#68707a;
}
.cast-grade-group--teacher .cast-grade-group__title{
  display:none;
}
.cast-card--teacher{
  border-color:#9aa0a6 !important;
  box-shadow:0 16px 36px rgba(104,112,122,.14);
}

/* v1.0.70 access map position */
.access-box--full{grid-template-columns:1fr;max-width:980px;}
.access-box__info{width:100%;}
.access-map--inline{margin:18px 0 22px;height:420px;min-height:300px;}
body.angeu-access-only .access-map--inline{position:relative;top:auto;}
@media(max-width:820px){.access-map--inline{height:clamp(260px,78vw,380px);margin:16px 0 20px;}}

/* v1.0.71: 先生グループ見出しの重複表示を解消 */


/* v1.0.73: キャスト一覧のグループ見出し文字（生徒会メンバー / 1年のメンバー等）を非表示 */
.cast-grade-group__title,
.cast-grade-group__title::before{
  content:'' !important;
  display:none !important;
}


/* v1.0.76: mobile menu usability */
@media(max-width:820px){
  .global-nav ul{gap:10px;}
  .global-nav a{
    align-items:flex-start;
    min-height:48px;
    padding:12px 16px;
    border-radius:14px;
    background:rgba(255,255,255,.72);
    border:1px solid rgba(88,199,232,.16);
  }
  .global-nav .nav-ja{
    font-size:16px;
    line-height:1.35;
    letter-spacing:.04em;
  }
}

/* v1.0.77: TOPへ戻るキャラクターアイコン */
.scroll-top-button{
  position:fixed;
  right:clamp(14px,2.4vw,34px);
  bottom:clamp(18px,3vw,38px);
  z-index:999;
  width:clamp(92px,10vw,136px);
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
  opacity:0;
  visibility:hidden;
  transform:translateY(22px) scale(.92);
  transition:opacity .28s ease, visibility .28s ease, transform .28s ease, filter .28s ease;
  filter:drop-shadow(0 16px 20px rgba(65,82,114,.20));
}
.scroll-top-button.is-visible{
  opacity:1;
  visibility:visible;
  transform:translateY(0) scale(1);
}
.scroll-top-button:hover{
  transform:translateY(-4px) scale(1.03);
  filter:drop-shadow(0 18px 24px rgba(65,82,114,.24));
}
.scroll-top-button__text{
  display:block;
  margin:0 auto -4px;
  color:var(--navy);
  font-family:'Noto Serif JP',serif;
  font-size:clamp(20px,2.2vw,30px);
  font-weight:800;
  letter-spacing:.08em;
  line-height:1;
  text-align:center;
  text-shadow:0 2px 0 rgba(255,255,255,.85),0 8px 16px rgba(88,199,232,.20);
}
.scroll-top-button__image{
  display:block;
  width:100%;
  height:auto;
  animation:angeu-scrolltop-float 2.8s ease-in-out infinite;
  transform-origin:center bottom;
}
@keyframes angeu-scrolltop-float{
  0%,100%{transform:translateY(0) rotate(-2deg);}
  50%{transform:translateY(-7px) rotate(2deg);}
}
@media(max-width:640px){
  .scroll-top-button{
    right:10px;
    bottom:14px;
    width:82px;
  }
  .scroll-top-button__text{
    font-size:18px;
    margin-bottom:-2px;
  }
}
@media(prefers-reduced-motion:reduce){
  .scroll-top-button,
  .scroll-top-button__image{
    transition:none;
    animation:none;
  }
}


/* v1.0.123: コンセプト画像のみpicture要素で排他的に表示 */
.concept-visual__picture{
  display:block!important;
  width:100%!important;
  height:auto!important;
}
.concept-visual__picture .concept-visual__img{
  display:block!important;
  width:100%!important;
  height:auto!important;
}


/* v1.0.78: トップ「天使学園」イメージを横幅いっぱいのフェードスライドショー化 */
.hero{
  display:block;
  min-height:auto;
  padding:0 0 84px;
}
.hero__inner{
  max-width:100%;
  width:100%;
  padding:0 24px;
}
.hero-slideshow{
  position:relative;
  width:100vw;
  /* v1.0.81: 縦方向が見切れないよう、固定heightではなく比率ベースに変更 */
  aspect-ratio:16 / 9;
  min-height:320px;
  height:auto;
  margin:0 calc(50% - 50vw) 48px;
  overflow:hidden;
  background:linear-gradient(135deg,#fff7fb,#e8f9ff);
  border-bottom:1px solid rgba(88,199,232,.24);
  box-shadow:0 28px 80px rgba(88,123,160,.16);
}
.hero-slideshow__slide{
  position:absolute;
  inset:0;
  opacity:0;
  transition:opacity 1.2s ease;
  pointer-events:none;
}
.hero-slideshow__slide.is-active{
  opacity:1;
  z-index:1;
}
.hero-slideshow__slide img{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  object-position:center;
}
.hero-slideshow__img--sp{
  display:none !important;
}
@media(max-width:820px){
  .hero-slideshow__img--pc{
    display:none !important;
  }
  .hero-slideshow__img--sp{
    display:block !important;
  }
}
.hero-slideshow__slide::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(255,255,255,.05) 0%,rgba(255,255,255,.18) 58%,rgba(255,255,255,.72) 100%);
  pointer-events:none;
}
.hero__label,
.hero__title,
.hero__lead,
.hero__actions{
  max-width:900px;
  margin-left:auto;
  margin-right:auto;
}
.hero__title{text-align:center;}
.hero__lead{text-align:center;}
@media(max-width:820px){
  .hero{padding-bottom:64px;}
  .hero__inner{padding:0 18px;}
  .hero-slideshow{
    /* v1.0.81: SPは縦長画像を活かしやすい比率に変更 */
    aspect-ratio:9 / 16;
    min-height:520px;
    max-height:78vh;
    height:auto;
    margin-bottom:34px;
  }
}
@media(max-width:520px){
  .hero-slideshow{
    min-height:430px;
    max-height:74vh;
  }
}

/* v1.0.81: トップスライドショー画像をトリミングせず全体表示 */

/* v1.0.86: キャスト詳細の背景画像をプレビュー選択式で切り替え */
.hero-slideshow__slide[hidden]{display:none!important;}
.cast-visual__bg-viewer{
  position:relative;
  width:100%;
  overflow:hidden;
  background:#fff;
}
.cast-visual__bg-main{
  position:relative;
  width:100%;
}
.cast-visual__bg-choice{
  display:none!important;
  width:100%!important;
  height:auto!important;
  object-fit:contain!important;
}
.cast-visual__bg-choice.is-active{
  display:block!important;
}
.cast-visual__bg-thumbs{
  position:absolute;
  left:clamp(12px,2.6vw,28px);
  right:clamp(12px,2.6vw,28px);
  bottom:clamp(12px,2.4vw,24px);
  z-index:5;
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  pointer-events:auto;
}
.cast-visual__bg-thumb{
  width:clamp(48px,6vw,72px);
  aspect-ratio:1/1;
  padding:3px;
  border-radius:14px;
  border:2px solid rgba(255,255,255,.78);
  background:rgba(255,255,255,.72);
  box-shadow:0 10px 28px rgba(30,40,60,.18);
  cursor:pointer;
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.cast-visual__bg-thumb img{
  width:100%;
  height:100%;
  border-radius:10px;
  object-fit:cover;
}
.cast-visual__bg-thumb.is-active{
  border-color:var(--wine);
  box-shadow:0 12px 34px rgba(122,31,61,.25);
  transform:translateY(-2px);
}
@media(max-width:640px){
  .cast-visual__bg-thumbs{
    left:10px;
    right:10px;
    bottom:10px;
    gap:7px;
    justify-content:flex-end;
  }
  .cast-visual__bg-thumb{
    width:42px;
    border-radius:11px;
    padding:2px;
  }
  .cast-visual__bg-thumb img{border-radius:8px;}
}


/* v1.0.88: キャスト詳細の格言画像サイズを背景画像サイズに左右されにくい固定比率へ調整 */
.cast-visual__stage .cast-visual__bottom-left{
  width:clamp(240px, 32vw, 380px) !important;
  max-width:calc(100% - 48px) !important;
}
.cast-visual__stage .cast-visual__quote{
  width:100% !important;
  height:clamp(72px, 10vw, 132px) !important;
  max-width:none !important;
  min-height:0 !important;
  display:flex !important;
  align-items:flex-end !important;
  justify-content:flex-start !important;
}
.cast-visual__stage .cast-visual__quote img{
  width:100% !important;
  height:100% !important;
  max-width:100% !important;
  max-height:100% !important;
  object-fit:contain !important;
  object-position:left bottom !important;
  display:block !important;
}
.cast-visual__stage .cast-visual__quote p{
  font-size:clamp(24px, 3.4vw, 44px) !important;
}
@media(max-width:820px){
  .cast-visual__stage .cast-visual__bottom-left{
    width:clamp(170px, 56vw, 280px) !important;
    max-width:calc(100% - 28px) !important;
  }
  .cast-visual__stage .cast-visual__quote{
    height:clamp(54px, 15vw, 90px) !important;
  }
  .cast-visual__stage .cast-visual__quote p{
    font-size:clamp(22px, 7vw, 34px) !important;
  }
}


/* v1.0.91: 現在の表示端末で利用できるスライド画像がない場合は空枠を出さない */
.hero-slideshow[hidden]{display:none!important;}
.hero__inner:not(:has(.hero-slideshow:not([hidden]))) .hero__label{margin-top:72px;}
@media(max-width:820px){.hero__inner:not(:has(.hero-slideshow:not([hidden]))) .hero__label{margin-top:48px;}}

/* v1.0.94: ACF「格言画像倍率」でキャスト詳細の格言画像サイズを調整 */
.cast-visual__stage .cast-visual__quote{
  transform:scale(var(--cast-quote-scale, 1));
  transform-origin:left bottom;
  overflow:visible !important;
  will-change:transform;
}
.cast-visual__stage .cast-visual__bottom-left{
  overflow:visible !important;
}
@media(max-width:820px){
  .cast-visual__stage .cast-visual__quote{
    transform:scale(var(--cast-quote-scale, 1));
  }
}


/* v1.0.98: キャストカテゴリ廃止 / PCトップスライドは横いっぱいに表示 */
.cast-category-panel,
.cast-category__empty{
  display:none!important;
}
@media(min-width:821px){
  .hero-slideshow__img--pc{
    display:block!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:center center!important;
  }
}


/* v1.0.102: キャスト詳細メッセージの<br>表示修正・PC背景ビジュアルを横幅いっぱいに調整 */
@media (min-width: 821px){
  .cast-detail--visual .cast-visual{
    padding-left:0!important;
    padding-right:0!important;
  }
  .cast-detail--visual .cast-visual__stage{
    width:100%!important;
    max-width:none!important;
    border-left:0!important;
    border-right:0!important;
    border-radius:0!important;
  }
  .cast-detail--visual .cast-visual__bg-viewer,
  .cast-detail--visual .cast-visual__bg-main,
  .cast-detail--visual .cast-visual__bg-choice{
    width:100%!important;
  }
}

/* v1.0.103: SPトップスライドの上下余白を抑制 */
@media(max-width:820px){
  .hero{
    padding-bottom:36px!important;
  }
  .hero__inner{
    padding-left:0!important;
    padding-right:0!important;
  }
  .hero-slideshow{
    width:100vw!important;
    margin-left:calc(50% - 50vw)!important;
    margin-right:calc(50% - 50vw)!important;
    margin-bottom:22px!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:9 / 16!important;
    background:transparent!important;
  }
  .hero-slideshow__slide img,
  .hero-slideshow__img--sp{
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:center center!important;
  }
  .hero__label,
  .hero__title,
  .hero__lead,
  .hero__actions{
    padding-left:18px!important;
    padding-right:18px!important;
  }
}
@media(max-width:520px){
  .hero-slideshow{
    min-height:0!important;
    max-height:none!important;
  }
}


/* v1.0.104: SPトップ画像はスマホ横幅に合わせ、画像の左右が見切れないように調整 */
@media(max-width:820px){
  .hero-slideshow{
    width:100vw!important;
    min-height:0!important;
    height:auto!important;
    background:transparent!important;
  }
  .hero-slideshow__slide img,
  .hero-slideshow__img--sp{
    width:100%!important;
    height:100%!important;
    object-fit:contain!important;
    object-position:center top!important;
  }
}

/* v1.0.105: SPトップ画像を実画像の高さに合わせ、写真下の余白を解消 */
@media(max-width:820px){
  .hero-slideshow{
    aspect-ratio:auto!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin-bottom:0!important;
    background:transparent!important;
    box-shadow:none!important;
    border-bottom:0!important;
  }
  .hero-slideshow__slide{
    position:absolute!important;
    inset:0!important;
  }
  .hero-slideshow__slide.is-active{
    position:relative!important;
    inset:auto!important;
  }
  .hero-slideshow__slide img,
  .hero-slideshow__img--sp{
    width:100%!important;
    height:auto!important;
    object-fit:contain!important;
    object-position:center top!important;
  }
  .hero-slideshow__slide::after{
    display:none!important;
  }
}


/* v1.0.106: PCキャスト詳細の背景画像を横幅いっぱいから名前エリアと同等幅へ戻す */
@media (min-width: 821px){
  .cast-detail--visual .cast-visual{
    padding-left:clamp(18px,4vw,72px)!important;
    padding-right:clamp(18px,4vw,72px)!important;
  }
  .cast-detail--visual .cast-visual__stage,
  .cast-detail--visual .cast-visual__name-strip{
    width:min(1180px,100%)!important;
    max-width:1180px!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
  .cast-detail--visual .cast-visual__stage{
    border-left:1px solid rgba(88,199,232,.14)!important;
    border-right:1px solid rgba(255,143,190,.12)!important;
    border-radius:0 0 26px 26px!important;
    overflow:hidden!important;
  }
}


/* v1.0.112: ACF「イメージ白モヤ濃度」の説明追記と上限拡張 */
.cast-visual__stage{
  --cast-image-haze-opacity:.76;
  --cast-image-haze-height:42%;
}

/* v1.0.115: Cast profile SNS icons use the same image assets as the top/header SNS icons */
.cast-detail__sns-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-top:14px;
}
.cast-detail__sns-link{
  width:44px;
  height:44px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(255,232,243,.88));
  border:1px solid rgba(88,199,232,.26);
  box-shadow:0 10px 22px rgba(77,86,120,.09);
  transition:transform .22s ease,box-shadow .22s ease,background .22s ease;
}
.cast-detail__sns-link:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 28px rgba(77,86,120,.14);
  background:linear-gradient(135deg,#fff,#e8f9ff);
}
.cast-detail__sns-image{
  width:22px;
  height:22px;
  display:block;
  object-fit:contain;
}
.cast-detail__sns-label{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
}
@media(max-width:620px){
  .cast-detail__sns-actions{gap:8px}
  .cast-detail__sns-link{width:40px;height:40px}
  .cast-detail__sns-image{width:20px;height:20px}
}


/* v1.0.116: コンセプトページにトップページと同じメインビジュアル画像を表示 */
.concept-visual{
  width:min(980px,100%);
  margin:0 auto 28px;
  border-radius:28px;
  overflow:hidden;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(88,199,232,.22);
  box-shadow:0 18px 48px rgba(65,82,114,.10);
}
.concept-visual__img{
  width:100%;
  height:auto;
  display:block;
}
.concept-visual__img--sp{display:none;}
@media(max-width:820px){
  .concept-visual{
    width:100vw;
    margin-left:calc(50% - 50vw);
    margin-right:calc(50% - 50vw);
    margin-bottom:22px;
    border-radius:0;
    border-left:0;
    border-right:0;
  }
  .concept-visual__img--pc{display:none;}
  .concept-visual__img--sp{display:block;}
}


/* v1.0.117: STORES icon added to header/top SNS links */
.header-sns__image,
.sns-card__image{
  object-fit: contain;
}


/* v1.0.118: PCのコンセプト単独ページではトップページ同様にメイン画像を横幅いっぱい表示 */
@media (min-width: 821px){
  body.angeu-concept-only .concept-visual{
    width:100vw!important;
    max-width:none!important;
    margin-left:calc(50% - 50vw)!important;
    margin-right:calc(50% - 50vw)!important;
    border-radius:0!important;
    border-left:0!important;
    border-right:0!important;
    box-shadow:0 28px 80px rgba(88,123,160,.16)!important;
  }
body.angeu-concept-only .concept-visual__img{
    width:100%!important;
    height:auto!important;
    display:block!important;
  }
}


/* v1.0.121: responsive overflow, keyboard focus and carousel controls */
:where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:3px solid #126f91;
  outline-offset:3px;
}
.nav-toggle:focus-visible,
.system-menu-images__arrow:focus-visible,
.cast-visual__bg-thumb:focus-visible{
  border-radius:10px;
}
@media(max-width:820px){
  .concept-visual{
    width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
  }
  body.is-nav-open{
    overflow:hidden;
  }
}
