﻿/* ============================================================
   Luana LP / School - Common CSS
   main.css: shared variables, base layout, nav, hero, labels, CTA, FAQ, footer
   ============================================================ */
/* ============================================================
   Luana LP — 男性専門整体ルアナ（名古屋）
   配置：/wp-content/themes/arkhe_child/luana-lp.css
   画像参照：/wp-content/uploads/luana/ の絶対URL
   ============================================================ */

:root{
  --bg: #FFFFFF;
  --paper: #FFFFFF;
  --surface: #F6F5F6;
  --ink: #1A1A1A;
  --ink-soft: #444444;
  --ink-muted: #888888;

  --blush-50: #FDEFF3;
  --blush-100: #FAD8E0;
  --blush-200: #F2B6C5;
  --rose: #F895AD;
  --mauve: #F895AD;
  --plum: #2A2528;
  --plum-deep: #110F13;

  --line: #E5E5E5;
  --line-soft: #F0F0F0;

  --serif:"Cormorant Garamond","Shippori Mincho B1", serif;
  --mincho:"Shippori Mincho B1","Yu Mincho","游明朝", serif;
  --sans-jp:"Noto Sans JP","Hiragino Sans","Yu Gothic","Meiryo", sans-serif;
  --sans:"Jost","Helvetica Neue", sans-serif;
  --script:"Bebas Neue","Oswald", sans-serif;
}

.luana-lp *{ margin:0; padding:0; box-sizing:border-box; }
.luana-lp{ scroll-behavior:smooth; }

.luana-lp{
  font-family: var(--sans-jp);
  background: var(--bg);
  color: var(--ink);
  line-height: 1.85;
  font-weight: 500;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  font-feature-settings:"palt";
}

.luana-lp::before{
  content:"";
  position: fixed; inset:0;
  pointer-events:none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.4 0 0 0 0 0.3 0 0 0 0 0.35 0 0 0 0.05 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  opacity:0.35;
  z-index: 1;
  mix-blend-mode: multiply;
}

.luana-lp a{ color:inherit; text-decoration:none; }
.luana-lp img{ max-width:100%; display:block; }

/* ============== ナビ ============== */
.luana-lp .nav{
  position: fixed; top:0; left:0; right:0;
  z-index: 100;
  padding: 20px 44px;
  display:flex; justify-content:space-between; align-items:center;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--line-soft);
  transform: translateY(-100%);
  opacity: 0;
  pointer-events: none;
  transition: transform .35s ease, opacity .35s ease;
}
.luana-lp .nav.is-visible{
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}
.luana-lp .nav__logo{
  font-family: var(--serif);
  font-size: 26px; font-weight: 400;
  letter-spacing: 0.18em; color: var(--ink);
  font-style: italic;
}
.luana-lp .nav__logo span{
  font-family: var(--sans-jp); font-style: normal;
  font-size: 13px; letter-spacing: 0.4em;
  color: var(--ink-muted); display:block;
  margin-top: -10px !important; font-weight:500;
}
.luana-lp .nav__menu{
  display:flex; gap:30px;
  font-family: var(--serif); font-size: 16px;
  letter-spacing:0.15em; color: var(--ink-soft);
}
.luana-lp .nav__menu a{ position:relative; }
.luana-lp .nav__menu a::after{
  content:""; position:absolute; left:0; bottom:-6px;
  width:0; height:1px; background: var(--rose);
}
.luana-lp .nav__cta{
  display: inline-block;
  line-height: 0;
  text-decoration: none;
  transition: transform .2s ease;
}
.luana-lp .nav__cta:hover{
  transform: translateY(-1px);
}
.luana-lp .nav__cta-img{
  display: block;
  height: 88px !important;
  width: auto;
  max-width: min(44vw, 360px) !important;
  object-fit: contain;
}

@media (max-width: 980px){
  .luana-lp .nav{ padding: 14px 18px; }
  .luana-lp .nav__menu{ display:none; }
  .luana-lp .nav__logo{ font-size: 22px; }
  .luana-lp .nav__logo span{ font-size: 10px; letter-spacing: 0.3em; }
  .luana-lp .nav__cta-img{
    height: 72px !important;
    max-width: calc(100vw - 150px) !important;
  }
}

/* ============== HERO ============== */
.luana-lp .hero{
  position: relative;
  padding: 0;
  background: var(--surface);
  overflow: hidden;
}
.luana-lp .hero__visual{
  display: block;
  position: relative;
  width: 100%;
}
.luana-lp .hero__visual-img{
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

@media (max-width: 768px){
  .luana-lp .hero{ padding-top: 0; padding-bottom: 0; }
}

/* ============== セクション共通 ============== */
.luana-lp section{ position:relative; z-index:2; }

.luana-lp .section-label{
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 12px 24px;
  background: #1A1A1A;
  margin-bottom: 24px;
  font-family: var(--sans-jp);
  font-style: normal;
  font-size: 16px;
  letter-spacing: 0.2em;
}
.luana-lp .section-label::before,
.luana-lp .section-label::after{
  display: none !important;
}
.luana-lp .section-num{
  font-family: var(--script);
  color: var(--ink-muted);
  letter-spacing: 0.04em;
}

.luana-lp .section-label__num{
  font-family: var(--script);
  font-style: normal;
  font-size: 26px; font-weight: 400;
  color: #FFFFFF !important; line-height: 1;
  letter-spacing: 0.04em;
}
.luana-lp .section-label__divider{
  display: inline-block;
  width: 1px; height: 20px;
  background: rgba(255, 255, 255, 0.5) !important;
}
.luana-lp .section-label__en{
  font-family: var(--script);
  font-style: normal;
  font-size: 18px; letter-spacing: 0.22em;
  color: #FFFFFF !important; text-transform: uppercase;
  font-weight: 400;
  line-height: 1;
  white-space: nowrap;
}
@media (max-width: 880px){
  .luana-lp .section-label{ gap: 12px; padding: 10px 20px; font-size: 15px; }
  .luana-lp .section-label__num{ font-size: 22px; }
  .luana-lp .section-label__divider{ height: 16px; }
  .luana-lp .section-label__en{ font-size: 14px; letter-spacing: 0.12em; }
}

.luana-lp .section-title em{
  font-family: var(--mincho);
  font-style: normal;
  font-weight: 700;
  color: var(--rose);
  font-size: 1.32em;
  padding: 0 8px;
  background: linear-gradient(transparent 72%, rgba(248, 149, 173, 0.22) 72%, rgba(248, 149, 173, 0.22) 94%, transparent 94%);
}
.luana-lp .section-title .block{
  font-family: var(--sans-jp);
  font-weight: 800;
}
.luana-lp .section-title{
  font-family: var(--sans-jp); font-weight: 800;
  font-size: clamp(28px, 3.6vw, 44px);
  line-height: 1.5; color: var(--ink);
  letter-spacing: 0.04em; margin-bottom: 60px;
}
.luana-lp .section-title .en{
  display:block;
  font-family: var(--script); font-style: normal;
  font-weight: 400;
  font-size: clamp(20px, 2.2vw, 28px);
  color: var(--ink-muted); letter-spacing: 0.22em;
  margin-bottom: 12px;
  text-transform: uppercase;
}

/* ============== 下層ページ本文 ============== */
.luana-page,
.privacy-policy{
  max-width: 920px;
  margin: 0 auto;
  padding: clamp(72px, 8vw, 128px) 24px clamp(88px, 9vw, 144px);
  font-family: var(--sans-jp);
  color: var(--ink);
  line-height: 2;
  letter-spacing: 0.04em;
}
.luana-page h1,
.privacy-policy h1{
  margin: 0 0 clamp(44px, 5vw, 72px);
  font-family: var(--mincho);
  font-size: clamp(34px, 5vw, 56px);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0.08em;
  color: var(--ink);
  text-align: center;
}
.luana-page h1::after,
.privacy-policy h1::after{
  content: "";
  display: block;
  width: 56px;
  height: 1px;
  margin: 24px auto 0;
  background: var(--rose);
}
.luana-page h2,
.privacy-policy h2{
  margin: clamp(46px, 5vw, 64px) 0 18px;
  padding-left: 18px;
  border-left: 3px solid var(--rose);
  font-family: var(--mincho);
  font-size: clamp(24px, 2.6vw, 34px);
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: 0.06em;
  color: var(--ink);
}
.luana-page p,
.privacy-policy p{
  margin: 0 0 20px;
  font-size: 16.5px;
  color: var(--ink-soft);
}
.luana-page ul,
.privacy-policy ul{
  margin: 18px 0 28px;
  padding: 0;
  list-style: none;
}
.luana-page li,
.privacy-policy li{
  position: relative;
  padding-left: 22px;
  margin-bottom: 10px;
  font-size: 16.5px;
  color: var(--ink-soft);
  line-height: 1.9;
}
.luana-page li::before,
.privacy-policy li::before{
  content: "";
  position: absolute;
  top: 0.9em;
  left: 0;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--rose);
}
.luana-page a,
.privacy-policy a{
  color: var(--plum);
  text-decoration: underline;
  text-decoration-color: rgba(248, 149, 173, 0.55);
  text-underline-offset: 4px;
}

@media (max-width: 768px){
  .luana-page,
  .privacy-policy{
    padding: 64px 22px 96px;
    line-height: 1.9;
  }
  .luana-page h1,
  .privacy-policy h1{
    text-align: left;
    letter-spacing: 0.06em;
  }
  .luana-page h1::after,
  .privacy-policy h1::after{
    margin-left: 0;
  }
  .luana-page h2,
  .privacy-policy h2{
    margin-top: 42px;
    padding-left: 14px;
    font-size: clamp(23px, 6.2vw, 30px);
  }
  .luana-page p,
  .privacy-policy p,
  .luana-page li,
  .privacy-policy li{
    font-size: 15.5px;
  }
}

/* ============== ⑨ よくある質問 ============== */
.luana-lp .faq{
  padding: 160px 48px;
  background: var(--surface);
}
.luana-lp .faq__inner{
  max-width: 980px; margin: 0 auto;
}
.luana-lp .faq__head{
  text-align:center;
  margin-bottom: 80px;
}
.luana-lp .faq__head .section-label{ justify-content: center; }
.luana-lp .faq__list{
  border-top: 1px solid var(--line);
}
.luana-lp .faq-item{
  border-bottom: 1px solid var(--line);
  padding: 28px 0;
  cursor: pointer;
}
.luana-lp .faq-item summary{
  list-style: none;
  display:grid;
  grid-template-columns: 72px 1fr auto;
  gap: 0;
  align-items: center;
}
.luana-lp .faq-item summary::-webkit-details-marker{ display:none; }
.luana-lp .faq-item__q{
  font-family: var(--script); font-style: normal;
  font-weight: 400; font-size: 48px !important;
  color: var(--rose);
  letter-spacing: 0.04em;
  line-height: 1;
  display: block;
}
.luana-lp .faq-item__title{
  font-family: var(--sans-jp); font-size: 18px;
  color: var(--ink);
  line-height: 1.7; letter-spacing: 0.04em;
  font-weight: 500;
}
.luana-lp .faq-item__plus{
  width: 20px; height: 20px;
  position:relative;
}
.luana-lp .faq-item__plus::before, .luana-lp .faq-item__plus::after{
  content:""; position:absolute;
  background: var(--plum); top: 50%; left: 50%;
}
.luana-lp .faq-item__plus::before{
  width: 14px; height: 1px;
  transform: translate(-50%, -50%);
}
.luana-lp .faq-item__plus::after{
  width: 1px; height: 14px;
  transform: translate(-50%, -50%);
}
.luana-lp .faq-item[open] .faq-item__plus::after{
  transform: translate(-50%, -50%) rotate(90deg);
}
.luana-lp .faq-item__answer{
  margin-top: 16px;
  padding-left: 80px; padding-right: 40px;
  font-size: 17px; line-height: 2.05;
  color: var(--ink-soft); letter-spacing: 0.04em;
}

@media (max-width: 880px){
  .luana-lp .faq{ padding: 80px 22px; }
  .luana-lp .faq-item summary{ grid-template-columns: 48px 1fr 24px; gap: 0; }
  .luana-lp .faq-item__q{ font-size: 32px !important; }
  .luana-lp .faq-item__title{ font-size: 17.5px; }
  .luana-lp .faq-item__answer{ padding-left: 52px; padding-right: 0; font-size: 16.5px; }
}

/* ============== ⑪ ご予約方法 ============== */
.luana-lp .cta{
  padding: 200px 48px 160px;
  text-align:center;
  position: relative;
  overflow: visible;
  background: var(--paper);
  z-index: 3;
}
.luana-lp .cta::before{
  content:"";
  position:absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 140vw; height: 140vw;
  max-width: 1100px; max-height: 1100px;
  background: radial-gradient(circle, rgba(253, 239, 243, 0.6) 0%, transparent 60%);
  z-index:0;
}
.luana-lp .cta::after{
  content:"蘇";
  position:absolute;
  right: -80px; bottom: -90px;
  top: auto;
  width: 540px; height: 540px;
  border: 1px solid rgba(248, 149, 173, 0.55);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family: var(--sans-jp); font-weight: 600;
  font-size: 300px; line-height: 1;
  color: rgba(248, 149, 173, 0.32);
  z-index: 1;
  pointer-events:none; user-select:none;
  transform: rotate(-12deg);
}
@media (max-width: 880px){
  .luana-lp .cta::after{
    width: 280px; height: 280px;
    right: -80px; bottom: -50px;
    font-size: 160px;
  }
}
.luana-lp .cta__inner{
  position:relative; z-index:2;
  max-width: 800px; margin: 0 auto;
}
.luana-lp .cta__seal{
  width: 60px; height: 60px;
  margin: 0 auto 40px;
  border: 1px solid var(--rose);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color: var(--rose);
  font-family: var(--mincho);
  font-size: 22px; font-weight: 600;
}
.luana-lp .cta__title{
  font-family: var(--mincho); font-weight: 700;
  font-size: clamp(30px, 4.4vw, 52px);
  line-height: 1.65; color: var(--ink);
  letter-spacing: 0.06em;
  margin-bottom: 32px;
}
.luana-lp .cta__title em{
  font-style: normal;
  font-family: var(--mincho);
  font-weight: 700;
  color: var(--rose);
  font-size: 1.32em;
  padding: 0 8px;
  background: linear-gradient(transparent 72%, rgba(248, 149, 173, 0.22) 72%, rgba(248, 149, 173, 0.22) 94%, transparent 94%);
}
.luana-lp .cta__sub{
  font-size: 18px; color: var(--ink-soft);
  line-height: 2.1; letter-spacing: 0.06em;
  max-width: 560px; margin: 0 auto 56px;
}
.luana-lp .cta__btn{
  display: inline-block;
  position: relative;
  z-index: 3;
  line-height: 0;
  text-decoration: none;
  transition: transform .2s ease, filter .2s ease;
}
.luana-lp .cta__btn:hover{
  transform: translateY(-2px);
  filter: drop-shadow(0 12px 24px rgba(6, 199, 85, 0.35));
}
.luana-lp .cta__btn-img{
  display: block;
  max-width: 360px;
  width: 100%;
  height: auto;
}
.luana-lp .cta__note{
  margin-top: 32px;
  font-family: var(--script); font-style: normal;
  font-size: 16px; color: var(--ink-muted);
  letter-spacing: 0.22em;
  font-weight: 400;
  text-transform: uppercase;
}

@media (max-width: 880px){
  .luana-lp .cta{ padding: 110px 22px 100px; }
}

/* ============== フッター ============== */
.luana-lp footer{
  background: var(--plum-deep); color: var(--blush-100);
  padding: 72px 48px 34px;
  position: relative;
  z-index:2;
}
.luana-lp .footer__inner{
  max-width: 760px; margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(180px, 0.85fr) minmax(260px, 1.15fr);
  gap: 56px;
  align-items: center;
  text-align: left;
}
.luana-lp .footer__brand{ text-align: left; }
.luana-lp .footer__brand .logo{
  font-family: var(--serif); font-style: italic;
  font-size: 34px; margin-bottom: 10px;
  color: var(--blush-50);
  line-height: 1;
}
.luana-lp .footer__label{
  font-family: var(--sans-jp); font-size: 14px;
  font-weight: 700;
  line-height: 1.7; color: rgba(253, 239, 243,0.7);
  letter-spacing: 0.14em;
}
.luana-lp .footer__message{
  font-family: var(--sans-jp); font-size: 14px;
  font-weight: 700;
  line-height: 2; color: rgba(253, 239, 243,0.78);
  letter-spacing: 0.08em;
}
.luana-lp .footer__col h5{
  font-family: var(--script); font-style: normal;
  font-size: 20px; letter-spacing: 0.22em;
  color: var(--rose); margin-bottom: 24px;
  font-weight: 400;
  text-transform: uppercase;
}
.luana-lp .footer__col ul{ list-style:none; }
.luana-lp .footer__col li{
  font-family: var(--sans-jp); font-size: 15.5px;
  color: rgba(253, 239, 243,0.75);
  line-height: 2.2; letter-spacing: 0.04em;
}
.luana-lp .footer__bottom{
  display: none;
}

@media (max-width: 880px){
  .luana-lp footer{ padding: 56px 28px 64px; }
  .luana-lp .footer__inner{
    max-width: 320px;
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .luana-lp .footer__brand,
  .luana-lp .footer__message{ text-align: left; }
  .luana-lp .footer__brand .logo{ font-size: 30px; }
}

/* ============== 既存WPフッター ============== */
body .l-footer,
body footer.l-footer,
body .p-footer,
body .site-footer{
  background: var(--plum-deep) !important;
  color: var(--blush-100) !important;
}
body .l-footer,
body footer.l-footer{
  padding-top: 56px !important;
  padding-bottom: 52px !important;
}
body .l-footer nav ul,
body .p-footer nav ul,
body .site-footer nav ul,
body .l-footer .menu,
body .l-footer .p-footerNav,
body .l-footer .p-footerNav__list,
body .l-footer .p-footer__nav,
body .l-footer .l-footer__nav{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 12px 30px;
  padding: 0;
  margin: 0 0 32px;
}
body .l-footer nav li,
body .p-footer nav li,
body .site-footer nav li,
body .l-footer .menu-item{
  margin: 0;
  padding: 0;
  color: var(--rose) !important;
}
body .l-footer nav li::marker,
body .p-footer nav li::marker,
body .site-footer nav li::marker{
  color: var(--rose);
}
body .l-footer a,
body .p-footer a,
body .site-footer a,
body .l-footer .menu-item a{
  color: rgba(253, 239, 243, 0.72) !important;
  font-family: var(--sans-jp);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-decoration: none;
}
body .l-footer a:hover,
body .p-footer a:hover,
body .site-footer a:hover{
  color: var(--blush-50) !important;
}
body .l-footer .c-copyright,
body .p-footer .c-copyright,
body .site-footer .c-copyright,
body .c-copyright,
body .l-footer__copy,
body .p-footer__copy{
  color: rgba(253, 239, 243, 0.54) !important;
}

/* ============== フローティングLINE ============== */
.luana-lp .floating-cta{
  position: fixed;
  top: 50%; right: 0;
  transform: translateY(-50%);
  z-index: 90;
  background: #06C755; color: #FFFFFF;
  padding: 32px 14px;
  writing-mode: vertical-rl;
  text-orientation: upright;
  font-family: var(--sans-jp);
  font-size: 14px;
  font-weight: 600; letter-spacing: 0.3em;
  line-height: 1.2;
  text-decoration: none;
  box-shadow: -6px 0 18px -6px rgba(0, 0, 0, 0.22);
  border-radius: 4px 0 0 4px;
}

@media (max-width: 880px){
  .luana-lp .floating-cta{
    top: auto;
    bottom: 0; right: 0; left: 0;
    transform: none;
    writing-mode: horizontal-tb;
    padding: 16px 22px;
    font-size: 14px;
    letter-spacing: 0.25em;
    border-radius: 0;
    text-align: center;
    box-shadow: 0 -6px 18px -6px rgba(0, 0, 0, 0.18);
  }
}

.luana-lp .reveal{ /* 静的表示 */ }

.luana-school .reveal.reveal-ready{
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  filter: blur(2px);
  transition:
    opacity 0.7s ease,
    transform 0.7s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.7s ease;
  will-change: opacity, transform;
}

.luana-school .reveal.reveal-ready.is-shown{
  opacity: 1;
  transform: translate3d(0, 0, 0);
  filter: blur(0);
}

@media (prefers-reduced-motion: reduce){
  .luana-school .reveal.reveal-ready{
    opacity: 1;
    transform: none;
    filter: none;
    transition: none;
  }
}

/* CTA overlap guard */
.luana-lp .cta::after{
  z-index: 0 !important;
}
.luana-lp .cta__inner{
  position: relative;
  z-index: 2 !important;
}
.luana-lp .cta__btn,
.luana-lp .cta__btn-img{
  position: relative !important;
  z-index: 5 !important;
}

/* ============================================================
   Luana School - School Page CSS
   school.css: school page specific sections
   Requires: main.css
   ============================================================ */
/* ============================================================
   Luana School — ゆきこスクール（名古屋）
   配置：/wp-content/themes/arkhe_child/luana-school.css
   依存：luana-lp.css（基本デザイン）が先にロードされる前提
   構造：HTMLは <div class="luana-lp luana-school"> でラップ

   v3: Gutenbergブロック対応フラット構造版
     - __inner / __head / __body ラッパーを廃止
     - 各セクションは wp:group 1階層 + フラットな子要素で構成
     - 例外：About と Instructor は2カラム構造のためwp:html維持
   ============================================================ */

/* ============== Arkhe テーマ要素 強制リセット（schoolページ用） ============== */
body.page .l-header,
body.page #l-header,
body.page .l-mainContent > .l-header,
body.page .p-mainHeader{
  display: none !important;
}
body.page .p-page__title,
body.page .p-archive__title{
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.page .l-mainArea,
body.page .l-main,
body.page main.l-main,
body.page .l-content,
body.page .l-content__body{
  max-width: none !important;
  width: 100% !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
body.page article.p-entry,
body.page .p-entry,
body.page .p-entry__content,
body.page .c-postContent{
  max-width: none !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* ============== Gutenberg wp:group のリセット ============== */
.luana-school .wp-block-group{ margin: 0; }

/* Arkhe テーマが挿入する .wp-block-group__inner-container を透過 */
/* これがないとgrid/flex設定が inner-container に閉じ込められてレイアウト崩壊 */
.luana-school .wp-block-group__inner-container{
  display: contents;
}

/* wp:image (figure) のWPコアデフォルトmarginリセット */
.luana-school .wp-block-image{
  margin: 0;
}
.luana-school .wp-block-image img{
  display: block;
  max-width: 100%;
  height: auto;
}

/* 各 wp:image 用 figure 内 img のスタイル（aspect-ratio保持・object-fit強制） */
.luana-school .curriculum-card__img img,
.luana-school .process-item__img img{
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
.luana-school .benefit-card__icon img{
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
}
.luana-school .school-voice__avatar img{
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
.luana-school .school-voice__body{
  display: block;
  width: 100%;
  height: auto;
}
.luana-school .school-voice__body img{
  width: 100% !important;
  height: auto !important;
  display: block;
}

/* Gutenberg constrained layout のmax-width強制制限を打ち消す（フラットブロック構造のため） */
.luana-school .wp-block-group > *{
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}
/* セクション内コンテンツの中央寄せ・幅制限を再指定
   注：display:contents で透過された inner-container には max-width が効かないので、
   その下の本物のコンテンツ要素に当てる必要がある */
.luana-school .school-target > .wp-block-group__inner-container > *{
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
}
.luana-school .school-curriculum > .wp-block-group__inner-container > *{
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}
.luana-school .school-format > .wp-block-group__inner-container > *{
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}
.luana-school .school-benefits > .wp-block-group__inner-container > *{
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
}
.luana-school .school-tuition > .wp-block-group__inner-container > *{
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}
.luana-school .school-process > .wp-block-group__inner-container > *{
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
}
.luana-school .school-voices > .wp-block-group__inner-container > *{
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}
.luana-school .faq.school-faq > .wp-block-group__inner-container > *{
  max-width: 920px;
  margin-left: auto;
  margin-right: auto;
}
.luana-school .cta.school-cta > .wp-block-group__inner-container > *{
  margin-left: auto;
  margin-right: auto;
}
/* About / Instructor は2カラム grid なので inner-container の子に max-width 1180px / 1200px を当てる */
.luana-school .school-about > .wp-block-group__inner-container > *{
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
}
.luana-school .school-instructor > .wp-block-group__inner-container > *{
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}
/* school-target__item の grid を強制 */
.luana-school .wp-block-group.school-target__item{
  display: grid !important;
  grid-template-columns: 40px 1fr !important;
  gap: 22px !important;
  align-items: center !important;
}
.luana-school .wp-block-group.school-target__item > *{
  margin: 0 !important;
}

/* ============== HERO（メインビジュアル画像） ============== */
/* .hero / .hero__visual はLP CSSを継承 */

/* ============== ① ABOUT（2カラム構造・wp:html維持） ============== */
.luana-school .school-about{
  padding: 160px 48px;
  background: var(--paper);
  position: relative;
  overflow: hidden;
}
.luana-school .school-about__inner{
  max-width: 1180px; margin: 0 auto;
  position: relative; z-index: 2;
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 80px;
  align-items: start;
}
.luana-school .school-about__head{
  margin-bottom: 0;
  text-align: left;
}
.luana-school .school-about__head .section-label{
  justify-content: flex-start;
}
.luana-school .school-about__head .section-title{
  font-size: clamp(22px, 2.4vw, 32px);
  letter-spacing: 0.02em;
  line-height: 1.55;
  margin-bottom: 32px;
  text-wrap: balance;
}
.luana-school .school-about__body{
  text-align: left;
  max-width: none;
  margin: 0;
  font-size: 18px;
  line-height: 2.1;
  color: var(--ink-soft);
}
.luana-school .school-about__body p + p{ margin-top: 18px; }
.luana-school .school-about__body strong{
  color: var(--ink); font-weight: 700;
  background: linear-gradient(transparent 75%, rgba(248, 149, 173, 0.18) 75%, rgba(248, 149, 173, 0.18) 95%, transparent 95%);
  padding: 0 2px;
}
.luana-school .school-about__list{
  list-style: none;
  margin: 18px 0;
  padding: 0;
  background: transparent;
  border-left: none;
}
.luana-school .school-about__list li{
  position: relative;
  padding-left: 22px;
  padding-bottom: 6px;
  margin-bottom: 6px;
  font-size: 18px;
  line-height: 1.9;
  color: var(--ink);
  font-weight: 700;
  border-bottom: 1px solid var(--blush-100);
}
.luana-school .school-about__list li::before{
  content: "";
  position: absolute;
  left: 0; top: 0.7em;
  width: 11px; height: 11px;
  background: var(--rose);
  border-radius: 50%;
  transform: translateY(-50%);
}

@media (max-width: 880px){
  .luana-school .school-about{ padding: 80px 22px; }
  .luana-school .school-about__inner{ grid-template-columns: 1fr; gap: 40px; }
  .luana-school .school-about__head{ text-align: center; }
  .luana-school .school-about__head .section-label{ justify-content: center; }
  .luana-school .school-about__body{ font-size: 16px; line-height: 2; }
  .luana-school .school-about__list{ padding: 22px 20px; }
  .luana-school .school-about__list li{ font-size: 15.5px; padding-left: 20px; }
}

/* ============== ② RECOMMENDED（フラット構造） ============== */
.luana-school .school-target{
  padding: 160px 48px;
  background: var(--surface);
  position: relative;
  overflow: hidden;
  text-align: center;
}
.luana-school .school-target > *{
  position: relative;
  z-index: 2;
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
}
.luana-school .school-target > .section-label{
  margin: 0 auto 24px;
}
.luana-school .school-target > h2,
.luana-school .school-target__head h2{
  font-family: var(--sans-jp);
  font-weight: 800;
  font-size: clamp(28px, 3.6vw, 44px);
  color: var(--ink);
  letter-spacing: 0.05em;
  line-height: 1.5;
  display: block;
  margin: 0 auto 56px;
  text-align: center;
}
.luana-school .school-target > h2::before,
.luana-school .school-target > h2::after,
.luana-school .school-target__head h2::before,
.luana-school .school-target__head h2::after{
  display: none;
}
.luana-school .school-target > h2 > span,
.luana-school .school-target__head h2 > span{
  display: block !important;
  text-align: center !important;
  white-space: normal !important;
}
.luana-school .school-target > h2 em,
.luana-school .school-target__head h2 em{
  font-family: var(--mincho);
  font-style: normal;
  font-weight: 700;
  color: var(--rose);
  font-size: 1.3em;
  padding: 0 6px;
  background: linear-gradient(transparent 72%, rgba(248, 149, 173, 0.22) 72%, rgba(248, 149, 173, 0.22) 94%, transparent 94%);
}
.luana-school .school-target__list{
  max-width: 860px !important;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.luana-school .school-target__item{
  display: grid;
  grid-template-columns: 40px 1fr;
  gap: 22px;
  align-items: center;
  padding: 26px 32px;
  background: #FFFFFF;
  border-radius: 12px;
  text-align: left;
  box-shadow: 6px 6px 0 0 #E0E0E0;
}
.luana-school .school-target__check{
  width: 34px; height: 34px;
  background: url('https://cog-test.xyz/luana/wp-content/uploads/luana/icons/check.png') no-repeat center;
  background-size: contain;
}
.luana-school .school-target__item p{
  font-family: var(--sans-jp);
  font-size: 19px;
  font-weight: 500;
  color: var(--ink);
  line-height: 1.7;
  letter-spacing: 0.04em;
}
.luana-school .school-target__note{
  margin-top: 36px;
  font-size: 16px;
  color: var(--ink-muted);
}
.luana-school .school-target__note strong{
  color: var(--ink); font-weight: 600;
}

@media (max-width: 880px){
  .luana-school .school-target{ padding: 80px 22px; }
  .luana-school .school-target > h2,
  .luana-school .school-target__head h2{ gap: 16px; }
  .luana-school .school-target > h2::before,
  .luana-school .school-target > h2::after,
  .luana-school .school-target__head h2::before,
  .luana-school .school-target__head h2::after{ width: 26px; height: 7px; }
  .luana-school .school-target__item{ padding: 18px 20px; grid-template-columns: 28px 1fr; gap: 14px; box-shadow: 4px 4px 0 0 #E0E0E0; }
  .luana-school .school-target__check{ width: 26px; height: 26px; }
  .luana-school .school-target__item p{ font-size: 16px; }
}

/* ============== ③ CURRICULUM（フラット構造） ============== */
.luana-school .school-curriculum{
  padding: 160px 48px;
  background: var(--paper);
  position: relative;
  overflow: hidden;
  text-align: center;
}
.luana-school .school-curriculum > *{
  position: relative;
  z-index: 2;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}
.luana-school .school-curriculum > .section-label{ margin: 0 auto 0; }
.luana-school .school-curriculum > h2{
  margin: 24px auto 80px;
}

.luana-school .curriculum-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  text-align: left;
}
.luana-school .curriculum-card{
  background: #FFFFFF;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 0 0 28px;
  position: relative;
  box-shadow: 8px 8px 0 0 #E0E0E0;
  display: flex;
  flex-direction: column;
}
.luana-school .curriculum-card__img{
  aspect-ratio: 16/10;
  overflow: hidden;
  margin: 28px 28px 22px;
  border-radius: 6px;
}
.luana-school .curriculum-card__img img{
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.luana-school .curriculum-card__head{
  display: grid;
  grid-template-columns: 60px 1fr;
  gap: 18px;
  align-items: center;
  margin: 0 28px 22px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--line);
}
.luana-school .curriculum-card__num{
  display: inline-flex;
  align-items: center; justify-content: center;
  width: 60px; height: 60px;
  background: var(--rose);
  color: #FFFFFF;
  font-family: var(--script);
  font-size: 24px;
  border-radius: 50%;
  letter-spacing: 0.04em;
}
.luana-school .curriculum-card__heading{
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.luana-school .curriculum-card__label{
  font-family: var(--script);
  font-size: 14px;
  letter-spacing: 0.22em;
  color: var(--rose);
  margin: 0;
  text-transform: uppercase;
  font-weight: 500;
}
.luana-school .curriculum-card__title{
  font-family: var(--mincho);
  font-weight: 700;
  font-size: 22px;
  color: var(--ink);
  margin: 0;
  letter-spacing: 0.04em;
  line-height: 1.4;
}
.luana-school .curriculum-card__list{
  list-style: none;
  margin: 0 28px;
}
.luana-school .curriculum-card__list li{
  position: relative;
  padding-left: 20px;
  font-size: 17px;
  line-height: 1.9;
  color: var(--ink-soft);
  margin-bottom: 14px;
}
.luana-school .curriculum-card__list li:last-child{ margin-bottom: 0; }
.luana-school .curriculum-card__list li::before{
  content: "";
  position: absolute;
  left: 0; top: 0.85em;
  width: 10px; height: 1px;
  background: var(--rose);
}
.luana-school .curriculum-card__note{
  margin: 18px 28px 0;
  font-size: 13px;
  color: var(--ink-muted);
  line-height: 1.7;
}

@media (max-width: 880px){
  .luana-school .school-curriculum{ padding: 80px 22px; }
  .luana-school .curriculum-grid{ grid-template-columns: 1fr; gap: 36px; }
  .luana-school .curriculum-card{ padding: 0 0 24px; }
  .luana-school .curriculum-card__img{ margin: 22px 22px 18px; }
  .luana-school .curriculum-card__head{ margin: 0 22px 18px; gap: 14px; grid-template-columns: 52px 1fr; }
  .luana-school .curriculum-card__num{ width: 52px; height: 52px; font-size: 21px; }
  .luana-school .curriculum-card__list,
  .luana-school .curriculum-card__note{ margin-left: 22px; margin-right: 22px; }
  .luana-school .curriculum-card__title{ font-size: 19px; }
  .luana-school .curriculum-card__list li{ font-size: 15px; }
}

/* ============== ④ FORMAT（フラット構造） ============== */
.luana-school .school-format{
  padding: 160px 48px;
  background: var(--surface);
  position: relative;
  overflow: hidden;
  text-align: center;
}
.luana-school .school-format > *{
  position: relative;
  z-index: 2;
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}
.luana-school .school-format > h2{ margin: 24px auto 48px; }

.luana-school .format-detail{
  max-width: 820px; margin: 0 auto;
  display: flex; flex-direction: column;
  background: var(--paper);
  border: 1px solid var(--line);
  padding: 48px 56px;
  box-shadow: 8px 8px 0 0 #E0E0E0;
}
.luana-school .format-row{
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 28px;
  padding: 26px 0;
  border-bottom: 1px solid var(--line);
  align-items: center;
  text-align: left;
}
.luana-school .format-row:first-child{ border-top: none; }
.luana-school .format-row__label{
  font-family: var(--sans-jp);
  font-size: 18px;
  font-weight: 600;
  color: var(--ink);
  letter-spacing: 0.12em;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  line-height: 1.3;
}
.luana-school .format-row__label-en{
  font-family: var(--script);
  font-size: 14px;
  color: var(--rose);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 500;
}
.luana-school .format-row__val{
  font-family: var(--sans-jp);
  font-size: 20px;
  color: var(--ink);
  letter-spacing: 0.06em;
  line-height: 1.7;
  font-weight: 500;
}

@media (max-width: 880px){
  .luana-school .school-format{ padding: 80px 22px; }
  .luana-school .format-detail{
    padding: 34px 28px;
  }
  .luana-school .format-row{
    display: block;
    padding: 24px 0;
    text-align: center;
  }
  .luana-school .format-row__label{
    align-items: center;
    font-size: 17px;
    margin-bottom: 10px;
  }
  .luana-school .format-row__label-en{ font-size: 12px; }
  .luana-school .format-row__val{
    display: block;
    font-size: 20px;
    line-height: 1.65;
    text-align: center;
    word-break: keep-all;
    overflow-wrap: break-word;
  }
}

/* ============== ⑤ BENEFITS（フラット構造） ============== */
.luana-school .school-benefits{
  padding: 160px 48px;
  background: var(--plum-deep);
  position: relative;
  overflow: hidden;
  text-align: center;
}
.luana-school .school-benefits::after{
  content: "";
  position: absolute;
  inset: 0;
  background: url('https://cog-test.xyz/luana/wp-content/uploads/luana/benefits/benefits-bg.jpg') no-repeat center / cover;
  opacity: 0.2;
  z-index: 0;
  pointer-events: none;
}
.luana-school .school-benefits > *{
  position: relative;
  z-index: 2;
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
}
.luana-school .school-benefits h2,
.luana-school .school-benefits .section-title{
  color: var(--paper);
  margin: 24px auto 80px;
}

.luana-school .benefits-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  text-align: center;
}
.luana-school .benefit-card{
  background: var(--paper);
  border: 1px solid var(--line-soft);
  border-radius: 8px;
  padding: 28px 20px 32px;
  text-align: center;
  box-shadow: 6px 6px 0 0 rgba(248, 149, 173, 0.35);
  min-height: 300px;
  aspect-ratio: 1 / 1.1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
}
.luana-school .benefit-card__num{
  font-family: var(--script);
  font-size: 36px;
  color: var(--rose);
  letter-spacing: 0.04em;
  line-height: 1;
  margin: 0 0 8px;
}
.luana-school .benefit-card__title{
  font-family: var(--sans-jp);
  font-weight: 700;
  font-size: 17px;
  line-height: 1.65;
  color: var(--ink);
  letter-spacing: 0.04em;
  margin: 0 0 10px;
}
.luana-school .benefit-card__icon{
  width: 130px; height: 130px;
  object-fit: contain;
  display: block;
  margin-top: auto;
}

@media (max-width: 880px){
  .luana-school .school-benefits{ padding: 80px 22px; }
  .luana-school .benefits-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    width: 100%;
    padding: 0 6px 8px 0;
    box-sizing: border-box;
  }
  .luana-school .benefit-card{
    min-width: 0;
    aspect-ratio: auto;
    min-height: 218px;
    padding: 18px 10px 18px;
    box-shadow: 4px 4px 0 0 rgba(248, 149, 173, 0.35);
  }
  .luana-school .benefit-card__num{
    font-size: 30px;
    margin-bottom: 8px;
  }
  .luana-school .benefit-card__title{
    min-height: 3.4em;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    line-height: 1.55;
    overflow-wrap: anywhere;
  }
  .luana-school .benefit-card__icon{
    width: 78px;
    height: 78px;
    margin-top: auto;
  }
}

/* ============== ⑥ TUITION（フラット構造） ============== */
.luana-school .school-tuition{
  padding: 160px 48px;
  background: var(--surface);
  position: relative;
  overflow: hidden;
  text-align: center;
}
.luana-school .school-tuition > *{
  position: relative;
  z-index: 2;
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}
.luana-school .school-tuition > h2{ margin: 24px auto 48px; }

.luana-school .tuition-card{
  background: #FFFFFF;
  border: 1px solid var(--line);
  padding: 56px 56px;
  text-align: left;
  max-width: 820px;
  margin: 0 auto;
  box-shadow: 8px 8px 0 0 #E0E0E0;
}
.luana-school .tuition-card__row{
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 28px;
  padding: 26px 0;
  border-bottom: 1px solid var(--line-soft);
  align-items: center;
}
.luana-school .tuition-card__row:last-of-type{ border-bottom: none; }
.luana-school .tuition-card__label{
  font-family: var(--sans-jp);
  font-size: 18px;
  font-weight: 600;
  color: var(--ink);
  letter-spacing: 0.12em;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  line-height: 1.3;
}
.luana-school .tuition-card__label-en{
  font-family: var(--script);
  font-size: 14px;
  color: var(--rose);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 500;
}
.luana-school .tuition-card__val{
  font-family: var(--sans-jp);
  font-size: 20px;
  color: var(--ink);
  font-weight: 500;
  line-height: 1.6;
}
.luana-school .tuition-card__note{
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px solid var(--line);
  font-size: 15px;
  color: var(--ink-muted);
  line-height: 1.9;
}

@media (max-width: 880px){
  .luana-school .school-tuition{ padding: 80px 22px; }
  .luana-school .tuition-card{ padding: 32px 22px; box-shadow: 6px 6px 0 0 #E0E0E0; }
  .luana-school .tuition-card__row{
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    padding: 20px 0;
  }
  .luana-school .tuition-card__label{ font-size: 15px; }
  .luana-school .tuition-card__val{ font-size: 16px; }
}

/* ============== ⑦ PROCESS（フラット構造） ============== */
.luana-school .school-process{
  padding: 160px 48px;
  background: var(--paper);
  position: relative;
  overflow: hidden;
  text-align: center;
}
.luana-school .school-process > *{
  position: relative;
  z-index: 2;
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
}
.luana-school .school-process > h2{ margin: 24px auto 80px; }

.luana-school .process-list{
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 40px;
  position: relative;
  text-align: left;
}
.luana-school .process-item{
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 56px 1fr 200px;
  gap: 28px;
  align-items: start;
}
.luana-school .process-item:not(:last-child)::before{
  content: "";
  position: absolute;
  top: 28px;
  bottom: -40px;
  left: 27px;
  width: 0;
  border-left: 2px dashed var(--rose);
  z-index: 0;
}
.luana-school .process-item__content,
.luana-school .process-item__img{
  align-self: center;
}
.luana-school .process-item__num{
  display: inline-flex;
  align-items: center; justify-content: center;
  width: 56px; height: 56px;
  border-radius: 50%;
  background: var(--rose);
  color: #FFFFFF;
  font-family: var(--script);
  font-size: 22px;
  letter-spacing: 0.04em;
  position: relative;
  flex-shrink: 0;
}
.luana-school .process-item__num::before{
  content: "";
  position: absolute;
  top: -6px; left: -6px; right: -6px; bottom: -6px;
  border: 1px solid var(--rose);
  border-radius: 50%;
}
.luana-school .process-item__content{
  text-align: left;
}
.luana-school .process-item__title{
  font-family: var(--sans-jp);
  font-weight: 700;
  font-size: 21px;
  color: var(--ink);
  margin-bottom: 12px;
  letter-spacing: 0.06em;
}
.luana-school .process-item__body{
  font-family: var(--sans-jp);
  font-size: 17px;
  line-height: 2;
  color: var(--ink-soft);
  letter-spacing: 0.04em;
}
.luana-school .process-item__img{
  width: 200px;
  aspect-ratio: 4/3;
  overflow: hidden;
  border-radius: 4px;
  position: relative;
  box-shadow: 12px 12px 0 0 var(--rose);
}
.luana-school .process-item__img img{
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.luana-school .process-item__line-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 14px;
  padding: 10px 22px;
  background: #06C755;
  color: #FFFFFF;
  font-family: var(--sans-jp);
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  border-radius: 4px;
  letter-spacing: 0.04em;
  line-height: 1.4;
}
.luana-school .process-item__line-btn::before{
  content: "";
  display: inline-block;
  width: 18px; height: 18px;
  margin-right: 8px;
  background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="white"><path d="M19.365 9.863c.349 0 .63.285.63.631 0 .345-.281.63-.63.63H17.61v1.125h1.755c.349 0 .63.283.63.63 0 .344-.281.629-.63.629h-2.386c-.345 0-.627-.285-.627-.629V8.108c0-.345.282-.63.63-.63h2.386c.346 0 .627.285.627.63 0 .349-.281.63-.63.63H17.61v1.125h1.755zm-3.855 3.016c0 .27-.174.51-.432.596-.064.021-.133.031-.199.031-.211 0-.391-.09-.51-.25l-2.443-3.317v2.94c0 .344-.279.629-.631.629-.346 0-.626-.285-.626-.629V8.108c0-.27.173-.51.43-.595.06-.023.136-.033.194-.033.195 0 .375.104.495.254l2.462 3.33V8.108c0-.345.282-.63.63-.63.345 0 .63.285.63.63v4.771zm-5.741 0c0 .344-.282.629-.631.629-.345 0-.627-.285-.627-.629V8.108c0-.345.282-.63.63-.63.346 0 .628.285.628.63v4.771zm-2.466.629H4.917c-.345 0-.63-.285-.63-.629V8.108c0-.345.285-.63.63-.63.348 0 .63.285.63.63v4.141h1.756c.348 0 .629.283.629.63 0 .344-.282.629-.629.629M24 10.314C24 4.943 18.615.572 12 .572S0 4.943 0 10.314c0 4.811 4.27 8.842 10.035 9.608.391.082.923.258 1.058.59.12.301.079.766.038 1.08l-.164 1.02c-.045.301-.24 1.186 1.049.645 1.291-.539 6.916-4.078 9.436-6.975C23.176 14.393 24 12.458 24 10.314"/></svg>') no-repeat center / contain;
}

@media (max-width: 880px){
  .luana-school .school-process{ padding: 80px 22px; }
  .luana-school .process-list{ gap: 32px; }
  .luana-school .process-list::before{ left: 24px; }
  .luana-school .process-item{
    grid-template-columns: 48px 1fr;
    grid-template-rows: auto auto;
    gap: 14px 16px;
  }
  .luana-school .process-item__num{ width: 48px; height: 48px; font-size: 19px; }
  .luana-school .process-item__content{ grid-column: 2; }
  .luana-school .process-item__img{
    grid-column: 1 / -1;
    width: 100%;
    aspect-ratio: 16/10;
    margin-top: 4px;
  }
  .luana-school .process-item__title{ font-size: 17px; }
  .luana-school .process-item__body{ font-size: 14.5px; }
}

/* ============== ⑧ INSTRUCTOR（2カラム構造・wp:html維持） ============== */
.luana-school .school-instructor{
  padding: 160px 48px;
  background: var(--surface);
}
.luana-school .school-instructor__inner{
  max-width: 1200px; margin: 0 auto;
}

.luana-school .instructor-card{
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: 80px;
  align-items: start;
  max-width: 1200px;
  margin: 0 auto;
}
.luana-school .instructor-card .section-label{
  margin-bottom: 20px;
  justify-content: flex-start;
}
.luana-school .instructor-card__heading{
  font-family: var(--sans-jp);
  font-weight: 800;
  font-size: clamp(28px, 3.6vw, 44px);
  color: var(--ink);
  letter-spacing: 0.04em;
  line-height: 1.5;
  margin: 0 0 24px;
}
.luana-school .instructor-card__visual{
  position: relative;
}
.luana-school .instructor-card__photo-frame{
  aspect-ratio: 3/4;
  position: relative;
  overflow: hidden;
  border-radius: 4px;
  box-shadow: 18px 18px 0 0 var(--rose);
}
.luana-school .instructor-card__photo-frame::before{
  content: "";
  position: absolute;
  inset: 14px;
  border: 1px solid rgba(255, 255, 255, 0.55);
  z-index: 3;
  pointer-events: none;
}
.luana-school .instructor-card__photo{
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  object-fit: cover;
}
.luana-school .instructor-card__title{
  font-family: var(--sans-jp);
  font-weight: 600;
  font-size: clamp(18px, 2vw, 22px);
  line-height: 1.7;
  color: var(--ink);
  margin-bottom: 22px;
  letter-spacing: 0.04em;
}
.luana-school .instructor-card__body{
  font-family: var(--sans-jp);
  font-size: 18px;
  line-height: 2.1;
  color: var(--ink-soft);
  letter-spacing: 0.04em;
  margin-bottom: 24px;
}
.luana-school .instructor-card__link a{
  font-family: var(--sans-jp);
  font-size: 16px;
  color: var(--rose);
  border-bottom: 1px solid var(--rose);
  padding-bottom: 2px;
}

@media (max-width: 880px){
  .luana-school .school-instructor{ padding: 80px 22px; }
  .luana-school .instructor-card{ grid-template-columns: 1fr; gap: 40px; }
  .luana-school .instructor-card__photo-frame{ box-shadow: 12px 12px 0 0 var(--rose); }
  .luana-school .instructor-card__title{ font-size: 17px; }
  .luana-school .instructor-card__body{ font-size: 15.5px; }
}

/* ============== ⑨ VOICES（フラット構造） ============== */
.luana-school .school-voices{
  padding: 160px 48px;
  background: var(--paper);
  position: relative;
  overflow: hidden;
  text-align: center;
}
.luana-school .school-voices > *{
  position: relative;
  z-index: 2;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}
.luana-school .school-voices > h2{ margin: 24px auto 80px; }

.luana-school .school-voices__list{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 28px;
  max-width: 1100px;
  margin: 0 auto;
  text-align: left;
}
.luana-school .school-voice--wide{
  grid-column: 1 / -1;
}
.luana-school .school-voice{
  margin: 0;
  padding: 0;
  background: transparent;
  border-radius: 0;
  text-align: left;
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: 20px;
  align-items: start;
}
.luana-school .school-voice__head{
  align-self: start;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  text-align: center;
  margin: 0;
}
.luana-school .school-voice__avatar{
  width: 64px; height: 64px;
  display: block;
  margin: 0 0 4px;
}
.luana-school .school-voice__location{
  font-family: var(--sans-jp);
  font-size: 13px;
  color: var(--ink-muted);
  letter-spacing: 0.08em;
  font-weight: 500;
  line-height: 1.4;
  margin: 0;
}
.luana-school .school-voice__name{
  font-family: var(--sans-jp);
  font-size: 15px;
  color: var(--ink);
  letter-spacing: 0.06em;
  font-weight: 700;
  line-height: 1.5;
  margin: 0;
}
.luana-school .school-voice__body{
  align-self: start;
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
}

@media (max-width: 880px){
  .luana-school .school-voices{ padding: 80px 22px; }
  .luana-school .school-voices__list{ grid-template-columns: 1fr; gap: 18px; }
  .luana-school .school-voice--wide{ grid-column: auto; }
  .luana-school .school-voice{ grid-template-columns: 70px 1fr; gap: 14px; }
  .luana-school .school-voice__avatar{ width: 52px; height: 52px; }
}

/* ============== ⑩ FAQ（フラット構造・LP流用 + 中央寄せ補足） ============== */
.luana-school .faq.school-faq{
  position: relative;
  overflow: hidden;
  text-align: center;
}
.luana-school .faq.school-faq > *{
  position: relative;
  z-index: 2;
  max-width: 920px;
  margin-left: auto;
  margin-right: auto;
}
.luana-school .faq.school-faq > h2{ margin: 24px auto 56px; }
.luana-school .faq.school-faq > .faq__list{ text-align: left; }
.luana-school .faq.school-faq .faq__list,
.luana-school .faq.school-faq .faq-item,
.luana-school .faq.school-faq .faq-item summary,
.luana-school .faq.school-faq .faq-item__q,
.luana-school .faq.school-faq .faq-item__title,
.luana-school .faq.school-faq .faq-item__answer{
  text-align: left;
}
.luana-school .faq.school-faq .faq-item summary{
  justify-items: stretch;
}
.luana-school .faq.school-faq .faq-item__title{
  display: block;
}

/* ============== CTA（フラット構造・LP流用） ============== */
.luana-school .cta.school-cta{
  text-align: center;
}
.luana-school .cta.school-cta .cta__title{
  font-size: clamp(26px, 4.4vw, 52px);
}
.luana-school .cta.school-cta .school-cta__title-line{
  display: block;
  white-space: nowrap;
}

/* ============== セクション背景透かし英字 ============== */
.luana-school .school-about::before{
  content: "About";
  position: absolute;
  bottom: 0; left: 24px;
  font-family: "Bodoni Moda", var(--serif);
  font-style: italic; font-weight: 700;
  font-size: clamp(170px, 22vw, 320px);
  color: rgba(26, 26, 26, 0.07);
  line-height: 0.72; letter-spacing: 0;
  z-index: 0; pointer-events: none; user-select: none;
}

.luana-school .school-target::before{
  content: "Recommended";
  position: absolute;
  bottom: 0; right: 24px;
  font-family: "Bodoni Moda", var(--serif);
  font-style: italic; font-weight: 700;
  font-size: clamp(100px, 13.5vw, 210px);
  color: rgba(255, 255, 255, 0.85);
  line-height: 0.72; letter-spacing: 0;
  z-index: 0; pointer-events: none; user-select: none;
  max-width: calc(100% - 48px);
}

.luana-school .school-curriculum::before{
  content: "Curriculum";
  position: absolute;
  bottom: 0; left: 24px;
  font-family: "Bodoni Moda", var(--serif);
  font-style: italic; font-weight: 700;
  font-size: clamp(140px, 18vw, 280px);
  color: rgba(26, 26, 26, 0.07);
  line-height: 0.72; letter-spacing: 0;
  z-index: 0; pointer-events: none; user-select: none;
}

.luana-school .school-format::before{
  content: "Format";
  position: absolute;
  bottom: 0; right: 24px;
  font-family: "Bodoni Moda", var(--serif);
  font-style: italic; font-weight: 700;
  font-size: clamp(110px, 15vw, 220px);
  color: rgba(255, 255, 255, 0.85);
  line-height: 0.72; letter-spacing: 0;
  z-index: 0; pointer-events: none; user-select: none;
  max-width: calc(100% - 48px);
}

.luana-school .school-tuition::before{
  content: "Tuition";
  position: absolute;
  bottom: 0; right: 24px;
  font-family: "Bodoni Moda", var(--serif);
  font-style: italic; font-weight: 700;
  font-size: clamp(120px, 16vw, 240px);
  color: rgba(255, 255, 255, 0.85);
  line-height: 0.72; letter-spacing: 0;
  z-index: 0; pointer-events: none; user-select: none;
  max-width: calc(100% - 48px);
}

.luana-school .school-process::before{
  content: "Process";
  position: absolute;
  bottom: 0; left: 24px;
  font-family: "Bodoni Moda", var(--serif);
  font-style: italic; font-weight: 700;
  font-size: clamp(160px, 21vw, 310px);
  color: rgba(26, 26, 26, 0.07);
  line-height: 0.72; letter-spacing: 0;
  z-index: 0; pointer-events: none; user-select: none;
}

/* SP final override: school screenshot fixes */
@media (max-width: 880px){
  .luana-school{
    overflow-x: hidden !important;
  }

  .luana-school .school-target__head h2,
  .luana-school .school-target > h2{
    display: block !important;
    text-align: center !important;
  }
  .luana-school .cta.school-cta .school-cta__title-line{
    display: block !important;
    white-space: nowrap !important;
  }

  .luana-school .cta.school-cta .cta__title{
    font-size: clamp(22px, 6.2vw, 28px) !important;
    line-height: 1.68 !important;
    letter-spacing: 0.02em !important;
  }

  .luana-school .cta.school-cta .cta__title em{
    font-size: 1.08em !important;
    padding: 0 2px !important;
  }

  .luana-school .format-detail{
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding: 30px 24px !important;
  }
  .luana-school .format-row{
    display: flex !important;
    grid-template-columns: none !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    padding: 24px 0 !important;
    text-align: center !important;
  }
  .luana-school .format-row__label{
    align-items: center !important;
    margin: 0 !important;
    text-align: center !important;
  }
  .luana-school .format-row__val{
    display: block !important;
    width: 100% !important;
    font-size: 20px !important;
    line-height: 1.65 !important;
    text-align: center !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
  }

  .luana-school .school-benefits{
    overflow: hidden !important;
  }
  .luana-school .benefits-grid{
    grid-template-columns: 1fr !important;
    width: 100% !important;
    max-width: 260px !important;
    gap: 20px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }
  .luana-school .benefit-card{
    width: 100% !important;
    min-width: 0 !important;
    min-height: 226px !important;
    aspect-ratio: auto !important;
    padding: 22px 18px 24px !important;
    box-sizing: border-box !important;
  }
  .luana-school .benefit-card__title{
    min-height: auto !important;
    font-size: 16px !important;
    line-height: 1.6 !important;
    margin: 0 0 12px !important;
    overflow-wrap: normal !important;
  }
  .luana-school .benefit-card__icon{
    width: 96px !important;
    height: 96px !important;
    margin: auto auto 0 !important;
  }

  .luana-school .process-list{
    gap: 34px !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .luana-school .process-item{
    grid-template-columns: 52px minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
    gap: 14px 16px !important;
    align-items: start !important;
  }
  .luana-school .process-item:not(:last-child)::before{
    left: 25px !important;
    top: 54px !important;
    bottom: -34px !important;
  }
  .luana-school .process-item__content{
    grid-column: 2 !important;
    align-self: start !important;
  }
  .luana-school .process-item__img{
    grid-column: 2 !important;
    width: 100% !important;
    max-width: 300px !important;
    aspect-ratio: 16 / 10 !important;
    justify-self: start !important;
    margin-top: 6px !important;
    box-shadow: 10px 10px 0 0 var(--rose) !important;
  }
}

.luana-school .school-voices::before{
  content: "Participants Voices";
  position: absolute;
  bottom: 0; right: 24px;
  font-family: "Bodoni Moda", var(--serif);
  font-style: italic; font-weight: 700;
  font-size: clamp(100px, 13vw, 200px);
  color: rgba(26, 26, 26, 0.07);
  line-height: 0.72; letter-spacing: 0;
  z-index: 0; pointer-events: none; user-select: none;
  max-width: calc(100% - 48px);
}

/* Watermark final override: align with TOP LP design */
.luana-school .school-about::before,
.luana-school .school-target::before,
.luana-school .school-curriculum::before,
.luana-school .school-format::before,
.luana-school .school-tuition::before,
.luana-school .school-process::before,
.luana-school .school-voices::before{
  bottom: 0 !important;
  max-width: none !important;
  white-space: nowrap !important;
  line-height: 0.72 !important;
  letter-spacing: 0 !important;
}

.luana-school .school-about::before{
  left: 24px !important;
  right: auto !important;
  font-size: clamp(170px, 22vw, 320px) !important;
}
.luana-school .school-target::before{
  left: auto !important;
  right: 24px !important;
  font-size: clamp(100px, 13.5vw, 210px) !important;
}
.luana-school .school-curriculum::before{
  left: 24px !important;
  right: auto !important;
  font-size: clamp(140px, 18vw, 280px) !important;
}
.luana-school .school-format::before{
  left: auto !important;
  right: 24px !important;
  font-size: clamp(100px, 13.5vw, 210px) !important;
}
.luana-school .school-tuition::before{
  left: auto !important;
  right: 24px !important;
  font-size: clamp(100px, 13.5vw, 210px) !important;
}
.luana-school .school-process::before{
  left: 24px !important;
  right: auto !important;
  font-size: clamp(170px, 22vw, 320px) !important;
}
.luana-school .school-voices::before{
  left: auto !important;
  right: 24px !important;
  font-size: clamp(100px, 13.5vw, 210px) !important;
}

@media (max-width: 880px){
  .luana-school .school-about::before,
  .luana-school .school-process::before{
    left: -24px !important;
    right: auto !important;
    font-size: 190px !important;
  }

  .luana-school .school-target::before,
  .luana-school .school-format::before,
  .luana-school .school-tuition::before,
  .luana-school .school-voices::before{
    left: auto !important;
    right: -28px !important;
    font-size: 160px !important;
  }

  .luana-school .school-curriculum::before{
    left: auto !important;
    right: -40px !important;
    font-size: 140px !important;
  }
}

/* Watermark left-edge alignment */
.luana-school .school-about::before,
.luana-school .school-target::before,
.luana-school .school-curriculum::before,
.luana-school .school-format::before,
.luana-school .school-tuition::before,
.luana-school .school-process::before,
.luana-school .school-voices::before{
  left: 0 !important;
  right: auto !important;
}

@media (max-width: 880px){
  .luana-school .school-about::before,
  .luana-school .school-target::before,
  .luana-school .school-curriculum::before,
  .luana-school .school-format::before,
  .luana-school .school-tuition::before,
  .luana-school .school-process::before,
  .luana-school .school-voices::before{
    left: 0 !important;
    right: auto !important;
  }
}
