@charset "UTF-8";

/* =========================================================
   Base
   ========================================================= */

* {
  padding: 0;
  margin: 0;
}

*, *::before, *::after {
  box-sizing: border-box;
}

.wrapper {
  width: 100%;
  background: rgb(250, 214, 165, 0.5);
}

.container {
  background-color: #ffffff;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  border-bottom-width: 0px;
  padding-left: 0px;
  padding-top: 0px;
  padding-right: 0px;
  padding-bottom: 0px;
  max-width: 1280px;
}

.row {
  width: 100%;
  margin-top: 0px;
  margin-right: 0px;
  margin-bottom: 0px;
  margin-left: 0px;
  padding-top: 0px;
  padding-right: 0px;
  padding-bottom: 0px;
  padding-left: 0px;
  display: inline-block;
}

.body {
  margin-top: 0px;
  margin-right: 0px;
  margin-bottom: 0px;
  margin-left: 0px;
}


/* =========================================================
   Header + Global Nav (JS Drawer / Fully Responsive)
   ========================================================= */

/* ---------- Theme Variables ---------- */
:root {
  --header-bg: #FFF5F0;    /* PC上段背景 */
  --nav-bg: #ffefd5;       /* PCナビ背景 */
  --sp-bar-bg: #ffc2b5;    /* SP上段背景 */
  --text: #552b00;         /* 文字色 */
  --line: #552b00;         /* 線色（SPの点線や矢印） */
  --shadow: rgba(0,0,0,.08);

  /* JSが実測して入れる（初期は仮） */
  --header-offset: 0px;
}

/* ---------- Layout Base ---------- */
.site-header {
  width: 100%;
}

/* ヘッダー高を本文に反映（固定値は使わない） */
@media (max-width: 768px) {
  body {
    padding-top: var(--header-offset);
  }
}

.header-inner {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  position: relative;
}

/* ---------- Brand (Top Bar) ---------- */
.brand {
  background: var(--header-bg);
  min-height: 90px;
  display: flex;
  align-items: center;
  padding: 18px 24px;
  position: relative;
}

.brand-link {
  color: var(--text);
  text-decoration: none;
  font-size: 24px;
  letter-spacing: 3px;
  line-height: 1.2;
  font-family: "Kosugi Maru", "Hiragino Maru Gothic ProN", "メイリオ", Meiryo, sans-serif;
}

/* ---------- Global Nav (PC default) ---------- */
.global-nav {
  background: var(--nav-bg);
}

.nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
}

.nav-item {
  flex: 1 1 140px;
  text-align: center;
  border-right: 1px solid #c9a27c;
}

.nav-item:last-child {
  border-right: none;
}

.nav-item a {
  display: block;
  padding: 12px 10px;
  color: var(--text);
  text-decoration: none;
  letter-spacing: 2px;
  font-size: 13px;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
  font-weight: 400;
  position: relative;
}

/* 音符アイコン（PC用） */
.nav-item a::before {
  content: '';
  display: inline-block;
  background-image: url("../images/onpu1.svg");
  background-repeat: no-repeat;
  background-size: 15px 15px;
  width: 15px;
  height: 15px;
  margin-right: 6px;
  vertical-align: -2px;
}

.nav-item a:hover {
  opacity: .7;
}

/* CTAも強調しない（他と揃える） */
.nav-item--cta a {
  font-weight: 400;
}

/* SNS（SPでは表示、PCでは非表示の指定で制御） */
.nav-sns {
  display: flex;
  gap: 18px;
  justify-content: flex-end;
  padding: 10px 18px 14px;
}

.nav-sns-link {
  color: var(--text);
  text-decoration: none;
  font-size: 13px;
  letter-spacing: 2px;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
  font-weight: 400;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.nav-sns-link:hover {
  opacity: .75;
}

.nav-sns-link--blog::before {
  content: '';
  width: 18px;
  height: 18px;
  background-image: url("../images/blog-aicon.png");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}

.nav-sns-link--insta::before {
  content: '';
  width: 18px;
  height: 18px;
  background-image: url("../images/insta.png");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}

/* ---------- Hamburger Button (JS) ---------- */
.nav-button {
  display: none; /* PCでは非表示、SPで表示 */
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border: none;
  background: transparent;
  cursor: pointer;
  border-radius: 10px;
  align-items: center;
  justify-content: center;
}

.nav-button:focus-visible {
  outline: 2px solid rgba(85,43,0,.6);
  outline-offset: 2px;
}

.nav-icon {
  position: relative;
  display: block;
  width: 26px;
  height: 2px;
  background: #4a4a4a;
  border-radius: 1px;
}

.nav-icon::before,
.nav-icon::after {
  content: '';
  position: absolute;
  left: 0;
  width: 26px;
  height: 2px;
  background: #4a4a4a;
  border-radius: 1px;
}

.nav-icon::before { top: -8px; }
.nav-icon::after  { top:  8px; }

/* 開いた時のアイコン（×） */
.site-header.nav-open .nav-icon {
  background: transparent;
}
.site-header.nav-open .nav-icon::before {
  top: 0;
  transform: rotate(45deg);
}
.site-header.nav-open .nav-icon::after {
  top: 0;
  transform: rotate(-45deg);
}

/* ---------- Overlay ---------- */
.nav-overlay {
  position: fixed;
  inset: 0;
  background: #000;
  opacity: 0;
  pointer-events: none;
  transition: opacity .6s ease;
  z-index: 1090;
}

/* ---------- PC Only: hide selected items ---------- */
@media (min-width: 769px) {
  .nav-pc-hide { display: none !important; }
}

/* ---------- SP Layout ---------- */
@media (max-width: 768px) {

  /* SPヘッダー固定 */
  .site-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1100; /* ドロワーより上の“器” */
  }

  .header-inner {
    max-width: none;
  }

  /* 上段バー（SP） */
  .brand {
    background: var(--sp-bar-bg);
    min-height: 50px;
    padding: 0 0 0 3%;
    box-shadow: 0 1px 3px var(--shadow);
  }

  .brand-link {
    font-size: 17px;
    letter-spacing: 2px;
    max-width: 76vw;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .nav-button {
    display: inline-flex;
  }

  /* ドロワー（初期は閉） */
  .global-nav {
    position: fixed;
    top: 0;
    left: 0;
    width: min(90vw, 330px);
    height: 100dvh;
    background: #fffcee;
    transform: translateX(-105%);
    transition: transform .6s ease;
    z-index: 1101; /* overlayより上 */
    padding: 18px 0 18px 5%;
    box-shadow: 6px 0 25px rgba(0,0,0,.15);
    overflow: auto;
    -webkit-overflow-scrolling: touch;
  }

  .nav-list {
    display: block;
  }

  .nav-item {
    border-right: none;
    width: 95%;
    text-align: left;
    border-bottom: 1px dashed var(--line);
  }

  .nav-item a {
    padding: 12px 0 12px 10%;
    font-size: 15px;
  }

  /* SP：矢印 */
  .nav-item a::after {
    content: '';
    width: 6px;
    height: 6px;
    border-top: 1px solid var(--line);
    border-right: 1px solid var(--line);
    position: absolute;
    top: 50%;
    right: 18px;
    transform: translateY(-50%) rotate(45deg);
  }

  /* SP：音符は非表示 */
  .nav-item a::before {
    display: none;
  }

  /* SP：SNSは縦並び */
  .nav-sns {
    display: block;
    padding: 18px 0 0;
  }

  .nav-sns-link {
    display: flex;
    padding: 10px 0;
    font-size: 15px;
  }

  /* 開いた状態（JSが header に nav-open を付与） */
  .site-header.nav-open .global-nav {
    transform: translateX(0%);
  }

  .site-header.nav-open .nav-overlay {
    opacity: .35;
    pointer-events: auto;
  }
}

/* スクロールロック */
html.is-nav-open,
body.is-nav-open {
  overflow: hidden;
}

/* ---------- Reduced Motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .global-nav,
  .nav-overlay {
    transition: none;
  }
}


/* =========================================================
   Headings (h1/h2/h3/h4) - Clean & Responsive
   ========================================================= */

:root {
  --hd-text: #552b00;
  --hd-text-strong: #804000;

  --hd-line: rgba(85, 43, 0, 0.5);
  --hd-line-strong: #804000;

  --hd-icon: url("../images/midashi-back1.svg");

  --hd-max: 800px;
  --hd-pad-left: 55px;
}

/* H1 / H2 */
.heading {
  width: 100%;
  max-width: var(--hd-max);
  margin: 60px auto 40px;
  color: var(--hd-text);
  border-bottom: 3px dashed var(--hd-line);
  padding-bottom: 5px;

  background-image: var(--hd-icon);
  background-repeat: no-repeat;
  background-position: 0 45%;
  background-size: 32px;

  background-clip: padding-box;
  background-origin: padding-box;
}

.heading__main {
  display: block;
  padding-left: var(--hd-pad-left);
  padding-top: 2px;
  padding-bottom: 2px;

  font-size: 24px;
  letter-spacing: 2px;
  line-height: 1.2;

  font-weight: 400;
  font-family: "Kosugi Maru","Hiragino Maru Gothic ProN","メイリオ",Meiryo,sans-serif;
}

.heading__sub {
  display: block;
  padding-left: var(--hd-pad-left);
  padding-bottom: 2px;

  font-size: 17px;
  letter-spacing: 3px;
  line-height: 1.2;

  font-weight: 400;
  font-family: "Kosugi Maru","Hiragino Maru Gothic ProN","メイリオ",Meiryo,sans-serif;
}

.heading--lv2 .heading__main {
  font-size: 22px;
}

.heading--page-tight {
  margin-top: 20px;
}

/* H3 / H4：ラインタイプ */
.heading-line {
  width: 100%;
  margin: 0 auto 40px;
  color: var(--hd-text-strong);

  font-size: 22px;
  letter-spacing: 2px;
  line-height: 1.3;

  padding: 15px 0 8px 14%;
  border-bottom: 2px dashed var(--hd-line-strong);

  background-image: var(--hd-icon);
  background-repeat: no-repeat;
  background-position: 2% 78%;
  background-size: 8%;

  font-weight: 400;
  font-family: "Kosugi Maru","Hiragino Maru Gothic ProN","メイリオ",Meiryo,sans-serif;
}

.heading-line--lv4 {
  margin-top: 50px;
  background-position: 2% 50%;
}

.heading-line__sub {
  display: block;
  font-size: 12px;
  line-height: 1.2;
  margin-top: 6px;
  letter-spacing: 1px;
}

@media (max-width: 768px) {
  .heading {
    max-width: none;
    width: 98%;
    margin: 30px auto 40px;
    padding-top: 5px;
    padding-bottom: 5px;

    background-position: 0% 30%;
    background-size: 10%;
  }

  .heading__main {
    font-size: 22px;
    padding-left: 55px;
  }

  .heading__sub {
    font-size: 13px;
    letter-spacing: 2px;
    padding-left: 55px;
  }

  .heading--lv2 .heading__main {
    font-size: 22px;
  }
}


/* =========================================================
   Main Visual
   ========================================================= */

.main-visual {
  width: 100%;
  padding: 40px 0;
  background-image: url("../images/pc-main-back2.jpg");
  background-repeat: repeat;
  background-size: auto;
  background-position: 0 0;
}

.main-visual__inner {
  width: 95%;
  max-width: 1280px;
  margin: 0 auto;

  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}

/* 画像 */
.main-visual__image {
  flex: 1;
  display: flex;
  justify-content: center;
  align-items: center;
}

.main-visual__image img {
  width: 100%;
  max-width: 440px;
  height: auto;
  border: 10px solid #ffffff;
  display: block;
}

/* 右側 */
.main-visual__content {
  flex: 1;
  display: flex;
  justify-content: center;
}

.main-visual__box {
  width: 100%;
  max-width: 560px;
  padding: 50px 40px;
  background: rgba(255,255,255,0.85);
  border-radius: 15px;
  text-align: center;
}

.main-visual__catch {
  font-size: 35px;
  letter-spacing: 4px;
  margin-bottom: 15px;
  font-weight: 700;
  color: #4B3832;
  font-family: "Kosugi Maru","Hiragino Maru Gothic ProN","メイリオ",Meiryo,sans-serif;
}

.main-visual__text {
  margin-top: 20px;
  font-size: 17px;
  color: #4B3832;
  letter-spacing: 1px;
  line-height: 1.8;
  font-family: "Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
  font-weight: 400;
}

@media (max-width: 1024px) {
  .main-visual__inner {
    gap: 24px;
  }

  .main-visual__catch {
    font-size: 28px;
  }

  .main-visual__box {
    padding: 40px 28px;
  }
}

@media (max-width: 768px) {
  .main-visual {
    padding-top: 0;
    padding-right: 0;
    padding-left: 0;
    padding-bottom: 25px;

    background-image: url("../images/sp-main-back2.webp");
    background-repeat: repeat;
    background-size: cover;
    background-position: center;
  }

  .main-visual__inner {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    flex-direction: column;
    gap: 20px;
  }

  .main-visual__image {
    margin: 0;
    padding: 0;
  }

  .main-visual__image img {
    border: 0 !important;
    max-width: none;
    width: 100%;
    height: auto;
    margin: 0;
    display: block;
  }

  .main-visual__content {
    width: 100%;
    padding: 0 2%;
  }

  .main-visual__box {
    max-width: none;
    width: 96%;
    margin: 0 auto;
    padding: 30px 20px;
  }

  .main-visual__catch {
    font-size: 25px;
    margin-top: 10px;
    letter-spacing: 4px;
    line-height: 1.1;
  }

  .main-visual__text {
    font-size: 16px;
    width: 85%;
    margin: 10px auto 0;
  }
}


/* ===================================================
   Lesson Text Section
   =================================================== */

.lesson-text {
  width: 100%;
  max-width: 750px;
  margin: 0 auto 60px;
  padding: 0 20px;
}

.lesson-text p {
  font-size: 16px;
  color: #404040;
  letter-spacing: 1px;
  line-height: 1.9;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
  font-weight: 400;
}

@media (max-width: 1024px) {
  .lesson-text {
    max-width: 680px;
  }

  .lesson-text p {
    font-size: 15px;
  }
}

@media (max-width: 768px) {
  .lesson-text {
    max-width: none;
    padding: 0 6%;
    margin-bottom: 50px;
  }

  .lesson-text p {
    font-size: 15px;
    line-height: 1.8;
    letter-spacing: 0.5px;
  }
}


/* =========================================================
   Lesson Scenes
   ========================================================= */

.lesson-scenes {
  width: 100%;
  padding: 60px 0 80px;	
  background-image: url("../images/pc-top-shoukai-back.webp");
  background-repeat: repeat-x;
  background-size: cover;
  background-position: top;
  overflow: hidden;
}

.lesson-scenes__inner {
  width: 90%;
  max-width: 1100px;
  margin: 0 auto;

  display: flex;
  flex-direction: column;
  gap: 70px;
}

.lesson-scene {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 140px;
  margin-bottom: 70px;
}

.lesson-scene--reverse {
  flex-direction: row-reverse;
}

.lesson-scene__media {
  flex: 0 1 420px;
  display: flex;
  justify-content: center;
}

.lesson-scene__media img {
  width: 100%;
  max-width: 400px;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;

  border: 10px solid #fff;
  border-radius: 0;
}

.lesson-scene__card {
  flex: 1;
  max-width: 420px;
  padding: 32px 34px;
  border-radius: 15px;
  background: rgba(255,255,255,0.8);
  text-align: left;
}

.lesson-scene__card p {
  margin: 0;
  font-size: 16px;
  color: #404040;
  letter-spacing: 1px;
  line-height: 1.8;
  font-family: "Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
  font-weight: 400;
}

@media (max-width: 1024px) {
  .lesson-scenes__inner {
    width: 92%;
    gap: 55px;
  }

  .lesson-scene {
    gap: 26px;
  }

  .lesson-scene__media {
    flex-basis: 380px;
  }

  .lesson-scene__media img {
    max-width: 360px;
    border-width: 8px;
  }

  .lesson-scene__card {
    padding: 26px 24px;
    max-width: 520px;
  }

  .lesson-scene__card p {
    font-size: 15px;
  }
}

@media (max-width: 768px) {
  .lesson-scenes {
    padding: 60px 0 80px; 
    margin-bottom:60px;	  
    background-repeat: repeat-y;
    background-size: contain;
  }

  .lesson-scenes__inner {
    width: 100%;
    padding: 0 6%;
    gap: 45px;
  }

  .lesson-scene,
  .lesson-scene--reverse {
    flex-direction: column;
    align-items: stretch;
    gap: 18px;
  }

  .lesson-scene__media {
    flex-basis: auto;
  }

  .lesson-scene__media img {
    max-width: none;
    width: 100%;
    border-width: 10px;
  }

  .lesson-scene__card {
    max-width: none;
    width: 100%;
    border-radius: 10px;
    padding: 18px 16px;
    background: rgba(255,255,255,0.9);
  }

  .lesson-scene__card p {
    font-size: 15px;
    letter-spacing: 0.5px;
  }
}


/* =========================================================
   Lesson Section (Grid Cards)
   ========================================================= */

.lesson-section {
  width: 100%;
  padding: 40px 0;
  background: #ffffff;
}

.lesson-header {
  width: 98%;
  max-width: 850px;
  margin: 0 auto 40px;
  text-align: left;
}

.lesson-intro {
  margin-top: 40px;
}

.lesson-intro p {
  font-size: 16px;
  line-height: 180%;
  letter-spacing: 1px;
  color: #404040;
  font-family: "Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
}

.lesson-grid {
  width: 90%;
  max-width: 1100px;
  margin: 0 auto;

  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 50px;
}

/* 背景 */
.lesson-card-wrapper {
  width: 100%;
  padding: 40px 0;
  background-image: url("../images/pc-lesson-back.webp");
}

/* カード */
.lesson-card {
  position: relative;
  padding: 35px 30px;
  background: #ffffff;
  border-radius: 14px;
  border: 1px solid #eeeeee;
}

.lesson-card__title {
  display: block;
  margin-bottom: 18px;

  padding-left: 55px;
  padding-top: 6px;
  padding-bottom: 6px;

  line-height: 1.4;

  background-repeat: no-repeat;
  background-position: left center;
  background-size: 28px;

  font-weight: 400;
  font-size: 21px;
  letter-spacing: 2px;
  color: #552b00;
  font-family: "Kosugi Maru","Hiragino Maru Gothic ProN","メイリオ",sans-serif;
}

/* アイコン切替 */
.lesson-card__title[data-icon="1"] { background-image: url("../images/lesson-onpu.svg"); }
.lesson-card__title[data-icon="2"] { background-image: url("../images/lesson-onpu2.svg"); }
.lesson-card__title[data-icon="3"] { background-image: url("../images/lesson-onpu3.svg"); }
.lesson-card__title[data-icon="4"] { background-image: url("../images/lesson-onpu4.svg"); }

.lesson-card__line {
  height: 15px;
  margin-bottom: 22px;
  background-image: url("../images/pc-qa-line.png");
  background-repeat: no-repeat;
}

.lesson-card__text {
  font-size: 16px;
  line-height: 180%;
  letter-spacing: 1px;
  color: #404040;
  font-family: "Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
}

@media (max-width: 1024px) {
  .lesson-grid {
    grid-template-columns: 1fr;
    gap: 35px;
  }
}

@media (max-width: 768px) {
  .lesson-header {
    width: 100%;
    margin: 0 auto 30px;
    text-align: left;
  }

  .lesson-section {
    padding: 0px 0 50px;
  }

  .lesson-card {
    padding: 25px 20px;
  }

  .lesson-card__title {
    font-size: 18px;
    background-size: 24px;
    padding-left: 45px;
  }

  .lesson-card__text {
    font-size: 15px;
  }
}


/* =========================================================
   Feature Section
   ========================================================= */

.feature-section {
  width: 100%;
  padding: 40px 0 60px;
  background: #ffffff;
}

.feature-intro {
  width: 100%;
  max-width: 750px;
  margin: 0 auto 80px;
  padding: 0 20px;
}

.feature-intro p {
  font-size: 16px;
  color: #404040;
  letter-spacing: 1px;
  line-height: 1.8;
  font-family: "Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
}

.feature-area {
  width: 100%;
  background-image: url("../images/pc-tokuchou-back.webp");
  padding: 80px 0 30px;
}

.feature-list {
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
  padding: 0 20px;
}

.feature-item {
  display: flex;
  align-items: stretch;
  margin-bottom: 80px;
}

.feature-number {
  width: 120px;
  flex-shrink: 0;
  background-repeat: repeat-y;
}

.feature-number--1 { background-image: url("../images/pc-tokuchou-1-back.webp"); }
.feature-number--2 { background-image: url("../images/pc-tokuchou-2-back.webp"); }
.feature-number--3 { background-image: url("../images/pc-tokuchou-3-back.webp"); }

.feature-content {
  flex: 1;
  background: #ffffff;
  padding: 40px 50px;
}

.feature-title {
  font-size: 22px;
  color: #552b00;
  margin-bottom: 25px;
  border-bottom: 2px dashed #552b00;
  padding-bottom: 8px;
  letter-spacing: 2px;
  font-weight: 500;
  font-family: "Kosugi Maru","Hiragino Maru Gothic ProN","メイリオ",sans-serif;
}

.feature-content p {
  font-size: 16px;
  line-height: 1.9;
  letter-spacing: 1px;
  color: #404040;
  font-family: "Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
}

@media (max-width: 1024px) {
  .feature-item {
    margin-bottom: 60px;
  }

  .feature-content {
    padding: 30px 35px;
  }
}

@media (max-width: 768px) {
  .feature-section {
    padding: 0px 0 40px;
  }

  .feature-item {
    flex-direction: column;
  }

  .feature-number {
    width: 100%;
    height: 50px;
    display: block;
    background-repeat: repeat-x;
    background-position: left top;
  }

  .feature-content {
    padding: 25px 20px 35px;
  }

  .feature-title {
    font-size: 18px;
  }

  .feature-content p {
    font-size: 15px;
  }
}


/* =========================================================
   Profile
   ========================================================= */

.profile {
  width: 100%;
}

.profile__inner {
  width: min(800px, 92%);
  margin: 0 auto 60px;

  display: grid !important;
  grid-template-columns: 300px 1fr !important;
  column-gap: 30px;
  align-items: start;
}

.profile__media {
  text-align: center;
}

.profile__photo img {
  width: 100%;
  max-width: 280px;
  height: auto;
  display: block;
  margin: 0 auto;
}

.profile__name {
  margin: 10px 0 0;
  font-size: 16px;
  letter-spacing: 1px;
  color: #404040;
  font-family: "Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
  font-weight: 500;
  line-height: 190%;
}

.profile__text {
  margin-bottom: 40px;
  font-size: 16px;
  line-height: 180%;
  color: #404040;
  letter-spacing: 1px;
  font-family: "Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
  font-weight: 400;
}

.profile__links {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.profile-link {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  min-height: 40px;
  padding-left: 37px;

  font-size: 15px;
  letter-spacing: 2px;
  line-height: 1.2;
  color: #404040;
  text-decoration: none;
  font-family: "Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
  font-weight: 400;

  background-repeat: no-repeat;
  background-position: 0% 50%;
  background-size: 11%;

  white-space: nowrap;
}

.profile-link:hover {
  text-decoration: underline;
}

.profile-link--blog { background-image: url("../images/blog-aicon.png"); }

.profile-link--insta {
  background-image: url("../images/insta.png");
  background-size: 10%;
}

/* 共通ボタン（あいさつ） */
.aisatsu-button {
  display: block;
  background-color: #ffefcf;
  width: 300px;
  margin: auto;
  margin-top: 50px;
  margin-bottom: 120px;
  text-align: center;
  padding: 8px;
  border-radius: 10px;
  border: 2px dashed #AA7777;
  box-shadow: 0px 0px 0px 7px #ffefcf;
}

.aisatsu-button:hover {
  opacity: 0.8;
}

.aisatsu-button > a {
  display: block;
  position: relative;
  font-size: 14px;
  color: #330000;
  text-decoration: none;
  letter-spacing: 2px;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
  font-weight: 400;
}

.aisatsu-button > a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 10px;
  width: 0;
  height: 0;
  margin: -3px 0 0 0;
  border-top: 6px solid #AA7777;
  border-left: 6px solid transparent;
  transform: rotate(45deg);
}

@media (max-width: 767px) {
  .profile__inner {
    width: 100%;
    margin: 0 auto 40px;
    padding: 0 18px;
    display: block !important;
  }

  .profile__media {
    width: 100%;
    margin-bottom: 18px;
  }

  .profile__photo img {
    max-width: 260px;
  }

  .profile__links {
    width: 90%;
    margin: 18px auto 0;
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .profile-link {
    padding-left: 40px;
    background-size: 10%;
  }
}

@media (max-width: 360px) {
  .profile-link {
    font-size: 15px;
    letter-spacing: 1px;
  }
}


/* =========================================================
   Lesson Fee / Time
   ========================================================= */

.lesson-fee-section {
  width: 100%;
  padding: 40px 0 60px;
}

.lesson-box {
  width: 100%;
  max-width: 750px;
  margin: 0 auto 70px;
  background: #ffffff;
}

.lesson-box__title {
  background: rgba(255,149,43,0.2);
  text-align: center;
  font-size: 18px;
  color: #552b00;
  padding: 10px 0;
  letter-spacing: 6px;
  font-family: "Kosugi Maru","メイリオ",sans-serif;
  font-weight: 500;
}

.lesson-table {
  width: 650px;
  margin: 30px auto;
  border-collapse: collapse;
}

.lesson-table th {
  width: 40%;
  text-align: left;
  padding: 18px 40px;
  border-bottom: 1px solid #cccccc;

  font-size: 16px;
  letter-spacing: 2px;
  color: #404040;
  font-family: "Noto Sans JP","メイリオ",sans-serif;
  font-weight: 400;
}

.lesson-table td {
  width: 60%;
  padding: 18px 20px;
  border-bottom: 1px solid #cccccc;

  font-size: 16px;
  letter-spacing: 1px;
  color: #404040;
  font-family: "Noto Sans JP","メイリオ",sans-serif;
}

.lesson-note {
  width: 90%;
  margin: 20px auto 0;
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: 1px;
  color: #404040;
  font-family: "Noto Sans JP","メイリオ",sans-serif;
}

@media (max-width: 1024px) {
  .lesson-table {
    width: 90%;
  }
}

@media (max-width: 768px) {

  .lesson-fee-section {
   width: 100%;
   padding: 0px 0 60px;
  }	
	
  .lesson-box__title {
    background: rgba(255,149,43,0.2);
    padding: 12px 0;
    border-radius: 8px 8px 0 0;
    font-weight: 600;
  }

  .lesson-box {
    width: 95%;
    margin: 0 auto 50px;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 6px 6px 0 rgba(128,64,0,0.15);
  }

  .lesson-table {
    width: 100%;
  }

  .lesson-table th,
  .lesson-table td {
    display: block;
    width: 95%;
    text-align: center;
    margin: 0 auto;
  }

  .lesson-table th {
    padding: 5px 20px;
    background: rgba(255,149,43,0.2);
    border-bottom: none;
  }

  .lesson-table td {
    padding: 20px 20px;
    border-bottom: 1px solid #e9e9e9;
  }

  .lesson-note {
    width: 100%;
    padding: 0 20px 20px;
  }
}


/* =========================================================
   Review
   ========================================================= */

.review-section {
  width: 100%;
  padding: 0 20px;
}

.review-item {
  width: 100%;
  max-width: 600px;
  margin: 0 auto 40px;
}

.review-text p {
  font-size: 16px;
  color: #404040;
  letter-spacing: 1px;
  line-height: 1.8;
  font-family: "Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
}

.review-name p {
  font-size: 14px;
  text-align: right;
  margin-top: 10px;
  color: #404040;
}

.review-line {
  max-width: 650px;
  margin: 40px auto;
}

.review-line img {
  width: 100%;
  height: auto;
  display: block;
}

.review-button {
  max-width: 300px;
  margin: 80px auto 120px;
  background-color: #ffefcf;
  text-align: center;
  padding: 10px;
  border-radius: 10px;
  border: 2px dashed #AA7777;
  box-shadow: 0 0 0 7px #ffefcf;
}

.review-button a {
  display: block;
  position: relative;
  font-size: 14px;
  color: #330000;
  text-decoration: none;
  letter-spacing: 2px;
}

.review-button a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 10px;
  width: 0;
  height: 0;
  margin-top: -3px;
  border-top: 6px solid #AA7777;
  border-left: 6px solid transparent;
  transform: rotate(45deg);
}

.review-button:hover {
  opacity: 0.8;
}


/* =========================================================
   Q&A Accordion
   ========================================================= */

.card-accordion {
  margin: 18px 0;
}

.card-accordion-btn {
  position: relative;
  width: 92%;
  max-width: 750px;
  margin: 0 auto 20px;

  display: flex;
  justify-content: flex-start;
  align-items: center;

  padding: 16px 56px 16px 18px;
  background: #ffffff;
  color: #2d2d2d;

  font-size: 16px;
  font-weight: 400;
  letter-spacing: 1px;
  line-height: 160%;
  font-family: "Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
  text-align: left;

  border: 1px solid #804000;
  border-radius: 12px;
  cursor: pointer;

  transition: transform 0.15s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.card-accordion-btn:hover {
  box-shadow: 3px 3px 6px rgba(0,0,0,0.12);
}

.card-accordion-btn:focus-visible {
  outline: 2px solid rgba(85,170,0,0.45);
  outline-offset: 3px;
}

.card-accordion-text {
  display: block;
  width: 100%;
  padding-right: 10px;
}

.card-accordion.is-open .card-accordion-btn {
  border-color: #804000;
}

/* ＋／×アイコン */
.card-accordion-icon {
  position: absolute;
  right: 18px;
  top: 50%;
  width: 20px;
  height: 20px;
  transform: translateY(-50%);
}

.card-accordion-icon::before,
.card-accordion-icon::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 20px;
  height: 1px;
  background: #2d2d2d;
  border-radius: 2px;
  transform: translate(-50%, -50%);
  transition: transform 0.35s ease;
}

.card-accordion-icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.card-accordion.is-open .card-accordion-icon::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

.card-accordion.is-open .card-accordion-icon::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

/* 開閉領域 */
.card-accordion-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.5s ease;
}

/* 中身 */
.card-accordion-inner {
  width: 92%;
  max-width: 750px;
  margin: 0 auto 25px;
  padding: 14px 18px 18px;
  background: #ffffff;
  border-radius: 0 0 12px 12px;
}

.qa-answer {
  font-size: 16px;
  color: #2d2d2d;
  letter-spacing: 1px;
  line-height: 180%;
  font-family: "Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
  font-weight: 400;
}

@media (prefers-reduced-motion: reduce) {
  .card-accordion-btn,
  .card-accordion-icon::before,
  .card-accordion-icon::after,
  .card-accordion-content {
    transition: none;
  }
}

/* FAQ ボタン */
.faq-button-wrap {
  width: 100%;
  margin: 70px 0 100px;
  text-align: center;
}

.faq-button {
  display: inline-block;
  width: 100%;
  max-width: 300px;
  padding: 10px 20px;

  background-color: #ffefcf;
  border-radius: 10px;
  border: 2px dashed #AA7777;
  box-shadow: 0 0 0 7px #ffefcf;

  font-size: 14px;
  color: #330000;
  text-decoration: none;
  letter-spacing: 2px;

  font-family: "Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
  font-weight: 400;

  position: relative;
  transition: 0.2s ease;
}

.faq-button:hover {
  opacity: 0.8;
}

.faq-button::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 15px;
  width: 0;
  height: 0;
  margin-top: -3px;
  border-top: 6px solid #AA7777;
  border-left: 6px solid transparent;
  transform: rotate(45deg);
}

@media (max-width: 768px) {
  .faq-button {
    max-width: 260px;
    font-size: 13px;
  }
}


/* =========================================================
   Access
   ========================================================= */

.access-section {
  width: 100%;
  padding-bottom: 100px;
}

.access-map {
  width: 100%;
  text-align: center;
  padding-bottom: 20px;
}

.access-map__inner {
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
  position: relative;
  padding-top: 30%;
  overflow: hidden;
  border-radius: 10px;
}

.access-map__inner iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.access-info {
  width: 100%;
  max-width: 700px;
  margin: 0 auto;
  padding: 10px 20px 0;
}

.access-info p {
  font-size: 16px;
  color: #404040;
  letter-spacing: 2px;
  line-height: 180%;
  font-family: "Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
  font-weight: 400;
}

@media (max-width: 1024px) {
  .access-info {
    max-width: 90%;
  }
}

@media (max-width: 768px) {
  .access-section {
    padding-bottom: 60px;
  }

  .access-map__inner {
    width: 95%;
    max-width: 800px;
    margin: 0 auto;
    position: relative;
    padding-top: 60%;
    overflow: hidden;
    border-radius: 0;
  }

  .access-info {
    max-width: 95%;
  }

  .access-info p {
    font-size: 15px;
    letter-spacing: 1px;
  }
}


/* =========================================================
   Contact
   ========================================================= */

.lesson-heading {
  text-align: center;
  margin-bottom: 40px;
}

.lesson-heading h2 {
  font-size: 28px;
  letter-spacing: 3px;
  color: #552b00;
  font-family: "Kosugi Maru","メイリオ",sans-serif;
}

.lesson-text-wrap {
  width: 95%;
  max-width: 700px;
  margin: 0 auto 80px;
}

.lesson-text p {
  font-size: 16px;
  line-height: 180%;
  letter-spacing: 2px;
  color: #404040;
  font-family: "Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
}

.contact-wrap {
  width: 95%;
  max-width: 700px;
  margin: 0 auto 100px;
}

.contact-block {
  margin-bottom: 80px;
}

.contact-title {
  border-bottom: 2px dashed #996600;
  padding: 5px 0;
  margin-bottom: 40px;

  display: flex;
  align-items: center;
  gap: 14px;

  background-image: none;
  background-repeat: no-repeat;
  background-position: 0% 10%;
  background-size: 6%;

  --icon: none;
}

.contact-title::before {
  content: "";
  width: 32px;
  height: 32px;
  flex: 0 0 32px;

  background-image: var(--icon);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.contact-title p {
  margin: 0;
  font-size: 20px;
  color: #552b00;
  letter-spacing: 2px;
  font-family: "Kosugi Maru","メイリオ",sans-serif;
  line-height: 1.2;
}

.contact-title--tel  { --icon: url("../images/denwa.svg"); }
.contact-title--line { --icon: url("../images/line.png"); }
.contact-title--mail { --icon: url("../images/mail.svg"); }

.contact-number {
  text-align: center;
  margin: 20px 0 40px;
}

.contact-number p {
  font-size: 28px;
  font-family: "Noto Sans JP","Yu Gothic","メイリオ",sans-serif;	
}

.contact-number a {
  text-decoration: none;
  color: #000;
}

.contact-time {
  font-size: 18px;
  font-family: "Noto Sans JP","Yu Gothic","メイリオ",sans-serif;	
}

.contact-line-btn {
  text-align: center;
  margin: 40px 0;
}

.contact-line-btn img {
  max-width: 100%;
  height: auto;
}

.contact-mail {
  text-align: center;
  margin: 20px 0 40px;
}

.contact-mail a {
  font-size: 22px;
  text-decoration: none;
  font-family: "Noto Sans JP","Yu Gothic","メイリオ",sans-serif;	
}

.contact-mail a:hover {
  text-decoration: underline;
}

.contact-note {
  width: 90%;
  margin: 0 auto;
  padding: 15px;
  border: 1px solid #cccccc;
}

.contact-note p {
  font-size: 14px;
  line-height: 180%;
  letter-spacing: 1px;
  color: #404040;
  font-family: "Noto Sans JP","Yu Gothic","メイリオ",sans-serif;
}

@media (max-width: 768px) {
  .lesson-heading h2 {
    font-size: 22px;
  }

  .contact-title {
    padding-left: 0;
    gap: 12px;
  }

  .contact-title::before {
    width: 34px;
    height: 34px;
    flex-basis: 34px;
  }

  .contact-title p {
    font-size: 18px;
  }

  .contact-number p {
    font-size: 20px;
  }

  .contact-time {
    font-size: 14px;
  }

  .contact-mail a {
    font-size: 18px;
  }
}


/* =========================================================
   Footer (Responsive / Class renamed)
   ========================================================= */

/* フッター内だけ box-sizing を安定させる */
.footer, .footer * , .footer *::before, .footer *::after{
  box-sizing: border-box;
}

/* PC/SP 出し分け（元仕様を維持） */
.footer__sp{ display:none; }
.footer__pc{ display:block; }

@media (max-width: 767px){
  .footer__pc{ display:none; }
  .footer__sp{ display:block; }
}

/* =========================
   PC Footer
   ========================= */

.footerPc{
  width: 100%;
  background: #FFF5E6;
}

.footerPc__inner{
  width: 100%;
  max-width: 1280px;       /* 元の幅感は維持しつつ可変 */
  margin: 0 auto;
  padding: 40px 20px 20px; /* 元：上下40/20、左右は固定幅対策で追加 */
}

.footerPc__cols{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 40px;        /* td(左右20px)相当の余白感 */
  row-gap: 30px;
}

.footerPc__title{
  width: 100%;
  padding-bottom: 8px;
  margin-bottom: 15px;
  border-bottom: 1px solid #cccccc;
  line-height: 100%;
}

.footerPc__title > p{
  font-size: 17px;
  font-weight: bold;
  letter-spacing: 2px;
  color: #552b00;
  font-family: "Kosugi Maru", "Hiragino Maru Gothic ProN", "メイリオ", Meiryo, sans-serif;
}

/* 教室情報テーブル */
.footerPc__infoTable{
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  margin: 20px auto 10px;
}

.footerPc__infoTable th{
  width: 30%;
  font-weight: 400;
  font-size: 14px;
  letter-spacing: 1px;
  color: #3f3f3f;
  text-align: left;
  vertical-align: top;
  padding-bottom: 13px;
  line-height: 140%;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
}

.footerPc__infoTable td{
  width: 70%;
  font-weight: 400;
  font-size: 14px;
  letter-spacing: 1px;
  color: #3f3f3f;
  vertical-align: top;
  padding-bottom: 13px;
  line-height: 140%;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
}

.footerPc__infoTable td > a{
  text-decoration: none;
}
.footerPc__infoTable td > a:hover{
  text-decoration: underline;
}

/* PC：体験レッスンボタン（シンプル角丸版） */
.footerPc__cta{
  display: block;
  background-color: #552b00;
  width: 200px;          /* ← 少し細め */
  margin: 20px auto;
  text-align: center;
  padding: 6px 0;        /* ← 縦も少し細め */
  border-radius: 10px;   /* ← 角丸 */
  border: none;          /* ← 破線なし */
  box-shadow: none;      /* ← 外枠の影なし */
}

.footerPc__cta:hover{
  opacity: 0.85;
}

.footerPc__cta > a{
  display: block;
  position: relative;
  font-size: 14px;
  color: #ffffff;
  text-decoration: none;
  font-weight: 400;
  letter-spacing: 2px;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
  line-height: 1.6;
}

/* 右側の矢印（色だけ白に合わせて維持） */
.footerPc__cta > a::after{
  content: "";
  position: absolute;
  top: 50%;
  right: 12px;
  width: 0;
  height: 0;
  margin: -3px 0 0 0;
  border-top: 6px solid #ffffff;
  border-left: 6px solid transparent;
  transform: rotate(45deg);
}

/* PC：メニュー */
.footerPc__menu{
  width: 100%;
  padding-left: 0px;
  margin: 0;
}

.footerPc__menu > li{
  width: 100%;
  list-style: none;
  padding: 3px 0;
  border-bottom: 1px solid #cccccc;
}

.footerPc__menu > li > a{
  position: relative;
  font-size: 14px;
  letter-spacing: 1px;
  color: #3f3f3f;
  text-decoration: none;
  padding-left: 20px;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
  font-weight: 400;
}

.footerPc__menu > li > a:hover{
  text-decoration: underline;
}

.footerPc__menu > li > a::before{
  content: "";
  position: absolute;
  top: 40%;
  left: 0px;
  width: 0;
  height: 0;
  margin: -3px 0 0 0;
  border-top: 8px solid #8a8a8a;
  border-left: 8px solid transparent;
  transform: rotate(45deg);
}

/* PC：マップ */
.footerPc__map{
  width: 100%;
  margin-top: 20px;
}

/* PC：コピーライト */
.footerPcCopyright{
  width: 100%;
  background: #F5DEB3;
  padding: 20px 10px;
}

.footerPcCopyright > p{
  font-size: 14px;
  color: #3f3f3f;
  text-align: center;
  letter-spacing: 1px;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
  font-weight: 400;
}

/* =========================
   SP Footer
   ========================= */

/* 体験レッスンCTA */
.footerSpCta{
  width: 100%;
  padding: 30px 0;
  background: #ffefcf;
}

.footerSpCta__title{
  width: 95%;
  margin: 0 auto;
  padding-bottom: 5px;
  margin-bottom: 20px;
  border-bottom: 1px solid #552b00;
}

.footerSpCta__title > p{
  font-size: 19px;
  color: #552b00;
  padding-bottom: 5px;
  font-weight: bold;
  text-align: center;
  letter-spacing: 2px;
  font-family: "Kosugi Maru", "Hiragino Maru Gothic ProN", "メイリオ", Meiryo, sans-serif;
}

.footerSpCta__text{
  width: 85%;
  margin: 0 auto 30px;
}

.footerSpCta__text > p{
  font-size: 14px;
  color: #3f3f3f;
  letter-spacing: 1px;
  line-height: 180%;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
  font-weight: 400;
}

/* SP：申込みボタン（元 .sp-taiken-botan 相当） */
.footerSpCta__btn{
  background: #e4717a;
  width: 70%;
  margin: 0 auto 20px;
  border-radius: 10px;
  text-align: center;
  padding: 10px 0px;
  border: 2px dashed #ffffff;
  box-shadow: 0px 0px 0px 7px #e4717a;
}

.footerSpCta__btn > a{
  display: block;
  position: relative;
  font-size: 16px;
  color: #ffffff;
  text-decoration: none;
  font-weight: 400;
  letter-spacing: 2px;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
}

.footerSpCta__btn > a::after{
  content: "";
  position: absolute;
  top: 45%;
  right: 15px;
  width: 0;
  height: 0;
  margin: -3px 0 0 0;
  border-top: 10px solid #ffffff;
  border-left: 10px solid transparent;
  transform: rotate(45deg);
}

/* SP：メニュー（元の2列デザイン維持） */
.footerSpMenu{
  width: 100%;
  background: #ffefcf;
  padding: 30px 0;
}

.footerSpMenu__inner{
  width: 95%;
  margin: 0 auto;
  display: flex;
}

.footerSpMenu__col{
  width: 50%;
  margin: 0;
  padding: 0;
  list-style: none;
}

.footerSpMenu__col--left{
  padding-left: 10px;
}

.footerSpMenu__col--right{
  padding-left: 10px;
  border-left: 1px solid #cccccc;
}

.footerSpMenu__item{
  list-style: none;
  position: relative;
  padding-left: 40px;
  padding-bottom: 15px;
}

.footerSpMenu__item > a{
  font-size: 14px;
  color: #3f3f3f;
  text-decoration: none;
  letter-spacing: 2px;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
  font-weight: 400;
}

.footerSpMenu__item::before{
  content: "";
  position: absolute;
  top: 25%;
  left: 10px;
  width: 5px;
  height: 5px;
  border-top: 1px solid #3f3f3f;
  border-right: 1px solid #3f3f3f;
  transform: rotate(45deg);
}

/* SP：コピーライト（元 .spfooter 相当） */
.footerSpCopyright{
  width: 100%;
  clear: both;
  text-align: center;
  padding-top: 20px;
  padding-bottom: 60px;
  border-top: 0px solid #b4b4b4;
  background: #804000;
}

.footerSpCopyright p{
  width: 100%;
  text-align: center;
  font-size: 12px;
  color: #ffffff;
  line-height: 180%;
  letter-spacing: 2px;
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
  font-weight: 400;
}

/* =========================================================
   SP固定CTA（体験レッスンのみ / 上品グラデーション版）
   ========================================================= */

:root{
  --sp-fixed-cta-height: 40px;
}

/* =========================================================
   SP固定CTA（体験レッスンのみ / 音楽教室 上品特化）
   ========================================================= */

#sp-fixed-cta{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  z-index: 99;
  padding: 10px 12px;
  box-sizing: border-box;

  /* 背景にほんのり「紙感」＋サイトに馴染む透明感 */
  background: rgba(255,255,255,0.65);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);

  /* 端末の安全領域（iPhoneのホームバー）対応 */
  padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
}

/* CTA本体 */
#sp-fixed-cta .sp-fixed-cta__link{
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;

  width: 100%;
  min-height: 50px;
  box-sizing: border-box;

  text-decoration: none;
  border-radius: 14px;

  /* 上品オレンジグラデ（ストライプは使わず“質感”で音楽教室らしく） */
  background: linear-gradient(135deg, #ff8a4a 0%, #ff6a2a 55%, #ff8740 100%);

  /* 立体感（やりすぎない） */
  box-shadow:
    0 10px 22px rgba(0,0,0,0.12),
    inset 0 1px 0 rgba(255,255,255,0.35);

  /* 枠は薄く、上品に */
  border: 1px solid rgba(255,255,255,0.22);

  /* タップ感 */
  transition: transform 0.15s ease, box-shadow 0.2s ease, filter 0.2s ease;
  -webkit-tap-highlight-color: transparent;

  /* 文字 */
  font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
  letter-spacing: 0.08em;
  color: #fff;
}

/* “音楽教室らしさ”の超控えめ演出：五線譜っぽい細線（うっすら） */
#sp-fixed-cta .sp-fixed-cta__link::before{
  content: "";
  position: absolute;
  inset: 8px 12px;
  border-radius: 12px;
  pointer-events: none;

  /* 4本線を薄く（五線譜ニュアンス） */
  background:
    linear-gradient(to bottom,
      rgba(255,255,255,0.18) 0%,
      rgba(255,255,255,0.18) 2%,
      rgba(255,255,255,0) 2%,
      rgba(255,255,255,0) 24%,
      rgba(255,255,255,0.18) 24%,
      rgba(255,255,255,0.18) 26%,
      rgba(255,255,255,0) 26%,
      rgba(255,255,255,0) 48%,
      rgba(255,255,255,0.18) 48%,
      rgba(255,255,255,0.18) 50%,
      rgba(255,255,255,0) 50%,
      rgba(255,255,255,0) 72%,
      rgba(255,255,255,0.18) 72%,
      rgba(255,255,255,0.18) 74%,
      rgba(255,255,255,0) 74%,
      rgba(255,255,255,0) 100%
    );
  opacity: 0.55;
}

/* “音符”はアイコンとして小さく、上品に */
#sp-fixed-cta .sp-fixed-cta__label{
  position: relative;
  padding-right: 36px; /* 右矢印分 */
  padding-left: 30px;  /* 左音符分 */
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
}

/* 左：音符（文字ではなく装飾として小さく） */
#sp-fixed-cta .sp-fixed-cta__label::before{
  content: "♪";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-52%);
  font-size: 18px;
  opacity: 0.9;
}

/* 右：矢印（行動を促す） */
#sp-fixed-cta .sp-fixed-cta__label::after{
  content: "";
  position: absolute;
  right: 8px;
  top: 50%;
  width: 8px;
  height: 8px;
  border-top: 2px solid rgba(255,255,255,0.95);
  border-right: 2px solid rgba(255,255,255,0.95);
  transform: translateY(-50%) rotate(45deg);
  transition: transform 0.2s ease;
}

/* hover / active（スマホでも押した感が出る） */
#sp-fixed-cta .sp-fixed-cta__link:hover{
  filter: brightness(1.02);
}
#sp-fixed-cta .sp-fixed-cta__link:hover .sp-fixed-cta__label::after{
  transform: translateY(-50%) rotate(45deg) translateX(3px);
}
#sp-fixed-cta .sp-fixed-cta__link:active{
  transform: translateY(1px) scale(0.995);
  box-shadow:
    0 8px 18px rgba(0,0,0,0.12),
    inset 0 1px 0 rgba(255,255,255,0.30);
}

/* フォーカス可視化（キーボード操作/アクセシビリティ） */
#sp-fixed-cta .sp-fixed-cta__link:focus-visible{
  outline: 3px solid rgba(255,255,255,0.95);
  outline-offset: 3px;
}

/* PCでは非表示 */
@media (min-width: 768px){
  .for-sp{ display: none; }
}

/* CTA分の下余白（コンテンツが隠れないように） */
body{
  padding-bottom: calc(var(--sp-fixed-cta-height) + 10px);
}

/* PCでは非表示 */
@media (min-width: 768px){
  .for-sp{
    display: none;
  }

  body{
    padding-bottom: 0;
  }
}

/* 基本Pタグ設定 */

/* pcあいさつ*/

.pc-aisatsubun {
    width: 650px;
    margin: auto;
    position: relative; /* 要素の位置を固定 */
}

.pc-aisatsubun > p {
    font-size: 16px;
    color: #404040;
    letter-spacing: 2px;
    line-height: 180%;
font-family: "Kosugi Maru", "Hiragino Maru Gothic ProN", "メイリオ", Meiryo, sans-serif;
}

/* spサイトCSS */

/* spあいさつ*/

.sp-aisatsubun {
    width: 95%;
    margin: auto;

}

.sp-aisatsubun > p {
    font-size: 16px;
    color: #404040;
    letter-spacing: 2px;
    line-height: 180%;
    font-family: "Noto Sans JP", "Yu Gothic", "メイリオ", sans-serif;
font-weight: 400; }













/* 初期状態の共通設定 */
.mojianime1 span,
.mojianime2 span,
.mojianime3 span,
.mojianime1 span,
.mojianime5 span,
.mojianime6 span,
.mojianime7 span,
.mojianime8 span,
.mojianime9 span,
.mojianime10 span
{
    display: inline-block;
    opacity: 0; /* 初期は透明 */
    transform: translate(0, 0) rotateY(0deg); /* 初期位置と回転角度 */
    will-change: transform, opacity; /* パフォーマンス向上 */
    backface-visibility: visible; /* 背面を表示 */
    transform-style: preserve-3d; /* 3D効果を維持 */
}

/* アニメーションごとのスタイル */
.mojianime1 span {
    transform: translate(-10px, -10px) rotateY(0deg); /* 初期状態 */
}

.mojianime2 span {
    transform: translate(0, -10px) rotateY(0deg); /* 初期状態 */
}

.mojianime3 span {
    transform: translate(0, 10px) rotateY(0deg); /* 初期状態 */
}

.mojianime1 span {
    transform: translate(-10px, 10px) rotateY(0deg); /* 初期位置 */
}

.mojianime5 span {
    transform: translateY(20px); /* 初期位置 */

}

.mojianime6 span {
    transform: translateY(0); /* 初期位置 */
}

.mojianime7 span {
    opacity: 0; /* 初期状態で透明 */
    transform: translateY(0); /* 初期位置は変化なし */
}
.mojianime8 span {
    opacity: 0; /* 初期状態で透明 */
    transform: translateY(0px); /* 初期位置 */
}
.mojianime9 span {
    transform: translate(0, -10px); /* 初期状態 */
}
.mojianime10 span {
    transform: translate(0, 10px); /* 初期状態 */
}

/* アニメーション1 */
.title-sen1 {
  width: 100%;
  max-width: 750px;
  margin: auto;
  border-bottom: 3px solid #d4d4d4;
  transform-origin: center;
  transform: scaleX(0); /* 初期状態で非表示 */
  transition: transform 1.3s ease-out;
}
.title-sen1.title-sen1-active {
  transform: scaleX(1); /* アニメーションで表示 */
}

/* アニメーション2 */

.title-sen2 {
  width: 100%;
  max-width: 750px;
  margin: auto;
  border-bottom: 2px solid  #927873;
  transform-origin: left; /* アニメーションの起点を左側に設定 */
  transform: scaleX(0); /* 初期状態で非表示 */
  transition: transform 2s ease-out; /* アニメーション設定 */
}

.title-sen2.title-sen2-active {
  transform: scaleX(1); /* アニメーションで表示 */
}

/* アニメーション3 */

.title-sen3 {
  width: 100%;
  max-width: 750px;
  margin: auto;
  border-bottom: 3px solid #d4d4d4;
  transform-origin: right; /* アニメーションの起点を左側に設定 */
  transform: scaleX(0); /* 初期状態で非表示 */
  transition: transform 1.3s ease-out; /* アニメーション設定 */
}

.title-sen3.title-sen3-active {
  transform: scaleX(1); /* アニメーションで表示 */
}

/* イメージアニメーション1　右からスライド */
.image-right {

}

.image-right img {
  opacity: 0; /* 初期は透明 */
  transform: translateX(30px); /* 右にずらす */
  transition: transform 1s ease-out, opacity 1s ease-out;
}

.image-right-active img {
  transform: translateX(0); /* 元の位置に戻す */
  opacity: 1; /* 完全に表示 */
}
.image-right-all {
  opacity: 0; /* 初期は透明 */
  transform: translateX(30px); /* 右にずらす */
  transition: transform 1s ease-out, opacity 1s ease-out;
}

.image-right-all-active{
  transform: translateX(0); /* 元の位置に戻す */
  opacity: 1; /* 完全に表示 */
}

/* イメージアニメーション2　左からスライド */
.image-left {

}

.image-left img {
  opacity: 0; /* 初期は透明 */
  transform: translateX(-30px); /* 左にずらす */
  transition: transform 1s ease-out, opacity 1s ease-out;
}

.image-left-active img {
  transform: translateX(0); /* 元の位置に戻す */
  opacity: 1; /* 完全に表示 */
}
.image-left-all {
  opacity: 0; /* 初期は透明 */
  transform: translateX(-30px); /* 左にずらす */
  transition: transform 1s ease-out, opacity 1s ease-out;
}

.image-left-all-active{
  transform: translateX(0); /* 元の位置に戻す */
  opacity: 1; /* 完全に表示 */
}

/* イメージアニメーション3　下からスライド */
.image-shita {

}

.image-shita img {
  opacity: 0; /* 初期は透明 */
  transform: translateY(30px); /* 下にずらす */
  transition: transform 1s ease-out, opacity 1s ease-out;
}

.image-shita-active img {
  transform: translateY(0); /* 元の位置に戻す */
  opacity: 1; /* 完全に表示 */
}
.image-shita-all {
  opacity: 0; /* 初期は透明 */
  transform: translateY(30px); /* 下にずらす */
  transition: transform 1s ease-out, opacity 1s ease-out;
}

.image-shita-all-active{
  transform: translateY(0); /* 元の位置に戻す */
  opacity: 1; /* 完全に表示 */
}

/* イメージアニメーション4　上からスライド */
.image-ue {

}

.image-ue img {
  opacity: 0; /* 初期は透明 */
  transform: translateY(-30px); /* 上にずらす */
  transition: transform 1s ease-out, opacity 1s ease-out;
}

.image-ue-active img {
  transform: translateY(0); /* 元の位置に戻す */
  opacity: 1; /* 完全に表示 */
}
.image-ue-all {
  opacity: 0; /* 初期は透明 */
  transform: translateY(-30px); /* 上にずらす */
  transition: transform 1s ease-out, opacity 1s ease-out;
}
.image-ue-all-active{
  transform: translateY(0); /* 元の位置に戻す */
  opacity: 1; /* 完全に表示 */
}

/* ふわっと下から（初期） */
.reveal{
  opacity: 0;
  transform: translateY(30px);
  transition: transform 1s ease-out, opacity 1s ease-out;
  will-change: transform, opacity;
}

/* 表示状態 */
.reveal.is-active{
  opacity: 1;
  transform: translateY(0);
}

/* 動きが苦手な人向け（推奨） */
@media (prefers-reduced-motion: reduce){
  .reveal{
    opacity: 1;
    transform: none;
    transition: none;
  }
}


