/* === STUDIO & LESSON PAGE === */

/* Page Hero */
.page-hero{position:relative;height:50vh;min-height:360px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#1a1a2e}
.page-hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.4}
.page-hero-content{position:relative;z-index:1;text-align:center}
.page-hero-label{font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:#e91e8c;margin-bottom:16px;font-weight:500}
.page-hero-title{font-family:'Cormorant Garamond',serif;font-size:4rem;font-weight:300;color:#fff;letter-spacing:.15em}

/* Studio Intro */
.studio-intro{padding-bottom:40px}

/* Section Common */
.section-label{font-size:.65rem;letter-spacing:.3em;text-transform:uppercase;color:#e91e8c;margin-bottom:16px;font-weight:600}
.section-heading{font-family:'Cormorant Garamond',serif;font-size:2.4rem;font-weight:300;color:#fff;margin-bottom:24px;line-height:1.4}
.section-heading-dark{color:#1a1a2e}
.section-desc{font-size:.9rem;color:rgba(42,42,62,.55);line-height:2;max-width:680px;margin:0 auto}

/* Reveal animation */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:.15s}
.reveal-delay-2{transition-delay:.3s}
.reveal-delay-3{transition-delay:.45s}

/* ===== CLASSES SECTION ===== */
.studio-classes{background:#f7f7fb;padding:100px 40px}

.class-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}

.class-card{background:#fff;border-radius:8px;padding:36px 28px;transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s;position:relative;overflow:hidden}
.class-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#e91e8c,#ff6bb5);transform:scaleX(0);transform-origin:left;transition:transform .4s}
.class-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(0,0,0,.08)}
.class-card:hover::before{transform:scaleX(1)}

.class-card--accent{background:linear-gradient(135deg,#1a1a2e 0%,#2a2a4e 100%)}
.class-card--accent .class-card-title{color:#fff}
.class-card--accent .class-card-desc{color:rgba(255,255,255,.6)}
.class-card--accent .class-card-icon svg{stroke:#e91e8c}
.class-card--accent .schedule-tag{background:rgba(233,30,140,.2);color:#ff6bb5;border-color:transparent}

.class-card-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:rgba(233,30,140,.06);margin-bottom:20px}
.class-card-icon svg{stroke:#e91e8c}
.class-card--accent .class-card-icon{background:rgba(233,30,140,.15)}

.class-card-title{font-size:1.1rem;font-weight:700;color:#1a1a2e;margin-bottom:12px;letter-spacing:.02em}
.class-card-desc{font-size:.8rem;line-height:1.9;color:rgba(42,42,62,.55);margin-bottom:20px}

.class-card-schedule{display:flex;gap:8px;flex-wrap:wrap}
.schedule-tag{display:inline-block;font-size:.65rem;letter-spacing:.1em;padding:5px 14px;border:1px solid rgba(233,30,140,.2);color:#e91e8c;border-radius:20px;font-weight:500}

/* ===== PRICING SECTION ===== */
.studio-pricing{background:#f0eef5;padding:100px 40px}
.studio-pricing .section-heading{color:#1a1a2e}

/* Trial Banner */
.pricing-trial{display:flex;align-items:center;gap:24px;background:#fff;border:1px solid rgba(233,30,140,.2);border-radius:8px;padding:28px 32px;margin-top:48px;margin-bottom:40px;box-shadow:0 4px 20px rgba(0,0,0,.04)}
.pricing-trial-badge{font-size:.6rem;letter-spacing:.25em;text-transform:uppercase;background:#e91e8c;color:#fff;padding:6px 16px;border-radius:3px;font-weight:600;white-space:nowrap}
.pricing-trial-content{flex:1}
.pricing-trial-title{font-size:1.05rem;font-weight:700;color:#1a1a2e;margin-bottom:4px}
.pricing-trial-desc{font-size:.78rem;color:rgba(42,42,62,.5)}
.pricing-trial-price{font-family:'Cormorant Garamond',serif;font-size:2.8rem;font-weight:300;color:#e91e8c;white-space:nowrap}

/* Pricing Table Blocks */
.pricing-table-block{margin-bottom:32px;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.pricing-table-heading{font-size:.85rem;font-weight:700;color:#1a1a2e;padding:14px 24px;background:rgba(218,165,32,.15);border-bottom:2px solid rgba(218,165,32,.35);letter-spacing:.08em}
.pricing-table-heading--pink{background:rgba(173,216,230,.2);border-bottom-color:rgba(100,180,210,.4)}
.pricing-table-heading--navy{background:rgba(188,170,164,.15);border-bottom-color:rgba(188,170,164,.35)}

.pricing-table{width:100%;border-collapse:collapse}
.pricing-table td{padding:14px 24px;border-bottom:1px solid rgba(0,0,0,.05);font-size:.85rem;color:rgba(42,42,62,.6)}
.pricing-table td:first-child{font-weight:500;color:#1a1a2e;width:50%}
.pricing-table td:nth-child(2){text-align:center;color:rgba(42,42,62,.4);width:20%}
.pricing-table-price{text-align:right!important;font-family:'Cormorant Garamond',serif;font-size:1.3rem;font-weight:400;color:#1a1a2e!important;white-space:nowrap}
.pricing-table tr:last-child td{border-bottom:none}
.pricing-table tr:hover td{background:rgba(233,30,140,.02)}
.pricing-table-sub td:first-child{padding-left:48px;color:rgba(42,42,62,.45)!important;font-weight:400!important}

.pricing-cta{text-align:center;margin-top:48px}

.pricing-btn{display:inline-block;padding:16px 48px;border:1px solid rgba(42,42,62,.15);color:rgba(42,42,62,.6);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;text-align:center;border-radius:4px;transition:all .3s;font-weight:500}
.pricing-btn:hover{border-color:#e91e8c;color:#e91e8c;opacity:1}
.pricing-btn--primary{background:#e91e8c;border-color:#e91e8c;color:#fff}
.pricing-btn--primary:hover{background:#d4187d;opacity:1}

/* ===== RENTAL SECTION ===== */
.studio-rental{background:#f7f7fb;padding:100px 40px}

.rental-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}

.rental-block{background:#fff;border-radius:8px;padding:32px 24px;position:relative}

.rental-block-header{display:flex;align-items:center;gap:16px;margin-bottom:12px}
.rental-block-num{font-family:'Cormorant Garamond',serif;font-size:1.6rem;font-weight:300;color:#e91e8c}
.rental-block-title{font-size:1.05rem;font-weight:700;color:#1a1a2e}

.rental-block-sub{font-size:.78rem;color:rgba(42,42,62,.5);margin-bottom:20px}

.rental-block-price{margin-bottom:20px;padding:16px 0;border-top:1px solid rgba(0,0,0,.06);border-bottom:1px solid rgba(0,0,0,.06)}
.rental-block-amount{font-family:'Cormorant Garamond',serif;font-size:1.8rem;font-weight:400;color:#1a1a2e}
.rental-block-amount small{font-size:.75rem;font-weight:400;color:rgba(42,42,62,.45);font-family:'Noto Sans JP',sans-serif}

.rental-block-features{list-style:none}
.rental-block-features li{font-size:.78rem;color:rgba(42,42,62,.55);padding:6px 0;padding-left:16px;position:relative;line-height:1.7}
.rental-block-features li::before{content:'';position:absolute;left:0;top:12px;width:6px;height:6px;border-radius:50%;background:rgba(233,30,140,.35)}

/* Example block */
.rental-block--example{background:linear-gradient(135deg,#1a1a2e,#2a2a4e);color:#fff}
.rental-block--example .rental-block-num{color:#e91e8c}
.rental-block--example .rental-block-title{color:#fff}
.rental-block--example .rental-block-sub{color:rgba(255,255,255,.5)}

.rental-timeline{display:flex;flex-direction:column;gap:0;margin-bottom:20px}
.timeline-item{display:flex;align-items:center;gap:16px;padding:10px 16px;border-left:2px solid rgba(255,255,255,.1);position:relative}
.timeline-item--main{border-left-color:#e91e8c;background:rgba(233,30,140,.08);border-radius:0 4px 4px 0}
.timeline-time{font-family:'Cormorant Garamond',serif;font-size:1rem;color:#e91e8c;min-width:50px;font-weight:400}
.timeline-label{font-size:.78rem;color:rgba(255,255,255,.7)}

.rental-block-tip{font-size:.7rem;color:rgba(255,255,255,.4);line-height:1.8;padding-top:12px;border-top:1px solid rgba(255,255,255,.08)}

/* ===== INSTRUCTOR SECTION ===== */
.studio-instructor{background:#fff;padding:100px 40px}
.studio-instructor .section-heading{color:#1a1a2e}

.instructor-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}

.instructor-card{background:#f7f7fb;border-radius:8px;padding:24px;transition:transform .4s,box-shadow .4s}
.instructor-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(0,0,0,.06)}

.instructor-photo{position:relative;margin-bottom:20px}
.instructor-photo-inner{width:100%;height:280px;background-size:cover;background-position:center top;border-radius:4px;background-color:#ddd}

.instructor-name{margin-bottom:12px}
.instructor-name-ja{display:block;font-size:1.2rem;font-weight:700;color:#1a1a2e;margin-bottom:2px}
.instructor-name-en{font-family:'Cormorant Garamond',serif;font-size:.75rem;color:rgba(42,42,62,.35);letter-spacing:.15em}

.instructor-classes{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}
.instructor-class-tag{font-size:.65rem;letter-spacing:.08em;padding:5px 14px;background:rgba(233,30,140,.08);color:#e91e8c;border-radius:20px;font-weight:500}

.instructor-bio{font-size:.82rem;line-height:2;color:rgba(42,42,62,.6)}

/* ===== CTA SECTION ===== */
.studio-cta{background:linear-gradient(135deg,#1a1a2e 0%,#2a2a4e 100%);padding:100px 40px}

.cta-heading{font-family:'Cormorant Garamond',serif;font-size:2.4rem;font-weight:300;color:#fff;margin-bottom:16px}
.cta-text{font-size:.85rem;color:rgba(255,255,255,.5);line-height:2;margin-bottom:36px}
.cta-btn{display:inline-flex;align-items:center;gap:12px;padding:16px 48px;border:1px solid rgba(255,255,255,.2);color:#fff;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;transition:all .4s;font-weight:500}
.cta-btn:hover{background:#e91e8c;border-color:#e91e8c;opacity:1}

/* ===== FOOTER ===== */
.footer{background:#0f0f1e;padding:60px 40px 30px;text-align:center}
.footer-inner{max-width:1200px;margin:0 auto}
.footer-logo{font-family:'Cormorant Garamond',serif;font-size:1.4rem;font-weight:700;letter-spacing:.15em;color:#fff}
.footer-logo span{color:#e91e8c}
.footer-tagline{font-size:.65rem;letter-spacing:.2em;color:rgba(255,255,255,.25);margin-top:8px;text-transform:uppercase}
.footer-nav{display:flex;gap:24px;justify-content:center;margin:28px 0;flex-wrap:wrap}
.footer-nav a{font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.35);transition:color .3s}
.footer-nav a:hover{color:#e91e8c;opacity:1}
.footer-copy{font-size:.6rem;color:rgba(255,255,255,.15);letter-spacing:.1em;margin-top:24px}

/* ===== RESPONSIVE ===== */
@media(max-width:1024px){
  .class-grid{grid-template-columns:repeat(2,1fr)}
  .pricing-grid{grid-template-columns:repeat(2,1fr)}
  .rental-grid{grid-template-columns:repeat(2,1fr)}
  .instructor-grid{grid-template-columns:repeat(2,1fr)}
  .page-hero-title{font-size:3rem}
  .pricing-trial{flex-wrap:wrap}
  .pricing-trial-price{font-size:2.2rem}
}

/* ===== ACCESS / MAP SECTION ===== */
.studio-access{background:#fff;padding:100px 40px}
.access-info{margin-bottom:40px}
.access-detail{max-width:600px}
.access-name{font-family:'Cormorant Garamond',serif;font-size:1.6rem;font-weight:400;color:#1a1a2e;margin-bottom:12px}
.access-address{font-size:.9rem;color:rgba(42,42,62,.6);line-height:1.8;margin-bottom:24px}
.access-routes{display:flex;gap:32px;flex-wrap:wrap}
.access-route{display:flex;align-items:center;gap:12px}
.access-route-icon{color:#e91e8c;flex-shrink:0}
.access-route-line{display:block;font-size:.85rem;font-weight:500;color:#1a1a2e}
.access-route-time{display:block;font-size:.75rem;color:rgba(42,42,62,.5)}
.studio-access .map-wrap{margin-top:40px;position:relative;height:400px;overflow:hidden;border-radius:4px}
.studio-access .map-wrap iframe{width:100%;height:100%;border:0;filter:saturate(.8)}
.studio-access .map-info{position:absolute;bottom:0;left:0;background:rgba(255,255,255,.95);padding:24px 32px;max-width:400px;box-shadow:0 4px 20px rgba(0,0,0,.08)}
.studio-access .map-info h3{font-size:1rem;font-weight:700;margin-bottom:8px;color:#1a1a2e}
.studio-access .map-info p{font-size:.8rem;color:rgba(42,42,62,.6);line-height:1.8}

@media(max-width:768px){
  .page-hero{height:40vh;min-height:280px}
  .page-hero-title{font-size:2.2rem}
  .studio-classes,.studio-pricing,.studio-rental,.studio-instructor,.studio-cta,.studio-access{padding:60px 20px}
  .class-grid{grid-template-columns:1fr}
  .rental-grid{grid-template-columns:1fr}
  .instructor-grid{grid-template-columns:1fr;max-width:400px;margin-left:auto;margin-right:auto}
  .instructor-card{text-align:center}
  .instructor-photo-inner{height:280px}
  .instructor-classes{justify-content:center}
  .pricing-trial{flex-direction:column;text-align:center}
  .pricing-table td{padding:10px 12px;font-size:.78rem}
  .pricing-table-price{font-size:1.1rem}
  .section-heading{font-size:1.8rem}
  .cta-heading{font-size:1.8rem}
  .access-routes{flex-direction:column;gap:16px}
  .studio-access .map-wrap{height:300px}
}
