/* ============================================================
   Play & Sing Like a Pro — Site Stylesheet
   Brand: Purple #b183f5 · Orange #fa8b32 · Klop + Sofia Pro
   ============================================================ */

/* ---- Fonts ---- */
@font-face { font-family:'Klop'; src:url('fonts/Klop.otf') format('opentype'); font-weight:400 900; font-display:swap; }
@font-face { font-family:'Sofia Pro'; src:url('fonts/SofiaPro-Light.otf') format('opentype'); font-weight:300; font-display:swap; }
@font-face { font-family:'Sofia Pro'; src:url('fonts/SofiaPro-Regular.otf') format('opentype'); font-weight:400; font-display:swap; }
@font-face { font-family:'Sofia Pro'; src:url('fonts/SofiaPro-RegularItalic.otf') format('opentype'); font-weight:400; font-style:italic; font-display:swap; }
@font-face { font-family:'Sofia Pro'; src:url('fonts/SofiaPro-Medium.otf') format('opentype'); font-weight:500; font-display:swap; }
@font-face { font-family:'Sofia Pro'; src:url('fonts/SofiaPro-SemiBold.otf') format('opentype'); font-weight:600; font-display:swap; }
@font-face { font-family:'Sofia Pro'; src:url('fonts/SofiaPro-Bold.otf') format('opentype'); font-weight:700; font-display:swap; }
@font-face { font-family:'Sofia Pro'; src:url('fonts/SofiaPro-BoldItalic.otf') format('opentype'); font-weight:700; font-style:italic; font-display:swap; }
@font-face { font-family:'Sofia Pro'; src:url('fonts/SofiaPro-Black.otf') format('opentype'); font-weight:900; font-display:swap; }

/* ---- Tokens ---- */
:root {
  --purple:#b183f5; --orange:#fa8b32;
  --purple-50:#f4eefe; --purple-100:#e7d9fc; --purple-200:#d3bcf9; --purple-300:#b183f5;
  --purple-400:#9d63f0; --purple-500:#8743e6; --purple-600:#6f2fc9; --purple-700:#57239e;
  --orange-50:#fff3e8; --orange-100:#ffe1c4; --orange-200:#ffc78d; --orange-300:#fa8b32;
  --orange-400:#f0760f; --orange-500:#d96207; --orange-600:#b04e05; --orange-700:#8a3d06;
  --coral-100:#fbdfe0; --coral-300:#e988a0; --coral-500:#d96a72;
  --ink-900:#241b33; --ink-700:#4a4159; --ink-500:#756c83;
  --ink-300:#b3acbd; --ink-200:#d8d3df; --ink-100:#ece9f1;
  --paper:#faf7fd; --white:#ffffff;
  --grad-brand:linear-gradient(100deg,var(--purple) 0%,var(--coral-300) 48%,var(--orange) 100%);
  --grad-brand-soft:linear-gradient(135deg,var(--purple-100) 0%,var(--orange-100) 100%);
  --grad-purple:linear-gradient(135deg,#c49bff 0%,#8743e6 100%);
  --grad-orange:linear-gradient(135deg,#ffb066 0%,#f0760f 100%);
  --bg:var(--paper); --surface:var(--white); --surface-sunken:var(--purple-50);
  --fg:var(--ink-900); --fg-muted:var(--ink-500); --fg-on-brand:var(--white);
  --border:var(--ink-200); --accent:var(--purple-400); --focus-ring:var(--purple-400);
  --success:#2bb673;
  --font-display:'Klop',system-ui,sans-serif;
  --font-body:'Sofia Pro',system-ui,-apple-system,sans-serif;
  --text-xs:.75rem; --text-sm:.875rem; --text-base:1rem; --text-lg:1.25rem;
  --text-xl:1.563rem; --text-2xl:1.953rem; --text-3xl:2.441rem;
  --text-4xl:3.052rem; --text-5xl:3.815rem; --text-6xl:4.768rem;
  --w-light:300; --w-regular:400; --w-medium:500; --w-semibold:600; --w-bold:700; --w-black:900;
  --r-sm:8px; --r-md:14px; --r-lg:20px; --r-xl:28px; --r-2xl:40px; --r-pill:999px;
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:24px;
  --space-6:32px; --space-7:48px; --space-8:64px; --space-9:96px;
  --shadow-sm:0 1px 2px rgba(36,27,51,.06),0 1px 3px rgba(36,27,51,.08);
  --shadow-md:0 4px 10px rgba(36,27,51,.08),0 2px 4px rgba(36,27,51,.06);
  --shadow-lg:0 12px 28px rgba(111,47,201,.14),0 4px 10px rgba(36,27,51,.08);
  --shadow-pop:0 14px 30px rgba(250,139,50,.22);
  --shadow-pop-purple:0 14px 30px rgba(177,131,245,.30);
  --ease-bounce:cubic-bezier(.34,1.56,.64,1);
  --ease-out:cubic-bezier(.22,1,.36,1);
  --dur-fast:140ms; --dur-base:220ms; --dur-slow:380ms;
}

/* ---- Reset + Base ---- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);font-weight:var(--w-regular);font-size:var(--text-base);
     line-height:1.6;color:var(--fg);background:var(--bg);
     -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;margin:0;overflow-x:hidden}
button{font-family:var(--font-body)}
img{display:block;max-width:100%}
h1,h2,h3{font-family:var(--font-display);font-weight:var(--w-bold);text-transform:uppercase;
          letter-spacing:.01em;line-height:.98;color:var(--fg);margin:0}
h1{font-size:var(--text-5xl)}
h2{font-size:var(--text-4xl)}
h3{font-size:var(--text-2xl)}
h4,h5,h6{font-family:var(--font-body);font-weight:var(--w-bold);line-height:1.2;color:var(--fg);margin:0}
h4{font-size:var(--text-xl)} h5{font-size:var(--text-lg)}
h6{font-size:var(--text-base);letter-spacing:.04em;text-transform:uppercase}
p{margin:0 0 1em;max-width:64ch;text-wrap:pretty}
.lead{font-size:var(--text-lg);color:var(--fg-muted);line-height:1.55}
.eyebrow{font-family:var(--font-body);font-weight:var(--w-bold);font-size:var(--text-sm);
         letter-spacing:.12em;text-transform:uppercase;color:var(--purple-400);
         display:inline-flex;align-items:center;gap:8px}
.eyebrow .lucide{width:16px;height:16px}
a{color:var(--purple-500);text-decoration:none}
a:hover{color:var(--purple-600)}
.text-gradient{background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;color:transparent}
.lucide{width:1em;height:1em;stroke-width:2}

/* ---- Layout ---- */
.container{max-width:1180px;margin:0 auto;padding:0 32px}
.section{padding:88px 0}
.section-tight{padding:56px 0}
.center{text-align:center}

/* ---- Buttons ---- */
.btn{font-family:var(--font-body);font-weight:700;font-size:16px;border:0;cursor:pointer;
     padding:14px 28px;border-radius:var(--r-pill);display:inline-flex;align-items:center;gap:9px;
     transition:transform var(--dur-fast) var(--ease-bounce),box-shadow var(--dur-base) var(--ease-out),filter var(--dur-base);
     line-height:1;white-space:nowrap;text-decoration:none}
.btn .lucide{width:18px;height:18px}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:scale(.96)}
.btn-primary{background:var(--grad-orange);color:#fff;box-shadow:var(--shadow-pop)}
.btn-primary:hover{filter:brightness(1.04);box-shadow:0 18px 36px rgba(250,139,50,.32)}
.btn-secondary{background:var(--purple-500);color:#fff;box-shadow:var(--shadow-pop-purple)}
.btn-secondary:hover{filter:brightness(1.06)}
.btn-ghost{background:var(--purple-50);color:var(--purple-600)}
.btn-ghost:hover{background:var(--purple-100)}
.btn-outline{background:transparent;color:var(--ink-900);box-shadow:inset 0 0 0 2px var(--ink-200)}
.btn-outline:hover{box-shadow:inset 0 0 0 2px var(--purple-300);color:var(--purple-600)}
.btn-white{background:#fff;color:var(--purple-600);box-shadow:var(--shadow-md)}
.btn-white:hover{box-shadow:var(--shadow-lg)}
.btn-lg{padding:17px 36px;font-size:18px}
.btn-sm{padding:9px 18px;font-size:14px}
.btn-block{width:100%;justify-content:center}

/* ---- Chips ---- */
.chip{font-family:var(--font-body);font-weight:600;font-size:14px;padding:8px 16px;
      border-radius:var(--r-pill);display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.chip .lucide{width:15px;height:15px}
.chip-purple{background:var(--purple-100);color:var(--purple-700)}
.chip-orange{background:var(--orange-100);color:var(--orange-700)}
.chip-brand{background:var(--grad-brand);color:#fff;box-shadow:var(--shadow-sm)}
.chip-soft{background:var(--surface);color:var(--ink-700);box-shadow:var(--shadow-sm)}

/* ---- Nav ---- */
.nav{position:sticky;top:0;z-index:50;background:rgba(250,247,253,.88);backdrop-filter:blur(14px);
     border-bottom:1px solid var(--ink-100)}
.nav-inner{display:flex;align-items:center;gap:28px;height:74px}
.nav-logo{height:52px;width:auto;cursor:pointer;flex-shrink:0}
.nav-links{display:flex;gap:24px}
.nav-link{font-family:var(--font-body);font-weight:600;font-size:15px;color:var(--ink-700);
          cursor:pointer;background:none;border:0;padding:0;transition:color var(--dur-fast);
          text-decoration:none;display:inline-block}
.nav-link:hover{color:var(--purple-500)}
.nav-spacer{margin-left:auto}

/* ---- Hero ---- */
.hero{position:relative;padding:84px 0 100px;overflow:hidden}
.hero-wash{position:absolute;inset:0;z-index:0;
  background:radial-gradient(60% 70% at 12% 8%,rgba(177,131,245,.22),transparent 60%),
             radial-gradient(55% 65% at 92% 22%,rgba(250,139,50,.18),transparent 60%)}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}
.hero h1{font-size:clamp(2.4rem,4.6vw,3.65rem);line-height:.96;margin:18px 0 0}
.hero .lead{margin:24px 0 30px;max-width:34ch;font-size:var(--text-lg)}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap}
.hero-trust{display:flex;align-items:center;gap:14px;margin-top:30px;font-size:14px;color:var(--ink-500)}
.avatars{display:flex}
.avatars span{width:34px;height:34px;border-radius:50%;border:3px solid var(--paper);margin-left:-10px;
              background:var(--grad-purple);display:flex;align-items:center;justify-content:center;
              color:#fff;font-weight:700;font-size:13px}
.avatars span:first-child{margin-left:0}
.hero-art{position:relative}
.hero-photo{display:block;width:100%;aspect-ratio:4/5;border-radius:var(--r-2xl);
            box-shadow:var(--shadow-lg);background:var(--grad-brand-soft);overflow:hidden}
.floaty{position:absolute;border-radius:50%;z-index:0}
.f1{width:120px;height:120px;background:var(--purple-200);top:-22px;right:40px;opacity:.6}
.f2{width:64px;height:64px;background:var(--orange-200);bottom:30px;left:-26px}
.badge-float{position:absolute;background:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow-lg);
             padding:13px 18px;display:flex;align-items:center;gap:11px;font-family:var(--font-body)}
.badge-float .ic{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff}
.badge-float .ic .lucide{width:20px;height:20px}
.badge-float b{font-size:15px;color:var(--ink-900);display:block}
.badge-float small{display:block;color:var(--ink-500);font-size:12px}
.bf-1{left:-30px;top:64px}
.bf-2{right:-22px;bottom:90px}

/* ---- Reassurance strip ---- */
.reassure{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;padding:8px 0 0}

/* ---- Smart Guitar ---- */
.sg-outer{background:var(--ink-900);position:relative;overflow:hidden}
.sg-wash{position:absolute;inset:0;
  background:radial-gradient(50% 60% at 80% 40%,rgba(177,131,245,.2),transparent 60%),
             radial-gradient(40% 50% at 20% 70%,rgba(250,139,50,.15),transparent 60%)}
.sg-grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.sg-outer .eyebrow{color:var(--coral-300)}
.sg-outer .eyebrow .lucide{color:var(--coral-300)}
.sg-outer h2{color:#fff;margin:12px 0 0;font-size:clamp(2rem,3.5vw,3.05rem)}
.sg-outer .lead{color:rgba(255,255,255,.72);margin:20px 0 28px}
.sg-badge{display:inline-flex;align-items:center;gap:10px;background:rgba(255,255,255,.1);
          border:1px solid rgba(255,255,255,.18);border-radius:var(--r-pill);padding:10px 20px;
          color:#fff;font-size:14px;font-weight:600}
.sg-badge .lucide{width:16px;height:16px;color:var(--orange-300)}
.sg-features{display:flex;flex-direction:column;gap:16px}
.sg-feature{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);
            border-radius:var(--r-xl);padding:24px;display:flex;gap:18px;align-items:flex-start;
            transition:background var(--dur-base)}
.sg-feature:hover{background:rgba(255,255,255,.12)}
.sg-feature-icon{width:48px;height:48px;border-radius:var(--r-md);display:flex;align-items:center;
                 justify-content:center;flex-shrink:0;color:#fff}
.sg-feature-icon .lucide{width:24px;height:24px}
.sg-feature h5{color:#fff;font-size:17px;margin:0 0 5px}
.sg-feature p{color:rgba(255,255,255,.62);font-size:14px;margin:0;line-height:1.55;max-width:none}

/* ---- How it works ---- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}
.step{background:var(--surface);border-radius:var(--r-xl);padding:32px 28px;box-shadow:var(--shadow-md);
      position:relative;transition:transform var(--dur-base) var(--ease-bounce),box-shadow var(--dur-base)}
.step:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.step-num{font-family:var(--font-display);font-size:18px;color:#fff;width:54px;height:54px;
          border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.step h5{font-size:20px;margin:0 0 8px}
.step p{font-size:15px;color:var(--ink-500);margin:0;line-height:1.55}

/* ---- Section headings ---- */
.sec-head{max-width:34ch}
.sec-head.center{margin:0 auto}
.sec-head h2{font-size:var(--text-4xl);margin:12px 0 0}
.sec-head p{margin:16px 0 0;color:var(--ink-500);font-size:var(--text-lg)}

/* ---- Workshops ---- */
.workshops{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px;align-items:start}
.wcard{background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--shadow-md);overflow:hidden;
       transition:transform var(--dur-base) var(--ease-bounce),box-shadow var(--dur-base)}
.wcard:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}
.wcard.feat{box-shadow:var(--shadow-lg);outline:3px solid var(--purple-300);position:relative}
.feat-tag{position:absolute;top:16px;right:16px;z-index:2}
.wtop{height:120px;display:flex;align-items:center;justify-content:center;font-size:44px}
.wbody{padding:24px 24px 28px}
.wbody h5{font-size:21px;margin:0 0 6px}
.wbody .desc{font-size:14px;color:var(--ink-500);margin:0 0 18px;line-height:1.5;min-height:42px}
.price{font-family:var(--font-display);font-size:34px;color:var(--ink-900);line-height:1}
.price small{font-family:var(--font-body);font-size:14px;color:var(--ink-500);font-weight:500}
.wfeatures{list-style:none;padding:0;margin:18px 0 22px;display:flex;flex-direction:column;gap:10px}
.wfeatures li{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--ink-700)}
.wfeatures .lucide{width:18px;height:18px;color:var(--success);flex:none}
.workshop-note{text-align:center;margin-top:24px;font-size:14px;color:var(--ink-500)}

/* ---- Instructors ---- */
.instructors-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:48px}
.instructor-card{background:var(--surface);border-radius:var(--r-2xl);box-shadow:var(--shadow-md);
                 overflow:hidden;transition:transform var(--dur-base) var(--ease-bounce),box-shadow var(--dur-base)}
.instructor-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.instructor-top{height:140px;position:relative;display:flex;align-items:flex-end;padding:0 32px}
.instructor-avatar-lg{width:88px;height:88px;border-radius:50%;border:4px solid var(--surface);
                      display:flex;align-items:center;justify-content:center;font-size:36px;
                      position:relative;z-index:1;transform:translateY(44px);
                      box-shadow:var(--shadow-md);flex-shrink:0}
.instructor-body{padding:56px 32px 32px}
.instructor-name{font-family:var(--font-body);font-size:24px;font-weight:700;color:var(--ink-900);margin:0 0 4px}
.instructor-role{font-size:14px;color:var(--purple-500);font-weight:600;margin:0 0 16px}
.instructor-bio{font-size:15px;color:var(--ink-500);line-height:1.65;margin:0 0 20px;max-width:none}
.inst-tags{display:flex;flex-wrap:wrap;gap:8px}
.inst-tag{display:inline-flex;align-items:center;gap:6px;background:var(--purple-50);color:var(--purple-600);
          font-size:12px;font-weight:600;padding:5px 12px;border-radius:var(--r-pill)}
.inst-tag .lucide{width:13px;height:13px}
.inst-tag.orange{background:var(--orange-50);color:var(--orange-600)}

/* ---- Gallery ---- */
.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:48px}
.gallery-slot{border-radius:var(--r-xl);overflow:hidden;aspect-ratio:4/3;
              display:flex;align-items:center;justify-content:center;position:relative;
              box-shadow:var(--shadow-sm)}
.gallery-slot:nth-child(3n+1){grid-column:span 2;aspect-ratio:21/9}
.gallery-slot-inner{display:flex;flex-direction:column;align-items:center;gap:10px;
                    color:var(--purple-400)}
.gallery-slot-inner .lucide{width:32px;height:32px;opacity:.5}
.gallery-slot-inner span{font-size:13px;font-weight:600;opacity:.6}

/* ---- Testimonials ---- */
.testimonials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}
.tcard{background:var(--surface);border-radius:var(--r-xl);padding:28px;box-shadow:var(--shadow-md);
       display:flex;flex-direction:column;gap:16px;
       transition:transform var(--dur-base) var(--ease-bounce),box-shadow var(--dur-base)}
.tcard:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.tcard-stars{display:flex;gap:3px}
.tcard-stars .lucide{width:15px;height:15px;color:var(--orange-400);fill:var(--orange-400)}
.tcard-quote{font-size:15px;color:var(--ink-700);line-height:1.65;font-style:italic;margin:0;flex:1}
.tcard-author{display:flex;align-items:center;gap:12px;margin-top:auto}
.tcard-av{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;
          font-weight:700;font-size:15px;color:#fff;flex-shrink:0}
.tcard-av.p{background:var(--grad-purple)} .tcard-av.o{background:var(--grad-orange)} .tcard-av.b{background:var(--grad-brand)}
.tcard-name{font-weight:700;font-size:14px;color:var(--ink-900);display:block}
.tcard-detail{font-size:12px;color:var(--ink-500)}

/* ---- Big quote band ---- */
.quote-band{background:var(--grad-brand-soft);border-radius:var(--r-2xl);padding:64px 56px;position:relative;overflow:hidden}
.quote-mark{font-family:var(--font-display);font-size:160px;color:var(--purple-200);position:absolute;
            top:-30px;left:24px;line-height:1;z-index:0}
.quote-band blockquote{position:relative;z-index:1;font-family:var(--font-body);font-weight:500;
            font-size:var(--text-2xl);line-height:1.35;color:var(--ink-900);margin:0;max-width:22ch}
.quote-who{position:relative;z-index:1;margin-top:24px;display:flex;align-items:center;gap:14px}
.quote-who .av{width:52px;height:52px;border-radius:50%;background:var(--grad-orange);display:flex;
               align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:18px}
.quote-who b{display:block;font-size:16px;color:var(--ink-900)}
.quote-who span{font-size:14px;color:var(--ink-500)}

/* ---- Community ---- */
.community-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:48px}
.comm-card{background:var(--surface);border-radius:var(--r-2xl);box-shadow:var(--shadow-md);
           overflow:hidden;transition:transform var(--dur-base) var(--ease-bounce),box-shadow var(--dur-base)}
.comm-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.comm-top{height:108px;position:relative;overflow:hidden;display:flex;align-items:center;padding:0 32px}
.comm-top-icon{font-size:2.4rem;position:relative;z-index:1}
.comm-blob{position:absolute;border-radius:50%;opacity:.3}
.comm-body{padding:28px 32px 36px}
.comm-body h3{font-family:var(--font-body);font-weight:700;font-size:22px;color:var(--ink-900);
              margin:0 0 10px;text-transform:none;letter-spacing:0;line-height:1.2}
.comm-body p{font-size:15px;color:var(--ink-500);line-height:1.65;margin:0 0 20px;max-width:none}
.comm-perks{list-style:none;padding:0;margin:0 0 24px;display:flex;flex-direction:column;gap:10px}
.comm-perks li{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--ink-700)}
.comm-perks li .lucide{width:16px;height:16px;flex-shrink:0}
.comm-perks li .p-icon{color:var(--purple-500)} .comm-perks li .o-icon{color:var(--orange-500)}

/* ---- Song Library ---- */
.library-banner{background:var(--grad-purple);border-radius:var(--r-2xl);padding:52px 56px;
                color:#fff;display:grid;grid-template-columns:1fr auto;gap:40px;
                align-items:center;margin-bottom:24px;position:relative;overflow:hidden}
.lib-blob{position:absolute;border-radius:50%;background:rgba(255,255,255,.08)}
.library-banner-content{position:relative;z-index:1}
.library-banner h3{font-family:var(--font-display);font-size:clamp(1.8rem,2.5vw,2.4rem);
                   color:#fff;margin:0 0 12px;text-transform:uppercase}
.library-banner p{color:rgba(255,255,255,.78);font-size:15px;margin:0 0 20px;max-width:44ch}
.library-count{text-align:center;flex-shrink:0;position:relative;z-index:1}
.library-count-num{font-family:var(--font-display);font-size:5rem;color:#fff;line-height:1;display:block}
.library-count-label{font-size:13px;color:rgba(255,255,255,.65);letter-spacing:.06em}
.lib-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.lib-tag{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.22);color:#fff;
         font-size:13px;font-weight:600;padding:6px 16px;border-radius:var(--r-pill)}
.library-sub-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.mini-card{background:var(--surface);border-radius:var(--r-xl);padding:28px;box-shadow:var(--shadow-md)}
.mini-card h4{font-family:var(--font-body);font-size:18px;font-weight:700;color:var(--ink-900);margin:0 0 8px}
.mini-card p{font-size:14px;color:var(--ink-500);line-height:1.65;margin:0 0 16px;max-width:none}
.tag-row{display:flex;flex-wrap:wrap;gap:6px}
.tag{font-size:12px;font-weight:600;padding:4px 12px;border-radius:var(--r-pill);
     background:var(--purple-100);color:var(--purple-700)}
.tag.orange{background:var(--orange-100);color:var(--orange-700)}

/* ---- FAQ ---- */
.faq-list{margin-top:48px;display:flex;flex-direction:column;gap:8px;max-width:800px;margin-left:auto;margin-right:auto}
.faq-item{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);
          border:1px solid var(--ink-100);overflow:hidden;transition:box-shadow var(--dur-base)}
.faq-item.open{box-shadow:var(--shadow-md);border-color:var(--purple-200)}
.faq-q{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;cursor:pointer;
       gap:16px;font-family:var(--font-body);font-weight:600;font-size:16px;color:var(--ink-900);
       background:none;border:none;width:100%;text-align:left}
.faq-q:hover{color:var(--purple-600)}
.faq-icon{width:20px;height:20px;flex-shrink:0;color:var(--purple-400);
          transition:transform var(--dur-base) var(--ease-out)}
.faq-item.open .faq-icon{transform:rotate(180deg)}
.faq-a{padding:0 24px;max-height:0;overflow:hidden;
       transition:max-height var(--dur-slow) var(--ease-out),padding var(--dur-base)}
.faq-item.open .faq-a{max-height:400px;padding:0 24px 22px}
.faq-a p{font-size:15px;color:var(--ink-500);line-height:1.65;margin:0;max-width:70ch}

/* ---- Booking band ---- */
.book-band{background:var(--grad-brand);border-radius:var(--r-2xl);padding:64px 56px;
           text-align:center;position:relative;overflow:hidden}
.book-band h2{color:#fff;margin:0 0 14px}
.book-band p{color:rgba(255,255,255,.92);font-size:var(--text-lg);margin:0 auto 28px;max-width:46ch}
.book-band .blob{position:absolute;border-radius:50%;background:rgba(255,255,255,.12)}

/* ---- Footer ---- */
.footer{padding:64px 0 40px;background:var(--ink-900);color:#fff}
.footer-top{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap}
.footer img{height:48px;filter:none}
.footer-tagline{color:rgba(255,255,255,.55);font-size:14px;margin:16px 0 0;max-width:28ch;line-height:1.6}
.footer-col h6{color:#fff;font-size:13px;letter-spacing:.08em;margin:0 0 14px;opacity:.65}
.footer-col a{display:block;color:rgba(255,255,255,.75);font-size:15px;margin-bottom:10px;cursor:pointer;
              transition:color var(--dur-fast)}
.footer-col a:hover{color:#fff}
.footer-cols{display:flex;gap:56px;flex-wrap:wrap}
.footer-bottom{margin-top:48px;padding-top:24px;border-top:1px solid rgba(255,255,255,.1);
               display:flex;justify-content:space-between;color:rgba(255,255,255,.45);
               font-size:13px;flex-wrap:wrap;gap:12px}
.footer-social{display:flex;gap:14px}
.footer-social a{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.1);
                 display:flex;align-items:center;justify-content:center;color:#fff;
                 transition:background var(--dur-fast)}
.footer-social a:hover{background:rgba(255,255,255,.2)}

/* ---- Modal ---- */
.modal-scrim{position:fixed;inset:0;z-index:100;background:rgba(36,27,51,.55);
             backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;
             padding:24px;animation:fade var(--dur-base) var(--ease-out)}
.modal{background:var(--surface);border-radius:var(--r-2xl);box-shadow:var(--shadow-lg);
       width:480px;max-width:100%;overflow:hidden;animation:pop var(--dur-slow) var(--ease-bounce)}
.modal-head{background:var(--grad-brand);padding:26px 28px;color:#fff;
            display:flex;align-items:center;justify-content:space-between}
.modal-head h4{color:#fff;font-size:21px;margin:0}
.modal-x{background:rgba(255,255,255,.2);border:0;color:#fff;width:34px;height:34px;
          border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;
          transition:background var(--dur-fast)}
.modal-x:hover{background:rgba(255,255,255,.32)}
.modal-x .lucide{width:18px;height:18px}
.modal-body{padding:28px}
.modal-progress{display:flex;gap:8px;justify-content:center;margin-bottom:24px}
.modal-dot{width:8px;height:8px;border-radius:50%;background:var(--ink-200);
           transition:background var(--dur-base),transform var(--dur-base) var(--ease-bounce)}
.modal-dot.active{background:var(--purple-400);transform:scale(1.35)}
.field{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}
.field label{font-weight:600;font-size:14px;color:var(--ink-700)}
.field input,.field select{font-family:var(--font-body);font-size:15px;padding:13px 16px;
       border-radius:var(--r-md);border:2px solid var(--ink-200);background:var(--surface);
       color:var(--ink-900);outline:none;transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}
.field input:focus,.field select:focus{border-color:var(--purple-400);box-shadow:0 0 0 4px var(--purple-100)}
.modal-footer-row{display:flex;gap:10px;margin-top:4px}
.modal-footer-row .btn-outline{flex-shrink:0}
.modal-footer-row .btn-primary{flex:1;justify-content:center}
.confirm{text-align:center;padding:44px 28px}
.confirm .tick{width:76px;height:76px;border-radius:50%;background:var(--success);color:#fff;
               display:flex;align-items:center;justify-content:center;margin:0 auto 20px}
.confirm .tick .lucide{width:38px;height:38px}
.confirm h4{font-size:24px;margin:0 0 10px}
.confirm p{color:var(--ink-500);margin:0 auto 24px;max-width:32ch}

/* ---- Reveal entrance ---- */
@media (prefers-reduced-motion:no-preference) {
  .reveal{opacity:0;transform:translateY(16px);
          transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out)}
  .reveal.in{opacity:1;transform:none}
}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes pop{from{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:none}}

/* ---- Responsive ---- */
@media (max-width:900px) {
  .container{padding:0 20px}
  .nav-links{display:none}
  .section{padding:56px 0}
  .hero-grid{grid-template-columns:1fr;gap:36px}
  .hero-art{display:none}
  .steps,.workshops,.instructors-grid,.community-grid,.testimonials-grid{grid-template-columns:1fr}
  .sg-grid{grid-template-columns:1fr}
  .gallery-grid{grid-template-columns:1fr}
  .gallery-slot:nth-child(3n+1){grid-column:span 1;aspect-ratio:4/3}
  .library-banner{grid-template-columns:1fr;padding:36px 28px}
  .library-count{display:none}
  .library-sub-grid{grid-template-columns:1fr}
  .quote-band,.book-band{padding:40px 28px}
  .footer-cols{gap:28px}
}
