.elementor-1141 .elementor-element.elementor-element-54481b8{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1141 .elementor-element.elementor-element-30a6e7d{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1141 .elementor-element.elementor-element-600d249{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1141 .elementor-element.elementor-element-679fb82{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1141 .elementor-element.elementor-element-b8b1b6d > .elementor-widget-container{padding:0px 0px 0px 0px;}@media(min-width:768px){.elementor-1141 .elementor-element.elementor-element-30a6e7d{--width:100%;}.elementor-1141 .elementor-element.elementor-element-600d249{--width:100%;}}/* Start custom CSS for html, class: .elementor-element-b3956bd *//* ============================================= */
/* 1. Page Hero Section (Cursos - Alt Style)    */
/* Inspired by reference image                   */
/* ============================================= */
.ns-page-hero.ns-cursos-hero--alt {
  background-color: var(--clr-bg-dark, #1F1F1F); 
  padding: var(--space-xxxl, 100px) 0 var(--space-xxl, 80px) 0; /* Adjust padding */
  position: relative;
  overflow: visible; /* ALLOW overlap */
  z-index: 1; /* Stacking context */
}

/* Subtle Geometric Pattern Overlay */
.ns-page-hero-pattern-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  /* === Example Subtle Pattern (SVG) - Adjust color/opacity === */
  /* (You might need to create/find a better SVG pattern) */
  background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23F8F9FA' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  opacity: 0.8; /* Adjust pattern opacity */
  z-index: 0; /* Behind content */
  pointer-events: none;
}


.ns-page-hero-container--alt {
  /* Uses global .ns-page-container for max-width & L/R padding or define here */
  max-width: 960px; /* Narrower container for centered text */
  margin: 0 auto;
  padding: 0 var(--space-md, 24px);
  position: relative; 
  z-index: 2; /* Above pattern */
  text-align: center; /* Center content */
}

/* Breadcrumbs Styling */
.ns-page-hero-breadcrumbs {
    margin-bottom: var(--space-lg, 40px);
    font-family: 'Roboto', sans-serif;
    font-size: 0.9rem;
    color: var(--clr-text-muted-dark, #E0E0E0); /* Muted color */
}
.ns-page-hero-breadcrumbs ol {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--space-xs, 8px);
}
.ns-page-hero-breadcrumbs li:not(:last-child)::after {
    content: '/'; /* Separator */
    margin-left: var(--space-xs, 8px);
    opacity: 0.5;
}
.ns-page-hero-breadcrumbs a {
    color: var(--clr-text-muted-dark, #E0E0E0);
    text-decoration: none;
    transition: color 0.3s ease;
}
.ns-page-hero-breadcrumbs a:hover {
    color: var(--clr-text-light, #F8F9FA); /* Slightly brighter on hover */
}
.ns-page-hero-breadcrumbs [aria-current="page"] {
    color: var(--clr-text-light, #F8F9FA); /* Current page color */
    font-weight: 500;
}


/* Centered Hero Title */
.ns-page-hero-title--alt {
  font-family: 'Poppins', sans-serif; /* DS Font - Can change if needed */
  /* font-family: 'Times New Roman', Times, serif; */ /* Example Serif */
  font-weight: 600; /* Use 600 or 700 */
  font-size: clamp(2.6rem, 7vw, 4.5rem); /* Large size */
  line-height: 1.2; 
  color: var(--clr-text-light, #F8F9FA); 
  margin: 0 auto; /* Center block */
  max-width: 800px; /* Limit line length */
  /* Optional subtle text shadow for depth */
  /* text-shadow: 0 1px 3px rgba(0,0,0,0.5); */
}

/* Overlapping Decorative Element */
.ns-hero-overlap-deco {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translate(-50%, 50%); /* Center horizontally, push down 50% */
    width: 130px; /* Size of the element */
    height: 130px;
    z-index: 3; /* Above hero, potentially above next section BG */
    pointer-events: none; /* Non-interactive */
}
.ns-hero-overlap-circle {
    width: 100%;
    height: 100%;
    background-color: var(--clr-bg-light, #F8F9FA); /* Light background */
    border-radius: 50%;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
    border: 3px solid var(--clr-bg-card, #FFFFFF); /* Inner border */
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative; /* For potential inner text positioning */
}
.ns-hero-overlap-monogram {
    font-family: 'Poppins', sans-serif; /* Or Serif if changed */
    font-size: 2.5rem;
    font-weight: 600;
    color: var(--clr-accent-primary, #0D6E7A); /* Teal color */
    line-height: 1;
}
/* Placeholder for curved text if added later */
/* .ns-hero-overlap-text { ... } */


/* Responsive Adjustments */
@media (max-width: 991px) {
   .ns-page-hero.ns-cursos-hero--alt {
     padding-top: var(--space-xxl, 80px);
     padding-bottom: var(--space-xl, 64px);
   }
   .ns-page-hero-title--alt {
      font-size: clamp(2.2rem, 6vw, 3.5rem);
   }
   .ns-hero-overlap-deco {
      width: 110px; height: 110px;
   }
   .ns-hero-overlap-monogram { font-size: 2rem; }
}

@media (max-width: 767px) {
  .ns-page-hero.ns-cursos-hero--alt {
    padding-top: var(--space-xl, 64px);
    padding-bottom: var(--space-lg, 40px);
  }
  .ns-page-hero-breadcrumbs {
     margin-bottom: var(--space-md, 24px);
     font-size: 0.8rem;
  }
  .ns-page-hero-title--alt {
      font-size: clamp(1.8rem, 7vw, 2.8rem);
   }
   .ns-hero-overlap-deco {
      width: 90px; height: 90px;
   }
    .ns-hero-overlap-monogram { font-size: 1.6rem; }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-db46fae *//* ======================================================== */
/* 2. Introductory Section (Cursos - Realistic Piano)       */
/* Style: Premium, Light BG, Accurate Piano Layout      */
/* ======================================================== */

.ns-page-section.ns-intro-section--piano-keyboard {
    background-color: var(--clr-bg-light, #F8F9FA); 
    /* === Padding Top for hero overlap === */
    padding-top: calc(var(--space-xxxl, 100px) + 65px); 
    padding-bottom: var(--space-xxxl, 100px); 
    position: relative; 
    z-index: 0; 
    overflow: hidden; 
}

.ns-page-container.ns-intro-container--cursos {
    max-width: 1140px; /* Adjust width as needed */
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--space-md, 24px); 
    padding-right: var(--space-md, 24px);
}

.ns-section-heading.ns-intro-heading--cursos {
    /* Styles remain the same */
    font-family: 'Poppins', sans-serif;
    font-size: clamp(2.2rem, 5vw, 3.2rem); 
    font-weight: 600; 
    line-height: 1.3;
    color: var(--clr-text-dark, #212529);
    margin-bottom: var(--space-md, 24px); 
    text-align: center; 
}

.ns-intro-divider {
    /* Styles remain the same */
    width: 80px; 
    height: 3px; 
    background-color: var(--clr-accent-primary, #0D6E7A); 
    margin: 0 auto var(--space-xl, 64px) auto; 
    border-radius: 2px;
}

/* Piano Keyboard Wrapper */
.ns-piano-keyboard-wrapper {
    background: linear-gradient(to bottom, #e8e8e8, #fdfdfd); /* Lighter gradient */
    border: 1px solid #c8c8c8;
    border-radius: var(--radius-md, 8px);
    padding: var(--space-sm, 16px); 
    box-shadow: 0 10px 30px rgba(0,0,0,0.09), inset 0 1px 2px rgba(255,255,255,0.6);
    margin-bottom: var(--space-lg); 
    display: block; /* Desktop display */
}

.ns-piano-key-container {
    display: flex; /* White keys determine width */
    height: 300px; /* Increased height for more realism */
    position: relative; /* Context for black keys */
    background-color: #bbb; /* Gap color between white keys */
    border-radius: 4px; 
    overflow: hidden;
}

/* Base Piano Key Styles */
.ns-piano-key {
    border: 1px solid #b0b0b0; 
    transition: background-color 0.1s ease;
    position: relative; 
}

/* White Key Styling */
.ns-piano-key--white {
    background: linear-gradient(to bottom, #ffffff 97%, #f0f0f0 100%);
    flex-grow: 1; /* Take up equal space */
    height: 100%; 
    border-radius: 0 0 6px 6px; 
    box-shadow: inset 0 -4px 6px rgba(0,0,0,0.07);
    z-index: 1; /* Behind black keys */
    display: flex;
    flex-direction: column;
    justify-content: flex-end; /* Text at bottom */
    align-items: center;
    padding: var(--space-md, 24px) var(--space-xs, 8px); /* Adjust padding */
    text-align: center;
    cursor: default; 
}
/* Remove border between adjacent white keys for realism */
.ns-piano-key--white + .ns-piano-key--white {
    border-left: none;
}

.ns-piano-key--white:active {
    background: linear-gradient(to bottom, #f5f5f5 97%, #e5e5e5 100%);
    box-shadow: inset 0 -2px 4px rgba(0,0,0,0.1);
}

.ns-piano-key-text {
    font-family: 'Poppins', sans-serif; 
    font-size: clamp(0.9rem, 1.6vw, 1.05rem); /* Adjust size */
    line-height: 1.5; 
    font-weight: 500; 
    color: var(--clr-text-dark, #212529);
    margin: 0; 
    max-width: 95%; 
    /* Optional: Prevent text selection */
    /* user-select: none; */ 
}
.ns-piano-key-text strong {
    font-weight: 700; 
    color: var(--clr-accent-primary, #0D6E7A); 
}

/* Black Key Styling - Absolute Positioned */
.ns-piano-key--black {
    position: absolute; 
    background: linear-gradient(to bottom, #3a3a3a 0%, #111 100%);
    width: 8.5%; /* Approx 60% of white key width */
    height: 60%; /* Shorter */
    top: 0; 
    border: 1px solid #000;
    border-top: none;
    border-radius: 0 0 4px 4px;
    box-shadow: inset 0 -5px 6px rgba(255,255,255,0.1), 0 4px 7px rgba(0,0,0,0.4);
    z-index: 2; /* Above white keys */
    cursor: default;
}

.ns-piano-key--black:active {
     background: linear-gradient(to bottom, #222 0%, #000 100%);
     box-shadow: inset 0 -2px 3px rgba(255,255,255,0.1), 0 1px 2px rgba(0,0,0,0.4);
}

/* Positioning Black Keys (Based on 7 white keys ~14.28% each, black ~8.5% wide -> offset by ~4.25%) */
.ns-piano-key--black.black-key-1 { left: calc(14.28% - 4.25%); } /* C# */
.ns-piano-key--black.black-key-2 { left: calc(28.57% - 4.25%); } /* D# */
.ns-piano-key--black.black-key-3 { left: calc(57.14% - 4.25%); } /* F# */
.ns-piano-key--black.black-key-4 { left: calc(71.42% - 4.25%); } /* G# */
.ns-piano-key--black.black-key-5 { left: calc(85.71% - 4.25%); } /* A# */


/* Mobile Fallback Text */
.ns-intro-text-mobile-fallback {
    display: none; /* Hidden by default */
    font-family: 'Roboto', sans-serif;
    font-size: 1rem;
    line-height: 1.7;
    color: var(--clr-text-secondary, #6C757D);
    text-align: center;
    margin-top: var(--space-lg);
}

/* Responsive Adjustments */
@media (max-width: 991px) { /* Tablet */
   .ns-page-section.ns-intro-section--piano-keyboard {
     padding-top: calc(var(--space-xxl, 80px) + 55px); 
     padding-bottom: var(--space-xxl, 80px);
   }
   .ns-piano-key-container { height: 260px; } /* Adjust height */
   .ns-piano-key-text { font-size: clamp(0.8rem, 1.5vw, 0.95rem); }
   .ns-piano-key--black { width: 8%; height: 58%; } /* Adjust black keys */
    /* Recalculate black key positions for tablet if needed, depends on container width */
   .ns-piano-key--black.black-key-1 { left: calc(14.28% - 4%); } 
   .ns-piano-key--black.black-key-2 { left: calc(28.57% - 4%); } 
   .ns-piano-key--black.black-key-3 { left: calc(57.14% - 4%); } 
   .ns-piano-key--black.black-key-4 { left: calc(71.42% - 4%); } 
   .ns-piano-key--black.black-key-5 { left: calc(85.71% - 4%); } 
}

@media (max-width: 767px) { /* Mobile */
  .ns-page-section.ns-intro-section--piano-keyboard {
    padding-top: calc(var(--space-xl, 64px) + 45px); 
    padding-bottom: var(--space-xl, 64px);
  }
   .ns-section-heading.ns-intro-heading--cursos {
       font-size: clamp(1.8rem, 6vw, 2.4rem); 
   }
   .ns-intro-divider {
       margin-bottom: var(--space-lg, 40px); 
   }
    /* === Hide Keyboard, Show Fallback Text === */
   .ns-piano-keyboard-wrapper {
       display: none; 
   }
   .ns-intro-text-mobile-fallback {
       display: block; 
   }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-4f6ac8e *//* ========================================================================== */
/* Cursos Page - Course Grid Section Styles - v3.5 (Fixes & Enhancements)   */
/* Fixes card transparency issue, adds BG elements, keeps enhancements      */
/* ========================================================================== */

/* 0. Keyframes & Reduced Motion (Ensure defined globally) */
@keyframes ns-content-fade-slide-up {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes ns-bg-pulse { /* Added Keyframe */
    0%, 100% { opacity: 0.08; transform: scale(1); }
    50% { opacity: 0.15; transform: scale(1.03); }
}

/* Ensure HSL variables defined globally in :root */
/* :root { --clr-accent-primary-hsl: 188 82% 26%; ...etc } */

/* --- Section Container --- */
.ns-courses-section-v3_2.ns-cursos-page-grid {
    background: linear-gradient(180deg, var(--clr-bg-light, #F8F9FA) 0%, #FFFFFF 70%, #FDFEFF 100%); 
    padding: calc(var(--space-xxxl, 100px) * 1.2) 0 !important;
    overflow: hidden;
    position: relative;
}

/* === Added: Subtle Background Elements === */
.ns-courses-section-v3_2 .ns-courses-bg-element {
    position: absolute;
    border-radius: 50%;
    background-color: hsla(var(--clr-accent-primary-hsl, 188, 82%, 26%), 0.05);
    z-index: 0;
    pointer-events: none;
    animation: ns-bg-pulse 10s ease-in-out infinite alternate;
}
.ns-courses-section-v3_2 .ns-courses-bg-element--1 {
    width: 40vw; height: 40vw;
    top: 10%; left: -15vw;
    animation-delay: 0s;
}
.ns-courses-section-v3_2 .ns-courses-bg-element--2 {
    width: 35vw; height: 35vw;
    bottom: 5%; right: -12vw;
    animation-delay: -5s;
}
/* Ensure reduced motion disables these */
@media (prefers-reduced-motion: reduce) {
    .ns-courses-section-v3_2 .ns-courses-bg-element {
        display: none !important;
        animation: none !important; /* Double ensure animation stops */
    }
}


/* Container for header & grid (Scoped) */
.ns-courses-section-v3_2 .ns-courses-container-v3_2 {
    width: 100%;
    max-width: 1360px; 
    margin: 0 auto;
    padding: 0 var(--space-lg, 40px) 0 var(--space-xxl, 80px) !important; 
    position: relative; /* Ensures content is above BG elements */
    z-index: 1;
}

/* Header (Scoped - Text Updated via HTML) */
.ns-courses-section-v3_2 .ns-courses-header-v3_2 {
    text-align: center;
    margin-bottom: var(--space-xxl, 80px);
    opacity: 0; /* Keep initial state for animation */
    animation: ns-content-fade-slide-up 0.7s cubic-bezier(0.25, 0.8, 0.25, 1) 0.1s forwards;
}
/* Ensure reduced motion handles header animation */
@media (prefers-reduced-motion: reduce) {
    .ns-courses-section-v3_2 .ns-courses-header-v3_2 { animation: none !important; opacity: 1 !important; }
}

.ns-courses-section-v3_2 .ns-courses-pre-headline-v3_2 {
    font-family: 'Poppins', sans-serif;
    font-size: 1rem;
    font-weight: 600;
    color: var(--clr-accent-primary, #0D6E7A);
    margin-bottom: var(--space-sm, 16px);
    text-transform: uppercase;
    letter-spacing: 1.2px;
    display: block;
}

.ns-courses-section-v3_2 .ns-courses-heading-v3_2 {
    font-family: 'Poppins', sans-serif;
    font-size: clamp(2.4rem, 5.5vw, 3.4rem);
    font-weight: 700;
    line-height: 1.25;
    color: var(--clr-text-dark, #212529);
    margin-top: 0;
    margin-bottom: var(--space-md, 24px);
}

.ns-courses-section-v3_2 .ns-courses-subheading-v3_2 {
    font-family: 'Roboto', sans-serif;
    font-size: clamp(1.1rem, 2.5vw, 1.2rem);
    line-height: 1.8;
    color: var(--clr-text-secondary, #6C757D);
    max-width: 750px;
    margin: 0 auto;
}

/* --- Course Grid (Scoped) --- */
.ns-courses-section-v3_2 .ns-courses-grid-v3_2 {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(290px, 100%), 1fr)); 
    gap: var(--space-lg, 40px);
    text-align: left;
}

/* --- Course Card Styling (Scoped - Enhanced v3.5 - Animation Fix) --- */
.ns-courses-section-v3_2 .ns-course-card-v3_2 {
    background-color: var(--clr-bg-card, #FFFFFF);
    border-radius: var(--radius-xl, 16px);
    padding: clamp(var(--space-md, 24px), 3vw, var(--space-lg, 40px));
    box-shadow: 0 6px 15px rgba(100, 110, 130, 0.05), 0 10px 40px rgba(100, 110, 130, 0.09);
    display: flex;
    flex-direction: column;
    border: 1px solid var(--clr-border-light, #E0E0E0); 
    transition: transform 0.35s var(--timing-function-smooth),
                box-shadow 0.35s var(--timing-function-smooth),
                border-color 0.35s var(--timing-function-smooth); /* Removed opacity/transform from transition */
    position: relative; 
    overflow: hidden; 
    will-change: transform, box-shadow; /* Removed opacity */
    /* === FIX: Apply animation directly, remove initial hidden state === */
    /* opacity: 0; */ /* REMOVED */
    /* transform: translateY(20px); */ /* REMOVED */
    /* Apply animation with a base delay - use JS or specific classes for stagger */
    animation: ns-content-fade-slide-up 0.6s cubic-bezier(0.165, 0.84, 0.44, 1) 0.3s forwards; 
    /* Start all animations after 0.3s, remove individual :nth-child delays below */
}

/* === REMOVED Nth-Child Animation Rules === */
/* Removed all lines like: .ns-courses-section-v3_2 .ns-courses-grid-v3_2 > *:nth-child(X) { animation: ... } */

/* Card Hover State (Scoped - Enhanced v3.4) */
.ns-courses-section-v3_2 .ns-course-card-v3_2:hover {
    transform: translateY(-8px); 
    box-shadow: 0 10px 25px rgba(100, 110, 130, 0.08), 0 15px 50px rgba(100, 110, 130, 0.12); 
    border-color: hsla(var(--clr-accent-primary-hsl, 188, 82%, 26%), 0.3); 
}

/* Hover Gradient Overlay (v3.4) */
.ns-courses-section-v3_2 .ns-course-card-v3_2::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 60%; 
    background: linear-gradient(to top, hsla(var(--clr-accent-primary-hsl, 188, 82%, 26%), 0.1), transparent);
    opacity: 0;
    transition: opacity 0.35s var(--timing-function-smooth);
    z-index: 0; 
    pointer-events: none;
}
.ns-courses-section-v3_2 .ns-course-card-v3_2:hover::after {
    opacity: 1;
}


/* --- Icon Styles (Scoped & Adjusted for IMG - Kept Size) --- */
.ns-courses-section-v3_2 .ns-course-card-icon-wrapper-v3_2 {
    margin-bottom: var(--space-lg, 40px); 
    text-align: left;
    line-height: 1;
    position: relative; 
    z-index: 1;
}
.ns-courses-section-v3_2 .ns-course-card-icon-v3_2 {
    width: clamp(44px, 5.5vw, 60px); 
    height: clamp(44px, 5.5vw, 60px);
    object-fit: contain;
    display: inline-block;
    vertical-align: middle;
    transition: transform 0.3s ease;
}
.ns-courses-section-v3_2 .ns-course-card-v3_2:hover .ns-course-card-icon-v3_2 {
    transform: scale(1.1);
}

/* Card Content (Scoped - Ensure above overlay) */
.ns-courses-section-v3_2 .ns-course-card-content-v3_2 {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    position: relative; 
    z-index: 1;
}

.ns-courses-section-v3_2 .ns-course-card-title-v3_2 {
    font-family: 'Poppins', sans-serif;
    font-size: clamp(1.15rem, 2.5vw, 1.3rem);
    font-weight: 600;
    color: var(--clr-text-dark, #212529);
    margin: 0 0 var(--space-sm, 16px) 0;
    line-height: 1.35;
}
.ns-courses-section-v3_2 .ns-course-card-title-v3_2 a { text-decoration: none; color: inherit; transition: color 0.3s ease;}
.ns-courses-section-v3_2 .ns-course-card-title-v3_2 a:hover,
.ns-courses-section-v3_2 .ns-course-card-title-v3_2 a:focus-visible { 
    color: var(--clr-accent-primary, #0D6E7A); 
    outline: none; 
}

.ns-courses-section-v3_2 .ns-course-card-description-v3_2 {
    font-family: 'Roboto', sans-serif;
    font-size: 0.95rem;
    line-height: 1.7;
    color: var(--clr-text-secondary, #6C757D);
    margin: 0 0 var(--space-lg, 40px) 0;
    flex-grow: 1;
}

.ns-courses-section-v3_2 .ns-course-card-link-v3_2 {
    font-family: 'Poppins', sans-serif;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--clr-accent-primary, #0D6E7A);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    margin-top: auto;
    transition: color 0.3s ease;
}
.ns-courses-section-v3_2 .ns-course-card-link-v3_2:hover,
.ns-courses-section-v3_2 .ns-course-card-link-v3_2:focus-visible { 
    color: var(--clr-text-dark, #212529); 
    outline: none; 
}
.ns-courses-section-v3_2 .ns-course-card-link-v3_2 .ns-arrow {
    display: inline-block;
    margin-left: 6px;
    font-size: 1.1em;
    transition: transform 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
}
.ns-courses-section-v3_2 .ns-course-card-link-v3_2:hover .ns-arrow,
.ns-courses-section-v3_2 .ns-course-card-link-v3_2:focus-visible .ns-arrow { 
    transform: translateX(5px); 
}

/* Card Focus Visible State (v3.4) */
.ns-courses-section-v3_2 .ns-course-card-v3_2:focus-within {
    transform: translateY(-8px); 
    box-shadow: 0 10px 25px rgba(100, 110, 130, 0.08), 0 15px 50px rgba(100, 110, 130, 0.12);
    border-color: hsla(var(--clr-accent-primary-hsl, 188, 82%, 26%), 0.3);
    outline: 2px solid var(--clr-accent-tertiary); 
    outline-offset: 3px;
}


/* --- Responsive Adjustments (Scoped - Same as v3.4) --- */
@media (max-width: 1199px) {
     .ns-courses-section-v3_2 .ns-courses-grid-v3_2 {
        grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
    }
}
@media (max-width: 991px) { /* Tablet */
    .ns-courses-section-v3_2 { padding: var(--space-xxl, 80px) 0 !important; }
    .ns-courses-section-v3_2 .ns-courses-container-v3_2 { padding: 0 var(--space-lg, 40px) !important; }
    .ns-courses-section-v3_2 .ns-courses-grid-v3_2 { gap: var(--space-lg, 40px); }
}

@media (max-width: 767px) { /* Mobile */
     .ns-courses-section-v3_2 { padding: var(--space-xl, 64px) 0 !important; }
     .ns-courses-section-v3_2 .ns-courses-container-v3_2 { padding: 0 var(--space-md, 24px) !important; }
     .ns-courses-section-v3_2 .ns-courses-header-v3_2 { text-align: left; margin-bottom: var(--space-xl, 64px);}
     .ns-courses-section-v3_2 .ns-courses-subheading-v3_2 { margin-left: 0; max-width: none; }
     .ns-courses-section-v3_2 .ns-courses-heading-v3_2 { font-size: clamp(2rem, 7vw, 2.5rem); }
     .ns-courses-section-v3_2 .ns-courses-grid-v3_2 { gap: var(--space-md, 24px); }
     .ns-courses-section-v3_2 .ns-course-card-v3_2 { padding: var(--space-md, 24px); }
}

/* Reduced motion for cards (Scoped - Adjusted for no initial hide) */
@media (prefers-reduced-motion: reduce) {
  /* Removed initial animation disable for base card as it's no longer hidden */
  /* .ns-courses-section-v3_2 .ns-course-card-v3_2 { animation: none !important; opacity: 1 !important; transform: none !important;} */
  .ns-courses-section-v3_2 .ns-course-card-v3_2 {
        transition: box-shadow 0.3s ease, border-color 0.3s ease !important; /* Keep transitions */
        animation: none !important; /* Disable fade-slide */
        opacity: 1 !important; /* Ensure visible */
        transform: none !important; /* Ensure no transform */
  }
  .ns-courses-section-v3_2 .ns-course-card-v3_2:hover,
  .ns-courses-section-v3_2 .ns-course-card-v3_2:focus-within { 
      transform: none !important; /* No lift */
      box-shadow: 0 6px 15px rgba(100, 110, 130, 0.06), 0 12px 40px rgba(100, 110, 130, 0.1) !important; /* Simple shadow */
      border-color: hsla(var(--clr-accent-primary-hsl, 188, 82%, 26%), 0.2) !important; /* Simple border */
  }
   .ns-courses-section-v3_2 .ns-course-card-v3_2:focus-within {
       outline: none !important; /* Remove orange ring */
   }
   .ns-courses-section-v3_2 .ns-course-card-v3_2::after { display: none !important; } /* Remove gradient */
   .ns-courses-section-v3_2 .ns-course-card-v3_2:hover .ns-course-card-icon-v3_2 { transform: none !important; }
   .ns-courses-section-v3_2 .ns-course-card-link-v3_2 .ns-arrow { transition: none !important; }
   .ns-courses-section-v3_2 .ns-course-card-link-v3_2:hover .ns-arrow { transform: none !important; }
   /* Ensure BG elements are also disabled */
   .ns-courses-section-v3_2 .ns-courses-bg-element { display: none !important; animation: none !important; }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-b8b1b6d *//* ================================================================= */
/* 4. Call to Action Section (Cursos Page - Direct Button & New BG) */
/* Styles button directly, adds varied music background elements   */
/* ================================================================= */

/* Ensure global :root variables and keyframes are defined */
/* :root { --clr-accent-primary: #0D6E7A; ... etc } */
/* @keyframes ns-content-fade-slide-up { ... } */
/* @keyframes ns-bg-pulse { ... } */ /* Optional pulse for new elements */


.ns-page-section.ns-cta-section--cursos {
    background: linear-gradient(135deg, var(--clr-bg-dark, #1F1F1F) 0%, #2a2a2e 100%); 
    padding: var(--space-xxxl, 100px) 0; 
    position: relative; 
    overflow: hidden; 
    color: var(--clr-text-light, #F8F9FA);
}

/* === NEW: Varied Music Background Elements === */
.ns-page-section.ns-cta-section--cursos::before,
.ns-page-section.ns-cta-section--cursos::after,
.ns-page-container.ns-cta-container--cursos::before, /* Added for more elements */
.ns-page-container.ns-cta-container--cursos::after { /* Added for more elements */
    content: '';
    position: absolute;
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    opacity: 0.05; /* Adjusted opacity */
    z-index: 0; 
    pointer-events: none;
    /* animation: ns-bg-pulse 15s ease-in-out infinite alternate; */ /* Keep pulse optional */
}

/* Element 1: Eighth Note (Top Left) */
.ns-page-section.ns-cta-section--cursos::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512' fill='%23F8F9FA'%3E%3Cpath d='M384 64v384c0 17.7-14.3 32-32 32s-32-14.3-32-32V215.6l-83.3-31.3c-17.9-6.7-37.4-9.3-56.7-9.3c-70.7 0-128 57.3-128 128s57.3 128 128 128s128-57.3 128-128V100.3l40.7-15.3C378.2 81.7 384 74.4 384 64zM128 384c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z'/%3E%3C/svg%3E");
    width: 22vw; height: 22vw;
    max-width: 220px; max-height: 220px;
    top: 15%; left: -6%;
    transform: rotate(-20deg);
    /* animation-delay: -1s; */
}

/* Element 2: Beamed Sixteenth Notes (Bottom Right) */
.ns-page-section.ns-cta-section--cursos::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' fill='%23F8F9FA'%3E%3Cpath d='M499.1 44.49C503.4 45.38 507.2 48.49 509.3 52.54C511.5 56.58 511.5 61.48 509.5 65.51L440.1 192.8L448.1 192.8C465.7 192.8 480.1 207.2 480.1 224.8C480.1 242.4 465.7 256.8 448.1 256.8L180.7 256.8C168.3 256.8 157.1 250.3 150.6 240.1L53.04 77.58L64.04 77.58C81.61 77.58 96.04 63.16 96.04 45.58C96.04 27.1 81.61 13.58 64.04 13.58L19.7 13.58C15.18 13.58 10.82 15.13 7.361 17.9C3.911 20.68 1.611 24.55 .9411 28.91C.2711 33.27 .2711 37.94 .9411 42.29L93.01 210.1C102.4 224.7 117.6 234.7 134.7 237.8L134.7 384C134.7 401.6 149.1 415.1 166.7 415.1C184.2 415.1 198.7 401.6 198.7 384L198.7 236.1L431.7 236.1C439.3 236.1 446.6 233.9 452.8 229.9L509.5 183.1C512.7 179.1 513.9 174.3 513.1 169.6C512.3 164.9 509.7 160.8 506.1 158.1L198.7 8.33C193.5 4.98 187.4 3.158 181.2 3.158C174.1 3.158 168.3 4.98 163.1 8.33L7.361 109.9C3.911 112.7 1.611 116.5 .9411 120.9C.2711 125.3 .2711 129.9 .9411 134.3L64.04 256.8L64.04 384C64.04 437 107.1 480 160 480C212.9 480 256 437 256 384L256 287.7L441 287.7C456.1 287.7 469.9 281.5 479.1 271.2L509.5 240.1C511.5 238.1 512.9 235.6 513.5 232.8C514.1 230.1 514.1 227.2 513.5 224.4L448.1 94.39L499.1 44.49z'/%3E%3C/svg%3E");
    width: 28vw; height: 28vw;
    max-width: 300px; max-height: 300px;
    bottom: 8%; right: -7%;
    transform: rotate(10deg);
     /* animation-delay: -6s; */
}

/* Element 3: Simple Staff Lines (Mid Left - On Container) */
.ns-page-container.ns-cta-container--cursos::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 50' fill='none' stroke='%23F8F9FA' stroke-width='1.5'%3E%3Cpath d='M0 10 H100 M0 20 H100 M0 30 H100 M0 40 H100'/%3E%3C/svg%3E");
    width: 150px; height: 75px;
    top: 30%; left: -12%;
    transform: rotate(-5deg);
    opacity: 0.03; /* Extra subtle */
     /* animation-delay: -3s; */
}

/* Element 4: Single Quarter Note (Mid Right - On Container) */
.ns-page-container.ns-cta-container--cursos::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512' fill='%23F8F9FA'%3E%3Cpath d='M384 64v384c0 17.7-14.3 32-32 32s-32-14.3-32-32V154.6l-175.4 65.8C118.7 233.1 96 255.4 96 288c0 39.8 32.2 72 72 72s72-32.2 72-72V179.3l107.9-40.5C370.1 132.2 384 120.9 384 104c0-35.3-28.7-64-64-64H112c-8.8 0-16-7.2-16-16s7.2-16 16-16H320c35.3 0 64 28.7 64 64z'/%3E%3C/svg%3E");
    width: 100px; height: 100px;
    top: 40%; right: -8%;
    transform: rotate(20deg);
    opacity: 0.04;
     /* animation-delay: -9s; */
}


.ns-page-container.ns-cta-container--cursos {
    max-width: 800px; 
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--space-md, 24px); 
    padding-right: var(--space-md, 24px);
    text-align: center; 
    position: relative; /* Keep relative for content */
    z-index: 1;
}

/* CTA Pre-headline */
.ns-cta-preheadline--cursos {
    display: block;
    font-family: 'Poppins', sans-serif;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--clr-accent-tertiary, #FD7E14); 
    margin-bottom: var(--space-sm, 16px);
    text-transform: uppercase;
    letter-spacing: 1px;
    opacity: 0;
    animation: ns-content-fade-slide-up 0.6s cubic-bezier(0.165, 0.84, 0.44, 1) 0.2s forwards;
}

/* CTA Heading */
.ns-section-heading.ns-cta-heading--cursos {
    font-family: 'Poppins', sans-serif;
    font-size: clamp(2.4rem, 5.5vw, 3.4rem); 
    font-weight: 700;
    line-height: 1.25;
    color: var(--clr-text-light, #F8F9FA); 
    margin-bottom: var(--space-md, 24px); 
    opacity: 0;
    animation: ns-content-fade-slide-up 0.6s cubic-bezier(0.165, 0.84, 0.44, 1) 0.3s forwards;
}

/* CTA Text */
.ns-cta-text--cursos {
    font-family: 'Roboto', sans-serif;
    font-size: clamp(1.05rem, 2.5vw, 1.15rem); 
    line-height: 1.8;
    color: var(--clr-text-muted-dark, #E0E0E0); 
    max-width: 650px; 
    margin: 0 auto var(--space-lg, 40px) auto; 
    opacity: 0;
    animation: ns-content-fade-slide-up 0.6s cubic-bezier(0.165, 0.84, 0.44, 1) 0.4s forwards;
}

/* CTA Actions Wrapper */
.ns-cta-actions--cursos {
    opacity: 0;
    animation: ns-content-fade-slide-up 0.6s cubic-bezier(0.165, 0.84, 0.44, 1) 0.5s forwards;
}

/* === START: Explicit Button Styles === */
/* Base Button Style */
a.ns-cta-button--cursos { /* Targeting the <a> tag directly */
    display: inline-block; /* Or inline-flex if needed */
    padding: var(--space-md, 24px) var(--space-xl, 64px); /* Generous padding */
    font-family: 'Poppins', sans-serif;
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--clr-cta-text-light, #FFFFFF); /* Specific text color */
    background-color: var(--clr-accent-primary, #0D6E7A); /* Specific background */
    border: 2px solid var(--clr-accent-primary, #0D6E7A); /* Matching border */
    border-radius: var(--radius-md, 8px);
    text-decoration: none;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.75px;
    cursor: pointer;
    transition: all 0.35s cubic-bezier(0.25, 0.8, 0.25, 1);
    box-shadow: 0 4px 12px rgba(13, 110, 122, 0.3), 0 1px 3px rgba(0,0,0,0.1); /* Primary shadow */
    will-change: transform, box-shadow;
}

/* Hover & Focus States */
a.ns-cta-button--cursos:hover, 
a.ns-cta-button--cursos:focus-visible {
    background-color: #0B5F6A; /* Darker shade */
    border-color: #0B5F6A;
    color: var(--clr-cta-text-light, #FFFFFF);
    transform: translateY(-4px) scale(1.02);
    box-shadow: 0 8px 20px rgba(13, 110, 122, 0.35), 0 3px 6px rgba(0,0,0,0.15);
    outline: none; /* Remove default, rely on visual change or :focus-visible */
}

/* Active State */
a.ns-cta-button--cursos:active {
    transform: translateY(-1px) scale(0.99);
    box-shadow: 0 2px 5px rgba(13, 110, 122, 0.25);
}

/* Focus Visible Outline */
a.ns-cta-button--cursos:focus-visible {
     outline: 2px solid var(--clr-accent-tertiary, #FD7E14);
     outline-offset: 3px;
}
/* === END: Explicit Button Styles === */


/* Responsive Adjustments */
@media (max-width: 767px) { /* Mobile */
  .ns-page-section.ns-cta-section--cursos {
    padding: var(--space-xl, 64px) 0;
  }
   .ns-section-heading.ns-cta-heading--cursos {
       font-size: clamp(2rem, 7vw, 2.8rem); 
   }
    .ns-cta-text--cursos {
       font-size: 1rem; 
       margin-bottom: var(--space-md, 24px);
   }
   /* Button on mobile */
   a.ns-cta-button--cursos {
       padding: var(--space-sm, 16px) var(--space-lg, 40px);
       width: 100%; 
       max-width: 350px;
   }
   /* Adjust BG elements */
   .ns-page-section.ns-cta-section--cursos::before { width: 45vw; height: 45vw; top: 5%; left: -15%; opacity: 0.04; }
   .ns-page-section.ns-cta-section--cursos::after { width: 40vw; height: 40vw; bottom: 0%; right: -12%; opacity: 0.04; }
   .ns-page-container.ns-cta-container--cursos::before { display: none; } /* Hide extras on mobile */
   .ns-page-container.ns-cta-container--cursos::after { width: 50vw; height: 50vw; top: 50%; right: -20%; opacity: 0.03; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .ns-cta-preheadline--cursos,
    .ns-section-heading.ns-cta-heading--cursos,
    .ns-cta-text--cursos,
    .ns-cta-actions--cursos {
        animation: none !important; opacity: 1 !important;
    }
     /* Remove BG elements */
     .ns-page-section.ns-cta-section--cursos::before,
     .ns-page-section.ns-cta-section--cursos::after,
     .ns-page-container.ns-cta-container--cursos::before,
     .ns-page-container.ns-cta-container--cursos::after { 
        display: none !important; 
        animation: none !important;
     }
     /* Reduce button transitions */
     a.ns-cta-button--cursos { transition-duration: 0.01ms !important; } 
     a.ns-cta-button--cursos:hover, a.ns-cta-button--cursos:active { transform: none !important; }
}/* End custom CSS */