/* === RESET & BASE === */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --cream:#FFFDF7;--terracotta:#E8662A;--clay:#D14E1F;--sand:#F0E6D2;
  --forest:#3A9147;--sage:#6BBF59;--charcoal:#2D2926;--gray:#5C5652;
  --light:#FFF8ED;--peach:#FFF0D6;--mustard:#F7C948;--sky:#45B7D1;
  --warm-white:#FFFFFF;--line-green:#06C755;
  --red:#E54040;--blue:#45B7D1;--yellow:#F7C948;--green:#4ECDC4;--orange:#FF6B35;--purple:#9B59B6;--pink:#FF8C9E;
  --bg-sunny:#FFF9E6;--bg-mint:#EEFAF8;--bg-lavender:#F5F0FA;--bg-peach:#FFF3EB;--bg-sky:#EDF6FB;
}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:'Zen Maru Gothic',sans-serif;color:var(--charcoal);background:var(--cream);line-height:1.9;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:'';position:fixed;inset:0;background:radial-gradient(circle at 10% 20%,rgba(255,107,53,0.04) 0%,transparent 50%),radial-gradient(circle at 90% 80%,rgba(78,205,196,0.04) 0%,transparent 50%),radial-gradient(circle at 50% 50%,rgba(155,89,182,0.03) 0%,transparent 50%);pointer-events:none;z-index:-1}
img{max-width:100%;display:block}
a{transition:color 0.2s,opacity 0.2s}

/* === NAV === */
nav{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(255,253,247,0.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(232,220,200,0.3);transition:box-shadow 0.3s}
nav.scrolled{box-shadow:0 2px 20px rgba(58,53,48,0.06)}
.nav-inner{max-width:960px;margin:0 auto;padding:0.6rem 1.5rem;display:flex;align-items:center;justify-content:space-between}
.nav-logo{text-decoration:none}
.nav-logo-text{font-family:'Noto Serif JP',serif;font-weight:500;font-size:0.82rem;color:var(--clay);line-height:1.4}
.nav-logo-sub{display:block;font-family:'Zen Maru Gothic',sans-serif;font-weight:400;font-size:0.6rem;color:var(--gray);letter-spacing:0.05em}
.nav-links{display:flex;gap:0.2rem;list-style:none}
.nav-links a{display:block;text-decoration:none;color:var(--gray);font-size:0.75rem;font-weight:400;padding:0.5rem 0.7rem;border-radius:6px;transition:all 0.2s}
.nav-links a:hover,.nav-links a.active{color:var(--orange);background:rgba(255,107,53,0.08)}
.nav-right{display:flex;align-items:center;gap:0.8rem}
.nav-tel{text-decoration:none;color:var(--gray);font-size:0.75rem;font-weight:500}
.nav-tel:hover{color:var(--clay)}
.nav-line{display:inline-flex;align-items:center;gap:0.3rem;padding:0.35rem 0.8rem;background:var(--line-green);color:#fff;text-decoration:none;border-radius:5px;font-size:0.68rem;font-weight:700}
.nav-line:hover{opacity:0.85}
.nav-line svg{width:14px;height:14px;fill:#fff}
.hamburger{display:none;background:none;border:none;cursor:pointer;padding:0.5rem}
.hamburger span{display:block;width:20px;height:1.5px;background:var(--charcoal);margin:5px 0;border-radius:2px}
.mobile-menu{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(255,253,247,0.98);z-index:99;flex-direction:column;align-items:center;justify-content:center;gap:1.8rem}
.mobile-menu.open{display:flex}
.mobile-menu a{font-size:1rem;color:var(--charcoal);text-decoration:none;font-weight:400}
.mobile-close{position:absolute;top:1rem;right:1.5rem;background:none;border:none;font-size:1.3rem;color:var(--charcoal);cursor:pointer}

/* === PAGE HEADER === */
.page-header{padding:6.5rem 1.5rem 2.5rem;text-align:center;background:var(--light);border-top:4px solid;border-image:linear-gradient(90deg,var(--orange),var(--yellow),var(--green),var(--blue),var(--purple)) 1;position:relative;overflow:hidden}
.page-header::before{content:'';position:absolute;top:-40px;right:-30px;width:120px;height:120px;border-radius:50%;background:rgba(247,201,72,0.1)}
.page-header::after{content:'';position:absolute;bottom:-20px;left:-20px;width:80px;height:80px;border-radius:50%;background:rgba(78,205,196,0.08)}
.page-header h1{font-family:'Noto Serif JP',serif;font-weight:600;font-size:clamp(1.3rem,3vw,1.7rem);color:var(--clay)}
.page-header .breadcrumb{font-size:0.7rem;color:var(--gray);margin-top:0.5rem}
.page-header .breadcrumb a{color:var(--gray);text-decoration:none}
.page-header .breadcrumb a:hover{color:var(--orange)}

/* === SECTION === */
section{padding:4.5rem 1.5rem;position:relative;overflow:hidden}
.section-inner{max-width:800px;margin:0 auto}
.section-wide{max-width:960px;margin:0 auto}
.section-title{font-family:'Noto Serif JP',serif;font-weight:600;font-size:clamp(1.25rem,2.8vw,1.6rem);color:var(--charcoal);margin-bottom:1.2rem;line-height:1.6;display:inline-block;position:relative}
.section-title::after{content:'';position:absolute;bottom:-2px;left:0;width:100%;height:6px;background:linear-gradient(90deg,var(--yellow),rgba(247,201,72,0));border-radius:3px;opacity:0.5}
.section-title-center{text-align:center;display:block}
.section-title-center::after{left:50%;transform:translateX(-50%);width:60%}
.section-text{font-size:0.88rem;color:var(--gray);line-height:2.2;margin-bottom:1.5rem}
.section-label{display:inline-block;font-size:0.65rem;color:#fff;letter-spacing:0.1em;font-weight:700;padding:0.25rem 0.8rem;border-radius:50px;margin-bottom:0.8rem;background:var(--orange)}
.section-label.green{background:var(--green)}
.section-label.blue{background:var(--blue)}
.section-label.purple{background:var(--purple)}
.section-label.yellow{background:var(--yellow);color:var(--charcoal)}
.section-label.pink{background:var(--pink)}
.bg-white{background:var(--warm-white)}
.bg-light{background:var(--light)}
.bg-cream{background:var(--cream)}
.bg-peach{background:var(--bg-peach)}
.bg-sunny{background:var(--bg-sunny)}
.bg-mint{background:var(--bg-mint)}
.bg-lavender{background:var(--bg-lavender)}
.bg-sky{background:var(--bg-sky)}

/* === PHOTO GRID === */
.photo-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0.75rem}
.photo-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:0.5rem}
.photo-grid-3 img,.photo-grid-4 img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;transition:transform 0.4s,box-shadow 0.4s}
.photo-grid-3 img:hover,.photo-grid-4 img:hover{transform:scale(1.03);box-shadow:0 12px 30px rgba(0,0,0,0.12)}
.photo-caption{font-size:0.72rem;color:var(--gray);margin-top:0.4rem;text-align:center}
.gallery-stagger{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:100px;gap:0.5rem}
.gallery-stagger img{width:100%;height:100%;object-fit:cover;border-radius:12px;transition:transform 0.4s,box-shadow 0.4s}
.gallery-stagger img:hover{transform:scale(1.03);box-shadow:0 12px 30px rgba(0,0,0,0.12)}
.gs-1{grid-column:span 5;grid-row:span 2}.gs-2{grid-column:span 4;grid-row:span 2}.gs-3{grid-column:span 3;grid-row:span 2}
.gs-4{grid-column:span 3;grid-row:span 2}.gs-5{grid-column:span 4;grid-row:span 2}.gs-6{grid-column:span 5;grid-row:span 2}
.gs-7{grid-column:span 7;grid-row:span 2}.gs-8{grid-column:span 5;grid-row:span 2}

/* === CARDS === */
.card{background:#fff;border-radius:14px;padding:1.8rem;border:2px solid rgba(232,220,200,0.5);transition:transform 0.3s,box-shadow 0.3s,border-color 0.3s}
.card:hover{transform:translateY(-4px);box-shadow:0 12px 30px rgba(255,107,53,0.12);border-color:var(--orange)}
.card h3{font-family:'Noto Serif JP',serif;font-size:1rem;color:var(--charcoal);font-weight:500;margin-bottom:0.3rem}

/* === FEATURES === */
.features{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:2rem}
.feature{position:relative;padding-left:3.5rem}
.feature-num{position:absolute;left:0;top:0;width:2.8rem;height:2.8rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Noto Serif JP',serif;font-weight:700;font-size:1.1rem;color:#fff;box-shadow:0 4px 12px rgba(0,0,0,0.1)}
.feature-num.n1{background:var(--orange)}.feature-num.n2{background:var(--green)}.feature-num.n3{background:var(--yellow);color:var(--charcoal)}.feature-num.n4{background:var(--blue)}.feature-num.n5{background:var(--purple)}
.feature h3{font-size:0.92rem;color:var(--charcoal);font-weight:600;margin-bottom:0.3rem}
.feature p{font-size:0.8rem;color:var(--gray);line-height:1.9}

/* === TIMELINE === */
.timeline{max-width:640px;margin:2rem auto 0;position:relative;padding-left:3rem}
.timeline::before{content:'';position:absolute;left:11px;top:8px;bottom:8px;width:3px;background:linear-gradient(to bottom,var(--orange),var(--green),var(--blue),var(--purple),var(--yellow));border-radius:2px}
.tl-step{margin-bottom:2.2rem;position:relative;display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:start}
.tl-step::before{content:'';position:absolute;left:-3rem;top:6px;width:14px;height:14px;border-radius:50%;background:var(--orange);z-index:1;box-shadow:0 0 0 3px var(--cream)}
.tl-step:nth-child(2)::before{background:var(--green)}.tl-step:nth-child(3)::before{background:var(--blue)}.tl-step:nth-child(4)::before{background:var(--purple)}.tl-step:nth-child(5)::before{background:var(--yellow)}
.tl-step.has-img{grid-template-columns:1fr 1fr}.tl-step:not(.has-img){grid-template-columns:1fr}
.tl-num{font-size:0.68rem;color:var(--orange);font-weight:700}
.tl-step h4{font-size:0.9rem;color:var(--charcoal);font-weight:500;margin:0.1rem 0 0.3rem}
.tl-step p{font-size:0.8rem;color:var(--gray);line-height:1.9}
.tl-img{border-radius:12px;overflow:hidden}.tl-img img{width:100%;height:100%;object-fit:cover}

/* === VOICE CARDS === */
.voice-card{margin-bottom:2rem;padding:1.5rem 1.5rem 1.5rem 1.8rem;border-left:4px solid var(--orange);background:#fff;border-radius:0 14px 14px 0;box-shadow:0 2px 12px rgba(0,0,0,0.04)}
.voice-card:nth-child(2){border-left-color:var(--green)}.voice-card:nth-child(3){border-left-color:var(--blue)}.voice-card:nth-child(4){border-left-color:var(--purple)}
.voice-text{font-family:'Noto Serif JP',serif;font-size:0.92rem;color:var(--charcoal);line-height:2.3;font-weight:300;margin-bottom:0.8rem}
.voice-meta{font-size:0.75rem;color:var(--gray)}

/* === QUOTE BANNER === */
.quote-banner{position:relative;min-height:300px;display:flex;align-items:center;justify-content:center;text-align:center;padding:3rem 1.5rem;overflow:hidden}
.quote-banner-bg{position:absolute;inset:0}.quote-banner-bg img{width:100%;height:100%;object-fit:cover}
.quote-banner-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,107,53,0.85),rgba(69,183,209,0.8),rgba(155,89,182,0.75))}
.quote-banner-inner{position:relative;z-index:1;max-width:600px}
.quote-banner-text{font-family:'Noto Serif JP',serif;font-size:clamp(1.05rem,2.5vw,1.35rem);color:#fff;line-height:2.2;font-weight:300;margin-bottom:0.8rem}
.quote-banner-source{font-size:0.75rem;color:rgba(255,255,255,0.5)}

/* === SCHEDULE === */
.schedule-table-wrap{overflow-x:auto}
.schedule-table{width:100%;min-width:480px;border-collapse:separate;border-spacing:0;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 4px 20px rgba(0,0,0,0.04)}
.schedule-table thead{background:linear-gradient(90deg,var(--orange),var(--clay))}
.schedule-table th{color:#fff;font-size:0.75rem;font-weight:500;padding:0.8rem;text-align:center}
.schedule-table td{padding:0.75rem 0.8rem;text-align:center;font-size:0.78rem;border-bottom:1px solid var(--light);line-height:1.5}
.schedule-table tbody tr:last-child td{border-bottom:none}
.schedule-table .day{font-weight:600;color:var(--clay)}
.cn{display:block;font-weight:500;color:var(--charcoal);font-size:0.74rem}.ct{display:block;color:var(--gray);font-size:0.68rem}

/* === FEES === */
.fees-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.fee-card{background:#fff;border-radius:14px;padding:1.8rem;border:1px solid rgba(232,220,200,0.4);border-top:5px solid var(--orange);box-shadow:0 4px 20px rgba(0,0,0,0.04);transition:transform 0.3s}
.fee-card:nth-child(2){border-top-color:var(--green)}
.fee-card:hover{transform:translateY(-3px)}
.fee-card h3{font-family:'Noto Serif JP',serif;font-size:0.95rem;color:var(--charcoal);margin-bottom:0.8rem;padding-bottom:0.6rem;border-bottom:1px solid var(--light);font-weight:500}
.fee-row{display:flex;justify-content:space-between;padding:0.4rem 0;font-size:0.82rem}
.fee-label{color:var(--gray)}.fee-amount{font-weight:700;color:var(--clay);font-size:0.88rem}
.fee-note{margin-top:0.8rem;font-size:0.72rem;color:var(--gray);line-height:1.8}

/* === BUTTONS === */
.btn-line{display:inline-flex;align-items:center;gap:0.5rem;padding:0.85rem 2rem;background:var(--line-green);color:#fff;text-decoration:none;border-radius:50px;font-size:0.88rem;font-weight:700;transition:all 0.3s;box-shadow:0 4px 15px rgba(6,199,85,0.3)}
.btn-line:hover{background:#05b34c;transform:translateY(-2px);box-shadow:0 6px 20px rgba(6,199,85,0.4)}
.btn-line svg{width:20px;height:20px;fill:#fff}
.btn-outline{display:inline-flex;align-items:center;gap:0.4rem;padding:0.8rem 1.5rem;border:2px solid var(--orange);color:var(--orange);text-decoration:none;border-radius:50px;font-size:0.85rem;font-weight:600;transition:all 0.3s}
.btn-outline:hover{background:var(--orange);color:#fff}

/* === CTA === */
.cta-banner{text-align:center;padding:4rem 1.5rem;position:relative;overflow:hidden;background:linear-gradient(135deg,var(--bg-sunny),var(--bg-peach))}
.cta-banner::before{content:'';position:absolute;top:-50px;right:-50px;width:200px;height:200px;border-radius:50%;background:rgba(255,107,53,0.08)}
.cta-banner::after{content:'';position:absolute;bottom:-30px;left:-30px;width:140px;height:140px;border-radius:50%;background:rgba(78,205,196,0.08)}
.cta-banner h2{font-family:'Noto Serif JP',serif;font-weight:600;font-size:clamp(1.2rem,3vw,1.5rem);color:var(--charcoal);margin-bottom:0.6rem;position:relative;z-index:1}
.cta-banner p{font-size:0.88rem;color:var(--gray);margin-bottom:1.5rem;line-height:2;position:relative;z-index:1}
.cta-banner .actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;position:relative;z-index:1}

/* === TRUST MARKERS === */
.trust-markers{display:flex;gap:0.8rem;justify-content:center;flex-wrap:wrap;margin-top:2rem}
.trust-pill{display:inline-flex;align-items:center;gap:0.35rem;padding:0.4rem 1rem;border-radius:50px;font-size:0.72rem;font-weight:600;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,0.06);color:var(--charcoal)}
.trust-pill .dot{width:8px;height:8px;border-radius:50%;display:inline-block}

/* === FORM === */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem}
.contact-section{background:var(--charcoal);color:#fff;padding:4.5rem 1.5rem}
.contact-section .section-title{color:#fff}.contact-section .section-title::after{background:linear-gradient(90deg,var(--orange),transparent);opacity:0.3}
.contact-info p{font-size:0.82rem;color:rgba(255,255,255,0.5);line-height:2}
.contact-phone{display:flex;align-items:center;gap:0.4rem;font-size:1.2rem;font-weight:600;color:#fff;text-decoration:none;margin:0.8rem 0}
.contact-phone:hover{color:var(--yellow)}
.contact-line-btn{display:inline-flex;align-items:center;gap:0.4rem;padding:0.6rem 1.5rem;background:var(--line-green);color:#fff;text-decoration:none;border-radius:50px;font-size:0.82rem;font-weight:600;margin:0.5rem 0}
.contact-line-btn:hover{opacity:0.85}.contact-line-btn svg{width:18px;height:18px;fill:#fff}
.contact-addr{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,0.08)}
.contact-addr p{font-size:0.78rem;color:rgba(255,255,255,0.4);line-height:1.9}
.contact-form{background:rgba(255,255,255,0.05);border-radius:14px;padding:1.8rem;border:1px solid rgba(255,255,255,0.06)}
.f-group{margin-bottom:1rem}.f-group label{display:block;font-size:0.72rem;color:rgba(255,255,255,0.5);margin-bottom:0.3rem}
.f-group .req{color:var(--orange);font-size:0.65rem;margin-left:0.2rem}
.f-group input,.f-group textarea,.f-group select{width:100%;padding:0.65rem 0.9rem;background:rgba(255,255,255,0.06);border:1.5px solid rgba(255,255,255,0.1);border-radius:10px;color:#fff;font-family:inherit;font-size:0.84rem;outline:none;transition:border-color 0.2s,box-shadow 0.2s}
.f-group input::placeholder,.f-group textarea::placeholder{color:rgba(255,255,255,0.2)}
.f-group input:focus,.f-group textarea:focus,.f-group select:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(255,107,53,0.15)}
.f-group textarea{min-height:80px;resize:vertical}.f-group select{appearance:none;cursor:pointer}.f-group select option{background:var(--charcoal)}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:0.8rem}
.f-submit{width:100%;padding:0.85rem;background:var(--orange);color:#fff;border:none;border-radius:50px;font-family:inherit;font-size:0.88rem;font-weight:700;cursor:pointer;transition:all 0.3s;box-shadow:0 4px 15px rgba(255,107,53,0.3)}
.f-submit:hover{background:var(--clay);transform:translateY(-1px)}
.f-note{font-size:0.65rem;color:rgba(255,255,255,0.25);margin-top:0.6rem;text-align:center}

/* === MAP === */
.map-section{padding:0}.map-embed{width:100%;height:350px;border:none;filter:saturate(0.85)}

/* === INSTAGRAM === */
.instagram-section{text-align:center;padding:3.5rem 1.5rem;background:var(--bg-lavender)}

/* === FOOTER === */
footer{background:#2E2A26;padding:2.5rem 1.5rem}
.footer-inner{max-width:960px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr 1fr;gap:2rem}
.footer-col h4{font-size:0.75rem;color:rgba(255,255,255,0.6);margin-bottom:0.8rem;font-weight:500}
.footer-col p,.footer-col a{font-size:0.72rem;color:rgba(255,255,255,0.35);line-height:1.9;text-decoration:none;display:block}
.footer-col a:hover{color:rgba(255,255,255,0.6)}
.footer-bottom{max-width:960px;margin:1.5rem auto 0;padding-top:1rem;border-top:1px solid rgba(255,255,255,0.06);text-align:center}
.footer-copy{font-size:0.6rem;color:rgba(255,255,255,0.15)}

/* === FLOATING === */
.floating-trial{position:fixed;bottom:1.5rem;right:1.5rem;z-index:90;display:flex;flex-direction:column;gap:0.4rem;align-items:flex-end}
.floating-trial a{display:flex;align-items:center;gap:0.4rem;padding:0.65rem 1.2rem;border-radius:50px;font-size:0.75rem;font-weight:700;text-decoration:none;box-shadow:0 4px 20px rgba(0,0,0,0.15);transition:transform 0.2s,box-shadow 0.2s}
.floating-trial a:hover{transform:translateY(-2px);box-shadow:0 8px 25px rgba(0,0,0,0.2)}
.float-line{background:var(--line-green);color:#fff}.float-line svg{width:16px;height:16px;fill:#fff}
.float-trial{background:var(--orange);color:#fff;box-shadow:0 4px 20px rgba(255,107,53,0.4)}

/* === REVEAL === */
.reveal{opacity:0;transform:translateY(20px);transition:opacity 0.6s ease,transform 0.6s cubic-bezier(0.34,1.56,0.64,1)}
.reveal.visible{opacity:1;transform:translateY(0)}

/* === TABLET (max 1024px) === */
@media(max-width:1024px){
  .class-cards{grid-template-columns:1fr 1fr;gap:1rem}
  .features{grid-template-columns:1fr 1fr;gap:1.5rem}
  .fees-grid{grid-template-columns:1fr 1fr;gap:1rem}
  .gallery-stagger{grid-template-columns:1fr 1fr 1fr;grid-auto-rows:160px}
  .gs-1,.gs-2,.gs-3,.gs-4,.gs-5,.gs-6{grid-column:span 1;grid-row:span 1}
}

/* === MOBILE (max 768px) === */
@media(max-width:768px){
  /* Nav */
  .nav-links,.nav-right{display:none}
  .hamburger{display:block}
  .nav-inner{padding:0.5rem 1rem}
  .nav-logo-text{font-size:0.78rem}

  /* Mobile menu: bigger touch targets */
  .mobile-menu a{font-size:1.1rem;padding:0.6rem 0;min-height:44px;display:flex;align-items:center}

  /* Sections: tighter padding */
  section{padding:2.5rem 1rem}
  .section-inner{max-width:100%}
  .section-wide{max-width:100%}

  /* Typography: scale down headings */
  .section-title{font-size:clamp(1.1rem,5vw,1.35rem)}
  .section-title::after{height:4px}
  .section-text{font-size:0.84rem;line-height:2}
  .section-label{font-size:0.6rem;padding:0.2rem 0.65rem}

  /* Page header */
  .page-header{padding:5.5rem 1rem 2rem}
  .page-header h1{font-size:clamp(1.15rem,5vw,1.4rem)}

  /* Photo grids: 2 columns */
  .photo-grid-3{grid-template-columns:1fr 1fr;gap:0.5rem}
  .photo-grid-4{grid-template-columns:1fr 1fr;gap:0.5rem}
  .photo-grid-3 img,.photo-grid-4 img{border-radius:8px}

  /* Staggered gallery: 2 columns equal */
  .gallery-stagger{grid-template-columns:1fr 1fr;grid-auto-rows:120px;gap:0.4rem}
  .gs-1,.gs-2,.gs-3,.gs-4,.gs-5,.gs-6,.gs-7,.gs-8{grid-column:span 1;grid-row:span 1}

  /* Cards: stack single column */
  .class-cards{grid-template-columns:1fr 1fr;gap:0.75rem}
  .class-card-body{padding:0.9rem}
  .class-card h3{font-size:0.82rem}
  .class-card .age{font-size:0.65rem}
  .class-card p{font-size:0.7rem}

  /* Features: single column */
  .features{grid-template-columns:1fr;gap:1.5rem}
  .feature{padding-left:3.2rem}
  .feature-num{width:2.4rem;height:2.4rem;font-size:0.95rem}

  /* Fees: single column */
  .fees-grid{grid-template-columns:1fr;gap:1rem}
  .fee-card{padding:1.4rem}

  /* Schedule table */
  .schedule-table{min-width:360px}
  .schedule-table th,.schedule-table td{padding:0.6rem 0.4rem;font-size:0.72rem}
  .cn{font-size:0.68rem}.ct{font-size:0.6rem}

  /* Timeline */
  .tl-step{grid-template-columns:1fr!important}
  .tl-img{display:none}
  .timeline{padding-left:2.5rem}
  .tl-step::before{left:-2.5rem;width:12px;height:12px}

  /* Voice cards */
  .voice-card{padding:1.2rem 1rem 1.2rem 1.2rem;margin-bottom:1.2rem;border-radius:0 10px 10px 0}
  .voice-text{font-size:0.85rem;line-height:2.1}

  /* Buttons: full width, bigger touch targets */
  .btn-line{width:100%;justify-content:center;padding:0.9rem 1.5rem;font-size:0.85rem;min-height:48px}
  .btn-outline{width:100%;justify-content:center;padding:0.8rem 1.5rem;font-size:0.82rem;min-height:48px}
  .hero-actions{flex-direction:column;gap:0.8rem;width:100%}

  /* Trust markers: wrap nicely */
  .trust-markers{gap:0.5rem;justify-content:flex-start}
  .trust-pill{font-size:0.65rem;padding:0.3rem 0.7rem}

  /* CTA banner */
  .cta-banner{padding:2.5rem 1rem}
  .cta-banner h2{font-size:clamp(1.1rem,5vw,1.3rem)}
  .cta-banner .actions{flex-direction:column;align-items:stretch}

  /* Contact form */
  .contact-grid{grid-template-columns:1fr;gap:1.5rem}
  .f-row{grid-template-columns:1fr}
  .f-submit{min-height:48px;font-size:0.88rem}
  .f-group input,.f-group textarea,.f-group select{padding:0.75rem 0.9rem;font-size:0.88rem;min-height:44px}

  /* Footer */
  .footer-inner{grid-template-columns:1fr;gap:1.5rem;text-align:center}
  .footer-col{padding:0}

  /* Floating buttons: bottom bar style */
  .floating-trial{flex-direction:row;left:1rem;right:1rem;bottom:0.75rem;gap:0.5rem}
  .floating-trial a{flex:1;justify-content:center;padding:0.7rem 0.8rem;font-size:0.72rem}

  /* Quote banner */
  .quote-banner{min-height:220px;padding:2rem 1rem}
  .quote-banner-text{font-size:0.95rem;line-height:2}

  /* Info badges */
  .info-badges{gap:0.4rem}
  .info-badges span{padding:0.35rem 0.7rem;font-size:0.72rem}

  /* Themes row */
  .themes-row{grid-template-columns:repeat(3,1fr);gap:0.4rem}
  .theme-item{padding:0.8rem 0.4rem}
  .theme-item .shape{font-size:1.2rem}
  .theme-item .name{font-size:0.75rem}
  .theme-item .months{font-size:0.58rem}
}

/* === SMALL MOBILE (max 480px) === */
@media(max-width:480px){
  .class-cards{grid-template-columns:1fr}
  .gallery-stagger{grid-template-columns:1fr;grid-auto-rows:160px}
  .photo-grid-3{grid-template-columns:1fr}
  .trust-markers{flex-direction:column;align-items:stretch}
  .trust-pill{justify-content:center;text-align:center}
}
