/* Main site styles - theme, layout, components */

:root{
    --main: #4e8f5e;        
    --accent: #6aa84f;      
    --muted: #6b7280;      
    --bg: #ffffff;
    --text: #1b1b1b;
    --card: #dcdcdc;
}

:root[data-theme="dark"]{
    --bg: #0f1720;
    --text: #e6eef1;
    --card: #152027;
    --muted: #9aa6ad;
    --main: #6aa84f;
    --accent: #4e8f5e;
}

/* Base styles */
.mainColor {
    color: var(--main);
}

html, body {
    background-color: var(--bg);
    color: var(--text);
    overflow-x: hidden;
    width: 100%;
}

.box {
    background-color: var(--card);
    color: var(--text);
}

.is-muted {
    color: var(--muted);
}

/* Hero and navbar */
.hero.is-primary {
    background: linear-gradient(180deg, #2f6b3b, #6aa84f);
    color: white;
}

.navbar.is-primary {
    background: linear-gradient(90deg, #0f1720 0%, #152027 100%);
    color: white;
}

html[data-theme="dark"] .navbar,
html[data-theme="dark"] .hero {
    color: #fff;
}

.navbar-end .navbar-item .button {
    margin-left: 0.5rem;
}

/* Fix navbar hover colors (exclude buttons) */
.navbar.is-primary .navbar-item:not(.navbar-item:has(.button)):hover,
.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,
.navbar.is-primary .navbar-link:hover,
.navbar.is-primary .navbar-brand .navbar-item:hover {
    background-color: rgba(78, 143, 94, 0.8) !important;
    color: white !important;
}

/* Remove focus/active states that cause visual "stuck" appearance */
.navbar.is-primary .navbar-item:focus,
.navbar.is-primary .navbar-item:active,
.navbar.is-primary .navbar-item.is-active,
.navbar.is-primary .navbar-link:focus,
.navbar.is-primary .navbar-link:active,
.navbar.is-primary .navbar-brand .navbar-item:focus,
.navbar.is-primary .navbar-brand .navbar-item:active {
    background-color: transparent !important;
    color: white !important;
    outline: none !important;
    box-shadow: none !important;
}

/* Force close dropdown */
.navbar-item.has-dropdown.force-close .navbar-dropdown {
    display: none !important;
}

/* Buttons */
.btn-schedule {
    background: linear-gradient(90deg, #2f6b3b, #4e8f5e);
    color: white;
    border: none;
    box-shadow: 0 6px 18px rgba(46, 101, 66, 0.16);
    transition: box-shadow .12s ease;
}

.btn-schedule:hover { 
    box-shadow: 0 10px 24px rgba(46,101,66,0.2); 
}

.paypal-link {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .5rem 1rem;
    border-radius: 8px;
    background: #003087;
    color: white;
    font-weight: 600;
    text-decoration: none;
    box-shadow: 0 4px 12px rgba(0,48,128,0.12);
}

.paypal-link:hover { 
    filter: brightness(.95); 
}

/* Content sections */
.section-title {
    text-align: center;
    margin-bottom: 1.5rem;
    color: var(--main);
}

.price-box {
    transition: transform 0.3s ease;
}

.price-box .title {
    color: var(--main);
}

.price-box:hover {
    background-color: var(--accent);
    transform: scale(1.05);
}

.price-box:hover .title {
    color: #363636 !important;
}

/* Logo and images */
.logo-img {
    border-radius: 16px;
    border: 4px solid rgba(255,255,255,0.08);
    box-shadow: 0 6px 20px rgba(0,0,0,0.12);
}

/* Tutor photo hover effect */
.is-rounded {
    transition: transform 0.3s ease;
}

.is-rounded:hover {
    transform: scale(1.07) rotate(-2deg);
}

/* Exercise cards equal height */
.columns .column .box {
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    position: relative;
}

.columns .column .box .title {
    color: var(--main);
}


/* Circular progress indicator */
.progress-circle {
    position: absolute;
    bottom: 15px;
    right: 15px;
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: bold;
    color: var(--main);
    pointer-events: none; /* Prevent blocking clicks */
    z-index: 1;
}

.progress-circle svg {
    position: absolute;
    width: 100%;
    height: 100%;
    transform: rotate(-90deg);
}

.progress-circle .progress-bg {
    fill: none;
    stroke: rgba(0,0,0,0.1);
    stroke-width: 3;
}

html[data-theme="dark"] .progress-circle .progress-bg {
    stroke: rgba(255,255,255,0.1);
}

.progress-circle .progress-bar {
    fill: none;
    stroke: var(--main);
    stroke-width: 3;
    stroke-linecap: round;
    stroke-dasharray: 138.23; /* 2 * π * 22 */
    stroke-dashoffset: 138.23;
    transition: stroke-dashoffset 0.5s ease;
}

.progress-circle .percentage {
    position: relative;
    z-index: 2;
    font-size: 10px;
    font-weight: 600;
}

/* Footer */
footer.footer {
    background-color: var(--card) !important;
    color: var(--text) !important;
    border-top: 1px solid rgba(0,0,0,0.06);
}

html[data-theme="dark"] footer.footer {
    border-top-color: rgba(255,255,255,0.04);
}

footer.footer .content a,
footer.footer .content a .fa,
.icon-text a {
    color: var(--text) !important;
    opacity: 0.95;
}

.icon-text a {
    display: inline-flex;
    align-items: center;
    gap: 0px;
    margin-right: 1rem;
    text-decoration: none;
}

.icon-text a .fa {
    font-size: 1.1rem;
}

/* Audio toggle switch */
.audio-toggle-container {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.audio-toggle-label {
    font-size: 0.9rem;
    color: var(--text);
    font-weight: 500;
}

.audio-toggle-switch {
    position: relative;
    display: inline-block;
    width: 60px;
    height: 30px;
    cursor: pointer;
}

.audio-toggle-switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.audio-toggle-slider {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #ccc;
    border-radius: 30px;
    transition: 0.3s;
    display: flex;
    align-items: center;
}

.audio-toggle-slider:before {
    position: absolute;
    content: "";
    height: 22px;
    width: 22px;
    left: 4px;
    background-color: white;
    border-radius: 50%;
    transition: 0.3s;
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

.audio-toggle-icon {
    position: absolute;
    left: 6px;
    font-size: 12px;
    color: var(--muted);
    transition: all 0.3s;
    z-index: 2;
    width: 18px;
    height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
}

input:checked + .audio-toggle-slider {
    background-color: var(--main);
}

input:checked + .audio-toggle-slider:before {
    transform: translateX(30px);
}

input:checked + .audio-toggle-slider .audio-toggle-icon {
    transform: translateX(30px);
    color: white;
}

.audio-toggle-switch:hover .audio-toggle-slider {
    box-shadow: 0 0 8px rgba(78, 143, 94, 0.3);
}