/* style.css */

:root {
    --font-primary: 'Inter', sans-serif;
    --font-secondary: 'IBM Plex Sans', sans-serif;

    --primary-color: #A0D2DB; /* Pastel Blue/Teal */
    --primary-color-darker: #85C1CF; /* Darker variant for hover */
    --secondary-color: #FFC8A2; /* Pastel Peach */
    --secondary-color-darker: #FFB380; /* Darker variant for hover */
    --accent-color: #C3AED6; /* Pastel Lilac */
    --accent-color-darker: #B092C1; /* Darker variant for hover */

    --text-color-dark: #333333; /* Dark gray for body text on light backgrounds */
    --text-color-headings: #222222; /* Even darker for section titles */
    --text-color-light: #FFFFFF; /* White for text on dark backgrounds */
    --text-color-muted: #6c757d; /* Muted text, like subtitles or descriptions (Bootstrap-like gray) */

    --background-light: #FDFCFB; /* Very light, almost white pastel */
    --background-section: #F8F7FA; /* Slightly off-white for sections */
    
    --glass-bg: rgba(255, 255, 255, 0.35); /* Adjusted for better visibility on pastel */
    --glass-bg-hover: rgba(255, 255, 255, 0.5);
    --glass-border-color: rgba(255, 255, 255, 0.6);
    --glass-shadow: 0 8px 24px 0 rgba(100, 100, 135, 0.15); /* Softer shadow */
    --glass-blur: blur(8px); /* Slightly less blur for performance and subtlety */

    --border-radius-soft: 20px; /* Biomorphic feel */
    --border-radius-medium: 12px;
    --border-radius-sharp: 6px;

    --transition-smooth: all 0.35s cubic-bezier(0.25, 0.8, 0.25, 1);
    --transition-morph: all 0.5s cubic-bezier(0.65, 0, 0.35, 1);

    --section-padding-y: 5rem; 
    --section-padding-x: 1.5rem; 

    --card-padding: 1.5rem;
    --card-bg: rgba(255, 255, 255, 0.85); /* More opaque for better readability */
    --card-shadow: 0 6px 20px rgba(0, 0, 0, 0.07);

    --button-shadow: 0 4px 10px rgba(0,0,0,0.08);
    --button-hover-shadow: 0 6px 15px rgba(0,0,0,0.12);
}

/* === GLOBAL STYLES === */
body {
    font-family: var(--font-secondary);
    color: var(--text-color-dark);
    background-color: var(--background-light);
    line-height: 1.7;
    font-size: 16px; 
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    padding-top: 0px !important;
}

h1, h2, h3, h4, h5, h6, .title, .subtitle {
    font-family: var(--font-primary);
    font-weight: 700;
}

.title { /* Bulma .title */
    color: var(--text-color-headings); 
    text-shadow: 1px 1px 2px rgba(0,0,0,0.03); 
}
.subtitle { /* Bulma .subtitle */
    color: var(--text-color-muted); 
}

p, .content p, .body-text {
    font-family: var(--font-secondary);
    color: var(--text-color-dark);
    margin-bottom: 1.25rem;
    font-size: 1.05rem; 
    line-height: 1.75;
}

.content strong {
    color: var(--text-color-dark); 
}

a {
    color: var(--primary-color);
    transition: var(--transition-smooth);
    text-decoration: none;
    font-weight: 500;
}
a:hover {
    color: var(--primary-color-darker);
    text-decoration: underline;
}

.section {
    padding: var(--section-padding-y) var(--section-padding-x);
}

.section.glassmorphic-section {
    background-color: transparent; /* Let body bg show or parent bg */
    /* The glass effect will be on elements within the section, like cards */
}

.container {
    max-width: 1140px; /* Common container width */
    margin: 0 auto;
}

/* === UTILITY CLASSES === */
.animate-on-scroll {
    opacity: 0;
    transform: translateY(25px);
    transition: opacity 0.65s var(--transition-smooth), transform 0.65s var(--transition-smooth);
}
.animate-on-scroll.is-visible {
    opacity: 1;
    transform: translateY(0);
}
.has-text-justified { text-align: justify; }
.mt-1 { margin-top: 0.5rem !important; } .mt-2 { margin-top: 1rem !important; } .mt-3 { margin-top: 1.5rem !important; } .mt-4 { margin-top: 2rem !important; } .mt-5 { margin-top: 3rem !important; }
.mb-1 { margin-bottom: 0.5rem !important; } .mb-2 { margin-bottom: 1rem !important; } .mb-3 { margin-bottom: 1.5rem !important; } .mb-4 { margin-bottom: 2rem !important; } .mb-5 { margin-bottom: 3rem !important; }

/* === HEADER / NAVIGATION === */
.header.is-fixed-top {
    transition: background-color 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
}
.header.glassmorphic-nav {
    background-color: rgba(253, 252, 251, 0.85); 
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
.navbar-item, .navbar-link {
    font-family: var(--font-secondary);
    font-weight: 600; /* Slightly bolder */
    font-size: 1rem;
    color: var(--text-color-dark);
    transition: var(--transition-smooth);
    padding: 0.75rem 1.25rem;
}
.navbar-item:hover, .navbar-link:hover,
.navbar-item.is-active, .navbar-link.is-active {
    background-color: transparent !important; 
    color: var(--primary-color) !important;
}
.logo-text {
    font-family: var(--font-primary);
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--primary-color) !important;
}
.navbar-burger { color: var(--text-color-dark); }
.navbar-burger:hover { background-color: rgba(0,0,0,0.03); }

/* === BUTTONS (GLOBAL) === */
.button, button, input[type="submit"], input[type="button"] {
    font-family: var(--font-secondary);
    font-weight: 700;
    border-radius: var(--border-radius-sharp); 
    transition: var(--transition-morph);
    text-transform: uppercase;
    letter-spacing: 0.75px; /* More pronounced spacing */
    padding: 0.85em 1.9em;
    box-shadow: var(--button-shadow);
    border-width: 1px; 
    border-style: solid;
    line-height: 1.5; /* Ensure text vertical centering */
}
.button.is-primary {
    background-color: var(--primary-color);
    border-color: var(--primary-color);
    color: var(--text-color-light);
}
.button.is-primary:hover {
    background-color: var(--primary-color-darker);
    border-color: var(--primary-color-darker);
    color: var(--text-color-light);
    transform: translateY(-3px) scale(1.03);
    box-shadow: var(--button-hover-shadow);
}
.button.is-link.is-outlined { /* For "Read more" style links */
    background-color: transparent;
    border-color: var(--accent-color);
    color: var(--accent-color);
    font-weight: 600;
}
.button.is-link.is-outlined:hover {
    background-color: var(--accent-color);
    border-color: var(--accent-color);
    color: var(--text-color-light);
    transform: translateY(-2px);
}
.biomorphic-button {
    border-radius: 50px; 
    padding: 0.9em 2.2em;
}
.biomorphic-button-small {
    border-radius: 30px;
    padding: 0.6em 1.2em;
    font-size: 0.9rem;
}

/* === FORMS === */
.input, .textarea { /* Removed .select select for Bulma's specific styling */
    font-family: var(--font-secondary);
    border-radius: var(--border-radius-medium);
    border: 1px solid rgba(0,0,0,0.15); /* Slightly darker border */
    box-shadow: inset 0 1px 2px rgba(0,0,0,0.04);
    transition: var(--transition-smooth);
    padding: 0.9em 1.1em;
    background-color: rgba(255,255,255,0.9); 
    color: var(--text-color-dark);
}
.input::placeholder, .textarea::placeholder {
    color: var(--text-color-muted);
}
.input:focus, .textarea:focus,
.input.is-focused, .textarea.is-focused,
.input:active, .textarea:active,
.input.is-active, .textarea.is-active {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 0.125em rgba(var(--primary-color), 0.2), inset 0 1px 2px rgba(0,0,0,0.04);
    background-color: var(--text-color-light);
}
.label.form-label {
    color: var(--text-color-headings);
    font-weight: 600; /* Slightly less bold */
    font-size: 1rem;
    margin-bottom: 0.6em;
}
.glassmorphic-input {
    background-color: var(--glass-bg);
    border: 1px solid var(--glass-border-color);
    color: var(--text-color-dark); 
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    box-shadow: none; 
}
.glassmorphic-input::placeholder { color: rgba(51, 51, 51, 0.6); } /* Darker placeholder for glass */
.glassmorphic-input:focus {
    background-color: var(--glass-bg-hover);
    border-color: var(--primary-color);
    box-shadow: 0 0 0 0.125em rgba(var(--primary-color), 0.25);
}

/* === HERO SECTION === */
#hero {
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    position: relative; /* For overlay and animations */
}
/* The HTML already has style="background-image: url(...)". Adding dark overlay directly: */
#hero::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: linear-gradient(rgba(0,0,0,0.45), rgba(0,0,0,0.45)); /* Dark overlay for readability */
    z-index: 1;
}
#hero .hero-body {
    position: relative; /* To be above the ::before pseudo-element */
    z-index: 2;
}
.hero-text-overlay { /* This div is within .hero-body, for text block specific styling if needed */
     padding: 0; /* No extra padding or bg if ::before on #hero handles overlay */
     background-color: transparent;
}
.hero-title.title {
    color: var(--text-color-light) !important; 
    font-size: 3.2rem; 
    margin-bottom: 1.25rem;
    text-shadow: 2px 2px 6px rgba(0,0,0,0.6); 
}
.hero-subtitle.subtitle {
    color: var(--text-color-light) !important; 
    font-size: 1.35rem; 
    margin-bottom: 2.25rem;
    line-height: 1.65;
    text-shadow: 1px 1px 4px rgba(0,0,0,0.5);
    max-width: 700px; /* Constrain subtitle width */
    margin-left: auto;
    margin-right: auto;
}
.animated-background { animation: subtleZoomPan 60s infinite alternate ease-in-out; }
@keyframes subtleZoomPan {
    0% { background-position: 45% 50%; background-size: 100% auto; }
    100% { background-position: 55% 50%; background-size: 110% auto; }
}

/* === SECTION TITLES === */
.section-title {
    color: var(--text-color-headings) !important;
    margin-bottom: 1.25rem; 
    position: relative;
    display: inline-block; 
}
.section-title::after { 
    content: ''; display: block; width: 70px; height: 4px;
    background-color: var(--primary-color);
    margin: 0.6rem auto 0; 
    border-radius: 3px;
}
.section .subtitle { 
    color: var(--text-color-muted);
    max-width: 750px;
    margin-left: auto; margin-right: auto;
    margin-bottom: 3.5rem; 
}

/* === CARDS (Services, News, Blog, Instructors) === */
.card {
    background-color: var(--card-bg);
    border-radius: var(--border-radius-soft); 
    box-shadow: var(--card-shadow);
    overflow: hidden; 
    transition: var(--transition-morph);
    display: flex; 
    flex-direction: column; 
    height: 100%; 
    border: 1px solid rgba(0,0,0,0.05); /* Subtle border for definition */
}
.card:hover {
    transform: translateY(-10px) scale(1.015);
    box-shadow: 0 15px 35px rgba(0,0,0,0.1);
}
.card .card-image { position: relative; }
.card .card-image .image-container { overflow: hidden; }
.card .card-image figure.image { margin: 0; }
.card .card-image figure.image img {
    width: 100%;
    height: 230px; /* Consistent image height */
    object-fit: cover; 
    display: block; 
    transition: transform 0.45s var(--transition-morph);
    /* Removed top border radius, can cause issues with overflow:hidden on card */
}
.card:hover .card-image figure.image img { transform: scale(1.08); }
.card .card-content {
    padding: var(--card-padding);
    flex-grow: 1; 
    display: flex; flex-direction: column;
    text-align: left; 
}
.card .card-content .title, .card .card-content .card-title {
    color: var(--text-color-headings);
    font-size: 1.4rem;
    margin-bottom: 0.8rem;
}
.card .card-content .subtitle {
    color: var(--text-color-muted);
    font-size: 0.95rem;
    margin-bottom: 1.1rem;
}
.card .card-content .body-text {
    font-size: 1rem;
    line-height: 1.65;
    margin-bottom: 1.25rem;
    flex-grow: 1; 
}
.card .card-content .button { margin-top: auto; align-self: flex-start; }

#instructors .card .card-image figure.image img.is-rounded {
    width: 160px; height: 160px; 
    object-fit: cover;
    border-radius: 50% !important; 
    margin: 1.75rem auto 0.5rem; /* Adjusted margin */
    border: 5px solid var(--background-light);
    box-shadow: 0 5px 15px rgba(0,0,0,0.12);
}
#instructors .card .card-content { text-align: center; }
#instructors .card .card-content .button { align-self: center; }

/* === PROGRESS BARS === */
.progress {
    border-radius: var(--border-radius-soft);
    height: 1rem !important; 
    background-color: rgba(0,0,0,0.08);
    overflow: hidden; /* Ensure inner bar respects radius */
}
.progress::-webkit-progress-value {
    background-color: var(--primary-color);
    border-radius: var(--border-radius-soft); /* For Webkit */
    transition: width 0.6s ease-in-out;
}
.progress::-moz-progress-bar { /* For Firefox */
    background-color: var(--primary-color);
    border-radius: var(--border-radius-soft);
    transition: width 0.6s ease-in-out;
}
.progress::-ms-fill { /* For IE/Edge */
    background-color: var(--primary-color);
    border-radius: var(--border-radius-soft);
    border: none;
}
.progress.is-success::-webkit-progress-value { background-color: #48c774; }
.progress.is-success::-moz-progress-bar { background-color: #48c774; }
.progress.is-info::-webkit-progress-value { background-color: #3e8ed0; }
.progress.is-info::-moz-progress-bar { background-color: #3e8ed0; }
.progress.is-warning::-webkit-progress-value { background-color: #ffdd57; }
.progress.is-warning::-moz-progress-bar { background-color: #ffdd57; }

/* === RESOURCES SECTION === */
#resources .resource-list { list-style: none; padding-left: 0; }
#resources .glassmorphic-list-item {
    background: var(--glass-bg);
    border: 1px solid var(--glass-border-color);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    border-radius: var(--border-radius-medium);
    padding: 1.75rem;
    margin-bottom: 1.75rem;
    transition: var(--transition-morph);
}
#resources .glassmorphic-list-item:hover {
    background: var(--glass-bg-hover);
    transform: translateY(-6px);
    box-shadow: var(--glass-shadow);
}
#resources .resource-title a {
    font-family: var(--font-primary);
    font-weight: 700;
    color: var(--primary-color);
    font-size: 1.25rem;
}
#resources .resource-title a:hover { color: var(--primary-color-darker); }
#resources .resource-description {
    font-size: 1rem;
    color: var(--text-color-muted);
    margin-top: 0.6rem;
}

/* === PARTNERS SECTION === */
#partners img {
    transition: var(--transition-smooth);
    filter: grayscale(85%) contrast(0.9); /* More subtle effect */
    opacity: 0.75;
    max-width: 130px; /* Control logo size */
}
#partners img:hover {
    filter: grayscale(0%) contrast(1);
    opacity: 1;
    transform: scale(1.08);
}

/* === STATISTICAL WIDGETS === */
.stat-widget.glassmorphic-card { /* Ensuring it picks up card glass styles if needed */
    text-align: center;
    padding: 2.25rem 1.75rem !important; 
    border-radius: var(--border-radius-medium);
    background-color: var(--glass-bg);
    border: 1px solid var(--glass-border-color);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    box-shadow: var(--glass-shadow);
    height: 100%; 
    display: flex; flex-direction: column; justify-content: center; /* Better vertical centering */
}
.stat-widget .stat-number {
    font-size: 3.25rem;
    font-weight: 700;
    color: var(--primary-color);
    margin-bottom: 0.3rem;
    line-height: 1;
}
.stat-widget .stat-label {
    font-size: 1.05rem;
    color: var(--text-color-dark); 
    font-weight: 500;
    line-height: 1.4;
}
.stat-widget .progress { height: 0.6rem !important; margin-top: 1.25rem !important; }

/* === FOOTER === */
.footer {
    color: rgba(255,255,255,0.75);
    padding: 3.5rem 1.5rem 2.5rem; 
}
.footer.glassmorphic-footer {
    background-color: rgba(25, 25, 30, 0.92); /* Darker glass */
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    border-top: 1px solid rgba(255,255,255,0.12);
}
.footer .footer-title {
    font-family: var(--font-primary);
    color: var(--text-color-light);
    font-size: 1.3rem;
    margin-bottom: 1.25rem;
    text-transform: uppercase;
    letter-spacing: 1.2px;
}
.footer .body-text, .footer p {
    color: rgba(255,255,255,0.75);
    font-size: 1rem;
}
.footer .footer-links { list-style: none; padding-left: 0; margin-bottom: 1.75rem; }
.footer .footer-links li { margin-bottom: 0.6rem; }
.footer .footer-link {
    color: rgba(255,255,255,0.75);
    text-decoration: none;
    transition: var(--transition-smooth);
    font-weight: 400; /* Regular weight for footer links */
}
.footer .footer-link:hover { color: var(--primary-color); text-decoration: underline; }
.footer .footer-hr {
    border-top: 1px solid rgba(255,255,255,0.18);
    margin: 2.5rem 0;
}
.footer .content.has-text-centered p:last-child {
    margin-top: 1.25rem;
    font-size: 0.9rem;
    opacity: 0.85;
}

/* === PAGE SPECIFIC STYLES === */
body.success-page { display: flex; flex-direction: column; min-height: 100vh; }
.success-page main { flex-grow: 1; display: flex; align-items: center; justify-content: center; padding: 2rem; }
.success-container {
    text-align: center;
    background-color: var(--card-bg);
    padding: 3.5rem;
    border-radius: var(--border-radius-soft);
    box-shadow: var(--card-shadow);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    max-width: 650px;
    border: 1px solid rgba(0,0,0,0.05);
}
.success-container .icon svg { /* Assuming FontAwesome or similar for icon */
    width: 5rem; height: 5rem;
    color: var(--primary-color);
    margin-bottom: 1.75rem;
}
.success-container .title { margin-bottom: 1rem; }
.success-container p { font-size: 1.1rem; margin-bottom: 2rem; }

body.privacy-page, body.terms-page {
    padding-top: 90px; /* Adjust if header height differs, Bulma navbar approx 52px */
}
.privacy-page .section, .terms-page .section {
    background-color: var(--background-light); 
}
.privacy-page .content, .terms-page .content {
    padding: 2rem;
    background-color: var(--text-color-light); /* White background for content block */
    border-radius: var(--border-radius-medium);
    box-shadow: var(--card-shadow);
}
.privacy-page .content h1, .terms-page .content h1,
.privacy-page .content h2, .terms-page .content h2,
.privacy-page .content h3, .terms-page .content h3 {
    color: var(--text-color-headings);
    margin-top: 2.25rem;
    margin-bottom: 1.1rem;
}
.privacy-page .content p, .terms-page .content p {
    color: var(--text-color-dark);
    line-height: 1.8;
    margin-bottom: 1.1rem;
}

/* === RESPONSIVE ADJUSTMENTS === */
@media screen and (max-width: 768px) {
    .hero-title.title { font-size: 2.5rem; }
    .hero-subtitle.subtitle { font-size: 1.2rem; }
    .section { padding: calc(var(--section-padding-y) * 0.75) var(--section-padding-x); }
    .navbar-menu {
        background-color: rgba(253, 252, 251, 0.98); 
        box-shadow: 0 8px 16px rgba(10,10,10,.1);
        padding: 0.5rem 0;
    }
    .navbar-item, .navbar-link { padding: 0.8rem 1.1rem; }
    #instructors .card .card-image figure.image img.is-rounded { width: 130px; height: 130px; }
    .stat-widget .stat-number { font-size: 2.75rem; }
    .footer .columns { text-align: center; }
    .footer .column { margin-bottom: 2.25rem; }
    .title.is-2 { font-size: 1.75rem; } /* Adjust section titles on mobile */
    .section .subtitle { font-size: 1rem; margin-bottom: 2.5rem; }
    .body-text, p, .content p { font-size: 1rem; }
}

@media screen and (max-width: 1023px) { 
    .navbar-menu.is-active {
        display: block; position: absolute;
        left: 0; right: 0; top: 100%; 
        background-color: rgba(253, 252, 251, 0.99);
        backdrop-filter: var(--glass-blur);
        -webkit-backdrop-filter: var(--glass-blur);
        border-top: 1px solid rgba(0,0,0,0.08);
        box-shadow: 0 8px 16px rgba(0,0,0,0.12);
        border-bottom-left-radius: var(--border-radius-medium);
        border-bottom-right-radius: var(--border-radius-medium);
    }
    .navbar-item { border-bottom: 1px solid rgba(0,0,0,0.04); }
    .navbar-item:last-child { border-bottom: none; }
}

*{
    opacity: 1 !important;
}
.navbar-burger{
    display: none;
}