
/* ─── RESET & BASE ─── */
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{font-family:'Noto Serif JP',serif;background:#f5f3fa;color:#1a1520;overflow-x:hidden;}
a{text-decoration:none;color:inherit;}

/* ─── CSS VARIABLES (Design Tokens) ─── */
:root{
  --midnight:#0a0a12;
  --deepNavy:#0d1428;
  --royalPurple:#2d1b5e;
  --mysticViolet:#4a2d8a;
  --emerald:#1a4a3c;
  --teal:#1d6e5e;
  --cloud:#f5f3fa;
  --mist:#e8e4f0;
  --gold:#c9a84c;
  --goldLight:#e8c96a;
  --goldDim:#7a5f2a;
  --warmCream:#f5f0e8;
  --warmBrown:#96634e;
  --warmBrownL:#b8846a;
  --champagne:rgba(210,185,140,0.18);
  --textDark:#1a1520;
  --textMid:#4a4060;
  --textLight:#8a80a0;
  --borderGold:rgba(201,168,76,0.3);
  --borderPurple:rgba(74,45,138,0.2);
}

/* ─── ANIMATIONS ─── */
@keyframes scrollPulse{0%,100%{opacity:0.3;transform:scaleY(0.8);}50%{opacity:1;transform:scaleY(1);}}
@keyframes fadeUp{from{opacity:0;transform:translateY(32px);}to{opacity:1;transform:translateY(0);}}
@keyframes dustFloat{0%,100%{transform:translate(-8px,-6px) scale(0.7);opacity:0.2;}50%{transform:translate(8px,10px) scale(1.4);opacity:0.8;}}
@keyframes beamSway{0%,100%{transform:rotate(var(--rot)) translateX(var(--sway-neg));opacity:var(--op-lo);}50%{transform:rotate(var(--rot)) translateX(var(--sway-pos));opacity:var(--op-hi);}}
@keyframes flareGlow{0%,100%{opacity:var(--op-lo);transform:scale(1);}50%{opacity:var(--op-hi);transform:scale(1.08);}}
@keyframes ambientPulse{0%,100%{opacity:0.5;transform:scale(1);}50%{opacity:0.8;transform:scale(1.05);}}
@keyframes playPulse{0%,100%{box-shadow:0 0 0px rgba(201,168,76,0.3);}50%{box-shadow:0 0 22px rgba(201,168,76,0.6);}}
@keyframes shimmer{from{left:-100%;}to{left:100%;}}
@keyframes slideDown{from{transform:translateY(-80px);opacity:0;}to{transform:translateY(0);opacity:1;}}
@keyframes cardFadeUp{from{opacity:0;transform:translateY(30px);}to{opacity:1;transform:translateY(0);}}
@keyframes fadein{from{opacity:0;}to{opacity:1;}}

/* ─── BUTTONS ─── */
.btn-gold{
  background:linear-gradient(135deg,#c9a84c 0%,#e8c96a 100%);
  color:#0a0a12;padding:15px 36px;font-size:14px;font-weight:600;
  letter-spacing:0.15em;border:none;cursor:pointer;
  font-family:'Noto Serif JP',serif;
  display:inline-flex;align-items:center;gap:8px;
  position:relative;overflow:hidden;
  clip-path:polygon(8px 0%,100% 0%,calc(100% - 8px) 100%,0% 100%);
  transition:all 0.3s;
}
.btn-gold::before{
  content:'';position:absolute;top:0;left:-100%;
  width:100%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,0.35),transparent);
  transition:left 0.5s;
}
.btn-gold:hover::before{left:100%;}
.btn-gold:hover{transform:translateY(-2px);box-shadow:0 8px 32px rgba(201,168,76,0.45);}

.btn-warm{
  display:inline-flex;align-items:center;gap:12px;
  padding:16px 40px;
  background:var(--gold);
  border:1px solid var(--gold);
  color:#fff;
  font-family:'Noto Serif JP',serif;
  font-size:14px;font-weight:400;
  letter-spacing:0.18em;
  text-decoration:none;
  transition:all 0.3s;cursor:pointer;
  box-shadow:0 4px 16px rgba(201,168,76,0.25);
}
.btn-warm:hover{
  background:transparent;
  color:var(--goldDim);
  box-shadow:none;
  transform:translateY(-2px);
}
.btn-warm .svg-icon{width:16px;height:16px;transition:transform 0.3s;}
.btn-warm:hover .svg-icon{transform:translateX(4px);}

.btn-ghost{
  display:inline-flex;align-items:center;gap:12px;
  padding:16px 40px;
  border:1px solid var(--borderGold);
  color:rgba(255,255,255,0.7);
  font-family:'Noto Serif JP',serif;
  font-size:14px;font-weight:300;
  letter-spacing:0.18em;
  text-decoration:none;
  transition:all 0.3s;cursor:pointer;
}
.btn-ghost:hover{
  border-color:var(--gold);color:var(--gold);
  background:rgba(201,168,76,0.06);
  transform:translateY(-2px);
}

.card-lift{transition:transform 0.28s,box-shadow 0.28s;}
.card-lift:hover{transform:translateY(-5px);box-shadow:0 16px 48px rgba(0,0,0,0.18);}

.scroll-line{animation:scrollPulse 2s ease-in-out infinite;}

/* Strength card */
.strength-card{}

/* Course card */
.course-card{transition:all 0.3s;position:relative;overflow:hidden;}
.course-card::before{
  content:'';position:absolute;top:0;left:0;
  width:3px;height:100%;
  background:linear-gradient(to bottom,#c9a84c,#4a2d8a);
  opacity:0;transition:opacity 0.3s;
}
.course-card:hover{background:rgba(255,255,255,0.08) !important;border-color:rgba(201,168,76,0.4) !important;transform:translateY(-4px);box-shadow:0 8px 32px rgba(0,0,0,0.3);}
.course-card:hover::before{opacity:1;}

/* News item */
.news-item-row{transition:padding-left 0.2s;display:flex;align-items:flex-start;gap:12px;padding:14px 0;border-bottom:1px solid rgba(150,99,78,0.1);}
.news-item-row:hover{padding-left:6px !important;}
.news-item-row:hover .news-item-title{color:#e8c96a;}

/* ─── SCROLL ANIMATION HELPER ─── */
.reveal{opacity:0;transform:translateY(30px);transition:opacity 0.7s ease,transform 0.7s ease;}
.reveal.visible{opacity:1;transform:translateY(0);}
.reveal-d1{transition-delay:0.12s;}
.reveal-d2{transition-delay:0.24s;}
.reveal-d3{transition-delay:0.36s;}

/* ─── GRAIN OVERLAY ─── */
.grain{position:absolute;inset:0;width:100%;height:100%;mix-blend-mode:overlay;pointer-events:none;z-index:2;}

/* ─── DIVINE LIGHT (Light Beams via CSS) ─── */
.divine-light{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:3;}
.beam{position:absolute;transform-origin:0% 0%;animation:beamSway 16s ease-in-out infinite;}
.flare-glow{position:absolute;animation:flareGlow 10s ease-in-out infinite;}
.ambient-glow{position:absolute;animation:ambientPulse 12s ease-in-out infinite;filter:blur(48px);}
.dust-particle{position:absolute;border-radius:50%;background:rgba(255,248,200,0.9);animation:dustFloat linear infinite;}

/* ─── HEADER ─── */
header{
  position:fixed;top:0;left:0;right:0;z-index:200;
  background:rgba(10,10,18,0.94);
  backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(201,168,76,0.3);
  transition:all 0.3s;
  animation:slideDown 0.7s ease-out;
}
header.scrolled{background:rgba(10,10,18,0.98);box-shadow:0 4px 32px rgba(0,0,0,0.3);}
.header-inner{max-width:1280px;margin:0 auto;padding:0 40px;height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px;}
.logo{display:flex;flex-direction:column;line-height:1.2;flex-shrink:0;}
.logo-main{font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:600;color:var(--gold);letter-spacing:0.05em;}
.logo-sub{font-size:10px;color:var(--textLight);letter-spacing:0.15em;font-weight:200;}
nav{display:flex;gap:22px;align-items:center;flex:1;justify-content:center;}
nav a{font-size:11px;color:#fff;letter-spacing:0.1em;white-space:nowrap;transition:color 0.2s;}
nav a:hover{color:var(--gold);}
.header-right{display:flex;align-items:center;gap:20px;flex-shrink:0;}
.tel-block{text-align:right;}
.tel-hours{font-size:9px;color:var(--textLight);letter-spacing:0.1em;display:block;}
.tel-num{font-family:'Cinzel',serif;font-size:15px;color:#fff;letter-spacing:0.04em;display:flex;align-items:center;gap:5px;}
.tel-icon{color:var(--gold);font-size:14px;}

/* ─── HERO ─── */
.hero{
  position:relative;min-height:100vh;background:var(--midnight);overflow:hidden;
  padding-top:72px;display:flex;align-items:center;
}
.hero-bg{
  position:absolute;inset:0;
  background:
    radial-gradient(ellipse 60% 70% at 70% 50%,rgba(45,27,94,0.6) 0%,transparent 70%),
    radial-gradient(ellipse 40% 40% at 20% 80%,rgba(26,74,60,0.4) 0%,transparent 60%),
    radial-gradient(ellipse 50% 50% at 50% 20%,rgba(201,168,76,0.07) 0%,transparent 60%);
}
.hero-stars{
  position:absolute;inset:0;
  background-image:
    radial-gradient(1px 1px at 20% 30%,rgba(201,168,76,0.6) 0%,transparent 100%),
    radial-gradient(1px 1px at 60% 15%,rgba(255,255,255,0.4) 0%,transparent 100%),
    radial-gradient(1.5px 1.5px at 80% 60%,rgba(201,168,76,0.5) 0%,transparent 100%),
    radial-gradient(1px 1px at 10% 70%,rgba(255,255,255,0.3) 0%,transparent 100%),
    radial-gradient(1px 1px at 40% 80%,rgba(255,255,255,0.2) 0%,transparent 100%),
    radial-gradient(2px 2px at 90% 25%,rgba(201,168,76,0.4) 0%,transparent 100%),
    radial-gradient(1px 1px at 35% 45%,rgba(255,255,255,0.3) 0%,transparent 100%),
    radial-gradient(1px 1px at 75% 85%,rgba(201,168,76,0.3) 0%,transparent 100%),
    radial-gradient(1.5px 1.5px at 55% 55%,rgba(255,255,255,0.25) 0%,transparent 100%),
    radial-gradient(1px 1px at 15% 45%,rgba(201,168,76,0.35) 0%,transparent 100%),
    radial-gradient(1px 1px at 88% 72%,rgba(201,168,76,0.25) 0%,transparent 100%),
    radial-gradient(1px 1px at 5% 20%,rgba(201,168,76,0.5) 0%,transparent 100%);
}
.hero-right{
  position:absolute;right:0;top:0;bottom:0;width:48%;
  background:linear-gradient(to right,var(--midnight) 0%,transparent 28%);
  display:flex;align-items:center;justify-content:center;z-index:1;
}
.hero-img-wrap{width:460px;max-width:90%;position:relative;}
.hero-img-glow{position:absolute;inset:-2px;border:1px solid rgba(201,168,76,0.35);pointer-events:none;box-shadow:0 0 40px rgba(201,168,76,0.1),inset 0 0 40px rgba(45,27,94,0.2);}
.hero-badge{
  position:absolute;bottom:32px;left:-28px;
  background:rgba(255,252,248,0.92);backdrop-filter:blur(12px);
  border:1px solid rgba(201,168,76,0.35);padding:14px 18px;
  box-shadow:0 8px 32px rgba(150,99,78,0.15),0 0 0 0.5px rgba(201,168,76,0.15);
  z-index:3;
  animation:fadein 0.6s ease-out 1.2s both;
}
.hero-badge-num{font-family:'Cinzel',serif;font-size:30px;font-weight:600;color:#96634e;line-height:1;}
.hero-badge-txt{font-size:9px;color:rgba(100,70,55,0.65);letter-spacing:0.12em;margin-top:4px;line-height:1.6;}
.hero-content{position:relative;z-index:4;padding:80px 60px 80px 80px;max-width:56%;}
.hero-line{display:flex;align-items:center;gap:12px;margin-bottom:28px;animation:fadeUp 0.85s ease-out 0.2s both;}
.hero-line-bar{width:40px;height:1px;background:var(--gold);}
.hero-line-txt{font-size:11px;color:var(--gold);letter-spacing:0.25em;font-weight:300;}
.hero-sub{font-size:14px;color:#fff;letter-spacing:0.12em;margin-bottom:10px;animation:fadeUp 0.85s ease-out 0.35s both;}
.hero-h1{font-family:'Cormorant Garamond',serif;font-size:clamp(52px,6.5vw,76px);font-weight:300;color:#fff;line-height:1.15;margin-bottom:16px;letter-spacing:-0.01em;animation:fadeUp 0.85s ease-out 0.45s both;}
.hero-h1 em{font-style:italic;color:#e8c96a;}
.hero-p{font-family:'Noto Serif JP',serif;font-size:clamp(18px,2.2vw,24px);font-weight:300;color:#fff;margin-bottom:28px;letter-spacing:0.08em;line-height:1.65;animation:fadeUp 0.85s ease-out 0.55s both;}
.hero-stripe{
  display:inline-block;margin-bottom:36px;
  background:linear-gradient(90deg,rgba(150,99,78,0.18) 0%,rgba(150,99,78,0.06) 100%);
  border:1px solid rgba(150,99,78,0.28);border-left:3px solid #96634e;
  padding:10px 20px;backdrop-filter:blur(6px);
  animation:fadeUp 0.85s ease-out 0.62s both;
}
.hero-stripe span{font-size:14px;color:rgba(210,170,145,0.9);letter-spacing:0.15em;}
.hero-badges{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:44px;animation:fadeUp 0.85s ease-out 0.7s both;}
.hero-badge-item{display:flex;align-items:center;gap:8px;padding:8px 16px;border:1px solid rgba(201,168,76,0.3);background:rgba(201,168,76,0.07);font-size:11px;color:#e8c96a;letter-spacing:0.1em;}
.hero-ctas{display:flex;align-items:center;gap:24px;flex-wrap:wrap;animation:fadeUp 0.85s ease-out 0.82s both;}
.scroll-hint{position:absolute;bottom:36px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;z-index:5;}
.scroll-hint span{font-size:9px;letter-spacing:0.25em;color:var(--textLight);}
.scroll-line{width:1px;height:50px;background:linear-gradient(to bottom,var(--gold),transparent);}

/* ─── IMAGE PLACEHOLDER ─── */
.img-box{
  width:100%;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:10px;
  position:relative;overflow:hidden;
}
.img-box-dark{background:linear-gradient(135deg,rgba(45,27,94,0.35) 0%,rgba(26,74,60,0.2) 100%);border:1px solid rgba(201,168,76,0.3);}
.img-box-light{background:linear-gradient(135deg,rgba(237,232,222,0.8) 0%,rgba(224,215,200,0.6) 100%);border:1px solid rgba(150,99,78,0.2);}
.img-box-inner{position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 50% 30%,rgba(255,248,220,0.08) 0%,transparent 65%);}
.hero-main-photo{
  position:relative;
  z-index:1;
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center center;
}
.img-box-icon{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;box-shadow:0 0 16px rgba(201,168,76,0.12);}
.img-box-icon-dark{border:1px solid rgba(201,168,76,0.3);color:#7a5f2a;}
.img-box-icon-light{border:1px solid rgba(150,99,78,0.2);color:#96634e;}
.img-box-label{font-size:10px;letter-spacing:0.2em;position:relative;}
.img-box-label-dark{color:#8a80a0;}
.img-box-label-light{color:rgba(150,99,78,0.6);}

/* icon SVGs */
.icon{display:inline-block;vertical-align:middle;}

/* ─── SECTION LABEL ─── */
.section-label{margin-bottom:48px;}
.section-label.center{text-align:center;}
.section-label-line{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.section-label.center .section-label-line{justify-content:center;}
.section-label-bar{width:32px;height:1px;background:var(--gold);}
.section-label-en{font-family:'Cinzel',serif;font-size:10px;letter-spacing:0.3em;color:var(--gold);}
.section-label h2{font-family:'Noto Serif JP',serif;font-size:clamp(26px,3.5vw,34px);font-weight:300;letter-spacing:0.08em;line-height:1.4;}

/* ─── WARM GLASS ─── */
.warm-glass{
  background:rgba(255,252,248,0.62);backdrop-filter:blur(14px);
  border:1px solid rgba(201,168,76,0.22);border-radius:1px;
  box-shadow:0 4px 32px rgba(150,99,78,0.08),0 0 0 0.5px rgba(201,168,76,0.12);
}

/* ─── NEWS SECTION ─── */
.news-section{background:var(--cloud);padding:80px 40px;position:relative;overflow:hidden;}
.news-grid{position:relative;z-index:4;max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:40px;}
.news-card{padding:32px 28px;}
.news-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid rgba(201,168,76,0.2);}
.news-card-title{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:400;color:var(--textDark);}
.news-card-title .icon-gold{color:var(--gold);}
.news-all{font-size:11px;color:var(--goldDim);letter-spacing:0.1em;}
.news-date{font-size:11px;color:var(--textLight);white-space:nowrap;margin-top:2px;}
.news-cat{font-size:10px;padding:2px 8px;background:rgba(201,168,76,0.1);color:var(--warmBrown);white-space:nowrap;flex-shrink:0;margin-top:1px;}
.news-item-title{font-size:14px;color:var(--textDark);line-height:1.6;transition:color 0.2s;}

/* ─── STRENGTHS ─── */
.strengths-section{background:#fff;padding:100px 80px;position:relative;overflow:hidden;}
.strengths-top-line{position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,transparent,#c9a84c,#4a2d8a,#c9a84c,transparent);}
.strengths-header{text-align:center;margin-bottom:70px;}
.strengths-en-line{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:14px;}
.strengths-en-bar{width:32px;height:1px;background:var(--gold);}
.strengths-en{font-family:'Cinzel',serif;font-size:10px;letter-spacing:0.3em;color:var(--gold);}
.strengths-h2{font-family:'Noto Serif JP',serif;font-size:clamp(24px,3vw,34px);font-weight:300;color:var(--textDark);letter-spacing:0.08em;}
.strengths-italic{font-family:'Cormorant Garamond',serif;font-size:18px;color:var(--textLight);letter-spacing:0.15em;font-style:italic;margin-top:8px;}
.strengths-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;position:relative;z-index:4;max-width:1200px;margin:0 auto;}
.strength-icon-wrap{width:70px;height:70px;border-radius:50%;border:1px solid rgba(201,168,76,0.3);display:flex;align-items:center;justify-content:center;margin:0 auto 20px;font-size:26px;background:linear-gradient(135deg,rgba(201,168,76,0.08),rgba(74,45,138,0.05));}
.strength-num{font-family:'Cinzel',serif;font-size:11px;color:var(--gold);letter-spacing:0.2em;display:block;margin-bottom:12px;}
.strength-title{font-size:16px;font-weight:600;color:var(--textDark);margin-bottom:14px;letter-spacing:0.05em;line-height:1.55;}
.strength-desc{font-size:14px;color:var(--textMid);line-height:1.95;letter-spacing:0.04em;}
.strengths-cta{text-align:center;margin-top:52px;}

/* ─── COURSES ─── */
.courses-section{background:var(--deepNavy);padding:100px 80px;position:relative;overflow:hidden;}
.courses-inner{position:relative;z-index:4;max-width:1200px;margin:0 auto;}
.course-italic{font-family:'Cormorant Garamond',serif;font-size:18px;color:rgba(255,255,255,0.4);letter-spacing:0.15em;font-style:italic;margin-top:-32px;margin-bottom:52px;}
.courses-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:24px;}
.course-tag{display:inline-block;padding:4px 12px;background:rgba(201,168,76,0.1);border:1px solid rgba(201,168,76,0.35);font-size:10px;color:#e8c96a;letter-spacing:0.15em;margin-bottom:16px;}
.course-title{font-size:20px;font-weight:400;color:#fff;margin-bottom:14px;letter-spacing:0.05em;line-height:1.45;}
.course-desc{font-size:14px;color:rgba(255,255,255,0.65);line-height:2;letter-spacing:0.04em;margin-bottom:24px;}
.course-link{font-size:11px;color:#e8c96a;letter-spacing:0.15em;border-bottom:1px solid rgba(201,168,76,0.4);padding-bottom:2px;display:inline-flex;align-items:center;gap:6px;}
.video-banner{position:relative;overflow:hidden;cursor:pointer;}
.video-banner-overlay{
  position:absolute;inset:0;
  background:linear-gradient(to right,rgba(10,10,18,0.92) 0%,rgba(10,10,18,0.55) 50%,transparent 100%);
  display:flex;align-items:center;gap:28px;padding:0 48px;
}
.play-btn{
  width:52px;height:52px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,#c9a84c 0%,#e8c96a 100%);
  display:flex;align-items:center;justify-content:center;
  animation:playPulse 3s ease-in-out infinite;
}
.video-sub{font-family:'Noto Serif JP',serif;font-size:14px;color:rgba(201,168,76,0.85);letter-spacing:0.2em;display:block;margin-bottom:5px;}
.video-title{font-family:'Noto Serif JP',serif;font-size:clamp(20px,2.5vw,28px);font-weight:300;color:#fff;letter-spacing:0.08em;}

/* ─── LINK BANNERS ─── */
.banners-section{background:var(--cloud);padding:60px 40px;position:relative;overflow:hidden;}
.banners-grid {
  position:relative;
  z-index:4;
  max-width:1200px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:16px;}
.banner-overlay{position:absolute;inset:0;background:rgba(10,10,18,0.42);display:flex;align-items:center;justify-content:center;}
.banner-label{font-family:'Noto Serif JP',serif;font-size:16px;font-weight:400;color:#fff;letter-spacing:0.15em;text-shadow:0 2px 8px rgba(0,0,0,0.5);}
.banner-underline{position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#c9a84c,#96634e);opacity:0;transition:opacity 0.3s;}
.banner-item:hover .banner-underline{opacity:1;}
.banner-item{position:relative;overflow:hidden;cursor:pointer;display:block;}

/* ─── TESTIMONIALS (VOICE posts) ─── */
.testimonials-section{background:var(--cloud);padding:100px 80px;position:relative;overflow:hidden;}
.testimonials-inner{position:relative;z-index:4;max-width:1200px;margin:0 auto;}
.t-header{text-align:center;margin-bottom:52px;}
.t-italic{font-family:'Cormorant Garamond',serif;font-size:18px;color:var(--textLight);letter-spacing:0.15em;font-style:italic;margin-top:10px;}

.voice-posts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.voice-post-card{display:flex;flex-direction:column;background:#fff;border:1px solid rgba(74,45,138,0.08);text-decoration:none;color:inherit;box-shadow:0 4px 20px rgba(0,0,0,0.04);overflow:hidden;transition:transform 0.3s,box-shadow 0.3s;}
.voice-post-card:hover{transform:translateY(-4px);box-shadow:0 14px 36px rgba(0,0,0,0.08);}
.voice-post-thumb{overflow:hidden;}
.voice-post-body{padding:24px 26px 28px;display:flex;flex-direction:column;flex:1;}
.voice-post-meta{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.voice-post-date{font-family:'Cinzel',serif;font-size:11px;letter-spacing:0.14em;color:var(--textLight);}
.voice-post-cat{display:inline-block;padding:3px 10px;font-size:10px;letter-spacing:0.1em;color:var(--gold);border:1px solid rgba(201,168,76,0.35);background:rgba(201,168,76,0.06);}
.voice-post-title{font-family:'Noto Serif JP',serif;font-size:17px;font-weight:500;line-height:1.65;letter-spacing:0.04em;color:var(--textDark);margin-bottom:14px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.voice-post-excerpt{font-size:13px;line-height:1.95;color:var(--textMid);letter-spacing:0.04em;margin-bottom:20px;flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.voice-post-readmore{display:inline-flex;align-items:center;gap:8px;font-family:'Cinzel',serif;font-size:11px;color:var(--gold);letter-spacing:0.18em;margin-top:auto;}
.voice-post-readmore .svg-icon{width:12px;height:12px;transition:transform 0.3s;}
.voice-post-card:hover .voice-post-readmore .svg-icon{transform:translateX(4px);}

.t-all{text-align:center;margin-top:56px;}
.t-all a{display:inline-flex;align-items:center;gap:12px;padding:16px 40px;background:var(--gold);border:1px solid var(--gold);color:#fff;font-family:'Noto Serif JP',serif;font-size:14px;font-weight:400;letter-spacing:0.18em;transition:all 0.3s;box-shadow:0 4px 16px rgba(201,168,76,0.25);text-decoration:none;}
.t-all a:hover{background:transparent;color:var(--goldDim);box-shadow:none;transform:translateY(-2px);}
.t-all a .svg-icon{width:16px;height:16px;transition:transform 0.3s;}
.t-all a:hover .svg-icon{transform:translateX(4px);}

/* ─── INSTRUCTOR ─── */
.instructor-section{background:var(--cloud);padding:100px 80px;position:relative;overflow:hidden;}
.instructor-inner{position:relative;z-index:4;max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;}
.instructor-img-wrap{position:relative;}
.instructor-img-wrap .hero-main-photo{z-index:0;}
.instructor-img-border{position:absolute;inset:12px;border:1px solid rgba(201,168,76,0.12);pointer-events:none;z-index:2;}
.instructor-years{
  position:absolute;bottom:-20px;right:-20px;
  width:120px;height:120px;border:1px solid rgba(201,168,76,0.3);
  background:rgba(255,255,255,0.9);box-shadow:0 2px 20px rgba(0,0,0,0.06);display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:4px;z-index:2;
}
.instructor-years-num{font-family:'Cormorant Garamond',serif;font-size:32px;color:var(--gold);font-weight:300;line-height:1;}
.instructor-years-txt{font-size:10px;color:#4a4060;letter-spacing:0.12em;text-align:center;}
.instructor-meet{font-family:'Cormorant Garamond',serif;font-size:18px;color:var(--textLight);letter-spacing:0.15em;font-style:italic;margin-top:-32px;margin-bottom:32px;}
.instructor-badge{display:inline-block;padding:6px 16px;border:1px solid rgba(201,168,76,0.35);font-size:10px;color:var(--goldDim);letter-spacing:0.2em;margin-bottom:16px;}
.instructor-name{font-family:'Noto Serif JP',serif;font-size:36px;font-weight:300;color:#1a1520;letter-spacing:0.1em;margin-bottom:24px;}
.instructor-bio-box{border-left:2px solid var(--warmBrown);padding-left:16px;margin-bottom:28px;}
.instructor-bio{font-size:14px;color:#4a4060;line-height:2.2;letter-spacing:0.05em;}
.instructor-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px;}
.instructor-tag{padding:6px 14px;background:rgba(201,168,76,0.08);border:1px solid rgba(201,168,76,0.2);font-size:11px;color:#4a4060;}
.instructor-section .btn-link{color:var(--textDark);border-color:var(--borderGold);}
.instructor-section .btn-link:hover{color:var(--gold);border-color:var(--gold);background:rgba(201,168,76,0.08);}

/* ─── CTA ─── */
.cta-section{position:relative;padding:100px 40px;background:var(--deepNavy);overflow:hidden;}
.cta-bg{position:absolute;inset:0;background:radial-gradient(ellipse 60% 60% at 50% 100%,rgba(201,168,76,0.15) 0%,transparent 65%),radial-gradient(ellipse 50% 50% at 50% 0%,rgba(45,27,94,0.3) 0%,transparent 60%);}
.cta-inner{position:relative;z-index:4;max-width:780px;margin:0 auto;text-align:center;}
.cta-free{font-family:'Cinzel',serif;font-size:11px;color:#e8c96a;letter-spacing:0.3em;margin-bottom:20px;}
.cta-h2{font-family:'Noto Serif JP',serif;font-size:clamp(28px,4vw,40px);font-weight:300;line-height:1.6;color:#fff;margin-bottom:24px;}
.cta-accent{color:#e8c96a;}
.cta-desc{font-size:14px;color:rgba(255,255,255,0.7);line-height:1.95;margin-bottom:44px;letter-spacing:0.06em;}
.cta-benefits{display:flex;justify-content:center;gap:28px;flex-wrap:wrap;margin-bottom:44px;}
.cta-benefit{display:flex;flex-direction:column;align-items:center;gap:8px;}
.cta-benefit-icon{width:52px;height:52px;border-radius:50%;background:rgba(201,168,76,0.1);border:1px solid rgba(201,168,76,0.3);display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:0 0 16px rgba(201,168,76,0.15);}
.cta-benefit-txt{font-size:11px;color:rgba(255,255,255,0.7);letter-spacing:0.08em;line-height:1.5;text-align:center;}
.cta-note{font-size:14px;color:rgba(255,255,255,0.5);letter-spacing:0.1em;margin-top:16px;}

/* ─── FOOTER ─── */
footer{background:var(--midnight);border-top:1px solid rgba(201,168,76,0.3);}
.footer-inner{max-width:1200px;margin:0 auto;padding:60px 40px 32px;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;}
.footer-brand-logo{display:flex;flex-direction:column;line-height:1.2;margin-bottom:20px;}
.footer-brand-name{font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:600;color:var(--gold);}
.footer-brand-sub{font-size:10px;color:var(--textLight);letter-spacing:0.15em;}
.footer-brand-desc{font-size:14px;color:#fff;line-height:2;letter-spacing:0.06em;margin-bottom:24px;}
.footer-social{display:flex;gap:8px;}
.footer-social a{padding:6px 10px;border:1px solid rgba(201,168,76,0.2);font-size:10px;color:#fff;letter-spacing:0.06em;transition:all 0.2s;}
.footer-social a:hover{border-color:var(--gold);color:var(--gold);}
.footer-col h4{font-family:'Cinzel',serif;font-size:10px;letter-spacing:0.2em;color:var(--gold);margin-bottom:20px;}
.footer-col a{display:block;font-size:14px;color:#fff;letter-spacing:0.06em;margin-bottom:10px;transition:color 0.2s;}
.footer-col a:hover{color:var(--gold);}
.footer-tel-box{margin-top:20px;padding:14px 16px;border:1px solid rgba(150,99,78,0.28);background:rgba(150,99,78,0.06);}
.footer-tel-label{font-size:9px;color:#fff;letter-spacing:0.1em;margin-bottom:6px;}
.footer-tel-num{font-family:'Cinzel',serif;font-size:17px;color:#fff;letter-spacing:0.04em;}
.footer-tel-hours{font-size:10px;color:#fff;letter-spacing:0.1em;margin-top:4px;}
.footer-bar{max-width:1200px;margin:0 auto;padding:20px 40px;border-top:1px solid rgba(201,168,76,0.12);display:flex;justify-content:space-between;align-items:center;}
.footer-copy{font-size:11px;color:#fff;letter-spacing:0.08em;}
.footer-links{display:flex;gap:20px;}
.footer-links a{font-size:11px;color:#fff;letter-spacing:0.06em;transition:color 0.2s;}
.footer-links a:hover{color:#e8c96a;}

/* ─── HERO DIVINE LIGHT (CSS beams) ─── */
.hero-beam1{position:absolute;top:-5%;left:-10%;width:55%;height:160%;transform-origin:0% 0%;transform:rotate(32deg);background:linear-gradient(to right,rgba(255,248,210,0.55) 0%,rgba(201,168,76,0.22) 25%,rgba(255,245,200,0.08) 60%,transparent 100%);mask-image:linear-gradient(to bottom,black 0%,black 30%,rgba(0,0,0,0.4) 65%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,black 0%,black 30%,rgba(0,0,0,0.4) 65%,transparent 100%);filter:blur(28px);animation:beamSway1 16s ease-in-out infinite;pointer-events:none;}
.hero-beam2{position:absolute;top:-8%;left:-18%;width:40%;height:160%;transform-origin:0% 0%;transform:rotate(28deg);background:linear-gradient(to right,rgba(255,248,210,0.3) 0%,rgba(201,168,76,0.12) 25%,transparent 100%);filter:blur(20px);animation:beamSway2 20s ease-in-out infinite 2s;pointer-events:none;}
.hero-beam3{position:absolute;top:-12%;left:-5%;width:28%;height:150%;transform-origin:0% 0%;transform:rotate(38deg);background:linear-gradient(to right,rgba(255,248,210,0.2) 0%,transparent 100%);filter:blur(14px);animation:beamSway3 13s ease-in-out infinite 1s;pointer-events:none;}
.hero-flare1{position:absolute;top:-2%;left:-2%;width:38%;height:38%;background:radial-gradient(ellipse 60% 55% at 12% 12%,rgba(255,248,210,0.9) 0%,rgba(201,168,76,0.5) 25%,transparent 70%);filter:blur(55px);animation:flareGlow 10s ease-in-out infinite;pointer-events:none;}
.hero-ambient{position:absolute;top:-30%;left:-20%;width:80%;height:100%;background:radial-gradient(ellipse 65% 70% at 10% 10%,rgba(201,168,76,0.14) 0%,rgba(45,27,94,0.08) 40%,transparent 70%);filter:blur(50px);transform-origin:10% 10%;animation:ambientPulse 12s ease-in-out infinite;pointer-events:none;}

@keyframes beamSway1{0%,100%{transform:rotate(32deg) translateX(-3px);opacity:0.55;}50%{transform:rotate(32deg) translateX(3px);opacity:0.85;}}
@keyframes beamSway2{0%,100%{transform:rotate(28deg) translateX(-5px);opacity:0.3;}50%{transform:rotate(28deg) translateX(5px);opacity:0.6;}}
@keyframes beamSway3{0%,100%{transform:rotate(38deg) translateX(-4px);opacity:0.2;}50%{transform:rotate(38deg) translateX(4px);opacity:0.45;}}

/* ═══════════════════════════════════════════════════════
   SECTION DIVINE LIGHT
   各セクション固有の角度で光が差し込む
   FV以外はblurを強めにしてよりぼんやりした雰囲気に
═══════════════════════════════════════════════════════ */
.section-light{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:3;}

/* ── 共通ベースとフレア ── */
.s-flare1,.s-flare2,.s-flare3{position:absolute;animation:flareGlow 11s ease-in-out infinite;}
.s-flare2{animation-duration:15s;animation-delay:2s;}
.s-flare3{animation-duration:9s; animation-delay:0.5s;}

.s-beam-a,.s-beam-b,.s-beam-c,.s-beam-d{
  position:absolute;
  transform-origin:0% 0%;
  mask-image:linear-gradient(to bottom,black 0%,black 28%,rgba(0,0,0,0.3) 62%,transparent 100%);
  -webkit-mask-image:linear-gradient(to bottom,black 0%,black 28%,rgba(0,0,0,0.3) 62%,transparent 100%);
}
.s-ambient,.s-ambient2{position:absolute;animation:ambientPulse 14s ease-in-out infinite;}
.s-ambient2{animation-duration:18s;animation-delay:4s;}

@keyframes s-dust-f{0%,100%{transform:translate(-8px,-6px) scale(0.7);opacity:0.2;}50%{transform:translate(8px,10px) scale(1.4);opacity:0.8;}}
.s-dust{position:absolute;border-radius:50%;background:rgba(255,248,200,0.9);animation:s-dust-f ease-in-out infinite;}

/* ════════════════════════════════════════════════════════
   NEWS section
   光源：右上コーナー  角度：左下へ(-40deg)
   ライト背景 → ビームはほんのり、blur強め
════════════════════════════════════════════════════════ */
/* 光源フレア（右上） */
.sl-news .s-flare1{top:-3%;right:-3%;left:auto;width:36%;height:36%;filter:blur(65px);
  background:radial-gradient(ellipse 60% 55% at 90% 10%,rgba(255,252,232,0.75) 0%,rgba(201,168,76,0.35) 25%,transparent 70%);}
.sl-news .s-flare2{top:-1%;right:-1%;left:auto;width:20%;height:20%;filter:blur(40px);
  background:radial-gradient(ellipse 65% 60% at 88% 12%,rgba(255,252,232,0.60) 0%,transparent 65%);}
.sl-news .s-flare3{top:-1%;right:-1%;left:auto;width:11%;height:11%;filter:blur(22px);
  background:radial-gradient(ellipse 70% 65% at 86% 14%,rgba(255,252,232,0.48) 0%,transparent 65%);}
/* ビーム起点：右上、角度-40deg（右上→左下） */
.sl-news .s-beam-a{top:-5%;left:110%;width:55%;height:160%;filter:blur(42px);
  transform:rotate(-40deg);animation:sl-news-a 17s ease-in-out infinite;
  background:linear-gradient(to right,rgba(255,250,220,0.32) 0%,rgba(201,168,76,0.11) 28%,transparent 100%);}
.sl-news .s-beam-b{top:-8%;left:118%;width:40%;height:160%;filter:blur(32px);
  transform:rotate(-35deg);animation:sl-news-b 22s ease-in-out infinite 2s;
  background:linear-gradient(to right,rgba(255,250,220,0.20) 0%,rgba(201,168,76,0.07) 28%,transparent 100%);}
.sl-news .s-beam-c{top:-12%;left:105%;width:28%;height:150%;filter:blur(24px);
  transform:rotate(-48deg);animation:sl-news-c 14s ease-in-out infinite 1s;
  background:linear-gradient(to right,rgba(255,250,220,0.13) 0%,transparent 100%);}
.sl-news .s-beam-d{top:-3%;left:122%;width:20%;height:130%;filter:blur(18px);
  transform:rotate(-30deg);animation:sl-news-d 18s ease-in-out infinite 3.5s;
  background:linear-gradient(to right,rgba(255,250,220,0.08) 0%,transparent 100%);}
@keyframes sl-news-a{0%,100%{transform:rotate(-40deg) translateX(-3px);opacity:0.28;}50%{transform:rotate(-40deg) translateX(3px);opacity:0.48;}}
@keyframes sl-news-b{0%,100%{transform:rotate(-35deg) translateX(-5px);opacity:0.14;}50%{transform:rotate(-35deg) translateX(5px);opacity:0.32;}}
@keyframes sl-news-c{0%,100%{transform:rotate(-48deg) translateX(-4px);opacity:0.08;}50%{transform:rotate(-48deg) translateX(4px);opacity:0.22;}}
@keyframes sl-news-d{0%,100%{transform:rotate(-30deg) translateX(-6px);opacity:0.05;}50%{transform:rotate(-30deg) translateX(6px);opacity:0.15;}}
/* アンビエント */
.sl-news .s-ambient {top:-28%;right:-18%;left:auto;width:78%;height:95%;filter:blur(70px);
  background:radial-gradient(ellipse 65% 70% at 92% 8%,rgba(201,168,76,0.08) 0%,transparent 68%);}
.sl-news .s-ambient2{bottom:0;right:0;left:auto;width:50%;height:40%;filter:blur(80px);
  background:radial-gradient(ellipse 75% 60% at 85% 95%,rgba(201,168,76,0.05) 0%,transparent 70%);}

/* ════════════════════════════════════════════════════════
   STRENGTHS section
   光源：上中央やや右  角度：ほぼ真上から少し斜め(-75deg)
   ライト背景 → 柔らかく
════════════════════════════════════════════════════════ */
.sl-str .s-flare1{top:-3%;left:52%;width:34%;height:34%;filter:blur(68px);
  background:radial-gradient(ellipse 60% 55% at 55% 8%,rgba(255,252,232,0.72) 0%,rgba(201,168,76,0.32) 25%,transparent 70%);}
.sl-str .s-flare2{top:-1%;left:58%;width:18%;height:18%;filter:blur(42px);
  background:radial-gradient(ellipse 65% 60% at 57% 10%,rgba(255,252,232,0.58) 0%,transparent 65%);}
.sl-str .s-flare3{top:-1%;left:62%;width:10%;height:10%;filter:blur(24px);
  background:radial-gradient(ellipse 70% 65% at 60% 12%,rgba(255,252,232,0.45) 0%,transparent 65%);}
/* ビーム起点：上中央右寄り、角度-75deg（ほぼ真下、少し左へ） */
.sl-str .s-beam-a{top:-6%;left:60%;width:55%;height:160%;filter:blur(44px);
  transform:rotate(-75deg);animation:sl-str-a 18s ease-in-out infinite;
  background:linear-gradient(to right,rgba(255,250,220,0.30) 0%,rgba(201,168,76,0.10) 28%,transparent 100%);}
.sl-str .s-beam-b{top:-8%;left:55%;width:40%;height:160%;filter:blur(34px);
  transform:rotate(-68deg);animation:sl-str-b 23s ease-in-out infinite 2s;
  background:linear-gradient(to right,rgba(255,250,220,0.18) 0%,transparent 100%);}
.sl-str .s-beam-c{top:-12%;left:65%;width:26%;height:150%;filter:blur(26px);
  transform:rotate(-82deg);animation:sl-str-c 15s ease-in-out infinite 1s;
  background:linear-gradient(to right,rgba(255,250,220,0.11) 0%,transparent 100%);}
.sl-str .s-beam-d{top:-3%;left:50%;width:18%;height:130%;filter:blur(20px);
  transform:rotate(-60deg);animation:sl-str-d 19s ease-in-out infinite 3.5s;
  background:linear-gradient(to right,rgba(255,250,220,0.07) 0%,transparent 100%);}
@keyframes sl-str-a{0%,100%{transform:rotate(-75deg) translateX(-3px);opacity:0.26;}50%{transform:rotate(-75deg) translateX(3px);opacity:0.46;}}
@keyframes sl-str-b{0%,100%{transform:rotate(-68deg) translateX(-5px);opacity:0.12;}50%{transform:rotate(-68deg) translateX(5px);opacity:0.30;}}
@keyframes sl-str-c{0%,100%{transform:rotate(-82deg) translateX(-4px);opacity:0.07;}50%{transform:rotate(-82deg) translateX(4px);opacity:0.20;}}
@keyframes sl-str-d{0%,100%{transform:rotate(-60deg) translateX(-6px);opacity:0.04;}50%{transform:rotate(-60deg) translateX(6px);opacity:0.13;}}
.sl-str .s-ambient {top:-30%;left:28%;width:80%;height:95%;filter:blur(72px);
  background:radial-gradient(ellipse 65% 70% at 58% 5%,rgba(201,168,76,0.07) 0%,transparent 68%);}
.sl-str .s-ambient2{bottom:0;left:15%;width:65%;height:38%;filter:blur(82px);
  background:radial-gradient(ellipse 78% 60% at 50% 95%,rgba(201,168,76,0.05) 0%,transparent 70%);}

/* ════════════════════════════════════════════════════════
   COURSES section
   光源：左から水平気味  角度：15deg（ほぼ横から少し下）
   ダーク背景
════════════════════════════════════════════════════════ */
.sl-crs .s-flare1{top:30%;left:-2%;width:36%;height:36%;filter:blur(62px);
  background:radial-gradient(ellipse 55% 60% at 8% 50%,rgba(255,248,210,0.80) 0%,rgba(201,168,76,0.42) 25%,transparent 70%);}
.sl-crs .s-flare2{top:36%;left:-1%;width:20%;height:20%;filter:blur(38px);
  background:radial-gradient(ellipse 60% 65% at 10% 50%,rgba(255,248,210,0.65) 0%,transparent 65%);}
.sl-crs .s-flare3{top:40%;left:-1%;width:11%;height:11%;filter:blur(20px);
  background:radial-gradient(ellipse 65% 70% at 12% 50%,rgba(255,248,210,0.50) 0%,transparent 65%);}
/* ビーム起点：左中央、角度15deg（ほぼ水平、ほんの少し下向き） */
.sl-crs .s-beam-a{top:28%;left:-10%;width:55%;height:160%;filter:blur(46px);
  transform:rotate(15deg);animation:sl-crs-a 16s ease-in-out infinite;
  background:linear-gradient(to right,rgba(255,248,210,0.42) 0%,rgba(201,168,76,0.16) 26%,rgba(255,245,200,0.06) 58%,transparent 100%);}
.sl-crs .s-beam-b{top:22%;left:-18%;width:40%;height:160%;filter:blur(36px);
  transform:rotate(10deg);animation:sl-crs-b 21s ease-in-out infinite 2s;
  background:linear-gradient(to right,rgba(255,248,210,0.24) 0%,rgba(201,168,76,0.08) 26%,transparent 100%);}
.sl-crs .s-beam-c{top:35%;left:-5%;width:28%;height:150%;filter:blur(28px);
  transform:rotate(22deg);animation:sl-crs-c 13s ease-in-out infinite 1s;
  background:linear-gradient(to right,rgba(255,248,210,0.15) 0%,transparent 100%);}
.sl-crs .s-beam-d{top:25%;left:-22%;width:20%;height:130%;filter:blur(22px);
  transform:rotate(8deg);animation:sl-crs-d 17s ease-in-out infinite 3.5s;
  background:linear-gradient(to right,rgba(255,248,210,0.09) 0%,transparent 100%);}
@keyframes sl-crs-a{0%,100%{transform:rotate(15deg) translateX(-3px);opacity:0.22;}50%{transform:rotate(15deg) translateX(3px);opacity:0.40;}}
@keyframes sl-crs-b{0%,100%{transform:rotate(10deg) translateX(-5px);opacity:0.10;}50%{transform:rotate(10deg) translateX(5px);opacity:0.28;}}
@keyframes sl-crs-c{0%,100%{transform:rotate(22deg) translateX(-4px);opacity:0.06;}50%{transform:rotate(22deg) translateX(4px);opacity:0.18;}}
@keyframes sl-crs-d{0%,100%{transform:rotate(8deg) translateX(-6px);opacity:0.04;}50%{transform:rotate(8deg) translateX(6px);opacity:0.13;}}
.sl-crs .s-ambient {top:-5%;left:-22%;width:78%;height:95%;filter:blur(68px);
  background:radial-gradient(ellipse 60% 68% at 5% 48%,rgba(201,168,76,0.12) 0%,rgba(45,27,94,0.07) 40%,transparent 70%);}
.sl-crs .s-ambient2{bottom:0;left:0;width:55%;height:38%;filter:blur(78px);
  background:radial-gradient(ellipse 80% 60% at 5% 80%,rgba(201,168,76,0.09) 0%,transparent 70%);}

/* ════════════════════════════════════════════════════════
   BANNERS section
   光源：右下  角度：-125deg（右下→左上）
   ライト背景
════════════════════════════════════════════════════════ */
.sl-ban .s-flare1{bottom:-3%;right:-3%;top:auto;left:auto;width:34%;height:34%;filter:blur(66px);
  background:radial-gradient(ellipse 60% 55% at 90% 90%,rgba(255,252,232,0.70) 0%,rgba(201,168,76,0.32) 25%,transparent 70%);}
.sl-ban .s-flare2{bottom:-1%;right:-1%;top:auto;left:auto;width:18%;height:18%;filter:blur(42px);
  background:radial-gradient(ellipse 65% 60% at 88% 88%,rgba(255,252,232,0.55) 0%,transparent 65%);}
.sl-ban .s-flare3{bottom:-1%;right:-1%;top:auto;left:auto;width:10%;height:10%;filter:blur(24px);
  background:radial-gradient(ellipse 70% 65% at 86% 86%,rgba(255,252,232,0.42) 0%,transparent 65%);}
/* ビーム起点：右下、角度-125deg（右下→左上） */
.sl-ban .s-beam-a{top:108%;left:110%;width:55%;height:160%;filter:blur(48px);
  transform:rotate(-125deg);animation:sl-ban-a 17s ease-in-out infinite;
  background:linear-gradient(to right,rgba(255,250,220,0.30) 0%,rgba(201,168,76,0.10) 26%,transparent 100%);}
.sl-ban .s-beam-b{top:115%;left:118%;width:40%;height:160%;filter:blur(36px);
  transform:rotate(-118deg);animation:sl-ban-b 22s ease-in-out infinite 2s;
  background:linear-gradient(to right,rgba(255,250,220,0.18) 0%,transparent 100%);}
.sl-ban .s-beam-c{top:103%;left:105%;width:28%;height:148%;filter:blur(28px);
  transform:rotate(-135deg);animation:sl-ban-c 14s ease-in-out infinite 1s;
  background:linear-gradient(to right,rgba(255,250,220,0.11) 0%,transparent 100%);}
.sl-ban .s-beam-d{top:120%;left:122%;width:20%;height:130%;filter:blur(22px);
  transform:rotate(-112deg);animation:sl-ban-d 18s ease-in-out infinite 3.5s;
  background:linear-gradient(to right,rgba(255,250,220,0.07) 0%,transparent 100%);}
@keyframes sl-ban-a{0%,100%{transform:rotate(-125deg) translateX(-3px);opacity:0.26;}50%{transform:rotate(-125deg) translateX(3px);opacity:0.46;}}
@keyframes sl-ban-b{0%,100%{transform:rotate(-118deg) translateX(-5px);opacity:0.12;}50%{transform:rotate(-118deg) translateX(5px);opacity:0.30;}}
@keyframes sl-ban-c{0%,100%{transform:rotate(-135deg) translateX(-4px);opacity:0.07;}50%{transform:rotate(-135deg) translateX(4px);opacity:0.20;}}
@keyframes sl-ban-d{0%,100%{transform:rotate(-112deg) translateX(-6px);opacity:0.04;}50%{transform:rotate(-112deg) translateX(6px);opacity:0.13;}}
.sl-ban .s-ambient {bottom:-28%;right:-18%;top:auto;left:auto;width:76%;height:92%;filter:blur(72px);
  background:radial-gradient(ellipse 65% 70% at 90% 92%,rgba(201,168,76,0.07) 0%,transparent 68%);}
.sl-ban .s-ambient2{top:0;left:0;width:50%;height:40%;filter:blur(82px);
  background:radial-gradient(ellipse 75% 60% at 5% 5%,rgba(201,168,76,0.05) 0%,transparent 70%);}

/* ════════════════════════════════════════════════════════
   TESTIMONIALS section
   光源：左下  角度：-150deg（左下→右上）
   ライト背景
════════════════════════════════════════════════════════ */
.sl-tes .s-flare1{bottom:-3%;left:-2%;top:auto;width:34%;height:34%;filter:blur(66px);
  background:radial-gradient(ellipse 60% 55% at 8% 90%,rgba(255,252,232,0.68) 0%,rgba(201,168,76,0.30) 25%,transparent 70%);}
.sl-tes .s-flare2{bottom:-1%;left:-1%;top:auto;width:18%;height:18%;filter:blur(42px);
  background:radial-gradient(ellipse 65% 60% at 10% 88%,rgba(255,252,232,0.54) 0%,transparent 65%);}
.sl-tes .s-flare3{bottom:-1%;left:-1%;top:auto;width:10%;height:10%;filter:blur(24px);
  background:radial-gradient(ellipse 70% 65% at 12% 86%,rgba(255,252,232,0.42) 0%,transparent 65%);}
/* ビーム起点：左下、角度-150deg（左下→右上） */
.sl-tes .s-beam-a{top:112%;left:-10%;width:55%;height:160%;filter:blur(48px);
  transform:rotate(-150deg);animation:sl-tes-a 17s ease-in-out infinite;
  background:linear-gradient(to right,rgba(255,250,220,0.28) 0%,rgba(201,168,76,0.10) 26%,transparent 100%);}
.sl-tes .s-beam-b{top:118%;left:-18%;width:40%;height:160%;filter:blur(36px);
  transform:rotate(-143deg);animation:sl-tes-b 22s ease-in-out infinite 2s;
  background:linear-gradient(to right,rgba(255,250,220,0.17) 0%,transparent 100%);}
.sl-tes .s-beam-c{top:106%;left:-5%;width:28%;height:150%;filter:blur(28px);
  transform:rotate(-160deg);animation:sl-tes-c 14s ease-in-out infinite 1s;
  background:linear-gradient(to right,rgba(255,250,220,0.10) 0%,transparent 100%);}
.sl-tes .s-beam-d{top:122%;left:-22%;width:20%;height:130%;filter:blur(22px);
  transform:rotate(-138deg);animation:sl-tes-d 18s ease-in-out infinite 3.5s;
  background:linear-gradient(to right,rgba(255,250,220,0.06) 0%,transparent 100%);}
@keyframes sl-tes-a{0%,100%{transform:rotate(-150deg) translateX(-3px);opacity:0.24;}50%{transform:rotate(-150deg) translateX(3px);opacity:0.44;}}
@keyframes sl-tes-b{0%,100%{transform:rotate(-143deg) translateX(-5px);opacity:0.11;}50%{transform:rotate(-143deg) translateX(5px);opacity:0.28;}}
@keyframes sl-tes-c{0%,100%{transform:rotate(-160deg) translateX(-4px);opacity:0.06;}50%{transform:rotate(-160deg) translateX(4px);opacity:0.18;}}
@keyframes sl-tes-d{0%,100%{transform:rotate(-138deg) translateX(-6px);opacity:0.04;}50%{transform:rotate(-138deg) translateX(6px);opacity:0.12;}}
.sl-tes .s-ambient {bottom:-26%;left:-18%;top:auto;width:76%;height:92%;filter:blur(72px);
  background:radial-gradient(ellipse 65% 70% at 8% 92%,rgba(201,168,76,0.07) 0%,transparent 68%);}
.sl-tes .s-ambient2{top:0;right:0;left:auto;width:50%;height:40%;filter:blur(82px);
  background:radial-gradient(ellipse 75% 60% at 92% 5%,rgba(201,168,76,0.05) 0%,transparent 70%);}

/* ════════════════════════════════════════════════════════
   INSTRUCTOR section
   光源：左上（FVより急角度）  角度：50deg
   ダーク背景
════════════════════════════════════════════════════════ */
.sl-ins .s-flare1{top:-2%;left:-2%;width:36%;height:36%;filter:blur(60px);
  background:radial-gradient(ellipse 60% 55% at 10% 10%,rgba(255,248,210,0.85) 0%,rgba(201,168,76,0.45) 25%,transparent 70%);}
.sl-ins .s-flare2{top:-1%;left:-1%;width:20%;height:20%;filter:blur(36px);
  background:radial-gradient(ellipse 65% 60% at 12% 12%,rgba(255,248,210,0.68) 0%,transparent 65%);}
.sl-ins .s-flare3{top:-1%;left:-1%;width:11%;height:11%;filter:blur(20px);
  background:radial-gradient(ellipse 70% 65% at 14% 14%,rgba(255,248,210,0.52) 0%,transparent 65%);}
/* ビーム起点：左上、角度50deg（FVの32degより急） */
.sl-ins .s-beam-a{top:-5%;left:-10%;width:55%;height:160%;filter:blur(46px);
  transform:rotate(50deg);animation:sl-ins-a 16s ease-in-out infinite;
  background:linear-gradient(to right,rgba(255,248,210,0.44) 0%,rgba(201,168,76,0.18) 26%,rgba(255,245,200,0.06) 58%,transparent 100%);}
.sl-ins .s-beam-b{top:-8%;left:-18%;width:40%;height:160%;filter:blur(36px);
  transform:rotate(44deg);animation:sl-ins-b 21s ease-in-out infinite 2s;
  background:linear-gradient(to right,rgba(255,248,210,0.25) 0%,rgba(201,168,76,0.09) 26%,transparent 100%);}
.sl-ins .s-beam-c{top:-12%;left:-5%;width:28%;height:150%;filter:blur(28px);
  transform:rotate(58deg);animation:sl-ins-c 13s ease-in-out infinite 1s;
  background:linear-gradient(to right,rgba(255,248,210,0.16) 0%,transparent 100%);}
.sl-ins .s-beam-d{top:-3%;left:-22%;width:20%;height:130%;filter:blur(22px);
  transform:rotate(40deg);animation:sl-ins-d 17s ease-in-out infinite 3.5s;
  background:linear-gradient(to right,rgba(255,248,210,0.10) 0%,transparent 100%);}
@keyframes sl-ins-a{0%,100%{transform:rotate(50deg) translateX(-3px);opacity:0.22;}50%{transform:rotate(50deg) translateX(3px);opacity:0.40;}}
@keyframes sl-ins-b{0%,100%{transform:rotate(44deg) translateX(-5px);opacity:0.10;}50%{transform:rotate(44deg) translateX(5px);opacity:0.28;}}
@keyframes sl-ins-c{0%,100%{transform:rotate(58deg) translateX(-4px);opacity:0.06;}50%{transform:rotate(58deg) translateX(4px);opacity:0.18;}}
@keyframes sl-ins-d{0%,100%{transform:rotate(40deg) translateX(-6px);opacity:0.04;}50%{transform:rotate(40deg) translateX(6px);opacity:0.13;}}
.sl-ins .s-ambient {top:-30%;left:-20%;width:80%;height:100%;filter:blur(68px);
  background:radial-gradient(ellipse 65% 70% at 8% 8%,rgba(201,168,76,0.12) 0%,rgba(45,27,94,0.07) 40%,transparent 70%);}
.sl-ins .s-ambient2{bottom:0;right:0;left:auto;width:55%;height:38%;filter:blur(78px);
  background:radial-gradient(ellipse 80% 60% at 92% 95%,rgba(201,168,76,0.08) 0%,transparent 70%);}

/* ════════════════════════════════════════════════════════
   CTA section
   光源：真上中央  角度：-90deg（ほぼ真下へ）
   ダーク背景
════════════════════════════════════════════════════════ */
.sl-cta .s-flare1{top:-3%;left:36%;width:32%;height:32%;filter:blur(64px);
  background:radial-gradient(ellipse 60% 55% at 50% 8%,rgba(255,248,210,0.82) 0%,rgba(201,168,76,0.42) 25%,transparent 70%);}
.sl-cta .s-flare2{top:-1%;left:44%;width:18%;height:18%;filter:blur(38px);
  background:radial-gradient(ellipse 65% 60% at 50% 10%,rgba(255,248,210,0.65) 0%,transparent 65%);}
.sl-cta .s-flare3{top:-1%;left:48%;width:10%;height:10%;filter:blur(22px);
  background:radial-gradient(ellipse 70% 65% at 50% 12%,rgba(255,248,210,0.50) 0%,transparent 65%);}
/* ビーム起点：上中央、角度-90deg（真下へ） */
.sl-cta .s-beam-a{top:-6%;left:46%;width:55%;height:160%;filter:blur(48px);
  transform:rotate(-90deg);animation:sl-cta-a 17s ease-in-out infinite;
  background:linear-gradient(to right,rgba(255,248,210,0.40) 0%,rgba(201,168,76,0.15) 26%,rgba(255,245,200,0.05) 58%,transparent 100%);}
.sl-cta .s-beam-b{top:-8%;left:40%;width:40%;height:160%;filter:blur(36px);
  transform:rotate(-83deg);animation:sl-cta-b 22s ease-in-out infinite 2s;
  background:linear-gradient(to right,rgba(255,248,210,0.23) 0%,rgba(201,168,76,0.08) 26%,transparent 100%);}
.sl-cta .s-beam-c{top:-12%;left:54%;width:28%;height:150%;filter:blur(28px);
  transform:rotate(-98deg);animation:sl-cta-c 14s ease-in-out infinite 1s;
  background:linear-gradient(to right,rgba(255,248,210,0.14) 0%,transparent 100%);}
.sl-cta .s-beam-d{top:-3%;left:34%;width:20%;height:130%;filter:blur(22px);
  transform:rotate(-76deg);animation:sl-cta-d 18s ease-in-out infinite 3.5s;
  background:linear-gradient(to right,rgba(255,248,210,0.09) 0%,transparent 100%);}
@keyframes sl-cta-a{0%,100%{transform:rotate(-90deg) translateX(-3px);opacity:0.20;}50%{transform:rotate(-90deg) translateX(3px);opacity:0.38;}}
@keyframes sl-cta-b{0%,100%{transform:rotate(-83deg) translateX(-5px);opacity:0.10;}50%{transform:rotate(-83deg) translateX(5px);opacity:0.26;}}
@keyframes sl-cta-c{0%,100%{transform:rotate(-98deg) translateX(-4px);opacity:0.06;}50%{transform:rotate(-98deg) translateX(4px);opacity:0.18;}}
@keyframes sl-cta-d{0%,100%{transform:rotate(-76deg) translateX(-6px);opacity:0.03;}50%{transform:rotate(-76deg) translateX(6px);opacity:0.12;}}
.sl-cta .s-ambient {top:-30%;left:5%;width:84%;height:95%;filter:blur(68px);
  background:radial-gradient(ellipse 70% 65% at 50% 4%,rgba(201,168,76,0.12) 0%,rgba(45,27,94,0.07) 40%,transparent 70%);}
.sl-cta .s-ambient2{bottom:0;left:18%;width:60%;height:40%;filter:blur(78px);
  background:radial-gradient(ellipse 78% 60% at 50% 95%,rgba(201,168,76,0.09) 0%,transparent 70%);}

/* ── 塵粒子 ── */
.s-dust{position:absolute;border-radius:50%;background:rgba(255,248,200,0.9);animation:s-dust-f ease-in-out infinite;}

/* ─── ICON INLINE SVG ─── */
.svg-icon{display:inline-block;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}

/* ═══════════════════════════════════════════════════════
   RESPONSIVE — MOBILE & TABLET
   Breakpoints:
     768px  → tablet
     480px  → mobile

   ⚠ インラインstyleのheightを上書きするため
     !important を必要箇所に使用
═══════════════════════════════════════════════════════ */

/* ── ハンバーガーメニュー ── */
.hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 36px;
  height: 36px;
  cursor: pointer;
  background: none;
  border: none;
  padding: 4px;
  z-index: 300;
  flex-shrink: 0;
}
.hamburger span {
  display: block;
  width: 100%;
  height: 1.5px;
  background: var(--gold);
  transition: all 0.35s ease;
  transform-origin: center;
}
.hamburger.open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.hamburger.open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

/* モバイルナビオーバーレイ */
.nav-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(10,10,18,0.97);
  backdrop-filter: blur(16px);
  z-index: 250;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  opacity: 0;
  transform: translateY(-12px);
  transition: opacity 0.35s ease, transform 0.35s ease;
  pointer-events: none;
}
.nav-overlay.open {
  display: flex;
  opacity: 1;
  transform: translateY(0);
  pointer-events: all;
}
.nav-overlay a {
  font-family: 'Noto Serif JP', serif;
  font-size: 17px;
  color: #fff;
  letter-spacing: 0.15em;
  padding: 18px 0;
  width: 100%;
  text-align: center;
  border-bottom: 1px solid rgba(201,168,76,0.1);
  transition: color 0.2s;
}
.nav-overlay a:first-child { border-top: 1px solid rgba(201,168,76,0.1); }
.nav-overlay a:hover { color: var(--gold); }
.nav-overlay .nav-tel {
  margin-top: 32px;
  font-family: 'Cinzel', serif;
  font-size: 18px;
  color: #fff;
  letter-spacing: 0.06em;
  border: none;
}
.nav-overlay .nav-cta {
  margin-top: 20px;
  background: linear-gradient(135deg,#c9a84c 0%,#e8c96a 100%);
  color: #0a0a12 !important;
  font-weight: 600;
  font-size: 14px !important;
  letter-spacing: 0.15em;
  padding: 14px 36px !important;
  border: none !important;
  clip-path: polygon(8px 0%,100% 0%,calc(100% - 8px) 100%,0% 100%);
}

/* ══════════════════════════════════════
   TABLET  ≤ 768px
══════════════════════════════════════ */
@media (max-width: 768px) {

  /* ── Header ── */
  .hamburger { display: flex; }
  header nav { display: none; }
  .header-right { display: none; }
  .header-inner { padding: 0 20px; height: 60px; }

  /* ── Hero ── */
  .hero {
    flex-direction: column;
    align-items: stretch;
    min-height: 100svh;
    padding-top: 60px;
  }
  /* hero-rightをabsoluteから外してフロー内に */
  .hero-right {
    position: relative !important;
    width: 100% !important;
    top: auto !important; bottom: auto !important;
    left: auto !important; right: auto !important;
    height: auto !important;
    background: linear-gradient(to bottom, var(--midnight) 0%, transparent 15%);
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 24px 0 0;
    z-index: 1;
  }
  .hero-img-wrap {
    width: 70%;
    max-width: 300px;
    position: relative;
  }
  /* ヒーロー写真:SPでもPC版と同じ縦横比(460:580)を維持 */
  .hero-img-wrap .img-box { height: auto !important; aspect-ratio: 460 / 580; }
  /* No.1 バッジ: 画像の内側に収める */
  .hero-badge {
    position: absolute;
    bottom: 16px;
    left: -12px;
    right: auto;
  }
  .hero-img-glow { display: none; }
  .hero-content {
    position: relative;
    padding: 32px 24px 56px;
    max-width: 100%;
    z-index: 4;
  }
  .hero-h1 { font-size: clamp(44px, 10vw, 60px); }
  .hero-p  { font-size: clamp(16px, 4vw, 20px); }
  .scroll-hint { display: none; }

  /* ── News ── */
  .news-grid { grid-template-columns: 1fr; gap: 20px; }
  .news-section { padding: 60px 20px; }

  /* ── Strengths ── */
  .strengths-section { padding: 70px 24px; }
  .strengths-grid { grid-template-columns: 1fr; gap: 2px; }

  /* ── Courses ── */
  .courses-section { padding: 70px 24px; }
  .courses-grid { grid-template-columns: 1fr; gap: 20px; }

  /* ── Banners ── */
  .banners-section { padding: 48px 20px; }
  .banners-grid { grid-template-columns: 1fr; gap: 12px; }

  /* ── Testimonials (Voice posts) ── */
  .testimonials-section { padding: 70px 24px; }
  .voice-posts-grid {
    display: flex;
    grid-template-columns: none;
    gap: 16px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    margin: 0 -24px;
    padding: 4px 24px 16px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .voice-posts-grid::-webkit-scrollbar { display: none; }
  .voice-posts-grid .voice-post-card {
    flex: 0 0 82%;
    scroll-snap-align: start;
  }

  /* ── Instructor ── */
  .instructor-section { padding: 70px 24px; }
  .instructor-inner {
    grid-template-columns: 1fr;
    gap: 56px;
  }
  .instructor-img-wrap {
    max-width: 320px;
    margin: 0 auto;
    /* バッジがはみ出さないよう余白確保 */
    padding-bottom: 32px;
    padding-right: 20px;
  }
  /* 講師写真:SPでもPC版と同じ縦横比(510:480)を維持 */
  .instructor-img-wrap .img-box { height: auto !important; aspect-ratio: 510 / 480; }
  .instructor-img-border { display: none; }
  .instructor-years {
    right: 0;
    bottom: 0;
    width: 90px;
    height: 90px;
  }
  .instructor-years-num { font-size: 26px; }
  .instructor-meet { margin-top: 0; }

  /* ── CTA ── */
  .cta-section { padding: 70px 24px; }
  .cta-benefits { gap: 16px; }

  /* ── Footer ── */
  .footer-inner {
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    padding: 48px 24px 24px;
  }
  .footer-bar {
    flex-direction: column;
    gap: 12px;
    text-align: center;
    padding: 20px 24px;
  }
  .footer-links { flex-wrap: wrap; justify-content: center; gap: 12px; }
}

/* ══════════════════════════════════════
   MOBILE  ≤ 480px
══════════════════════════════════════ */
@media (max-width: 480px) {

  /* ── Header ── */
  .header-inner { padding: 0 16px; }
  .logo-main { font-size: 18px; }

  /* ── Hero ── */
  .hero-content { padding: 24px 16px 48px; }
  .hero-line { margin-bottom: 16px; }
  .hero-line-txt { font-size: 9px; }
  .hero-sub { font-size: 11px; }
  .hero-h1 { font-size: clamp(36px, 11vw, 48px); margin-bottom: 10px; }
  .hero-p  { font-size: clamp(14px, 4vw, 18px); margin-bottom: 18px; }
  .hero-stripe { margin-bottom: 20px; }
  .hero-stripe span { font-size: 10px; letter-spacing: 0.08em; }
  .hero-badges { gap: 8px; margin-bottom: 24px; }
  .hero-badge-item { padding: 6px 10px; font-size: 10px; }
  .hero-ctas { flex-direction: column; align-items: flex-start; gap: 14px; }
  .hero-img-wrap { max-width: 260px; }

  /* ── News ── */
  .news-section { padding: 48px 16px; }
  .news-card { padding: 24px 16px; }
  .news-item-row { flex-wrap: wrap; gap: 6px; }
  .news-date { flex-shrink: 0; }

  /* ── Strengths ── */
  .strengths-section { padding: 56px 16px; }
  .strength-card { padding: 36px 24px !important; }
  .strengths-h2 { font-size: clamp(20px, 6vw, 26px); }

  /* ── Courses ── */
  .courses-section { padding: 56px 16px; }
  .courses-inner { overflow: hidden; }
  .course-title { font-size: 18px; }
  .course-card > div:last-child { padding: 0 16px !important; }

  /* ── Banners ── */
  .banners-section { padding: 36px 16px; }

  /* ── Testimonials (Voice posts) ── */
  .testimonials-section { padding: 56px 16px; }
  .voice-posts-grid {
    margin: 0 -16px;
    padding: 4px 16px 12px;
    gap: 14px;
  }
  .voice-posts-grid .voice-post-card { flex: 0 0 86%; }
  .voice-post-body { padding: 20px 20px 22px; }
  .voice-post-title { font-size: 16px; }

  /* ── Instructor ── */
  .instructor-section { padding: 56px 16px; }
  .instructor-name { font-size: 24px; }
  .instructor-img-wrap {
    max-width: 100%;
    padding-bottom: 28px;
    padding-right: 16px;
  }

  /* ── CTA ── */
  .cta-section { padding: 56px 16px; }
  .cta-h2 { font-size: clamp(22px, 6vw, 30px); }
  .cta-benefits { gap: 12px; }
  .cta-benefit-icon { width: 44px; height: 44px; font-size: 18px; }
  .cta-section .btn-gold { padding: 14px 32px !important; font-size: 14px !important; }

  /* ── Footer ── */
  .footer-inner {
    grid-template-columns: 1fr;
    gap: 28px;
    padding: 40px 16px 20px;
  }
  .footer-bar { padding: 16px; }
}
