@import url('https://fonts.googleapis.com/css2?family=Corinthia:wght@400;700&display=swap');

:root { --cream:#f8f2f9; --paper:#fffafd; --ink:#29182f; --coral:#58077c; --coral-light:#8b43a7; --sage:#f2a06b; --sage-dark:#d9784f; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:Arial, Helvetica, sans-serif; }
a { color:inherit; text-decoration:none; }
.hero { min-height:100svh; position:relative; color:white; background:linear-gradient(90deg,rgba(26,5,37,.72),rgba(53,7,73,.24) 58%,rgba(53,7,73,.08)),url('/hero-magici-violini-natural-hand.png') center/cover; overflow:hidden; }
.top-bar { min-height:38px; padding:0 4vw; display:flex; align-items:center; justify-content:space-between; gap:24px; background:#c991d8; color:#2b073b; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; position:relative; z-index:8; }
.top-socials,.top-contacts { display:flex; align-items:center; gap:24px; }
.top-bar a { transition:opacity .2s; }
.top-bar a:hover { opacity:.6; }
.nav-wrap { height:96px; padding:0 4vw; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; border-bottom:1px solid rgba(255,255,255,.35); position:relative; z-index:5; }
.brand { display:flex; align-items:center; gap:12px; font-size:19px; font-weight:700; letter-spacing:-.03em; }
.client-logo { width:190px; max-width:42vw; height:auto; display:block; background:white; padding:7px 11px; border-radius:3px; }
.brand-mark { width:42px; height:42px; display:grid; place-items:center; border:1px solid currentColor; border-radius:50%; font-family:Georgia,serif; font-style:italic; font-size:15px; }
.nav-links { display:flex; gap:36px; font-size:14px; }
.nav-links a,.nav-contact { transition:opacity .2s; }
.nav-links a:hover,.nav-contact:hover { opacity:.65; }
.nav-contact { justify-self:end; border-bottom:1px solid rgba(255,255,255,.6); padding-bottom:5px; display:flex; gap:16px; font-size:14px; }
.menu-toggle { display:none; }
.hero-content { width:min(1160px,92vw); margin:0 auto; padding:17vh 0 14vh; text-align:center; display:flex; flex-direction:column; align-items:center; }
.eyebrow { text-transform:uppercase; letter-spacing:.16em; font-size:12px; font-weight:700; margin:0 0 28px; }
.eyebrow.light { color:rgba(255,255,255,.86); }
.hero h1 { font-size:clamp(58px,8.2vw,126px); line-height:.87; letter-spacing:-.072em; font-weight:500; margin:0; text-shadow:0 2px 30px rgba(0,0,0,.12); }
.hero-copy { max-width:540px; font-size:17px; line-height:1.55; margin:28px auto; text-shadow:0 1px 10px rgba(0,0,0,.3); }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:32px; padding:18px 23px; min-width:235px; font-size:14px; font-weight:700; transition:transform .2s,background .2s; }
.button:hover { transform:translateY(-3px); }
.button-coral { background:var(--coral); color:white; }
.hero-areas { position:absolute; right:4vw; bottom:36px; display:flex; flex-direction:column; gap:7px; text-align:right; font-size:14px; }
.scroll-cue { position:absolute; bottom:36px; left:4vw; display:flex; gap:20px; font-size:13px; text-transform:uppercase; letter-spacing:.14em; }
.intro { padding:125px 4vw 110px; display:grid; grid-template-columns:18% 1fr; gap:7vw; }
.section-tag { font-size:12px; text-transform:uppercase; letter-spacing:.12em; padding-top:10px; }
.intro-main h2,.lesson-copy h2,.repertoire h2 { font:500 clamp(48px,6.2vw,90px)/.98 Georgia,serif; letter-spacing:-.055em; margin:0 0 30px; }
h2 em { color:var(--coral); font-weight:400; }
.lead { max-width:640px; margin:0; font-size:20px; line-height:1.6; color:#705d76; }
.service-cards { grid-column:2; display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:75px; }
.service-card { min-height:460px; padding:34px; display:flex; flex-direction:column; justify-content:space-between; transition:transform .3s; }
.service-card:hover { transform:translateY(-8px); }
.coral-card { background:var(--coral); color:white; }
.sage-card { background:var(--sage); }
.card-number { font-size:12px; opacity:.6; }
.card-kicker { text-transform:uppercase; letter-spacing:.14em; font-size:11px; }
.service-card h3 { font:500 42px/1 Georgia,serif; max-width:360px; margin:12px 0 20px; letter-spacing:-.04em; }
.service-card p:not(.card-kicker) { max-width:370px; line-height:1.55; }
.service-card>a { align-self:flex-end; width:58px; height:58px; display:grid; place-items:center; border:1px solid currentColor; border-radius:50%; font-size:23px; }
.statement { padding:120px 4vw; background:var(--ink); color:white; }
.visual-manifesto { min-height:760px; position:relative; overflow:hidden; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:100px 4vw; background:linear-gradient(135deg,#17091e 0%,#3c0a51 55%,#5a0c42 100%); color:white; isolation:isolate; }
.visual-manifesto:before { content:""; position:absolute; inset:0; z-index:-2; opacity:.16; background-image:radial-gradient(rgba(255,255,255,.7) .7px,transparent .7px); background-size:4px 4px; }
.visual-manifesto h2 { font:700 clamp(94px,15vw,230px)/.74 Arial,Helvetica,sans-serif; letter-spacing:-.09em; text-transform:uppercase; margin:0; background:linear-gradient(105deg,#f2a06b 4%,#ffd88c 40%,#fff3dc 61%,#b76bca 96%); -webkit-background-clip:text; background-clip:text; color:transparent; position:relative; z-index:1; }
.manifesto-copy { max-width:560px; margin:55px auto 0; color:#f4dff7; font-size:17px; line-height:1.6; position:relative; z-index:1; }
.manifesto-cta { margin-top:28px; position:relative; z-index:2; }
.glow { position:absolute; z-index:-1; display:block; filter:blur(14px); opacity:.92; border-radius:48% 52% 62% 38% / 55% 34% 66% 45%; background:linear-gradient(145deg,#f2a06b,#ffcf70 48%,#8b43a7); }
.glow-one { width:150px; height:620px; left:-10px; top:-80px; transform:rotate(-28deg); box-shadow:0 0 70px rgba(242,160,107,.42); }
.glow-two { width:240px; height:650px; right:-95px; bottom:-170px; transform:rotate(32deg); background:linear-gradient(145deg,#8b43a7,#f2a06b 72%); box-shadow:0 0 90px rgba(242,160,107,.35); }
.statement-copy { font:italic 24px Georgia,serif; color:#f6c9ff; margin:0 0 65px; }
.statement-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:12vw; align-items:end; }
.statement h2 { font:500 clamp(62px,8vw,120px)/.87 Georgia,serif; letter-spacing:-.06em; margin:0; }
.statement-grid p { color:#f2eaf4; font-size:17px; line-height:1.7; }
.text-link { display:inline-flex; gap:20px; margin-top:20px; padding-bottom:7px; border-bottom:1px solid #f6c9ff; color:#f6c9ff; }
.lessons { min-height:850px; display:grid; grid-template-columns:1fr 1fr; background:var(--paper); }
.lesson-visual { position:relative; overflow:hidden; background:var(--sage-dark); min-width:0; }
.lesson-video { width:100%; height:100%; display:block; object-fit:cover; object-position:center; }
.video-label { position:absolute; left:28px; top:28px; z-index:2; padding:11px 15px; background:rgba(255,250,242,.9); color:var(--ink); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.12em; pointer-events:none; }
.lesson-copy { padding:110px 8vw; align-self:center; }
.lesson-copy>p:not(.eyebrow) { color:#705d76; line-height:1.65; font-size:17px; }
.lesson-copy ul { padding:20px 0; margin:30px 0; list-style:none; border-top:1px solid #d8c9dc; }
.lesson-copy li { display:flex; gap:24px; padding:18px 0; border-bottom:1px solid #d8c9dc; }
.lesson-copy li span { color:var(--coral); font-size:12px; }
.button-dark { background:var(--ink); color:white; }
.youtube-band { padding:80px 8vw; display:flex; align-items:center; justify-content:space-between; gap:45px; background:linear-gradient(110deg,#210b29,#58077c); color:white; }
.youtube-band h2 { font:500 clamp(44px,5vw,76px)/.95 Georgia,serif; letter-spacing:-.05em; margin:0; }
.youtube-band .eyebrow { margin-bottom:20px; }
.repertoire { padding:125px 4vw; }
.repertoire-head { max-width:1050px; }
.genres { margin-top:80px; border-top:1px solid #c7b5cc; }
.genres article { display:grid; grid-template-columns:80px 1fr 1fr 40px; align-items:center; gap:25px; padding:31px 0; border-bottom:1px solid #c7b5cc; }
.genres article>span { color:var(--coral); font-size:12px; }
.genres h3 { font:500 34px Georgia,serif; margin:0; }
.genres p { color:#705d76; margin:0; }
.custom-note { max-width:560px; margin:50px 0 0 auto; font:italic 22px/1.5 Georgia,serif; }
.contact { position:relative; overflow:hidden; isolation:isolate; background:radial-gradient(ellipse at 12% 25%,rgba(242,160,107,.4),transparent 28%),radial-gradient(ellipse at 88% 82%,rgba(183,107,202,.4),transparent 34%),linear-gradient(135deg,#2c073d 0%,#58077c 54%,#44045f 100%); color:white; padding:125px 4vw 55px; text-align:center; }
.contact:before { content:""; position:absolute; z-index:-1; width:170px; height:620px; left:-45px; bottom:-230px; transform:rotate(-30deg); border-radius:55% 45% 62% 38%; background:linear-gradient(160deg,rgba(242,160,107,.9),rgba(88,7,124,.1)); filter:blur(22px); }
.contact h2 { font:500 clamp(65px,9vw,130px)/.86 Georgia,serif; letter-spacing:-.065em; margin:0; }
.contact>p:not(.eyebrow) { max-width:590px; margin:35px auto; font-size:18px; line-height:1.6; }
.button-light { background:var(--paper); color:var(--ink); }
.contact-meta { display:flex; justify-content:space-between; margin-top:95px; padding-top:25px; border-top:1px solid rgba(255,255,255,.45); font-size:12px; text-transform:uppercase; letter-spacing:.12em; }
footer { padding:48px 4vw 28px; display:grid; grid-template-columns:1fr 1.25fr 1fr; align-items:center; gap:34px; font-size:13px; }
footer p { color:#705d76; }
.footer-brand { font-size:17px; }
.footer-logo { width:210px; max-width:100%; background:transparent; padding:0; border-radius:0; }
.footer-contacts { display:flex; flex-direction:column; align-items:center; gap:9px; text-align:center; line-height:1.45; }
.footer-contacts span { color:#705d76; }
.footer-socials { display:flex; justify-content:flex-end; gap:12px; }
.footer-socials a { width:44px; height:44px; display:grid; place-items:center; border:1px solid #c7b5cc; border-radius:50%; font-weight:800; text-transform:lowercase; transition:background .2s,color .2s,transform .2s; }
.footer-socials a:hover { background:var(--coral); color:white; transform:translateY(-3px); }
.footer-legal { grid-column:1/-1; width:100%; margin:10px 0 0; padding-top:22px; border-top:1px solid #dfd2e3; text-align:center; font-size:11px; }
.whatsapp-float { position:fixed; z-index:30; left:18px; bottom:42px; padding:14px 22px; border-radius:999px; background:#25d366; color:#083d1d; font-size:14px; font-weight:800; box-shadow:0 12px 30px rgba(0,0,0,.2); transition:transform .2s; }
.whatsapp-float:hover { transform:translateY(-3px); }
.music-toggle { position:fixed; z-index:31; right:20px; bottom:38px; width:64px; height:64px; border:2px solid #fff1a8; border-radius:50%; display:grid; place-items:center; padding:7px; background:#ffd84d; color:var(--coral); cursor:pointer; box-shadow:0 12px 34px rgba(41,24,47,.32),0 0 0 4px rgba(255,216,77,.28); transition:transform .25s,background .25s; }
.music-toggle:hover { transform:translateY(-4px) scale(1.03); }
.music-toggle>span { font:700 28px/1 Georgia,serif; }
.music-toggle small { font-size:8px; font-weight:800; line-height:1; text-transform:uppercase; letter-spacing:.12em; }
.music-toggle.playing { background:#ffd84d; color:var(--coral); animation:musicPulse 2.2s ease-in-out infinite; }
.music-toggle.blocked:after { content:"Tocca"; position:absolute; right:72px; padding:8px 11px; border-radius:999px; background:var(--paper); color:var(--ink); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.1em; box-shadow:0 8px 24px rgba(0,0,0,.16); }
@keyframes musicPulse { 0%,100% { box-shadow:0 12px 34px rgba(0,0,0,.25),0 0 0 0 rgba(139,67,167,.35); } 50% { box-shadow:0 12px 34px rgba(0,0,0,.25),0 0 0 10px rgba(139,67,167,0); } }

/* Internal pages */
.inner-page { background:linear-gradient(150deg,#fffafd 0%,#f8f0fa 30%,#fff4ec 68%,#f5e6fa 100%); min-height:100vh; }
.inner-nav { height:96px; padding:0 4vw; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; background:var(--paper); border-bottom:1px solid #dfd2e3; position:relative; z-index:5; }
.inner-nav nav { display:flex; gap:32px; font-size:14px; }
.inner-nav nav a,.inner-contact { transition:color .2s; }
.inner-nav nav a:hover,.inner-contact:hover { color:var(--coral); }
.inner-contact { justify-self:end; font-size:14px; border-bottom:1px solid var(--coral); padding-bottom:5px; }
.page-hero { min-height:690px; padding:115px 8vw 90px; display:flex; flex-direction:column; justify-content:center; position:relative; overflow:hidden; isolation:isolate; }
.page-hero:after { content:""; position:absolute; z-index:-1; width:180px; height:680px; right:-45px; top:-120px; border-radius:52% 48% 35% 65% / 38% 61% 39% 62%; transform:rotate(28deg); background:linear-gradient(150deg,rgba(242,160,107,.94),rgba(255,215,137,.75) 52%,rgba(139,67,167,.5)); filter:blur(12px); opacity:.68; }
.page-hero h1,.contact-page h1 { font:700 clamp(82px,10vw,150px)/.72 "Corinthia",cursive; letter-spacing:-.025em; margin:0 0 35px; }
.page-hero h1 em { font-weight:400; color:var(--sage); }
.page-hero>p:not(.eyebrow) { max-width:650px; font-size:19px; line-height:1.6; margin:0 0 34px; }
.purple-hero { background:radial-gradient(circle at 78% 20%,rgba(242,160,107,.42),transparent 28%),linear-gradient(135deg,#2b073b 0%,#58077c 56%,#8b43a7 100%); color:white; }
.apricot-hero { background:radial-gradient(circle at 85% 25%,rgba(255,255,255,.62),transparent 24%),linear-gradient(135deg,#f2a06b 0%,#ffd09a 56%,#c991d8 125%); }
.apricot-hero h1 em { color:var(--coral); }
.dark-hero { background:radial-gradient(circle at 72% 18%,rgba(183,107,202,.42),transparent 30%),linear-gradient(135deg,#17091e 0%,#29182f 52%,#58077c 120%); color:white; }
.button-apricot { background:var(--sage); color:var(--ink); }
.button-purple { background:var(--coral); color:white; }
.page-intro { padding:120px 8vw; display:grid; grid-template-columns:22% 1fr; gap:8vw; }
.page-intro>span { text-transform:uppercase; font-size:12px; letter-spacing:.14em; padding-top:12px; }
.page-intro h2,.split-feature h2,.video-feature h2,.faq-section h2,.custom-song h2 { font:500 clamp(48px,6vw,84px)/.98 Georgia,serif; letter-spacing:-.05em; margin:0 0 28px; }
.page-intro p,.split-feature p,.video-feature p,.custom-song p { max-width:680px; font-size:18px; line-height:1.65; color:#705d76; }
.phase-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:#d9ccdd; border-top:1px solid #d9ccdd; border-bottom:1px solid #d9ccdd; }
.phase-grid article { background:var(--cream); padding:65px 4vw; min-height:390px; }
.phase-grid article>span,.request-guide div>span { color:var(--coral); font-size:12px; }
.phase-grid h3 { font:500 42px Georgia,serif; margin:75px 0 22px; }
.phase-grid p { line-height:1.65; color:#705d76; }
.split-feature { padding:130px 8vw; display:grid; grid-template-columns:1.15fr 1fr; gap:10vw; background:var(--paper); }
.split-feature h3 { font:500 30px Georgia,serif; margin:0 0 12px; }
.split-feature div:last-child p { margin:0 0 45px; }
.info-band { background:var(--sage); display:grid; grid-template-columns:repeat(3,1fr); }
.info-band div { padding:50px 4vw; border-right:1px solid rgba(41,24,47,.22); }
.info-band span { display:block; text-transform:uppercase; letter-spacing:.14em; font-size:11px; margin-bottom:17px; }
.info-band strong { font:500 24px/1.3 Georgia,serif; }
.page-cta { padding:130px 8vw; background:var(--coral); color:white; text-align:center; }
.page-cta h2 { font:500 clamp(55px,8vw,110px)/.9 Georgia,serif; max-width:1100px; margin:0 auto 28px; letter-spacing:-.055em; }
.page-cta>p:not(.eyebrow) { max-width:620px; margin:0 auto 35px; font-size:18px; line-height:1.6; }
.inner-footer { background:var(--paper); }
.footer-links { display:flex; justify-content:center; gap:22px; }
.video-feature { min-height:760px; display:grid; grid-template-columns:1fr 1fr; background:var(--cream); }
.video-feature video { width:100%; height:760px; object-fit:cover; display:block; background:var(--ink); }
.video-feature>div { padding:90px 8vw; align-self:center; }
.video-feature.reverse>div { order:0; }
.video-feature.reverse>video { order:1; }
.image-feature>img { width:100%; height:760px; object-fit:cover; display:block; }
.image-feature.reverse>img { order:1; }
.photo-story { min-height:760px; display:grid; grid-template-columns:1fr 1fr; background:linear-gradient(135deg,#32103f,#71128f 58%,#f2a06b 150%); color:white; }
.photo-story-image { min-width:0; overflow:hidden; }
.photo-story-image img { width:100%; height:100%; min-height:760px; object-fit:cover; object-position:center 34%; display:block; transition:transform .8s ease; }
.photo-story:hover .photo-story-image img { transform:scale(1.025); }
.photo-story-copy { padding:100px 8vw; align-self:center; }
.photo-story-copy h2 { font:700 clamp(65px,7vw,105px)/.72 "Corinthia",cursive; margin:0 0 38px; }
.photo-story-copy h2 em { color:#ffd29d; }
.photo-story-copy>p:not(.eyebrow) { color:#f7eaf8; font-size:18px; line-height:1.7; }
.reverse-story .photo-story-image { order:2; }
.dynamic-band { overflow:hidden; padding:62px 3vw; display:flex; justify-content:center; gap:4vw; background:linear-gradient(90deg,#f2a06b,#ffd193 48%,#c991d8); }
.dynamic-band p { margin:0; white-space:nowrap; font:700 clamp(42px,6vw,88px)/.8 "Corinthia",cursive; transition:transform .35s ease; }
.dynamic-band p:nth-child(2) { color:var(--coral); }
.dynamic-band:hover p:nth-child(1) { transform:translateX(-12px); }
.dynamic-band:hover p:nth-child(3) { transform:translateX(12px); }
.light-band { background:linear-gradient(90deg,#f7e8fa,#ffd4ae,#f7e8fa); }
.repertoire-moods { padding:115px 8vw; color:white; background:radial-gradient(circle at 15% 30%,rgba(242,160,107,.35),transparent 25%),linear-gradient(135deg,#210b29,#58077c); }
.repertoire-moods>div { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:55px; background:rgba(255,255,255,.22); }
.repertoire-moods article { min-height:340px; padding:44px 34px; background:rgba(31,8,40,.58); transition:background .3s,transform .3s; }
.repertoire-moods article:hover { background:rgba(242,160,107,.22); transform:translateY(-7px); }
.repertoire-moods span { color:#ffd29d; font-size:12px; }
.repertoire-moods h2 { font:700 64px/1 "Corinthia",cursive; margin:75px 0 18px; }
.repertoire-moods article p { color:#f2eaf4; line-height:1.6; }
.faq-section { padding:120px 15vw; }
.faq-section details { border-top:1px solid #c7b5cc; padding:25px 0; }
.faq-section details:last-child { border-bottom:1px solid #c7b5cc; }
.faq-section summary { font:500 24px Georgia,serif; cursor:pointer; }
.faq-section details p { color:#705d76; line-height:1.6; max-width:700px; }
.profile-grid { display:grid; grid-template-columns:1fr 1fr; }
.profile-grid article { padding:100px 7vw; min-height:620px; }
.profile-grid h2 { font:500 clamp(44px,5vw,72px)/1 Georgia,serif; letter-spacing:-.04em; margin:0 0 35px; }
.profile-grid p:last-child { font-size:18px; line-height:1.7; }
.profile-purple { background:var(--coral); color:white; }
.profile-apricot { background:var(--sage); }
.values { padding:120px 8vw; }
.values>div { display:grid; grid-template-columns:1fr 1fr; padding:28px 0; border-top:1px solid #c7b5cc; }
.values>div:last-child { border-bottom:1px solid #c7b5cc; }
.values strong { font:500 34px Georgia,serif; }
.values span { color:#705d76; line-height:1.5; }
.repertoire-list { padding:120px 8vw; }
.repertoire-list article { display:grid; grid-template-columns:80px 1fr 1fr; align-items:center; gap:30px; padding:38px 0; border-top:1px solid #c7b5cc; }
.repertoire-list article:last-child { border-bottom:1px solid #c7b5cc; }
.repertoire-list article>span { color:var(--coral); font-size:12px; }
.repertoire-list h2 { font:500 34px Georgia,serif; margin:0; }
.repertoire-list article p { color:#705d76; line-height:1.55; }
.custom-song { padding:100px 12vw; background:var(--sage); }
.custom-song>span { text-transform:uppercase; letter-spacing:.14em; font-size:11px; }
.custom-song h2 { max-width:950px; margin-top:30px; }
.contact-page { display:grid; grid-template-columns:1.15fr 1fr; min-height:720px; background:var(--coral); color:white; }
.contact-page>div:first-child { padding:110px 6vw; align-self:center; }
.contact-page>div:first-child>p:last-child { max-width:620px; font-size:18px; line-height:1.65; }
.contact-panel { background:var(--sage); color:var(--ink); padding:100px 6vw; display:flex; flex-direction:column; justify-content:center; }
.contact-panel h2 { font:500 clamp(45px,5vw,70px) Georgia,serif; margin:0 0 25px; }
.contact-panel>p:not(.eyebrow) { line-height:1.65; font-size:17px; margin-bottom:35px; }
.contact-options { display:flex; flex-direction:column; margin-top:55px; border-top:1px solid rgba(41,24,47,.25); }
.contact-options span { padding:17px 0; border-bottom:1px solid rgba(41,24,47,.25); }
.request-guide { padding:110px 8vw; display:grid; grid-template-columns:repeat(3,1fr); gap:35px; }
.request-guide>.eyebrow { grid-column:1/-1; }
.request-guide div { border-top:1px solid #c7b5cc; padding-top:25px; }
.request-guide h3 { font:500 30px Georgia,serif; margin:40px 0 14px; }
.request-guide p { color:#705d76; line-height:1.5; }
.form-section { padding:0 8vw 110px; }
.form-section h2 { font:500 clamp(38px,4.4vw,58px)/1.05 Georgia,serif; letter-spacing:-.04em; margin:14px 0 45px; }
.contact-form { display:grid; grid-template-columns:1fr 1fr; gap:26px 30px; background:var(--paper); padding:50px 6vw; border:1px solid #dfd2e3; }
.form-field { display:flex; flex-direction:column; gap:9px; }
.form-field-wide { grid-column:1/-1; }
.form-field label { font-size:12px; text-transform:uppercase; letter-spacing:.1em; color:#705d76; }
.form-field input,.form-field textarea { font:inherit; font-size:15px; padding:14px 16px; border:1px solid #cfbfd4; border-radius:3px; background:var(--cream); color:var(--ink); resize:vertical; }
.form-field input:focus,.form-field textarea:focus { outline:2px solid var(--coral); outline-offset:1px; }
.form-honeypot { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form-actions { display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.form-status { margin:0; font-size:14px; color:#705d76; }
.form-status.success { color:#2f7a3d; }
.form-status.error { color:#b3261e; }
@media (max-width:900px) { .contact-form { grid-template-columns:1fr; padding:38px 6vw; } }
.lesson-quote { padding:110px 12vw; background:linear-gradient(135deg,#2b073b,#58077c); color:white; }
.lesson-quote blockquote { max-width:1100px; margin:0 auto; font:italic 34px/1.45 Georgia,serif; }
.map-section { display:grid; grid-template-columns:.75fr 1.25fr; background:var(--ink); color:white; }
.map-section>div { padding:90px 7vw; align-self:center; }
.map-section h2 { font:500 clamp(44px,5vw,72px)/1 Georgia,serif; margin:0 0 24px; }
.map-section p:not(.eyebrow) { color:#f2eaf4; line-height:1.6; }
.map-section iframe { width:100%; min-height:540px; height:100%; border:0; display:block; }
.gallery-page { background:var(--cream); }
.gallery-hero { min-height:520px; padding:115px 8vw 85px; display:flex; flex-direction:column; justify-content:flex-end; color:white; background:radial-gradient(circle at 82% 18%,rgba(242,160,107,.5),transparent 27%),linear-gradient(135deg,#210b29,#58077c 65%,#8b43a7); }
.gallery-hero h1 { font:700 clamp(78px,12vw,170px)/.72 "Corinthia",cursive; letter-spacing:-.03em; margin:0 0 36px; }
.gallery-hero>p:last-child { max-width:660px; font-size:19px; line-height:1.6; margin:0; }
.event-gallery { padding:55px 4vw 120px; }
.event-tabs { display:flex; gap:12px; overflow-x:auto; padding:0 0 20px; scrollbar-width:thin; scroll-snap-type:x proximity; }
.event-tab { min-width:220px; padding:19px 21px; border:1px solid #cfbfd4; border-radius:999px; background:transparent; color:var(--ink); text-align:left; cursor:pointer; scroll-snap-align:start; transition:background .3s,color .3s,transform .3s,border-color .3s; }
.event-tab span,.event-tab small { display:block; white-space:nowrap; }
.event-tab span { font-weight:700; font-size:13px; }
.event-tab small { margin-top:6px; color:#705d76; font-size:11px; }
.event-tab:hover { transform:translateY(-3px); border-color:var(--coral); }
.event-tab.active { background:var(--coral); border-color:var(--coral); color:white; }
.event-tab.active small { color:#f2dff6; }
.event-panel { margin-top:38px; animation:eventReveal .55s cubic-bezier(.2,.75,.25,1) both; }
.event-panel-head { display:grid; grid-template-columns:1fr 2fr 1fr; align-items:end; gap:30px; padding:45px 0; border-top:1px solid #cfbfd4; }
.event-panel-head .eyebrow { margin:0; }
.event-panel-head h2 { font:500 clamp(46px,6vw,84px)/.92 Georgia,serif; letter-spacing:-.05em; margin:0; }
.event-panel-head>p:last-child { text-align:right; color:#705d76; }
.event-media-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.event-media { margin:0; overflow:hidden; background:#eaddeb; }
.event-media.photo:nth-child(5n+1) { grid-row:span 2; }
.event-media img,.event-media video { width:100%; height:100%; min-height:330px; display:block; object-fit:cover; }
.event-media img { transition:transform .6s ease; }
.event-media:hover img { transform:scale(1.035); }
.event-media.video { grid-column:span 2; background:var(--ink); color:white; }
.event-media.video video { aspect-ratio:16/9; min-height:0; background:#120719; }
.event-media figcaption { padding:16px 18px; font-size:12px; text-transform:uppercase; letter-spacing:.1em; }
@keyframes eventReveal { from { opacity:0; transform:translateY(22px); } to { opacity:1; transform:translateY(0); } }

@media (max-width:900px) {
  .nav-wrap { height:78px; grid-template-columns:1fr auto; }
  .nav-contact { display:none; }
  .menu-toggle { display:block; background:transparent; color:white; border:1px solid rgba(255,255,255,.55); padding:10px 14px; }
  .nav-links { position:absolute; top:78px; left:0; right:0; background:var(--paper); color:var(--ink); display:none; flex-direction:column; padding:30px 4vw; gap:24px; }
  .nav-links.open { display:flex; }
  .hero-content { padding-top:18vh; }
  .youtube-band { align-items:flex-start; flex-direction:column; }
  .hero h1 { font-size:clamp(50px,14vw,82px); }
  .intro { grid-template-columns:1fr; padding-top:85px; }
  .section-tag,.service-cards { grid-column:auto; }
  .service-cards { grid-template-columns:1fr; margin-top:35px; }
  .service-card { min-height:380px; }
  .visual-manifesto { min-height:620px; }
  .visual-manifesto h2 { font-size:clamp(76px,16vw,135px); }
  .statement-grid,.lessons { grid-template-columns:1fr; }
  .statement-grid { gap:55px; }
  .lesson-visual { min-height:520px; }
  .genres article { grid-template-columns:45px 1fr 30px; }
  .genres p { display:none; }
  footer { grid-template-columns:1fr 1.5fr auto; }
  .inner-nav { height:auto; padding-top:20px; padding-bottom:20px; grid-template-columns:1fr auto; }
  .inner-nav nav { grid-column:1/-1; order:3; margin-top:20px; overflow-x:auto; padding-bottom:5px; }
  .inner-contact { justify-self:end; }
  .page-hero { min-height:600px; padding-left:6vw; padding-right:6vw; }
  .page-intro,.split-feature { grid-template-columns:1fr; gap:45px; padding-left:6vw; padding-right:6vw; }
  .phase-grid,.info-band,.profile-grid,.request-guide,.map-section { grid-template-columns:1fr; }
  .info-band div { border-right:0; border-bottom:1px solid rgba(41,24,47,.22); }
  .video-feature,.contact-page,.photo-story { grid-template-columns:1fr; }
  .video-feature video { height:620px; }
  .video-feature.reverse>div,.video-feature.reverse>video { order:initial; }
  .image-feature.reverse>img,.reverse-story .photo-story-image { order:initial; }
  .photo-story-image img { min-height:620px; height:620px; }
  .repertoire-moods>div { grid-template-columns:1fr; }
  .values>div { grid-template-columns:1fr; gap:12px; }
  .repertoire-list article { grid-template-columns:45px 1fr; }
  .repertoire-list article p { grid-column:2; }
  .map-section iframe { min-height:430px; }
  .event-media-grid { grid-template-columns:repeat(2,1fr); }
  .event-panel-head { grid-template-columns:1fr; }
  .event-panel-head>p:last-child { text-align:left; }
}

@media (max-width:560px) {
  .top-bar { min-height:42px; padding-top:7px; padding-bottom:7px; font-size:9px; }
  .top-socials,.top-contacts { gap:12px; }
  .top-contacts a:first-child { display:none; }
  .brand>span:last-child { display:none; }
  .client-logo { width:160px; max-width:52vw; }
  .hero { min-height:820px; background-position:58% center; }
  .hero-content { text-align:left; align-items:flex-start; padding:18vh 4vw 120px; }
  .hero h1 { line-height:.93; }
  .hero-copy { margin-left:0; max-width:90%; }
  .hero-areas { display:none; }
  .intro-main h2,.lesson-copy h2,.repertoire h2 { font-size:49px; }
  .intro,.statement,.repertoire,.contact { padding-left:6vw; padding-right:6vw; }
  .lesson-copy { padding:80px 6vw; }
  .contact h2 { font-size:62px; }
  .contact-meta { flex-direction:column; gap:12px; }
  .visual-manifesto { min-height:560px; align-items:flex-start; text-align:left; padding-left:6vw; padding-right:6vw; }
  .visual-manifesto h2 { font-size:74px; line-height:.8; }
  .manifesto-copy { margin-left:0; }
  .glow-one { left:-80px; }
  .glow-two { right:-150px; }
  .page-hero h1,.contact-page h1 { font-size:58px; }
  .page-hero { min-height:560px; }
  .inner-nav .brand>span:last-child { display:block; }
  .inner-nav nav { gap:20px; font-size:12px; }
  .inner-contact { display:none; }
  .phase-grid article { min-height:auto; }
  .phase-grid h3 { margin-top:45px; }
  .video-feature video { height:520px; }
  .image-feature>img,.photo-story-image img { height:520px; min-height:520px; }
  .photo-story-copy { padding:78px 6vw; }
  .dynamic-band { justify-content:flex-start; overflow-x:hidden; gap:22px; }
  .dynamic-band p { font-size:42px; }
  .video-feature>div,.profile-grid article { padding:75px 6vw; }
  .faq-section,.repertoire-list,.values,.request-guide,.page-cta { padding-left:6vw; padding-right:6vw; }
  .lesson-quote { padding:80px 6vw; }
  .lesson-quote blockquote { font-size:26px; }
  footer { grid-template-columns:1fr; text-align:center; }
  .footer-identity { display:flex; justify-content:center; }
  .footer-contacts { align-items:center; }
  .footer-socials { justify-content:center; }
  .footer-legal { grid-column:1; }
  .whatsapp-float { left:12px; bottom:34px; padding:12px 18px; }
  .music-toggle { right:12px; bottom:30px; width:58px; height:58px; }
  .youtube-band { padding:70px 6vw; }
  .gallery-hero { min-height:460px; padding:90px 6vw 65px; }
  .event-gallery { padding-left:6vw; padding-right:6vw; }
  .event-tab { min-width:195px; }
  .event-media-grid { grid-template-columns:1fr; }
  .event-media.photo:nth-child(5n+1) { grid-row:auto; }
  .event-media.video { grid-column:auto; }
}
