/* OBA V2 - Creative Studio Design System */



:root {

    /* Brand Colors - New Official Palette */

    --color-yellow: #f7c718;

    --color-brown: #39231f;

    --color-teal: #00a093;

    --color-blue-dark: #336987;

    --color-orange: #d97d19;

    --color-beige: #e9c9b4;

    --color-white: #ffffff;

    --color-black: #000000;



    /* Legacy Mappings (to prevent breaking existing code immediately) */

    --cyan-primary: var(--color-teal);

    --cyan-dark: var(--color-blue-dark);

    --yellow-primary: var(--color-yellow);

    --yellow-soft: #FFD84D;

    /* Kept for soft gradients */

    --graphite: var(--color-brown);

    --white: var(--color-white);

    --off-white: #FDFDFD;

    --paper-white: #FDFBF0;

    --cyan-light: #E9F9F9;

    --yellow-light: #FFF9E5;

    --grey-light: #F2F4F7;



    /* Gradients */

    --grad-hero: linear-gradient(135deg, rgba(30, 202, 211, 0.1) 0%, rgba(245, 196, 0, 0.1) 100%);



    /* Glassmorphism */

    --glass-bg: rgba(255, 255, 255, 0.7);

    --glass-border: 1px solid rgba(255, 255, 255, 0.5);

    --glass-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.07);

    --backdrop-blur: blur(12px);



    /* Fonts */

    --font-heading: 'Fredoka', sans-serif;

    --font-body: 'Outfit', sans-serif;



    /* Layout */

    --container-width: 1200px;

    --header-height: 80px;

    --radius-card: 24px;

    --radius-btn: 50px;

}



/* --- RESET & BASE --- */

* {

    margin: 0;

    padding: 0;

    box-sizing: border-box;

}



html {

    font-size: 16px;

    overflow-x: hidden;

    /* Prevent horizontal scroll globally */

    width: 100%;

}



/* Respeitar preferência de movimento reduzido */

@media (prefers-reduced-motion: no-preference) {

    html {

        scroll-behavior: smooth;

    }

}



@media (prefers-reduced-motion: reduce) {



    *,

    *::before,

    *::after {

        animation-duration: 0.01ms !important;

        animation-iteration-count: 1 !important;

        transition-duration: 0.01ms !important;

        scroll-behavior: auto !important;

    }

}



body {

    font-family: var(--font-body);

    color: var(--graphite);

    background-color: var(--off-white);

    line-height: 1.6;

    overflow-x: hidden;

    /* Ensure body also clips */

    width: 100%;

    position: relative;

    padding-bottom: 80px;

    /* Mobile Nav Space */

}



@media (min-width: 900px) {

    body {

        padding-bottom: 0;

    }

}



/* --- TYPOGRAPHY SYSTEM --- */

h1,

h2,

h3,

h4,

h5 {

    font-family: var(--font-heading);

    font-weight: 600;

    line-height: 1.15;

    letter-spacing: -0.02em;

    margin-bottom: 20px;

}



h1 {

    font-size: 3.5rem;

}



h2 {

    font-size: 2.75rem;

}



h3 {

    font-size: 1.75rem;

}



h4 {

    font-size: 1.5rem;

}



p {

    font-family: var(--font-body);

    font-size: 1.1rem;

    line-height: 1.7;

    color: #333;

    margin-bottom: 20px;

}



a {

    text-decoration: none;

    color: inherit;

    transition: all 0.3s ease;

}



a:focus-visible,

button:focus-visible,

.dot:focus-visible,

.app-item:focus-visible,

.slider-arrow:focus-visible,

.btn:focus-visible,

.btn-link:focus-visible {

    outline: 3px solid var(--cyan-primary);

    outline-offset: 3px;

    border-radius: 8px;

}



ul {

    list-style: none;

}



img {

    max-width: 100%;

    display: block;

}



/* --- UTILITIES --- */

.container {

    max-width: var(--container-width);

    margin: 0 auto;

    padding: 0 5%;

    position: relative;

    z-index: 2;

}



.section-padding {

    padding: 30px 0 100px;

    /* Reduced top padding from 160px to 30px */

    position: relative;

    overflow: visible !important;

}



.text-center {

    text-align: center;

}



.glass {

    background: var(--glass-bg);

    backdrop-filter: var(--backdrop-blur);

    -webkit-backdrop-filter: var(--backdrop-blur);

    border: var(--glass-border);

    box-shadow: var(--glass-shadow);

    border-radius: var(--radius-card);

}



/* --- REVEAL ANIMATIONS --- */

/* --- ANIMATIONS & REVEAL --- */

.reveal {

    opacity: 0;

    transition: all 1s cubic-bezier(0.16, 1, 0.3, 1);

    will-change: transform, opacity;

}



.reveal-up {

    transform: translateY(60px);

}



.reveal-left {

    transform: translateX(-60px);

}



.reveal-right {

    transform: translateX(60px);

}



.reveal-scale {

    transform: scale(0.9);

}



.reveal.active {

    opacity: 1;

    transform: translate(0, 0) scale(1);

}



@keyframes float {



    0%,

    100% {

        transform: translateY(0);

    }



    50% {

        transform: translateY(-15px);

    }

}



/* Stagger Delays */

.delay-1 {

    transition-delay: 0.1s;

}



.delay-2 {

    transition-delay: 0.2s;

}



.delay-3 {

    transition-delay: 0.3s;

}



.delay-4 {

    transition-delay: 0.4s;

}



/* Parallax Background Utility */

.parallax-section {

    position: relative;

    overflow: hidden;

}



.parallax-bg {

    position: absolute;

    top: -10%;

    left: 0;

    width: 100%;

    height: 120%;

    z-index: 1;

    pointer-events: none;

    transform: translateY(0);

    transition: transform 0.1s linear;

}



.highlight {

    color: var(--cyan-primary);

    position: relative;

    display: inline-block;

}



.highlight::after {

    content: '';

    position: absolute;

    width: 100%;

    height: 10px;

    background: rgba(245, 196, 0, 0.3);

    bottom: 5px;

    left: 0;

    z-index: -1;

    transform: rotate(-2deg);

}



/* --- BUTTONS --- */

.btn {

    display: inline-flex;

    justify-content: center;

    align-items: center;

    padding: 14px 32px;

    border-radius: var(--radius-btn);

    font-weight: 600;

    font-size: 1rem;

    cursor: pointer;

    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);

}



.btn-primary {

    background: var(--cyan-primary);

    color: white;

    box-shadow: 0 4px 15px rgba(30, 202, 211, 0.3);

}



.btn:hover {

    transform: translateY(-3px) scale(1.02);

    box-shadow: 0 10px 20px rgba(30, 202, 211, 0.2);

}



.btn:active {

    transform: scale(0.98);

}







/* Shine Effect on Hover */

.btn-primary::after {

    content: '';

    position: absolute;

    top: 0;

    left: -100%;

    width: 100%;

    height: 100%;

    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);

    transition: 0.5s;

}



.btn-primary:hover::after {

    left: 100%;

}



.btn-outline {

    background: transparent;

    border: 2px solid var(--cyan-primary);

    color: var(--cyan-primary);

    transition: all 0.3s ease;

}



.btn-outline:hover {

    background: var(--cyan-primary);

    color: white;

    box-shadow: 0 5px 15px rgba(30, 202, 211, 0.2);

}



.btn-lg {

    padding: 18px 40px;

    font-size: 1.2rem;

}



.btn-sm {

    padding: 8px 20px;

    font-size: 0.9rem;

    background: var(--cyan-primary);

    color: white;

    border-radius: 20px;

}



/* --- NAVBAR --- */

/* --- NAVBAR & DROPDOWN --- */

.navbar {

    position: fixed;

    top: 20px;

    left: 50%;

    transform: translateX(-50%);

    width: 90%;

    max-width: 1200px;

    z-index: 1000;

    padding: 0 30px;

    height: 70px;

    display: flex;

    align-items: center;

    justify-content: center;

    transition: all 0.3s ease;

}



.nav-content {

    display: flex;

    justify-content: space-between;

    align-items: center;

    width: 100%;

}



.logo img {

    height: 40px;

    transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);

}



.logo:hover img {

    transform: rotate(-5deg) scale(1.1);

}



.nav-links {

    display: flex;

    gap: 10px;

    /* Reduced gap since items have padding */

    margin: 0 auto;

}



.nav-item {

    position: relative;

    font-weight: 500;

    font-size: 0.95rem;

    padding: 10px 18px;

    border-radius: 30px;

    transition: all 0.3s ease;

    color: var(--graphite);

    display: inline-flex;

    align-items: center;

}



/* Hover Effect: Pill Background */

.nav-item:hover,

.dropdown-trigger:hover>.nav-item {

    color: var(--cyan-dark);

    background: rgba(30, 202, 211, 0.08);

}



/* Hover active animation for text */

.nav-item:active {

    transform: scale(0.95);

}



/* Dropdown Styles */

.dropdown-trigger {

    position: relative;

    display: flex;

    align-items: center;

    height: 100%;

}



/* Invisible Bridge to prevent dropdown from closing */

.dropdown-trigger::after {

    content: '';

    position: absolute;

    top: 100%;

    left: 0;

    width: 100%;

    height: 30px;

    background: transparent;

    z-index: 100;

}



.dropdown-menu {

    position: absolute;

    top: 100%;

    left: 50%;

    transform: translateX(-50%) translateY(20px);

    width: 240px;

    background: rgba(255, 255, 255, 0.95);

    backdrop-filter: blur(15px);

    border: 1px solid rgba(255, 255, 255, 0.6);

    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1);

    border-radius: 16px;

    padding: 10px;

    opacity: 0;

    visibility: hidden;

    transition: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);

    z-index: 1100;

    pointer-events: none;

    display: flex;

    /* flex col */

    flex-direction: column;

    gap: 5px;

}



/* Arrow on top of dropdown */

.dropdown-menu::before {

    content: '';

    position: absolute;

    top: -6px;

    left: 50%;

    transform: translateX(-50%) rotate(45deg);

    width: 12px;

    height: 12px;

    background: white;

    border-left: 1px solid rgba(255, 255, 255, 0.6);

    border-top: 1px solid rgba(255, 255, 255, 0.6);

}



.dropdown-trigger:hover .dropdown-menu {

    opacity: 1;

    visibility: visible;

    transform: translateX(-50%) translateY(15px);

    pointer-events: auto;

}



/* Dropdown Items */

.dropdown-menu li {

    display: block;

    width: 100%;

}



.dropdown-menu li a {

    display: flex;

    align-items: center;

    gap: 12px;

    padding: 12px 15px;

    border-radius: 12px;

    font-size: 0.95rem;

    font-weight: 500;

    color: var(--graphite);

    transition: all 0.2s ease;

}



.dropdown-menu li a i {

    width: 20px;

    text-align: center;

    color: var(--cyan-primary);

    font-size: 1.1rem;

    transition: transform 0.3s ease;

}



.dropdown-menu li a:hover {

    background: var(--cyan-light);

    color: var(--cyan-dark);

}



.dropdown-menu li a:hover i {

    transform: scale(1.2);

    color: var(--cyan-dark);

}



@media (max-width: 900px) {

    .navbar {

        display: none;

    }

}



/* --- HERO SECTION --- */

.hero {

    min-height: 100vh;

    display: flex;

    align-items: center;

    position: relative;

    overflow: hidden;

    padding: 120px 0 80px;

    background: var(--off-white);

}



.hero-bg-elements {

    position: absolute;

    inset: 0;

    z-index: 0;

    pointer-events: none;

}



.hero-pattern {

    position: absolute;

    inset: 0;

    background-image: radial-gradient(var(--cyan-primary) 1px, transparent 1px);

    background-size: 40px 40px;

    opacity: 0.1;

    mask-image: linear-gradient(to bottom, black, transparent);

}



.blob {

    position: absolute;

    border-radius: 50%;

    filter: blur(100px);

    opacity: 0.4;

}



.blob-1 {

    top: -10%;

    right: -5%;

    width: 600px;

    height: 600px;

    background: var(--cyan-primary);

}



.blob-2 {

    bottom: -10%;

    left: -5%;

    width: 500px;

    height: 500px;

    background: var(--yellow-primary);

}



.hero-container {

    display: flex;

    align-items: center;

    justify-content: space-between;

    width: 100%;

}



.hero-text {

    flex: 1.2;

    max-width: 650px;

    z-index: 10;

}



.hero-tagline {

    display: inline-flex;

    align-items: center;

    gap: 10px;

    background: rgba(255, 255, 255, 0.8);

    padding: 8px 20px;

    border-radius: 30px;

    font-size: 0.9rem;

    font-weight: 600;

    color: var(--cyan-dark);

    margin-bottom: 25px;

    border: 1px solid rgba(30, 202, 211, 0.2);

    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);

}



.hero-text h1 {

    font-size: 4.5rem;

    line-height: 1.1;

    margin-bottom: 25px;

    color: var(--graphite);

    letter-spacing: -2px;

}



.hero-text p {

    font-size: 1.25rem;

    color: #444;

    margin-bottom: 45px;

    line-height: 1.6;

    max-width: 500px;

}



/* Glassmorphism Hero CTA */

.btn-hero-glass {

    background: rgba(30, 202, 211, 0.85);

    backdrop-filter: blur(15px);

    -webkit-backdrop-filter: blur(15px);

    color: white;

    padding: 20px 45px;

    border-radius: 50px;

    font-size: 1.1rem;

    font-weight: 700;

    display: inline-flex;

    align-items: center;

    gap: 15px;

    border: 1px solid rgba(255, 255, 255, 0.3);

    box-shadow: 0 15px 35px rgba(30, 202, 211, 0.25);

    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);

}



.btn-hero-glass:hover {

    background: var(--cyan-primary);

    transform: translateY(-5px) scale(1.02);

    box-shadow: 0 20px 45px rgba(30, 202, 211, 0.35);

}



.hero-social-proof {

    margin-top: 50px;

}



.hero-social-proof .avatars {

    display: flex;

    align-items: center;

}



.hero-social-proof .avatar {

    width: 35px;

    height: 35px;

    border-radius: 50%;

    background: #ddd;

    border: 3px solid white;

    margin-left: -10px;

}



.hero-social-proof .avatar:first-child {

    margin-left: 0;

}



.hero-social-proof .avatar:nth-child(1) {

    background: url('https://randomuser.me/api/portraits/men/32.jpg') center/cover;

}



.hero-social-proof .avatar:nth-child(2) {

    background: url('https://randomuser.me/api/portraits/women/44.jpg') center/cover;

}



.hero-social-proof .avatar:nth-child(3) {

    background: url('https://randomuser.me/api/portraits/women/68.jpg') center/cover;

}



.hero-social-proof span {

    margin-left: 15px;

    font-size: 0.9rem;

    font-weight: 600;

    color: #555;

}



/* Hero Visual & Mural */

.hero-visual {

    flex: 1;

    position: relative;

    height: 600px;

    display: flex;

    align-items: center;

    justify-content: center;

}



.hero-mural {

    position: absolute;

    inset: 0;

    z-index: 1;

}



.mural-item {

    position: absolute;

    border-radius: 15px;

    overflow: hidden;

    background: #eee;

    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);

    transition: transform 0.3s ease;

}



.mural-item.p1 {

    width: 150px;

    height: 150px;

    top: 10%;

    right: 10%;

    background: url('images/course-manga.png') center/cover;

    transform: rotate(5deg);

}



.mural-item.p2 {

    width: 180px;

    height: 120px;

    bottom: 15%;

    left: 0%;

    background: url('images/course-realismo.png') center/cover;

    transform: rotate(-8deg);

}



.mural-item.p3 {

    width: 130px;

    height: 160px;

    top: 40%;

    left: 10%;

    background: url('images/course-pintura.png') center/cover;

    transform: rotate(-3deg);

}



.arty-float {

    width: 100%;

    max-width: 480px;

    z-index: 15;

    /* Increased to be above mural items */

    position: relative;

    filter: drop-shadow(0 20px 40px rgba(0, 0, 0, 0.1));

    animation: float 6s ease-in-out infinite;

}



.float-element {

    position: absolute;

    padding: 12px 20px;

    display: flex;

    align-items: center;

    gap: 12px;

    font-weight: 700;

    font-size: 0.95rem;

    z-index: 10;

}



.element-1 {

    top: 25%;

    left: -5%;

    color: var(--red-accent);

}



.element-2 {

    bottom: 25%;

    right: -5%;

    color: var(--yellow-primary);

}



@media (max-width: 900px) {

    .hero {

        text-align: center;

        padding-top: 80px;

    }



    .hero-container {

        flex-direction: column;

    }



    .hero-text h1 {

        font-size: 3rem;

    }



    .hero-text p {

        margin: 0 auto 40px;

    }



    .hero-visual {

        height: 450px;

        width: 100%;

        margin-top: 40px;

    }



    .hero-mural {

        display: none;

    }



    .float-element {

        font-size: 0.8rem;

        padding: 8px 15px;

    }



    .hero-social-proof .avatars {

        justify-content: center;

    }

}



/* --- SECTION HIERARCHY (Z-INDEX LAYERING) --- */

.hero {

    z-index: 10;

    position: relative;

}



.purpose {

    z-index: 20;

    position: relative;

}



.methodology {

    z-index: 30;

    position: relative;

}



.courses {

    z-index: 40;

    position: relative;

}



.instagram {

    z-index: 50;

    position: relative;

}



.location {

    z-index: 60;

    position: relative;

}



.final-cta {

    z-index: 70;

    position: relative;

}



/* Section Specific Overrides */

.hero {

    background: var(--white);

    padding-bottom: 80px;

}



.purpose {

    background: var(--color-yellow);

    color: var(--color-black);

    padding-top: 120px;

    overflow: visible;

}



.methodology {

    background: var(--color-teal);

    color: white;

    position: relative;

    padding-top: 140px;

}



.courses {

    background: var(--white);

}



/* Cleanup empty rules */



.methodology h2,

.methodology p,

.methodology li strong {

    color: white !important;

}



.methodology .section-tag {

    color: rgba(255, 255, 255, 0.95) !important;

}



.methodology .method-list i {

    color: var(--yellow-primary);

}



/* Artistic Dividers (Organic Brush Style) */

.divider {

    position: absolute;

    width: 100%;

    left: 0;

    line-height: 0;

    pointer-events: none;

    z-index: 500;

    /* High enough to be above all sections */

}



.divider-top {

    top: 0;

    transform: translateY(-100%);

}



.divider-bottom {

    bottom: 0;

    transform: translateY(100%) rotate(180deg);

}



.divider svg {

    display: block;

    width: 100%;

    height: 120px;

    filter: drop-shadow(0 -5px 10px rgba(0, 0, 0, 0.08));

}



.divider .layer-2 {

    opacity: 0.6;

}



.divider .layer-3 {

    opacity: 0.3;

}



.fill-yellow {

    fill: var(--color-yellow) !important;

}



.fill-teal {

    fill: var(--color-teal) !important;

}



.fill-white {

    fill: var(--color-white) !important;

}



.fill-orange {

    fill: var(--color-orange) !important;

}



.fill-beige {

    fill: var(--color-beige) !important;

}



.fill-blue-dark {

    fill: var(--color-blue-dark) !important;

}



/* Layout Utilities */

.split-layout {

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 60px;

    align-items: center;

}



.section-tag {

    display: inline-block;

    font-family: var(--font-heading);

    font-weight: 700;

    text-transform: uppercase;

    font-size: 0.85rem;

    letter-spacing: 2px;

    margin-bottom: 15px;

    color: var(--cyan-dark);

    /* Default color, often overridden */

}



/* --- METHODOLOGY TIMELINE --- */

.methodology {

    max-width: 100vw;

    overflow-x: hidden;

}



.methodology-timeline {

    position: relative;

    max-width: 1000px;

    margin: 60px auto 0;

    padding: 20px 0;

}



.timeline-line {

    position: absolute;

    top: 0;

    bottom: 0;

    left: 50%;

    width: 4px;

    background: rgba(30, 202, 211, 0.2);

    transform: translateX(-50%);

    border-radius: 4px;

    z-index: 0;

}



.timeline-item {

    position: relative;

    width: 50%;

    padding: 30px 40px;

    margin-bottom: 30px;

    z-index: 1;

}



/* Left items (default) */

.timeline-item {

    left: 0;

    text-align: right;

}



/* Right items */

.timeline-item.right {

    left: 50%;

    text-align: left;

}



/* Markers (Numbers) */

.timeline-marker {

    position: absolute;

    top: 30px;

    width: 50px;

    height: 50px;

    background: var(--yellow-primary);

    border: 4px solid white;

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;

    font-weight: 800;

    color: var(--graphite);

    font-size: 1.2rem;

    box-shadow: 0 5px 15px rgba(245, 196, 0, 0.4);

    z-index: 2;

}



.timeline-item .timeline-marker {

    right: -25px;

    /* Half width */

}



.timeline-item.right .timeline-marker {

    left: -25px;

    right: auto;

}



/* Card Styling */

.glass-card {

    background: rgba(255, 255, 255, 0.7);

    backdrop-filter: blur(10px);

    border: 1px solid rgba(255, 255, 255, 0.5);

    padding: 30px;

    border-radius: 20px;

    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);

    transition: transform 0.3s ease;

    display: inline-block;

    width: 100%;

    position: relative;

}



.timeline-item:hover .glass-card {

    transform: translateY(-5px);

    background: rgba(255, 255, 255, 0.9);

    box-shadow: 0 15px 40px rgba(30, 202, 211, 0.15);

}



.content-header {

    display: flex;

    align-items: center;

    gap: 15px;

    margin-bottom: 15px;

    justify-content: flex-end;

}



.timeline-item.right .content-header {

    justify-content: flex-start;

}



.step-icon {

    font-size: 1.5rem;

    width: 40px;

    height: 40px;

    border-radius: 12px;

    display: flex;

    align-items: center;

    justify-content: center;

    color: white;

    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);

}



.timeline-item h3 {

    font-size: 1.3rem;

    font-weight: 700;

}



.timeline-item p {

    color: #666;

    line-height: 1.6;

    margin-bottom: 15px;

}



.step-tag {

    display: inline-block;

    font-size: 0.8rem;

    font-weight: 700;

    text-transform: uppercase;

    letter-spacing: 1px;

    color: var(--cyan-dark);

    opacity: 0.6;

}



/* Floating Arty in Timeline */

.timeline-arty {

    position: absolute;

    bottom: 50px;

    left: 20px;

    width: 120px;

    z-index: 5;

    pointer-events: none;

}



.floating-arty-guide {

    width: 100%;

    filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.2));

}



@media (max-width: 900px) {

    .methodology-timeline {

        padding-left: 30px;

        /* Space for line on left */

    }



    .timeline-line {

        left: 30px;

    }



    .timeline-item,

    .timeline-item.right {

        width: 100%;

        left: 0;

        text-align: left;

        padding: 20px 0 20px 40px;

        margin-bottom: 10px;

    }



    .timeline-marker,

    .timeline-item.right .timeline-marker {

        left: 5px;

        /* Align with line */

        width: 40px;

        height: 40px;

        top: 25px;

        right: auto;

    }



    .content-header,

    .timeline-item.right .content-header {

        justify-content: flex-start;

    }



    .timeline-arty {

        display: none;

        /* Hide on mobile to save space */

    }

}



/* Courses - White */

/* Courses - White */

.courses {

    background: var(--white);

    position: relative;

    padding-top: 30px;

    /* Reduced from default to bring Title closer to wave */

}



/* Instagram - Combined Grey */

.instagram {

    /* Background defined in color system overrides */

    padding-top: 30px;

    position: relative;

}



/* Artistic Dividers (Organic Brush Style) */

.divider {

    position: absolute;

    width: 100%;

    left: 0;

    line-height: 0;

    z-index: 500;

    pointer-events: none;

}



.divider-top {

    top: 0;

    transform: translateY(-99%);

}



.divider-bottom {

    bottom: -1px;

    transform: translateY(98%) rotate(180deg);

}



.divider svg {

    display: block;

    width: calc(100% + 1.3px);

    height: 150px;

    filter: none;

    /* Removed filter to avoid clipping */

    overflow: visible !important;

}



.divider .layer-2 {

    opacity: 0.5;

}



.divider .layer-3 {

    opacity: 0.2;

}



.fill-yellow {

    fill: var(--color-yellow) !important;

}



.fill-teal {

    fill: var(--color-teal) !important;

}



.fill-white {

    fill: var(--color-white) !important;

}



.fill-orange {

    fill: var(--color-orange) !important;

}



.fill-beige {

    fill: var(--color-beige) !important;

}



.fill-blue-dark {

    fill: var(--color-blue-dark) !important;

}



/* --- SECTIONS CONTINUED --- */



/* --- COURSES --- */

.section-header {

    text-align: center;

    max-width: 800px;

    margin: 0 auto 60px;

    position: relative;

    z-index: 10;

}



.section-header h2 {

    font-size: 2.5rem;

    margin-bottom: 20px;

}



.section-header p {

    font-size: 1.2rem;

    color: #666;

}



.purpose-grid {

    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 30px;

    perspective: 1000px;

    margin-top: 30px;

}



.purpose-card {

    position: relative;

    padding: 50px 30px;

    text-align: center;

    background: rgba(255, 255, 255, 0.7);

    backdrop-filter: blur(10px);

    border-radius: 24px;

    border: 1px solid rgba(255, 255, 255, 0.5);

    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);

    overflow: visible;

    z-index: 1;

}



.purpose-card:hover {

    transform: translateY(-15px);

    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);

    background: rgba(255, 255, 255, 0.95);

    border-color: white;

}



.icon-wrapper {

    width: 80px;

    height: 80px;

    border-radius: 50%;

    margin: 0 auto 30px;

    display: flex;

    align-items: center;

    justify-content: center;

    font-size: 2rem;

    color: white;

    transition: transform 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);

    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);

}



.purpose-card:hover .icon-wrapper {

    transform: scale(1.15) rotate(5deg);

}



.color-1 {

    background: var(--cyan-primary);

    box-shadow: 0 10px 25px rgba(30, 202, 211, 0.3);

}



.color-2 {

    background: var(--yellow-primary);

    box-shadow: 0 10px 25px rgba(245, 196, 0, 0.3);

}



.color-3 {

    background: var(--red-accent);

    box-shadow: 0 10px 25px rgba(255, 107, 107, 0.3);

}



/* Bottom colored line on hover */

.purpose-card::after {

    content: '';

    position: absolute;

    bottom: 0;

    left: 0;

    width: 100%;

    height: 0;

    background: transparent;

    transition: height 0.3s ease;

    z-index: 0;

    opacity: 0.1;

}



.purpose-card:nth-child(1):hover::after {

    background: var(--cyan-primary);

    height: 100%;

}



.purpose-card:nth-child(2):hover::after {

    background: var(--yellow-primary);

    height: 100%;

}



.purpose-card:nth-child(3):hover::after {

    background: var(--red-accent);

    height: 100%;

}



.purpose-card h3 {

    margin-bottom: 20px;

    font-size: 1.5rem;

    font-weight: 700;

    position: relative;

    z-index: 2;

}



.purpose-card p {

    position: relative;

    z-index: 2;

    color: #555;

    line-height: 1.7;

}



@media (max-width: 768px) {

    .purpose-grid {

        grid-template-columns: 1fr;

    }

}



.courses-grid {

    display: grid;

    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));

    gap: 30px;

}



/* Glassmorphism Card Style */

.course-card {

    background: rgba(255, 255, 255, 0.8);

    backdrop-filter: blur(10px);

    -webkit-backdrop-filter: blur(10px);

    border: 1px solid rgba(255, 255, 255, 0.6);

    border-radius: var(--radius-card);

    overflow: hidden;

    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);

    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);

}



.course-card:hover {

    transform: translateY(-12px) scale(1.02);

    box-shadow: 0 20px 40px rgba(30, 202, 211, 0.15);

    border-color: var(--cyan-primary);

}



.card-image {

    height: 220px;

    position: relative;

    overflow: hidden;

}



.card-image img {

    width: 100%;

    height: 100%;

    object-fit: cover;

    transition: transform 0.6s ease;

}



.course-card:hover img {

    transform: scale(1.1);

}



/* Image Overlay Gradient */

.card-image::after {

    content: '';

    position: absolute;

    bottom: 0;

    left: 0;

    width: 100%;

    height: 50%;

    background: linear-gradient(to top, rgba(0, 0, 0, 0.4), transparent);

    opacity: 0.6;

}



.card-content {

    padding: 30px;

    position: relative;

}



.card-content h3 {

    font-size: 1.5rem;

    margin-bottom: 10px;

    color: var(--graphite);

    font-weight: 700;

}



.card-content p {

    font-size: 1rem;

    color: #555;

    margin-bottom: 25px;

    line-height: 1.6;

}



.btn-link {

    display: inline-flex;

    align-items: center;

    justify-content: center;

    gap: 8px;

    padding: 10px 24px;

    background: var(--off-white);

    color: var(--cyan-primary);

    border-radius: 30px;

    font-weight: 600;

    border: 2px solid transparent;

    transition: all 0.3s ease;

}



.btn-link:hover {

    background: var(--cyan-primary);

    color: white;

    gap: 12px;

    color: white;

    gap: 12px;

    box-shadow: 0 5px 15px rgba(30, 202, 211, 0.3);

}



.btn-yellow {

    background: var(--yellow-primary);

    color: var(--graphite);

    border: none;

    font-weight: 700;

    padding: 10px 24px;

    border-radius: 30px;

    transition: all 0.3s ease;

}



.btn-yellow:hover {

    transform: translateY(-2px);

    box-shadow: 0 5px 15px rgba(245, 196, 0, 0.4);

    background: #ffdb4d;

    /* Slightly lighter yellow */

}



/* --- INSTAGRAM (Clean Transition) --- */

/* --- INSTAGRAM (Clean Transition) --- */

/* --- INSTAGRAM (Artistic Section) --- */

.instagram {

    /* Background defined in color system overrides */

    text-align: center;

    position: relative;

    overflow: visible !important;

}



/* New Fill class for the divider to match this section */

.fill-oba-accent {

    fill: #e0fafc;

    /* Matches the top-left of the gradient */

}



.fill-cyan {

    fill: var(--cyan-primary);

}



.fill-white {

    fill: white;

}



.highlight-yellow {

    color: var(--yellow-primary);

    position: relative;

    display: inline-block;

    text-shadow: 2px 2px 0px rgba(0, 0, 0, 0.1);

    transform: rotate(-1deg);

}



.highlight-yellow::after {

    content: '';

    position: absolute;

    bottom: 2px;

    left: 0;

    width: 100%;

    height: 8px;

    background: rgba(255, 255, 255, 0.2);

    z-index: -1;

    border-radius: 4px;

}



/* Artistic Blob Background */

.instagram::before {

    content: '';

    position: absolute;

    top: -20%;

    right: -10%;

    width: 600px;

    height: 600px;

    background: radial-gradient(circle, rgba(245, 196, 0, 0.15) 0%, transparent 70%);

    pointer-events: none;

    z-index: 0;

}



.instagram::after {

    content: '';

    position: absolute;

    bottom: -10%;

    left: -10%;

    width: 500px;

    height: 500px;

    background: radial-gradient(circle, rgba(30, 202, 211, 0.1) 0%, transparent 70%);

    pointer-events: none;

    z-index: 0;

}



.insta-header {

    position: relative;

    z-index: 2;

}



.insta-header i {

    font-size: 3rem;

    background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);

    -webkit-background-clip: text;

    background-clip: text;

    -webkit-text-fill-color: transparent;

    margin-bottom: 15px;

    filter: drop-shadow(0 5px 10px rgba(0, 0, 0, 0.1));

}



.insta-grid {

    margin: 50px 0;

    width: 100%;

    min-height: 300px;

    position: relative;

    z-index: 2;

    background: rgba(255, 255, 255, 0.1);

    /* Darker/Translucent for Teal BG */

    backdrop-filter: blur(10px);

    padding: 20px;

    border-radius: 20px;

    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1);

    border: 1px solid rgba(255, 255, 255, 0.2);

}



/* Ensure widget takes full width */

behold-widget {

    width: 100%;

    display: block;

}



.insta-post {

    aspect-ratio: 1;

    background: #f0f0f0;

    border-radius: 16px;

    position: relative;

    overflow: hidden;

    cursor: pointer;

    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);

    transition: transform 0.3s ease;

}



.insta-img {

    width: 100%;

    height: 100%;

    object-fit: cover;

    transition: transform 0.5s ease;

}



.insta-overlay {

    position: absolute;

    top: 0;

    left: 0;

    width: 100%;

    height: 100%;

    background: rgba(0, 0, 0, 0.4);

    display: flex;

    align-items: center;

    justify-content: center;

    opacity: 0;

    transition: opacity 0.3s ease;

    gap: 15px;

    color: white;

}



.overlay-item {

    display: flex;

    align-items: center;

    gap: 6px;

    font-weight: 600;

    font-size: 1.1rem;

}



.insta-post:hover {

    transform: translateY(-5px);

    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.15);

}



.insta-post:hover .insta-img {

    transform: scale(1.1);

}



.insta-post:hover .insta-overlay {

    opacity: 1;

}



@media(max-width: 768px) {

    .insta-grid {

        grid-template-columns: repeat(2, 1fr);

        padding: 10px;

    }

}



/* --- LOCATION --- */

/* --- LOCATION --- */

.location {

    background: var(--cyan-primary);

    /* Fundo Azul */

    color: white;

    /* Texto Branco */

    position: relative;

    padding-top: 120px;

    /* Space for wave */

}



.location h2,

.location p {

    color: white;

}



.location .map-frame {

    border: 5px solid white;

    filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.1));

}



.unit-block {

    background: rgba(255, 255, 255, 0.1);

    color: white;

    border-left: 4px solid var(--yellow-primary);

    backdrop-filter: blur(5px);

}



.unit-block p,

.unit-block strong {

    color: white;

}



.reverse-mobile {

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 50px;

}



.unit-block {

    padding: 25px;

    margin-top: 20px;

    border-left: 4px solid var(--cyan-primary);

}



.unit-block h3 {

    margin-bottom: 5px;

    font-size: 1.2rem;

}



.map-frame {

    height: 100%;

    min-height: 400px;

    background: #ddd;

    border-radius: 30px;

    display: flex;

    align-items: center;

    justify-content: center;

    color: #888;

}



@media (max-width: 900px) {

    .reverse-mobile {

        grid-template-columns: 1fr;

    }

}



/* --- CONTACT FORM --- */

.loc-form-wrapper {

    background: white;

    padding: 35px;

    border-radius: 24px;

    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);

    border: 1px solid rgba(0, 0, 0, 0.05);

}



.loc-form-wrapper h3 {

    margin-bottom: 10px;

    color: var(--graphite);

    font-size: 1.5rem;

}



.loc-form-wrapper p {

    margin-bottom: 25px;

    font-size: 0.95rem;

    color: #666;

}



.form-group {

    margin-bottom: 15px;

}



.input-field {

    width: 100%;

    padding: 15px;

    border: 2px solid #eee;

    border-radius: 12px;

    font-size: 1rem;

    font-family: 'Outfit', sans-serif;

    color: var(--graphite);

    transition: all 0.3s ease;

    background: var(--off-white);

}



.input-field:focus {

    border-color: var(--cyan-primary);

    background: white;

    outline: none;

    box-shadow: 0 5px 15px rgba(30, 202, 211, 0.1);

}



textarea.input-field {

    resize: none;

}



.form-actions {

    display: flex;

    flex-direction: column;

    gap: 12px;

    margin-top: 10px;

}



.btn-whatsapp {

    background: #25D366;

    color: white;

    width: 100%;

    border: none;

    font-size: 1rem;

}



.btn-whatsapp:hover {

    background: #128C7E;

    transform: translateY(-2px);

    box-shadow: 0 5px 15px rgba(37, 211, 102, 0.3);

}



.btn-email {

    background: var(--graphite);

    color: white;

    width: 100%;

    border: none;

    font-size: 1rem;

}



.btn-email:hover {

    background: #333;

    transform: translateY(-2px);

    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);

}



/* --- FINAL CTA --- */

.final-cta {

    background: var(--cyan-primary);

    color: white;

    position: relative;

    overflow: hidden;

}



.final-cta p {

    margin: 20px 0 30px;

    font-size: 1.2rem;

    opacity: 0.9;

}



.final-cta .btn {

    background: var(--yellow-primary);

    color: var(--graphite);

}



.final-cta .btn:hover {

    background: var(--yellow-soft);

}



/* Arty Positioning in Final CTA */

.final-cta .container {

    position: relative;

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

}



.arty-footer {

    width: 280px;

    /* Bem maior */

    position: absolute;

    right: 15%;

    /* Posicionado a direita do centro */

    top: 50%;

    transform: translateY(-50%);

    filter: drop-shadow(0 15px 30px rgba(0, 0, 0, 0.2));

    animation: float 6s ease-in-out infinite;

    z-index: 10;

}



/* Mouse drift effect will be handled by existing JS if class added, or we add JS logic */



@media(max-width: 900px) {

    .arty-footer {

        position: relative;

        right: auto;

        top: auto;

        transform: none;

        margin-top: 40px;

        width: 180px;

        animation: float 6s ease-in-out infinite;

    }

}



/* --- FOOTER --- */

footer {

    background: var(--graphite);

    color: white !important;

    padding: 60px 0 30px;

}



/* Footer Layout */

.footer-grid {

    display: grid;

    grid-template-columns: repeat(3, 1fr);

    /* 3 colunas de tamanho igual */

    gap: 30px;

    margin-bottom: 60px;

}



/* Footer Card Styling */

.footer-card {

    background: rgba(255, 255, 255, 0.05);

    backdrop-filter: blur(10px);

    border-radius: 20px;

    padding: 35px;

    min-height: 350px;

    /* Altura mínima para uniformidade */

    display: flex;

    flex-direction: column;

    border: 1px solid rgba(255, 255, 255, 0.1);

    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);

    transition: all 0.3s ease;

}



.footer-card:hover {

    transform: translateY(-5px);

    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.3);

}



/* Card Specific Colors */

.brand-card {

    background: linear-gradient(135deg, rgba(30, 202, 211, 0.15) 0%, rgba(30, 202, 211, 0.05) 100%);

    border-color: rgba(30, 202, 211, 0.3);

    text-align: center;

    /* Centraliza conteúdo */

    align-items: center;

    /* Logo e conteúdo centralizados */

}



.units-card {

    background: linear-gradient(135deg, rgba(245, 196, 0, 0.15) 0%, rgba(245, 196, 0, 0.05) 100%);

    border-color: rgba(245, 196, 0, 0.3);

}



.links-card {

    background: linear-gradient(135deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.05) 100%);

    border-color: rgba(255, 255, 255, 0.2);

}



.footer-col h4 {

    color: white;

    font-size: 1.2rem;

    margin-bottom: 25px;

    padding-bottom: 10px;

    border-bottom: 2px solid var(--cyan-primary);

    display: inline-block;

}



/* Brand Column */

.footer-logo {

    height: 120px;

    /* Logo grande e visível */

    width: auto;

    margin-bottom: 25px;

    display: block;

    object-fit: contain;

    /* Sem distorções */

    transform: none;

    /* Sem rotações ou inclinações */

    filter: none;

    /* Sem efeitos que possam distorcer */

}



@media (max-width: 768px) {

    .footer-logo {

        height: 100px;

        margin: 0 auto 20px;

        /* Centraliza no mobile */

    }

}



.footer-desc {

    font-size: 0.95rem;

    line-height: 1.6;

    margin-bottom: 25px;

    color: rgba(255, 255, 255, 0.9);

    /* Melhor contraste */

}



/* Units */

.unit-block p {

    margin-bottom: 10px;

    font-size: 1rem;

    color: #555;

    line-height: 1.5;

}



.unit-phone {

    font-weight: 600;

    color: var(--yellow-primary);

    /* Amarelo para destaque */

    margin-top: 5px;

    margin-bottom: 15px !important;

}



.unit-block .btn-sm {

    margin-top: 5px;

    width: 100%;

}



.footer-phone {

    font-size: 0.9rem;

    color: rgba(255, 255, 255, 0.85);

    /* Mais legível */

    margin-top: 5px;

}



.footer-phone i {

    color: var(--yellow-primary);

    margin-right: 5px;

}



.unit-info {

    margin-bottom: 20px;

}



.unit-info h5 {

    color: var(--white);

    font-size: 1rem;

    margin-bottom: 5px;

}



.unit-info h5 i {

    color: var(--yellow-primary);

    margin-right: 8px;

}



.unit-info p {

    font-size: 0.9rem;

    margin-bottom: 0;

    color: rgba(255, 255, 255, 0.8);

    /* Legível */

}



/* Links */

.footer-links li {

    margin-bottom: 12px;

}



.footer-links a {

    color: rgba(255, 255, 255, 0.75);

    /* Melhor legibilidade */

    font-size: 0.95rem;

    transition: all 0.3s;

}



.footer-links a:hover {

    color: var(--cyan-primary);

    padding-left: 5px;

}



/* Socials & Copyright */

.socials {

    display: flex;

    gap: 15px;

}



.socials a {

    width: 40px;

    height: 40px;

    background: rgba(255, 255, 255, 0.05);

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;

    transition: all 0.3s;

    font-size: 1.1rem;

    color: white;

}



.socials a:hover {

    background: var(--cyan-primary);

    transform: translateY(-3px);

}



.copyright {

    display: flex;

    justify-content: space-between;

    align-items: center;

    border-top: 1px solid rgba(255, 255, 255, 0.1);

    padding-top: 30px;

    font-size: 0.85rem;

    color: white !important;

}





.creator a {

    color: white !important;

    font-weight: 600;

}



.footer-dev-info {

    display: flex;

    align-items: center;

    gap: 15px;

}



.dev-cta {

    background: rgba(37, 211, 102, 0.1);

    color: #25D366;

    padding: 6px 14px;

    border-radius: 20px;

    font-size: 0.8rem;

    font-weight: 600;

    transition: all 0.3s;

    border: 1px solid rgba(37, 211, 102, 0.2);

    display: flex;

    align-items: center;

    gap: 6px;

    text-decoration: none;

}



.dev-cta:hover {

    background: #25D366;

    color: white;

    transform: translateY(-2px);

    box-shadow: 0 4px 10px rgba(37, 211, 102, 0.2);

}



@media(max-width: 768px) {

    .footer-grid {

        grid-template-columns: 1fr;

        gap: 20px;

    }



    .footer-card {

        min-height: auto;

        padding: 25px;

    }



    .copyright {

        flex-direction: column;

        gap: 20px;

        text-align: center;

    }



    .footer-dev-info {

        flex-direction: column;

        gap: 10px;

    }

}



@media (max-width: 768px) {

    .footer-grid {

        grid-template-columns: 1fr;

        gap: 40px;

        text-align: center;

    }



    .footer-desc {

        margin: 0 auto 25px;

    }



    .socials {

        justify-content: center;

    }



    .copyright {

        flex-direction: column;

        gap: 15px;

    }

}



/* --- OMD BRANDING (Gradient Agency Style) --- */

.omd-link {

    display: inline-flex;

    align-items: center;

    gap: 6px;

    background: linear-gradient(to right, #2ab5e3, #a044ff);

    -webkit-background-clip: text;
    background-clip: text;

    -webkit-text-fill-color: transparent;

    font-weight: 500;

    /* Thinner */

    font-size: 0.9rem;

    /* Subtler */

    letter-spacing: 0.3px;

    transition: filter 0.3s;

}



.omd-link:hover {

    filter: brightness(1.2);

}



.omd-mini-logo {

    height: 70px;

    width: auto;

    display: inline-block;

    vertical-align: middle;

    margin-top: -5px;

}



/* Ensure perfect alignment */

.copyright p,

.creator,

.creator a {

    margin: 0;

    line-height: 1.5;

    display: flex;

    align-items: center;

    color: white !important;

}



/* Yellow Section Dynamic Text */

.highlight-contrast {

    color: var(--cyan-primary);

    font-weight: 800;

    position: relative;

    display: inline-block;

}



.highlight-contrast::after {

    content: '';

    position: absolute;

    bottom: 5px;

    left: -5px;

    width: calc(100% + 10px);

    height: 12px;

    background: white;

    opacity: 0.3;

    z-index: -1;

    transform: rotate(2deg);

    border-radius: 4px;

}



/* Ensure perfect alignment */

.copyright p,

.creator {

    margin: 0;

    line-height: 1.5;

}



/* Gradient Button for "Quer um site igual?" */

.dev-cta.omd-gradient-btn {

    background: linear-gradient(135deg, #2ab5e3 0%, #a044ff 100%);

    color: white;

    border: none;

    box-shadow: 0 4px 15px rgba(160, 68, 255, 0.3);

}



.dev-cta.omd-gradient-btn:hover {

    transform: translateY(-2px) scale(1.05);

    box-shadow: 0 6px 20px rgba(160, 68, 255, 0.5);

    background: linear-gradient(135deg, #1a95c0 0%, #8b2df0 100%);

}



/* --- FAQ --- */

.faq {

    background: linear-gradient(180deg, #FFF9E5 0%, #FFFFFF 100%);

    position: relative;

    padding-top: 120px;

    /* Space for wave */

}



/* --- FLOATING & MOBILE NAV --- */

.float-wa {

    position: fixed;

    bottom: 100px;

    right: 30px;

    width: 60px;

    height: 60px;

    background: #25D366;

    border-radius: 50%;

    color: white;

    display: flex;

    align-items: center;

    justify-content: center;

    font-size: 2rem;

    box-shadow: 0 10px 20px rgba(37, 211, 102, 0.3);

    z-index: 990;

    transition: transform 0.3s;

}



.float-wa:hover {

    transform: scale(1.1);

}



.scroll-top {

    position: fixed;

    bottom: 170px;

    right: 40px;

    width: 50px;

    /* Increased from 40px to accommodate progress ring */

    height: 50px;

    background: white;

    color: var(--color-teal);

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;

    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);

    cursor: pointer;

    opacity: 0;

    pointer-events: none;

    transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);

    z-index: 1000;

}



.scroll-top svg {

    position: absolute;

    top: 0;

    left: 0;

    width: 100%;

    height: 100%;

    transform: rotate(-90deg);

    pointer-events: none;

}



.scroll-top .progress-background {

    stroke: rgba(0, 0, 0, 0.05);

}



.scroll-top .progress-bar {

    stroke: var(--color-teal);

    stroke-linecap: round;

    transition: stroke-dashoffset 0.05s linear;

}



.scroll-top i {

    font-size: 1.2rem;

    transition: transform 0.3s;

}



.scroll-top:hover i {

    transform: translateY(-3px);

}



.scroll-top.visible {

    opacity: 1;

    pointer-events: auto;

}



/* Mobile App Bar */

.mobile-app-bar {

    position: fixed;

    bottom: 0;

    left: 0;

    width: 100%;

    height: 70px;

    background: rgba(255, 255, 255, 0.95);

    backdrop-filter: blur(10px);

    display: flex;

    justify-content: space-around;

    align-items: center;

    border-top: 1px solid rgba(0, 0, 0, 0.05);

    z-index: 1000;

    padding-bottom: env(safe-area-inset-bottom);

}



.app-item {

    display: flex;

    flex-direction: column;

    align-items: center;

    font-size: 0.7rem;

    /* Corrigido: #999 tinha ratio ~2.8:1 (WCAG falha). #5a5a5a = ratio ~6.2:1 (WCAG AA pass) */
    color: #5a5a5a;

    gap: 4px;

    transition: color 0.2s ease;

    text-decoration: none;

}



.app-item i {

    font-size: 1.3rem;

    margin-bottom: 2px;

}



.app-item.active {

    color: var(--cyan-primary);

}



.app-item.highlight {

    position: relative;

    top: -20px;

    color: var(--cyan-dark);

    font-weight: 600;

}



.highlight-circle {

    width: 55px;

    height: 55px;

    background: var(--yellow-primary);

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;

    box-shadow: 0 5px 15px rgba(245, 196, 0, 0.3);

    border: 4px solid white;

    color: var(--graphite);

}



@media (min-width: 900px) {

    .mobile-app-bar {

        display: none;

    }



    .float-wa {

        bottom: 30px;

    }



    .scroll-top {

        bottom: 100px;

    }

}



/* --- HERO SLIDER --- */

.hero-slider-section {

    min-height: 100vh;

    position: relative;

    overflow: hidden;

    padding-top: 80px;

    /* Header space */

    background: var(--off-white);

}



.hero-slider {

    position: relative;

    width: 100%;

    height: calc(100vh - 80px);

    /* Fill remaining viewport */

    min-height: 600px;

}



.hero-slide {

    position: absolute;

    top: 0;

    left: 0;

    width: 100%;

    height: 100%;

    opacity: 0;

    visibility: hidden;

    transition: opacity 1s ease-in-out, visibility 1s;

    z-index: 1;

    display: flex;

    align-items: center;

}



.hero-slide.active {

    opacity: 1;

    visibility: visible;

    z-index: 2;

}



/* Slide Content Container */

/* Re-using .hero-container styles but ensuring height match */

.hero-slide .hero-container {

    height: 100%;

    padding-bottom: 60px;

    /* Space for dots/indicators */

}



/* --- ANIMATIONS WITHIN SLIDE --- */

.animate-text {

    opacity: 0;

    transform: translateY(30px);

    transition: all 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);

}



.hero-slide.active .animate-text {

    opacity: 1;

    transform: translateY(0);

}



.animate-visual {

    opacity: 0;

    transform: scale(0.9) translateY(20px);

    transition: all 1s cubic-bezier(0.2, 0.8, 0.2, 1);

}



.hero-slide.active .animate-visual {

    opacity: 1;

    transform: scale(1) translateY(0);

}



.animate-float {

    opacity: 0;

    transform: scale(0.5);

    transition: all 0.6s cubic-bezier(0.3, 1.5, 0.5, 1);

}



.hero-slide.active .animate-float {

    opacity: 1;

    transform: scale(1);

}



/* Stagger Delays for Slide Elements */

.delay-1 {

    transition-delay: 0.1s;

}



.delay-2 {

    transition-delay: 0.2s;

}



.delay-3 {

    transition-delay: 0.3s;

}



.delay-4 {

    transition-delay: 0.4s;

}



.delay-5 {

    transition-delay: 0.5s;

}



/* Keep float animation only after appearance */

.hero-slide.active .arty-float {

    animation: float 6s ease-in-out infinite 0.8s;

    /* Delay start of float until after enter */

}



/* --- SLIDER CONTROLS --- */

.slider-arrow {

    position: absolute;

    top: 50%;

    transform: translateY(-50%);

    width: 50px;

    height: 50px;

    border-radius: 50%;

    background: rgba(255, 255, 255, 0.9);

    border: none;

    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);

    color: var(--cyan-dark);

    font-size: 1.2rem;

    cursor: pointer;

    z-index: 20;

    transition: all 0.3s ease;

    display: flex;

    align-items: center;

    justify-content: center;

}



.slider-arrow:hover {

    background: var(--cyan-primary);

    color: white;

    transform: translateY(-50%) scale(1.1);

}



.prev-slide {

    left: 20px;

}



.next-slide {

    right: 20px;

}



.slider-dots {

    position: absolute;

    bottom: 30px;

    left: 50%;

    transform: translateX(-50%);

    display: flex;

    gap: 12px;

    z-index: 20;

}



.dot {

    width: 12px;

    height: 12px;

    border-radius: 50%;

    background: rgba(0, 0, 0, 0.1);

    border: 2px solid transparent;

    cursor: pointer;

    transition: all 0.3s;

}



.dot.active {

    background: var(--cyan-primary);

    transform: scale(1.2);

    box-shadow: 0 0 10px rgba(30, 202, 211, 0.4);

}



.scroll-indicator {

    position: absolute;

    bottom: 30px;

    /* Aligned near dots but maybe below or interacting? */

    /* Let's adjust scroll indicator in mobile vs desktop */

    left: 50%;

    transform: translateX(-50%);

    z-index: 20;

    animation: bounce 2s infinite;

    display: none;

    /* Hidden by default, maybe show if dots are not covering it or move it */

}



/* Adjust scroll indicator to be separate or integrate */

/* Let's move scroll indicator to bottom right or hide in favor of dots, 

   OR put dots higher and indicator at very bottom. */



.slider-dots {

    bottom: 80px;

}



.scroll-indicator {

    display: block;

    bottom: 20px;

    color: var(--cyan-dark);

    font-size: 1.5rem;

}



@keyframes bounce {



    0%,

    20%,

    50%,

    80%,

    100% {

        transform: translateX(-50%) translateY(0);

    }



    40% {

        transform: translateX(-50%) translateY(-10px);

    }



    60% {

        transform: translateX(-50%) translateY(-5px);

    }

}



/* --- MOBILE RESPONSIVE --- */

@media (max-width: 900px) {

    .slider-arrow {

        display: none;

        /* Hide arrows on mobile for clean look, rely on swipe or auto */

    }



    .hero-slider-section {

        padding-top: 80px;

        height: auto;

        min-height: auto;

    }



    .hero-slider {

        height: auto;

        min-height: auto;

    }



    .hero-slide {

        position: relative;

        height: auto;

        display: none;

        padding-bottom: 60px;

    }



    .hero-slide.active {

        display: flex;

        flex-direction: column;

    }



    .slider-dots {

        bottom: 90px;

    }

}



/* --- FLOATING LOGO --- */

.floating-logo {

    position: fixed;

    top: -15px;

    left: 0px;

    width: 220px;

    /* Logo maior e mais visível */

    padding: 0;

    z-index: 2000;

    cursor: grab;

    display: flex;

    flex-direction: column;

    align-items: center;

    transition: transform 0.1s;

    touch-action: none;

}



.floating-logo:active {

    cursor: grabbing;

    transform: scale(1.05);

}



.floating-logo img {

    width: 100%;

    height: auto;

    /* Mantém proporções */

    pointer-events: none;

    filter: drop-shadow(0 8px 15px rgba(0, 0, 0, 0.15));

    object-fit: contain;

    /* Sem distorções */

    transform: none;

    /* Perfeitamente reto */

}



.close-logo {

    position: absolute;

    top: auto;

    bottom: -15px;

    /* Positioned at bottom */

    right: auto;

    left: 50%;

    margin-left: -12px;

    /* Center horizontally (half of width 24px) */

    width: 24px;

    height: 24px;

    background: rgba(255, 255, 255, 0.9);

    color: #999;

    border: none;

    border-radius: 50%;

    cursor: pointer;

    display: flex;

    align-items: center;

    justify-content: center;

    font-size: 0.8rem;

    opacity: 0;

    transform: scale(0.8);

    transition: all 0.2s ease;

    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);

    z-index: 10;

}



.floating-logo:hover .close-logo {

    opacity: 1;

    transform: scale(1);

    bottom: -25px;

    /* Pop out downwards */

}



.close-logo:hover {

    background: var(--red-accent);

    color: white;

}



@media (max-width: 900px) {

    .floating-logo {

        width: 160px;

        /* Maior para melhor visibilidade mobile */

        top: 10px;

        bottom: auto;

        left: 50%;

        transform: translateX(-50%);

    }

}



/* --- METHODOLOGY HORIZONTAL TIMELINE (Interactive Map) --- */

.methodology {

    width: 100%;

    position: relative;

    overflow-x: hidden;

    /* Crucial to clip the line and content */

}



.horizontal-timeline-container {

    position: relative;

    width: 100%;

    margin-top: 40px;

    padding-bottom: 20px;

    /* Space for bottom controls */

}



/* Guide Line - Dashed Gradient Path behind cards */

.horizontal-line {

    position: absolute;

    top: 50%;

    left: 0;

    width: 100%;

    /* Just fill the container */

    height: 4px;

    background-image: linear-gradient(to right, var(--yellow-primary) 50%, rgba(255, 255, 255, 0.4) 50%);

    background-size: 40px 100%;

    background-repeat: repeat-x;

    transform: translateY(-50%);

    opacity: 0.8;

    z-index: 5;

    pointer-events: none;

    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);

}



/* Timeline Navigation Controls (Bottom) */

.timeline-navigation-controls {

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 30px;

    margin-top: 40px;

    position: relative;

}



/* Timeline Navigation Buttons */

.timeline-nav {

    width: 55px;

    height: 55px;

    border-radius: 50%;

    border: 3px solid var(--yellow-primary);

    background: var(--yellow-primary);

    color: var(--graphite);

    font-size: 1.3rem;

    display: flex;

    align-items: center;

    justify-content: center;

    cursor: pointer;

    z-index: 20;

    box-shadow: 0 5px 20px rgba(245, 196, 0, 0.3);

    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);

    flex-shrink: 0;

}



.timeline-nav:hover {

    background: var(--cyan-primary);

    border-color: var(--cyan-primary);

    color: white;

    transform: scale(1.1);

    box-shadow: 0 8px 30px rgba(30, 202, 211, 0.4);

}



.timeline-nav:active {

    transform: scale(0.95);

}



/* Step Indicator */

.timeline-step-indicator {

    display: flex;

    flex-direction: column;

    align-items: center;

    gap: 10px;

    min-width: 300px;

}



.step-text {

    font-size: 1.2rem;

    font-weight: 700;

    color: var(--graphite);

    text-align: center;

    letter-spacing: 0.5px;

    transition: all 0.3s ease;

}



/* Progress Line */

.progress-line {

    width: 100%;

    height: 6px;

    background: rgba(245, 196, 0, 0.2);

    border-radius: 10px;

    position: relative;

    overflow: hidden;

}



.progress-line::after {

    content: '';

    position: absolute;

    left: 0;

    top: 0;

    height: 100%;

    width: var(--progress-width, 20%);

    /* Dynamic width from JS */

    background: linear-gradient(90deg, var(--yellow-primary), var(--cyan-primary));

    border-radius: 10px;

    transition: width 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);

    box-shadow: 0 0 10px rgba(245, 196, 0, 0.5);

}



@media(max-width: 900px) {

    .timeline-navigation-controls {

        gap: 15px;

    }



    .timeline-nav {

        width: 45px;

        height: 45px;

        font-size: 1.1rem;

    }



    .timeline-step-indicator {

        min-width: 200px;

    }



    .step-text {

        font-size: 1rem;

    }

}





.timeline-scroller {

    display: flex;

    gap: 15px;

    overflow-x: auto;

    /* Center the first and last items by adding ample side padding */

    padding: 60px calc(50% - 160px);

    scroll-snap-type: x mandatory;

    scroll-behavior: smooth;

    scrollbar-width: none;

    -webkit-overflow-scrolling: touch;

    cursor: grab;

    align-items: center;

}



.timeline-scroller::-webkit-scrollbar {

    display: none;

}



/* Directional Arrow between cards */

.timeline-arrow {

    flex: 0 0 40px;

    height: 40px;

    display: flex;

    align-items: center;

    justify-content: center;

    color: var(--cyan-primary);

    font-size: 1.5rem;

    background: rgba(255, 255, 255, 0.1);

    border-radius: 50%;

    z-index: 1;

    animation: moveArrow 1.5s infinite ease-in-out;

}



@keyframes moveArrow {



    0%,

    100% {

        transform: translateX(0);

        opacity: 0.6;

    }



    50% {

        transform: translateX(5px);

        opacity: 1;

    }

}



.timeline-card {

    /* Desktop: 3 cards visible roughly. */

    flex: 0 0 320px;

    height: 420px;

    border-radius: 24px;

    position: relative;

    overflow: hidden;

    /* scroll-snap-align removed */

    transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1), box-shadow 0.4s ease;

    background: var(--graphite);

    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.2);

    border: 1px solid rgba(255, 255, 255, 0.1);

    transform-origin: center center;

}



.timeline-card:hover {

    transform: translateY(-15px) scale(1.02);

    box-shadow: 0 30px 60px rgba(30, 202, 211, 0.2);

    z-index: 10;

    border-color: var(--cyan-primary);

}



.timeline-card:active {

    cursor: grabbing;

    transform: scale(0.98);

}



/* Background Images */

.card-bg {

    position: absolute;

    top: 0;

    left: 0;

    width: 100%;

    height: 100%;

    background-size: cover !important;

    background-position: center !important;

    transition: transform 0.8s ease;

}



.timeline-card:hover .card-bg {

    transform: scale(1.1);

}



/* Mock Images */

.step-1 .card-bg {

    background: url('images/course-manga.png');

}



.step-2 .card-bg {

    background: url('images/course-realismo.png');

}



.step-3 .card-bg {

    background: url('images/course-pintura.png');

}



.step-4 .card-bg {

    background: url('images/course-cartoon.png');

}



.step-5 .card-bg {

    background: url('images/hero-desktop/arty-3.png');

}



/* High Contrast Overlay */

.card-overlay {

    position: absolute;

    top: 0;

    left: 0;

    width: 100%;

    height: 100%;

    background: linear-gradient(to bottom,

            rgba(0, 0, 0, 0) 0%,

            rgba(0, 0, 0, 0.6) 40%,

            rgba(0, 0, 0, 0.95) 100%);

    z-index: 1;

}



/* Content Styling */

.step-number {

    position: absolute;

    top: 15px;

    right: 20px;

    font-size: 3.5rem;

    font-weight: 900;

    color: white;

    opacity: 0.1;

    z-index: 2;

    font-family: sans-serif;

    line-height: 1;

}



.card-info {

    position: absolute;

    bottom: 0;

    left: 0;

    width: 100%;

    padding: 30px 25px;

    z-index: 3;

    color: white;

}



.card-info i {

    font-size: 1.8rem;

    color: var(--cyan-primary);

    margin-bottom: 12px;

    display: block;

    filter: drop-shadow(0 0 10px rgba(30, 202, 211, 0.5));

}



.card-info h3 {

    font-size: 1.6rem;

    margin-bottom: 8px;

    font-weight: 700;

    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);

}



.card-info p {

    font-size: 1rem;

    line-height: 1.5;

    color: rgba(255, 255, 255, 0.9);

    margin: 0;

    display: -webkit-box;

    -webkit-line-clamp: 4;
    line-clamp: 4;

    -webkit-box-orient: vertical;

    overflow: hidden;

}



/* Hint */

.scroll-hint {

    text-align: center;

    color: #999;

    font-size: 0.9rem;

    margin-top: 10px;

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 10px;

    font-weight: 500;

}



@media (max-width: 900px) {

    .timeline-card {

        flex: 0 0 85vw;

        /* Mobile: 1 card full width */

        height: 55vh;

    }



    .timeline-scroller {

        padding: 40px 20px;

        gap: 10px;

        /* Re-enable snap for mobile only if desired, but smooth is often better for map feel */

        /* scroll-snap-type: x mandatory; */

    }



    .timeline-arrow {

        display: none;

        /* Hide arrows on mobile to save space, user swipes */

    }

}



/* --- NEW COURSES GRID (Refactored) --- */

.courses-grid-new {

    display: grid;

    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));

    gap: 40px;

    margin-top: 50px;

}



.course-card-new {

    background: white;

    border-radius: 20px;

    padding: 30px;

    text-align: center;

    transition: transform 0.3s ease, box-shadow 0.3s ease;

    border: 1px solid rgba(0, 0, 0, 0.05);

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: space-between;

    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);

}



.course-card-new:hover {

    transform: translateY(-10px);

    box-shadow: 0 20px 40px rgba(30, 202, 211, 0.2);

    border-color: var(--cyan-primary);

}



.course-img-holder {

    width: 100%;

    height: 250px;

    display: flex;

    align-items: center;

    justify-content: center;

    margin-bottom: 20px;

}



.course-img-holder img {

    max-width: 100%;

    /* Ensure standard images fit */

    max-height: 100%;

    width: auto;

    height: auto;

    object-fit: contain;

    filter: drop-shadow(0 10px 15px rgba(0, 0, 0, 0.1));

    transition: transform 0.3s;

}



.course-card-new:hover .course-img-holder img {

    transform: scale(1.1);

}



.course-card-new h3 {

    font-size: 1.5rem;

    color: var(--graphite);

    margin-bottom: 20px;

    font-weight: 700;

}



.course-card-new .btn-sm {

    padding: 10px 25px;

    font-size: 0.9rem;

    border-radius: 50px;

}



/* --- MOBILE MENU OVERLAY --- */

.mobile-menu-overlay {

    position: fixed;

    bottom: 0;

    left: 0;

    width: 100%;

    height: 100vh;

    background: rgba(255, 255, 255, 0.98);

    z-index: 2000;

    display: flex;

    flex-direction: column;

    padding: 30px 20px 100px;

    /* Space for bottom bar */

    opacity: 0;

    visibility: hidden;

    transform: translateY(100%);

    transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);

}



.mobile-menu-overlay.active {

    opacity: 1;

    visibility: visible;

    transform: translateY(0);

}



.mobile-menu-header {

    display: flex;

    justify-content: space-between;

    align-items: center;

    margin-bottom: 30px;

    padding-bottom: 20px;

    border-bottom: 1px solid rgba(0, 0, 0, 0.05);

}



.mobile-menu-header h3 {

    font-size: 1.5rem;

    color: var(--graphite);

}



.close-btn {

    background: none;

    border: none;

    font-size: 1.5rem;

    color: var(--cyan-primary);

    cursor: pointer;

}



.mobile-menu-grid {

    display: grid;

    grid-template-columns: repeat(2, 1fr);

    gap: 15px;

    overflow-y: auto;

}



.mobile-menu-item {

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    background: white;

    padding: 20px;

    border-radius: 16px;

    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);

    text-align: center;

    gap: 10px;

    color: var(--graphite);

    font-weight: 600;

    border: 1px solid rgba(0, 0, 0, 0.05);

}



.mobile-menu-item i {

    font-size: 1.8rem;

    color: var(--cyan-primary);

    margin-bottom: 5px;

}



.mobile-menu-item:active {

    transform: scale(0.95);

}



/* --- HERO RESPONSIVE IMAGES --- */

.hero-image-container {

    width: 100%;

    display: flex;

    justify-content: center;

    align-items: center;

    margin-top: 20px;

}



.hero-img-desktop {

    display: block;

    max-width: 100%;

    height: auto;

    filter: drop-shadow(0 20px 40px rgba(0, 0, 0, 0.15));

    animation: float 6s ease-in-out infinite;

}



.hero-img-mobile {

    display: none;

    width: 100%;

    max-width: 100%;

    height: auto;

    object-fit: contain !important;

    border-radius: 20px;

    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);

}



@media(max-width: 768px) {

    .hero-img-desktop {

        display: none;

    }



    .hero-img-mobile {

        display: block;

        width: 100%;

        max-width: 400px;

        /* Adjust based on mobile design */

        margin: 0 auto;

    }



    .hero-course {

        padding-top: 100px;

        padding-bottom: 40px;

    }



    .hero-course .hero-container {

        flex-direction: column;

        /* Stack text and image vertically */

        text-align: center;

    }



    .hero-course .hero-text {

        order: 2;

        /* Text below image on mobile if preferred, or keep 1 for text first */

    }



    .hero-course .hero-visual {

        order: 1;

        margin-bottom: 30px;

        width: 100%;

        display: flex;

        justify-content: center;

    }

}



/* --- COURSE PAGES HERO --- */

.hero-course {

    min-height: 85vh;

    display: flex;

    align-items: center;

    position: relative;

    overflow: hidden;

    padding: 100px 0 60px;

    /* Reduced top from 140 to 100, bottom from 80 to 60 */

    background: var(--off-white);

}



.hero-course h1 {

    font-size: 4rem;

    color: var(--graphite);

    margin-bottom: 20px;

    line-height: 1.1;

    z-index: 2;

    position: relative;

}



.hero-course p {

    font-size: 1.2rem;

    color: #555;

    margin-bottom: 30px;

    max-width: 500px;

    line-height: 1.6;

    z-index: 2;

    position: relative;

}



.course-hero-img {

    max-width: 100%;

    width: 500px;

    filter: drop-shadow(0 20px 40px rgba(0, 0, 0, 0.15));

    animation: float 6s ease-in-out infinite;

    transform-origin: center;

    z-index: 2;

    position: relative;

}



@media(max-width: 900px) {

    .hero-course {

        min-height: auto;

        padding-top: 110px;

        /* Reduced slightly to move up, but clear logo */

        padding-bottom: 20px;

        /* Drastically reduced to remove gap */

        text-align: center;

    }



    .hero-course h1 {

        font-size: 2.8rem;

    }



    .hero-course .hero-container {

        flex-direction: column-reverse;

        gap: 40px;

    }



    .hero-course .hero-text {

        margin: 0 auto;

        display: flex;

        flex-direction: column;

        align-items: center;

    }



    .course-hero-img {

        width: 80%;

        max-width: 300px;

    }

}



/* --- HOME HERO RESPONSIVE --- */

.hero-desktop-visual {

    display: block;

    position: relative;

    width: 100%;

    height: 100%;

}



.hero-mobile-visual {

    display: none;

}



@media (max-width: 900px) {

    .hero-desktop-visual {

        display: none;

    }



    .hero-mobile-visual {

        display: block;

        width: 100%;

        margin-top: 30px;

        position: relative;

        z-index: 5;

    }



    .hero-visual {

        min-height: auto !important;

        height: auto !important;

    }

}





/* --- FAQ SECTION --- */

.faq {

    background: var(--off-white);

}



.faq-grid {

    max-width: 800px;

    margin: 40px auto 0;

    display: flex;

    flex-direction: column;

    gap: 15px;

}



.faq-item {

    background: white;

    border-radius: 16px;

    overflow: hidden;

    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03);

    border: 1px solid rgba(0, 0, 0, 0.05);

    transition: all 0.3s ease;

}



.faq-item:hover {

    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.05);

    transform: translateY(-2px);

}



.faq-toggle {

    width: 100%;

    display: flex;

    justify-content: space-between;

    align-items: center;

    padding: 20px 25px;

    background: var(--yellow-primary);

    border: none;

    cursor: pointer;

    text-align: left;

    font-family: var(--font-body);

    font-size: 1.1rem;

    font-weight: 700;

    color: var(--graphite);

    transition: all 0.3s ease;

}



.faq-toggle span {

    padding-right: 15px;

}



.faq-toggle i {

    color: var(--graphite);

    transition: transform 0.3s ease;

    font-size: 0.9rem;

    background: rgba(255, 255, 255, 0.4);

    width: 32px;

    height: 32px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 50%;

}



.faq-item.active .faq-toggle {

    background: var(--cyan-primary);

    color: white;

}



.faq-item.active .faq-toggle i {

    transform: rotate(45deg);

    color: var(--cyan-primary);

    background: white;

}



/* If using chevron */

/* .faq-item.active .faq-toggle i { transform: rotate(180deg); } */



.faq-content {

    max-height: 0;

    overflow: hidden;

    transition: max-height 0.4s ease-in-out;

    background: white;

}



.faq-content p {

    padding: 0 25px 25px;

    margin: 0;

    font-size: 1rem;

    color: #555;

    line-height: 1.6;

}



/* Special FAQ Item */

.special-faq {

    border: 2px solid var(--yellow-primary);

    background: var(--yellow-light);

}



.special-faq .faq-toggle {

    color: var(--graphite);

}



.special-faq .faq-content {

    background: white;

}



.faq-form-wrapper {

    padding: 0 25px 25px;

}



.faq-form {

    display: flex;

    gap: 10px;

    margin-top: 15px;

}



.input-field-sm {

    flex: 1;

    padding: 10px 15px;

    border: 2px solid #ddd;

    border-radius: 10px;

    font-family: var(--font-body);

    font-size: 0.95rem;

}



.input-field-sm:focus {

    border-color: var(--cyan-primary);

    outline: none;

}



@media(max-width: 600px) {

    .faq-form {

        flex-direction: column;

    }



    .faq-toggle {

        font-size: 1rem;

        padding: 15px 20px;

    }

}



.animate-text {

    opacity: 0;

    animation: fadeInUp 0.8s ease forwards;

}



.animate-visual {

    opacity: 0;

    animation: fadeInRight 0.8s ease forwards;

    animation-delay: 0.3s;

}



@keyframes fadeInUp {

    from {

        opacity: 0;

        transform: translateY(30px);

    }



    to {

        opacity: 1;

        transform: translateY(0);

    }

}



@keyframes fadeInRight {

    from {

        opacity: 0;

        transform: translateX(30px);

    }



    to {

        opacity: 1;

        transform: translateX(0);

    }

}



/* --- COURSE CONTENT DETAILS --- */

.course-content-container p {

    font-size: 1.1rem;

    line-height: 1.8;

    color: #555;

    margin-bottom: 20px;

    max-width: 800px;

}



.course-content-container h2 {

    font-size: 2.2rem;

    color: var(--graphite);

    margin-bottom: 25px;

    position: relative;

    display: inline-block;

}



.course-content-container h2::after {

    content: '';

    position: absolute;

    bottom: -5px;

    left: 0;

    width: 60px;

    height: 4px;

    background: var(--yellow-primary);

    border-radius: 2px;

}



.course-details-grid {

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 30px;

    margin: 50px 0;

}



.detail-card {

    background: white;

    padding: 30px;

    border-radius: 20px;

    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);

    border: 1px solid rgba(0, 0, 0, 0.03);

    transition: transform 0.3s ease;

}



.detail-card:hover {

    transform: translateY(-5px);

}



.detail-card i {

    font-size: 2rem;

    color: var(--cyan-primary);

    margin-bottom: 20px;

}



.detail-card h3 {

    font-size: 1.4rem;

    margin-bottom: 15px;

    color: var(--graphite);

}



.detail-card ul {

    list-style: none;

    padding: 0;

}



.detail-card ul li {

    position: relative;

    padding-left: 25px;

    margin-bottom: 10px;

    color: #666;

}



.detail-card ul li::before {

    content: '✔';

    position: absolute;

    left: 0;

    color: var(--yellow-dark);

    font-weight: bold;

}



.highlight-box {

    background: linear-gradient(135deg, var(--off-white) 0%, #fff 100%);

    padding: 40px;

    border-radius: 20px;

    border-left: 5px solid var(--cyan-primary);

    margin-bottom: 60px;

}



.highlight-box h3 {

    display: flex;

    align-items: center;

    gap: 10px;

    font-size: 1.5rem;

    margin-bottom: 15px;

    color: var(--graphite);

}



.highlight-box h3 i {

    color: var(--yellow-dark);

}



.highlight-box p {

    font-size: 1.15rem;

    color: #444;

    margin-bottom: 0;

}



.cta-box {

    text-align: center;

    background: var(--graphite);

    color: white;

    padding: 60px;

    border-radius: 30px;

    margin-top: 50px;

    position: relative;

    overflow: hidden;

}



.cta-box h3 {

    font-size: 2rem;

    margin-bottom: 15px;

    color: white;

}



.cta-box p {

    color: #ccc;

    margin: 0 auto 30px;

    max-width: 600px;

}



@media(max-width: 768px) {

    .course-details-grid {

        grid-template-columns: 1fr;

    }



    .cta-box {

        padding: 40px 20px;

    }

}



/* --- WAVE DIVIDERS --- */

.wave-container {

    position: absolute;

    bottom: -1px;

    left: 0;

    width: 100%;

    overflow: hidden;

    line-height: 0;

    transform: rotate(180deg);

    z-index: 1;

}



.wave-container svg {

    position: relative;

    display: block;

    width: calc(100% + 1.3px);

    height: 100px;

}



.wave-container.normal-orient {

    transform: none;

    top: -1px;

    bottom: auto;

}



.wave-fill-white {

    fill: #FFFFFF;

}



.wave-fill-cyan {

    fill: var(--cyan-primary);

}



/* Mobile adjustments for wave spacing */



/* --- STATIC INSTAGRAM FEED (Reliable Alternative) --- */

.insta-feed-static-grid {

    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 20px;

    margin-top: 30px;

}



.insta-post {

    position: relative;

    border-radius: 20px;

    overflow: hidden;

    aspect-ratio: 1 / 1;

    cursor: pointer;

    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);

    transition: transform 0.3s ease;

}



.insta-post:hover {

    transform: translateY(-5px);

    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.2);

}



.insta-post img {

    width: 100%;

    height: 100%;

    object-fit: cover;

    transition: transform 0.5s ease;

}



.insta-post:hover img {

    transform: scale(1.1);

}



.insta-overlay {

    position: absolute;

    top: 0;

    left: 0;

    width: 100%;

    height: 100%;

    background: rgba(0, 0, 0, 0.4);

    display: flex;

    align-items: center;

    justify-content: center;

    opacity: 0;

    transition: opacity 0.3s ease;

}



.insta-overlay:hover {

    opacity: 1;

    /* Ensure overlay shows on hover */

}



.insta-post:hover .insta-overlay {

    opacity: 1;

}



.insta-overlay i {

    color: white;

    font-size: 2.5rem;

    transform: scale(0.8);

    transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);

}



.insta-post:hover .insta-overlay i {

    transform: scale(1);

}



@media (max-width: 768px) {

    .insta-feed-static-grid {

        grid-template-columns: repeat(2, 1fr);

        gap: 15px;

    }

}



@media (max-width: 768px) {

    .location {

        padding-top: 80px;

    }



    .faq {

        padding-top: 80px;

    }



    .wave-container svg {

        height: 60px;

    }

}



/* 5. Instagram Section - New Teal BG */

.instagram {

    /* Background defined in final overrides */

    position: relative;

    z-index: 1;

}



.insta-header i {

    /* Make icon white or keep gradient if it looks good. Let's make it white for contrast on Teal */

    background: none;

    -webkit-text-fill-color: white;

    color: white;

}



.insta-header h2,

.insta-header p {

    color: white;

}



.insta-header strong {

    color: var(--color-yellow);

    /* Pop color */

}



/* --- PRICING & SCHEDULE SECTIONS --- */



/* 1. Plans Section - Orange BG */

.plans {

    background-color: var(--color-orange) !important;

    /* Force override */

    color: white;

}



.plans h2,

.plans p,

.plans .section-tag {

    color: white;

}



.plans-toggle-container {

    display: flex;

    justify-content: center;

    margin-bottom: 40px;

}



.plans-toggle {

    display: flex;

    background: white;

    padding: 5px;

    border-radius: 50px;

    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);

    border: 2px solid var(--grey-light);

}



.toggle-btn {

    padding: 12px 30px;

    border: none;

    background: transparent;

    border-radius: 40px;

    font-family: var(--font-heading);

    font-weight: 600;

    font-size: 1.1rem;

    color: var(--graphite);

    cursor: pointer;

    transition: all 0.3s ease;

}



.toggle-btn.active {

    background: var(--cyan-primary);

    color: white;

    box-shadow: 0 4px 10px rgba(30, 202, 211, 0.3);

}



.plans-grid {

    display: grid;

    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));

    gap: 30px;

    max-width: 900px;

    margin: 0 auto;

}



.plan-card {

    background: white;

    border-radius: 20px;

    padding: 30px;

    position: relative;

    border: 2px solid var(--grey-light);

    transition: transform 0.3s, border-color 0.3s;

    overflow: hidden;

}



.plan-card:hover {

    transform: translateY(-5px);

    border-color: var(--yellow-primary);

    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.08);

}



.plan-card::before {

    content: '';

    position: absolute;

    top: 0;

    left: 0;

    width: 100%;

    height: 6px;

    background: var(--yellow-primary);

}



.plan-card.premium::before {

    background: var(--cyan-primary);

}



.plan-header {

    text-align: center;

    margin-bottom: 25px;

    padding-bottom: 20px;

    border-bottom: 1px dashed #ddd;

}



.plan-header h3 {

    font-size: 1.5rem;

    color: var(--graphite);

    margin-bottom: 5px;

}



.plan-header .sub-tag {

    display: block;

    font-size: 0.9rem;

    color: #888;

    margin-top: 5px;

}



.plan-price {

    text-align: center;

    margin-bottom: 20px;

}



.plan-price .amount {

    display: block;

    font-size: 2.2rem;

    font-family: var(--font-heading);

    font-weight: 700;

    color: var(--cyan-dark);

}



.plan-price .period {

    font-size: 0.9rem;

    color: #666;

}



.plan-features {

    list-style: none;

    margin-bottom: 25px;

}



.plan-features li {

    margin-bottom: 12px;

    display: flex;

    align-items: center;

    color: #555;

    font-size: 0.95rem;

}



.plan-features li i {

    color: var(--yellow-primary);

    margin-right: 10px;

    font-size: 1.1rem;

}



.registration-badge {

    background: var(--yellow-primary);

    color: var(--graphite);

    padding: 15px;

    border-radius: 15px;

    text-align: center;

    font-weight: 700;

    margin-top: 40px;

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 10px;

    font-size: 1.2rem;

    box-shadow: 5px 5px 0px rgba(0, 0, 0, 0.1);

    transform: rotate(-1deg);

    max-width: 300px;

    margin-left: auto;

    margin-right: auto;

}



/* 2. Schedule Section */

.schedule-container {

    background: white;

    border-radius: 20px;

    padding: 30px;

    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);

}



.schedule-grid {

    display: grid;

    grid-template-columns: repeat(6, 1fr);

    gap: 10px;

}



.schedule-day {

    display: flex;

    flex-direction: column;

    gap: 10px;

}



.day-header {

    background: var(--cyan-dark);

    color: white;

    text-align: center;

    padding: 10px;

    border-radius: 10px;

    font-family: var(--font-heading);

    font-weight: 700;

    text-transform: uppercase;

    font-size: 0.9rem;

}



.time-slot {

    background: var(--yellow-light);

    color: var(--graphite);

    text-align: center;

    padding: 12px 5px;

    border-radius: 8px;

    font-size: 0.85rem;

    font-weight: 600;

    border: 1px solid rgba(245, 196, 0, 0.2);

    transition: transform 0.2s;

    height: 100%;

    display: flex;

    align-items: center;

    justify-content: center;

}



.time-slot:hover {

    transform: scale(1.05);

    background: var(--yellow-primary);

    border-color: var(--yellow-primary);

}



.time-slot.empty {

    background: transparent;

    border: none;

    color: transparent;

    pointer-events: none;

}



@media(max-width: 900px) {

    .schedule-grid {

        grid-template-columns: repeat(3, 1fr);

        /* 3 days per row */

        gap: 15px;

    }

}



@media(max-width: 600px) {

    .schedule-grid {

        grid-template-columns: repeat(2, 1fr);

        /* 2 days per row mobile */

    }



    .plans-grid {

        grid-template-columns: 1fr;

    }



    .plan-price .amount {

        font-size: 1.8rem;

    }

}



/* --- NEW VISUAL IDENTITY OVERRIDES & ADDITIONS (REVISED) --- */



/* Fill Colors for Waves */

.fill-teal {

    fill: var(--color-teal);

}



.fill-orange {

    fill: var(--color-orange);

}



.fill-beige {

    fill: var(--color-beige);

}



.fill-blue-dark {

    fill: var(--color-blue-dark);

}



.wave-fill-beige {

    fill: var(--color-beige);

}



.wave-fill-teal {

    fill: var(--color-teal);

}



.wave-fill-blue-dark {

    fill: var(--color-blue-dark);

}



/* Parallax Images */

.parallax-img {

    transition: transform 0.1s ease-out;

    will-change: transform;

    filter: drop-shadow(0 15px 30px rgba(0, 0, 0, 0.15));

}



/* SECTION OVERRIDES */



/* Purpose: Yellow BG, Brown Text & Icons */

.purpose {

    color: var(--color-brown) !important;

    padding-top: 80px !important;

    /* Espaço suficiente para os ícones dos cards */

}



.purpose h2,

.purpose p,

.purpose .purpose-card h3,

.purpose .purpose-card p {

    color: var(--color-brown) !important;

}



.purpose .icon-wrapper {

    color: var(--color-brown) !important;

}



.purpose .icon-wrapper i {

    color: var(--color-brown) !important;

    /* Force icons to be brown */

}



/* Methodology: Teal BG, White Text */

.methodology {

    background-color: var(--color-teal) !important;

    color: white !important;

    padding-top: 30px !important;

    /* Minimal gap from wave */

}



.methodology h2,

.methodology p {

    color: white !important;

}



/* Instagram: Teal BG, White Text */

.instagram {

    background-color: var(--color-teal) !important;

    color: white !important;

    padding-top: 30px !important;

    /* Minimal gap from wave */

}



.instagram .insta-link {

    color: var(--color-yellow) !important;

    font-weight: 700;

    text-decoration: underline;

}



.instagram .highlight-yellow {

    color: var(--color-yellow) !important;

}



.instagram h2 span.highlight-yellow {

    color: var(--color-yellow) !important;

}



.instagram .insta-header h2,

.instagram .insta-header p {

    color: white !important;

}



/* Schedule: Beige BG, Brown Text */

.schedule {

    background-color: var(--color-beige) !important;

    padding-top: 10px !important;

    /* Reduced from default 160px to minimize gap */

}



.schedule .section-header h2 {

    color: var(--color-brown) !important;

}



.schedule .section-header p {

    color: var(--color-brown) !important;

}



.schedule .section-tag {

    color: var(--color-orange) !important;

    background: rgba(217, 125, 25, 0.1);

    font-size: 1.1rem !important;

    letter-spacing: 3px !important;

    padding: 8px 25px !important;

    margin-bottom: 20px !important;

    /* Espaço para o Arty subir */

}



.schedule .section-header {

    margin-bottom: 0px !important;

}



.schedule-title-img {

    margin-top: -80px !important;

    /* Descido 50% para não cortar no topo */

    margin-bottom: 45px !important;

    /* Mantendo espaço para os botões */

    position: relative;

    z-index: 5;

}



.schedule-container {

    margin-top: 0px !important;

    /* Garante que a tabela não suba junto */

}



/* Plans Section Text on Orange */

.plans {

    padding-top: 30px !important;

    /* Minimal gap from wave */

    background-color: var(--color-orange) !important;

}



.plans .section-header h2,

.plans .section-header p {

    color: white !important;

}



.plans .section-tag {

    color: white !important;

    background: rgba(255, 255, 255, 0.2);

}



/* Final Force Fix for Instagram Wave */

.courses {

    z-index: 40 !important;

    /* Restore normal hierarchy (Methodology is 30) */

    position: relative;

}



.instagram {

    z-index: 50 !important;

    /* Higher than Courses (40) */

    position: relative;

    overflow: visible !important;

}



.instagram .divider-top {

    position: absolute !important;

    top: -149px !important;

    /* Move fully above section box */

    left: 0 !important;

    width: 100% !important;

    height: 150px !important;

    transform: none !important;

    /* Remove transform for predictability */

    z-index: 9999 !important;

    pointer-events: none !important;

    display: block !important;

}



.instagram .divider-top svg {

    height: 100% !important;

    width: 100% !important;

    filter: none !important;

}



/* Adjustments for Specific Elements */

.plans .registration-badge {

    background: white;

    color: var(--color-orange);

    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);

}



/* Instagram Widget Responsive Height */

.snapwidget-widget {

    height: 800px;

    width: 100%;

}



@media (max-width: 900px) {

    .snapwidget-widget {

        height: 600px !important;

    }

}



@media (max-width: 600px) {

    .snapwidget-widget {

        height: 480px !important;

        /* Reduce height significantly on mobile */

    }

}



/* --- MOBILE LAYOUT ADJUSTMENTS (Dynamic Logo & Floating Elements) --- */

@media (max-width: 900px) {



    /* Remove body padding so Hero background handles the top area */

    body {

        padding-top: 0 !important;

    }



    /* Push Hero Content down to clear fixed logo, allowing BG to fill top */

    .hero-slider-section {

        padding-top: 140px !important;

    }



    /* Same for Course Subpages Hero */

    .hero-course {

        padding-top: 140px !important;

    }



    /* Floating Logo - Initial State (Top Center) */

    .floating-logo {

        position: fixed !important;

        top: 5px !important;

        bottom: auto !important;

        left: 50% !important;

        transform: translateX(-50%) !important;

        width: 140px !important;

        /* Visible initially */

        transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1) !important;

        z-index: 2000 !important;

        display: flex !important;

        opacity: 1 !important;

    }



    /* Floating Logo - Scrolled State (Bottom Left) */

    .floating-logo.mobile-scrolled {

        top: auto !important;

        bottom: 80px !important;

        /* Just above nav bar */

        left: 15px !important;

        transform: none !important;

        width: 60px !important;

        /* Smaller icon size */

    }



    .floating-logo.mobile-scrolled .close-logo {

        display: none !important;

    }



    /* WhatsApp - Bottom Right (Fixed) */

    .float-wa {

        bottom: 80px !important;

        right: 15px !important;

        left: auto !important;

        width: 50px !important;

        height: 50px !important;

        font-size: 1.5rem !important;

    }



    /* Scroll Top - Bottom Center (Above Agendar) */

    .scroll-top {

        bottom: 95px !important;

        /* Slightly higher to clear the big Agendar button */

        left: 50% !important;

        right: auto !important;

        transform: translateX(-50%) !important;

        width: 45px !important;

        height: 45px !important;

        z-index: 1001 !important;

    }



    /* Matricula Badge - Mobile Position (Below Values) */

    .matricula-badge-container {

        position: relative !important;

        right: auto !important;

        bottom: auto !important;

        left: auto !important;

        margin: 20px auto 10px !important;

        /* Center block with margin */

        width: 200px !important;

        display: block;

    }

}



/* --- AJUSTES FINAIS DE EMERGENCIA (WAVE & CARDS) --- */

#proposito,

.purpose.parallax-section,

.parallax-section {

    padding-top: 180px !important;

    overflow: visible !important;

    z-index: 10 !important;

}



.purpose .container,

#proposito .container,

#metodologia .container {

    overflow: visible !important;

}



#proposito .purpose-grid,

#proposito .purpose-card {

    overflow: visible !important;

}



#metodologia {

    padding-top: 180px !important;

    position: relative !important;

    overflow: visible !important;

    z-index: 5 !important;

}



#metodologia .divider-top {

    top: 0 !important;

    transform: translateY(0) !important;

    z-index: 100 !important;

    display: block !important;

    visibility: visible !important;

}



#metodologia .divider svg {

    height: 120px !important;

    width: 100% !important;

    overflow: visible !important;

}



#metodologia .section-tag {

    color: var(--color-yellow) !important;

    font-weight: 800 !important;

    margin-bottom: 15px !important;

}



#metodologia h2 {

    color: white !important;

}



#metodologia h2 span.highlight-yellow {

    color: var(--color-yellow) !important;

}



/* ============================================
   PERFORMANCE: Content Visibility (Lazy Layout Rendering)
   Economiza renderização de seções below-the-fold
   ============================================ */

.purpose,
.courses,
.instagram,
.schedule,
.faq,
.final-cta,
.footer {
    content-visibility: auto;
    contain-intrinsic-size: 0 600px;
}

/* A metodologia é near-fold, não aplica content-visibility */



/* ============================================
   ACESSIBILIDADE: Focus-visible aprimorado
   ============================================ */

/* Garante outline visível em navegação por teclado*/
.app-item:focus-visible {
    outline: 3px solid var(--cyan-primary);
    outline-offset: 2px;
    border-radius: 8px;
}

.mobile-menu-item:focus-visible {
    outline: 3px solid var(--yellow-primary);
    outline-offset: 2px;
    border-radius: 12px;
}

.faq-toggle:focus-visible {
    outline: 3px solid var(--cyan-primary);
    outline-offset: 3px;
    border-radius: 8px;
}



/* ============================================
   DARK MODE: Progressive Enhancement
   Apenas ajusta cores base — não muda o design
   ============================================ */

@media (prefers-color-scheme: dark) {

    /* Aplica apenas quando o sistema do usuário pede dark mode */
    /* O site mantém seu design colorido, mas suaviza fundos muito claros */

    :root {
        --off-white: #f8f6ee;
        /* Mantém quase igual — não vai full dark por ser site artístico */
    }

    /* Navbar fica um pouco mais sólida no dark */
    .navbar.glass {
        background: rgba(255, 255, 255, 0.85);
    }

    /* Mobile app bar ligeiramente mais sólida */
    .mobile-app-bar {
        background: rgba(255, 255, 255, 0.98);
    }

}



/* ============================================
   PERFORMANCE: Preload visual hints
   ============================================ */

/* Precisão para a âncora Unidades sob o header fixo */
#localizacao {
    scroll-margin-top: 105px;
}

/* Evita layout shift em imagens de curso preservando proporção natural */
.course-img-holder picture,
.course-img-holder img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* Garante que o mascote Arty não cause CLS */
.arty-float {
    aspect-ratio: 1/1;
}
