/* =========================================================
   PLATAFORMA CURSOS VC - FRONTEND
========================================================= */

:root{
--vc-primary:#2d8cff;
--vc-dark:#0b0b0b;
--vc-black:#000000;
--vc-border:rgba(255,255,255,0.10);
--vc-text:#ffffff;
--vc-muted:#9ca3af;
--vc-card-radius:20px;
}

/* =========================================================
   LOGIN
========================================================= */

.pcvc-login-box,
.vc-login-box{
width:100%;
max-width:520px;
margin:0 auto;
padding:32px 24px 18px;
background:#1e1e1e;
border:1px solid rgba(255,255,255,0.02);
border-radius:0;
box-shadow:none;
box-sizing:border-box;
}

.pcvc-login-box form,
.vc-login-box form{
display:flex;
flex-direction:column;
gap:14px;
}

.pcvc-login-box p,
.vc-login-box p{
margin:0;
}

.pcvc-login-box label,
.vc-login-box label{
display:block;
margin-bottom:10px;
color:#6f7580;
font-size:14px;
font-weight:400;
line-height:1.3;
}

.pcvc-login-box input[type="text"],
.pcvc-login-box input[type="password"],
.pcvc-login-box input[type="email"],
.vc-login-box input[type="text"],
.vc-login-box input[type="password"],
.vc-login-box input[type="email"]{
width:100%;
min-height:60px;
padding:0 18px;
border:1px solid #050505;
border-radius:14px;
outline:none;
box-shadow:none;
background:#050505;
color:#ffffff;
font-size:15px;
box-sizing:border-box;
}

.pcvc-login-box input[type="text"]::placeholder,
.pcvc-login-box input[type="password"]::placeholder,
.pcvc-login-box input[type="email"]::placeholder,
.vc-login-box input[type="text"]::placeholder,
.vc-login-box input[type="password"]::placeholder,
.vc-login-box input[type="email"]::placeholder{
color:#8a8f98;
}

.pcvc-login-box .login-remember,
.vc-login-box .login-remember{
display:flex;
align-items:center;
gap:10px;
margin-top:2px;
}

.pcvc-login-box .login-remember input[type="checkbox"],
.vc-login-box .login-remember input[type="checkbox"]{
width:16px;
height:16px;
min-height:auto;
padding:0;
margin:0;
border-radius:0;
background:#050505;
border:1px solid #050505;
box-shadow:none;
flex:0 0 16px;
}

.pcvc-login-box .button-primary,
.pcvc-login-box .button,
.pcvc-login-box .pcvc-login-submit,
.pcvc-login-box .pcvc-lost-password-submit,
.pcvc-login-box .pcvc-register-submit,
.vc-login-box .button-primary,
.vc-login-box .button{
min-height:46px;
padding:0 28px;
border:1px solid #5e6672;
border-radius:999px;
background:#5e6672;
color:#ffffff;
font-size:15px;
font-weight:700;
cursor:pointer;
transition:all .25s ease;
box-shadow:none;
}

.pcvc-login-actions{
margin-top:18px;
display:flex;
flex-direction:column;
gap:10px;
align-items:center;
}

.pcvc-login-actions a,
.pcvc-back-wrap a,
.vc-login-box a{
text-decoration:none;
font-size:14px;
font-weight:700;
color:#ffffff;
transition:color .25s ease, opacity .25s ease;
}

.pcvc-response,
.pcvc-lost-password-response,
.pcvc-login-response,
.pcvc-register-response{
margin-top:12px;
padding:12px 14px;
border-radius:10px;
display:none;
font-size:14px;
line-height:1.5;
box-sizing:border-box;
}

.pcvc-response.is-success,
.pcvc-response.is-error,
.pcvc-lost-password-response.is-success,
.pcvc-lost-password-response.is-error,
.pcvc-login-response.is-success,
.pcvc-login-response.is-error,
.pcvc-register-response.is-success,
.pcvc-register-response.is-error{
display:block;
}

.pcvc-response.is-success,
.pcvc-lost-password-response.is-success,
.pcvc-login-response.is-success,
.pcvc-register-response.is-success{
background:#eef8f0;
color:#1f5f31;
}

.pcvc-response.is-error,
.pcvc-lost-password-response.is-error,
.pcvc-login-response.is-error,
.pcvc-register-response.is-error{
background:#fff1f1;
color:#8f1f1f;
}

/* =========================================================
   CURSOS
========================================================= */

.vc-courses,
.pcvc-courses{
width:100%;
box-sizing:border-box;
}

.vc-course{
margin-bottom:50px;
}

.vc-course-header{
display:flex;
align-items:center;
justify-content:space-between;
gap:20px;
margin-bottom:20px;
}

.vc-course-title{
margin:0;
font-size:24px;
line-height:1.2;
font-weight:700;
color:#ffffff;
}

.vc-course-arrows{
display:inline-flex;
align-items:center;
gap:10px;
flex-shrink:0;
}

.vc-course-slider{
position:relative;
width:100%;
}

.vc-lessons-track{
display:flex;
gap:14px;
overflow:hidden;
scroll-behavior:smooth;
width:100%;
box-sizing:border-box;
}

.vc-lesson-card{
flex:0 0 auto;
width:245px;
box-sizing:border-box;
}

.vc-lesson{
display:block;
text-decoration:none;
color:inherit;
}

.vc-lesson-image{
position:relative;
width:245px;
height:349px;
border-radius:10px;
overflow:hidden;
background:#e9e9e9;
}

.vc-lesson-image img{
width:100%;
height:349px;
object-fit:cover;
display:block;
}

.vc-lesson-no-thumb{
width:100%;
height:100%;
background:#d9d9d9;
}

.vc-lesson-lock{
position:absolute;
top:10px;
right:10px;
width:34px;
height:34px;
border-radius:999px;
background:rgba(0,0,0,.72);
color:#ffffff;
display:inline-flex;
align-items:center;
justify-content:center;
z-index:3;
}

.vc-slider-arrow{
width:36px;
height:36px;
border-radius:999px;
border:none;
background:#f3d7e8;
color:#5f4a57;
cursor:pointer;
display:inline-flex;
align-items:center;
justify-content:center;
font-size:22px;
line-height:1;
transition:all .25s ease;
padding:0;
}

.vc-courses-empty{
font-size:14px;
color:#c4c7ce;
line-height:1.6;
}

/* =========================================================
   ASSINATURAS
========================================================= */

.vc-subscriptions-widget{
width:100%;
}

.vc-subscriptions-title{
margin:0 0 8px;
font-size:32px;
line-height:1.2;
font-weight:700;
color:#ffffff;
}

.vc-subscriptions-description{
margin-bottom:24px;
font-size:18px;
line-height:1.5;
color:#ffffff;
}

.vc-subscriptions-grid{
display:grid;
grid-template-columns:repeat(var(--vc-sub-cols-desktop,3), minmax(0,1fr));
gap:16px;
align-items:stretch;
}

.vc-plan-card{
background:#5a984f;
padding:24px;
box-sizing:border-box;
min-height:220px;
display:flex;
}

.vc-plan-card-inner{
display:flex;
flex-direction:column;
gap:14px;
width:100%;
height:100%;
}

.vc-plan-badge{
display:inline-flex;
align-self:flex-start;
padding:6px 10px;
background:#111111;
color:#ffffff;
font-size:12px;
line-height:1.2;
font-weight:700;
}

.vc-plan-name{
font-size:24px;
line-height:1.2;
font-weight:700;
color:#111111;
}

.vc-plan-price-wrap{
font-size:18px;
line-height:1.5;
color:#111111;
}

.vc-plan-price-label{
font-weight:600;
}

.vc-plan-price{
font-weight:700;
}

.vc-plan-period{
font-weight:500;
}

.vc-plan-action{
margin-top:4px;
}

.vc-plan-button{
display:inline-flex;
align-items:center;
justify-content:center;
text-decoration:none;
background:#111111;
color:#ffffff;
border:1px solid #111111;
padding:14px 20px;
transition:all .25s ease;
font-size:15px;
font-weight:700;
line-height:1.2;
box-sizing:border-box;
}

/* =========================================================
   CHECKOUT WIDGET
========================================================= */

.vc-checkout-shell{
width:100%;
max-width:900px;
margin:0 auto;
}

.vc-checkout-shell .woocommerce,
.vc-checkout-shell form.checkout{
width:100% !important;
max-width:100% !important;
}

.vc-checkout-shell .woocommerce-form-coupon-toggle,
.vc-checkout-shell .checkout_coupon,
.vc-checkout-shell .woocommerce-info,
.vc-checkout-shell .woocommerce-message,
.vc-checkout-shell .woocommerce-error,
.vc-checkout-shell .woocommerce-additional-fields,
.vc-checkout-shell .woocommerce-shipping-fields,
.vc-checkout-shell #ship-to-different-address,
.vc-checkout-shell #customer_details .col-2,
.vc-checkout-shell #order_review_heading,
.vc-checkout-shell .woocommerce-checkout-review-order-table,
.vc-checkout-shell #billing_company_field,
.vc-checkout-shell #billing_country_field,
.vc-checkout-shell #billing_address_1_field,
.vc-checkout-shell #billing_address_2_field,
.vc-checkout-shell #billing_city_field,
.vc-checkout-shell #billing_state_field,
.vc-checkout-shell #billing_postcode_field,
.vc-checkout-shell .woocommerce-billing-fields > h3,
.vc-checkout-shell #customer_details h3{
display:none !important;
}

.vc-checkout-shell #customer_details,
.vc-checkout-shell .col2-set,
.vc-checkout-shell .col2-set .col-1,
.vc-checkout-shell .col2-set .col-2{
display:block !important;
width:100% !important;
max-width:100% !important;
float:none !important;
margin:0 !important;
padding:0 !important;
}

.vc-checkout-layout{
display:flex !important;
flex-direction:column !important;
gap:22px !important;
width:100% !important;
}

.vc-checkout-column{
display:flex !important;
flex-direction:column !important;
gap:22px !important;
width:100% !important;
}

.vc-card{
width:100% !important;
background:#0b0b0b !important;
border:1px solid rgba(255,255,255,.10) !important;
border-radius:20px !important;
padding:24px !important;
box-sizing:border-box !important;
box-shadow:none !important;
overflow:hidden !important;
}

.vc-checkout-card-title{
margin:0 0 20px !important;
font-size:18px !important;
line-height:1.2 !important;
font-weight:700 !important;
color:#ffffff !important;
}

/* resumo */

.vc-subscription-summary{
display:flex !important;
flex-direction:column !important;
gap:16px !important;
}

.vc-subscription-row{
display:grid !important;
grid-template-columns:140px minmax(0,1fr) !important;
gap:10px !important;
align-items:start !important;
}

.vc-subscription-label{
font-size:14px !important;
line-height:1.4 !important;
font-weight:600 !important;
color:#9ca3af !important;
}

.vc-subscription-value{
font-size:18px !important;
line-height:1.4 !important;
font-weight:700 !important;
color:#ffffff !important;
word-break:break-word !important;
white-space:normal !important;
}

.vc-subscription-empty{
color:#9ca3af;
font-size:14px;
line-height:1.5;
}

/* cobrança */

.vc-client-data-card .woocommerce-billing-fields__field-wrapper{
display:grid !important;
grid-template-columns:1fr 1fr !important;
gap:18px 22px !important;
width:100% !important;
}

.vc-client-data-card .form-row{
width:100% !important;
max-width:100% !important;
margin:0 !important;
float:none !important;
}

.vc-client-data-card .form-row-wide{
grid-column:1 / -1 !important;
}

.vc-client-data-card label{
display:block !important;
margin-bottom:10px !important;
font-size:14px !important;
line-height:1.3 !important;
font-weight:600 !important;
color:#ffffff !important;
}

.vc-client-data-card .required{
color:#ff4d4f !important;
}

.vc-client-data-card .input-text,
.vc-client-data-card select,
.vc-client-data-card textarea{
width:100% !important;
min-height:48px !important;
padding:0 14px !important;
border:1px solid #111111 !important;
border-radius:8px !important;
background:#000000 !important;
color:#ffffff !important;
font-size:14px !important;
box-sizing:border-box !important;
box-shadow:none !important;
}

.vc-client-data-card .input-text:focus,
.vc-client-data-card select:focus,
.vc-client-data-card textarea:focus{
border-color:#2d8cff !important;
outline:none !important;
}

/* pagamento */

.vc-payment-header{
display:flex !important;
align-items:flex-start !important;
justify-content:space-between !important;
gap:18px !important;
margin-bottom:20px !important;
}

.vc-payment-title{
margin-bottom:4px !important;
}

.vc-payment-subtitle{
margin:0 !important;
font-size:13px !important;
line-height:1.4 !important;
color:#9ca3af !important;
}

.vc-payment-total{
white-space:nowrap !important;
font-size:13px !important;
line-height:1.2 !important;
color:#9ca3af !important;
}

.vc-payment-total strong{
font-size:22px !important;
color:#ffffff !important;
font-weight:800 !important;
}

#payment{
background:transparent !important;
border:none !important;
box-shadow:none !important;
width:100% !important;
}

#payment ul.payment_methods{
display:flex !important;
flex-direction:column !important;
gap:12px !important;
padding:0 !important;
margin:0 0 18px !important;
border:none !important;
list-style:none !important;
width:100% !important;
}

#payment ul.payment_methods > li{
margin:0 !important;
padding:0 !important;
border:1px solid rgba(255,255,255,.10) !important;
border-radius:8px !important;
background:#0b0b0b !important;
overflow:hidden !important;
position:relative !important;
width:100% !important;
}

#payment ul.payment_methods > li > input{
position:absolute !important;
opacity:0 !important;
pointer-events:none !important;
}

#payment ul.payment_methods > li > label{
display:flex !important;
align-items:center !important;
justify-content:space-between !important;
min-height:56px !important;
margin:0 !important;
padding:16px !important;
cursor:pointer !important;
font-size:15px !important;
line-height:1.3 !important;
font-weight:600 !important;
color:#ffffff !important;
background:transparent !important;
width:100% !important;
box-sizing:border-box !important;
}

#payment ul.payment_methods > li > input:checked + label{
box-shadow:inset 0 0 0 1px #2d8cff !important;
}

#payment div.payment_box{
background:#000000 !important;
border-top:1px solid rgba(255,255,255,.08) !important;
border-left:none !important;
border-right:none !important;
border-bottom:none !important;
border-radius:0 !important;
padding:18px !important;
margin:0 !important;
box-shadow:none !important;
color:#ffffff !important;
width:100% !important;
box-sizing:border-box !important;
}

#payment div.payment_box::before{
display:none !important;
}

#payment .form-row{
margin-bottom:14px !important;
}

#payment label{
display:block !important;
margin-bottom:8px !important;
font-size:14px !important;
line-height:1.3 !important;
font-weight:600 !important;
color:#ffffff !important;
}

#payment input.input-text,
#payment select,
#payment textarea{
width:100% !important;
min-height:46px !important;
padding:0 14px !important;
border:1px solid #111111 !important;
border-radius:8px !important;
background:#000000 !important;
color:#ffffff !important;
font-size:14px !important;
box-sizing:border-box !important;
box-shadow:none !important;
}

#payment input.input-text:focus,
#payment select:focus,
#payment textarea:focus{
border-color:#2d8cff !important;
outline:none !important;
}

#payment .woocommerce-SavedPaymentMethods,
#payment .woocommerce-privacy-policy-text{
color:#9ca3af !important;
}

#payment .woocommerce-privacy-policy-text a{
color:#ffffff !important;
}

#payment #place_order{
width:100% !important;
min-height:54px !important;
border:none !important;
border-radius:8px !important;
background:#2d8cff !important;
color:#ffffff !important;
font-size:20px !important;
font-weight:700 !important;
box-shadow:none !important;
}

#payment .place-order{
padding-top:20px !important;
}

/* =========================================================
   VC ASSINATURA STATUS
========================================================= */

.vc-sub-status{
background:#171922;
border-radius:18px;
padding:28px;
box-sizing:border-box;
}

.vc-sub-status__top{
display:flex;
justify-content:space-between;
align-items:flex-start;
gap:20px;
margin-bottom:18px;
}

.vc-sub-status__content{
flex:1 1 auto;
min-width:0;
}

.vc-sub-status__title{
margin:0 0 18px;
font-size:32px;
line-height:1.2;
font-weight:700;
color:#ffffff;
}

.vc-sub-status__meta{
display:flex;
flex-direction:column;
gap:6px;
font-size:16px;
line-height:1.5;
color:#d1d5db;
margin-bottom:20px;
}

.vc-sub-status__meta strong{
color:#ffffff;
font-weight:700;
}

.vc-sub-status__badge{
display:inline-flex;
align-items:center;
justify-content:center;
padding:10px 18px;
border-radius:8px;
background:#c45454;
color:#111111;
font-size:16px;
font-weight:700;
line-height:1.2;
flex-shrink:0;
}

.vc-sub-status__actions{
display:flex;
flex-wrap:wrap;
gap:12px;
}

.vc-sub-btn{
display:inline-flex;
align-items:center;
justify-content:center;
padding:14px 18px;
border-radius:8px;
text-decoration:none;
font-size:15px;
font-weight:700;
line-height:1.2;
cursor:pointer;
transition:all .25s ease;
}

.vc-sub-btn--dark{
background:#000000;
border:1px solid #000000;
color:#ffffff;
}

.vc-sub-btn--outline{
background:transparent;
border:1px solid #ffffff;
color:#ffffff;
}

.vc-sub-empty{
display:flex;
flex-direction:column;
gap:18px;
}

.vc-sub-empty__text{
font-size:24px;
line-height:1.4;
font-weight:700;
color:#ffffff;
}

.vc-sub-plans{
margin-top:18px;
display:flex;
flex-direction:column;
gap:16px;
}

.vc-sub-plan{
background:#3a3a3d;
border-radius:14px;
padding:24px;
box-sizing:border-box;
}

.vc-sub-plan.is-current{
background:#000000;
}

.vc-sub-plan__head{
display:flex;
justify-content:space-between;
align-items:flex-start;
gap:16px;
margin-bottom:10px;
}

.vc-sub-plan__name{
font-size:18px;
line-height:1.3;
font-weight:700;
color:#ffffff;
}

.vc-sub-plan__price{
font-size:16px;
line-height:1.5;
font-weight:600;
color:#d1d5db;
margin-bottom:10px;
}

.vc-sub-plan__desc{
font-size:14px;
line-height:1.6;
color:#b8bcc6;
}

.vc-sub-plan__badge{
display:inline-flex;
align-items:center;
justify-content:center;
padding:10px 14px;
border-radius:8px;
background:#d6bfd1;
color:#111111;
font-size:14px;
font-weight:700;
line-height:1.2;
white-space:nowrap;
}

.vc-sub-plan__action{
margin-top:16px;
}

/* =========================================================
   VC EDITAR CONTA
========================================================= */

.vc-edit-account{
width:100%;
box-sizing:border-box;
}

.vc-edit-account__form{
display:flex;
flex-direction:column;
gap:22px;
}

.vc-edit-account__grid{
display:grid;
grid-template-columns:1fr 1fr;
gap:20px;
}

.vc-edit-account__field{
width:100%;
min-width:0;
}

.vc-edit-account__field--full{
width:100%;
}

.vc-edit-account__label{
display:block;
margin-bottom:10px;
font-size:14px;
line-height:1.3;
font-weight:600;
}

.vc-edit-account__input{
width:100%;
min-height:50px;
padding:0 16px;
border:1px solid #050505;
background:#050505;
color:#ffffff;
box-sizing:border-box;
outline:none;
}

.vc-edit-account__password-wrap{
display:flex;
align-items:center;
gap:10px;
border:1px solid #050505;
background:#050505;
padding:0 8px 0 0;
overflow:hidden;
}

.vc-edit-account__password-wrap .vc-edit-account__input{
border:none !important;
background:transparent !important;
padding-right:10px;
}

.vc-edit-account__toggle{
width:44px;
height:44px;
border:1px solid rgba(255,255,255,0.08);
background:rgba(255,255,255,0.03);
display:inline-flex;
align-items:center;
justify-content:center;
cursor:pointer;
flex:0 0 44px;
}

.vc-edit-account__actions{
padding-top:4px;
}

.vc-edit-account__submit{
border:1px solid #e4c5db;
background:#e4c5db;
color:#111111;
cursor:pointer;
display:inline-flex;
align-items:center;
justify-content:center;
transition:all .25s ease;
}

.vc-edit-account__message{
margin-bottom:18px;
padding:12px 14px;
border-radius:10px;
font-size:14px;
line-height:1.5;
}

.vc-edit-account__message.is-success{
background:#1f5f31;
color:#d7ffe0;
}

.vc-edit-account__message.is-error{
background:#8f1f1f;
color:#ffe3e3;
}

/* =========================================================
   RESPONSIVO
========================================================= */

@media (max-width: 1024px){
.vc-subscriptions-grid{
grid-template-columns:repeat(var(--vc-sub-cols-tablet,3), minmax(0,1fr));
}
}

@media (max-width: 767px){
.vc-subscriptions-grid{
grid-template-columns:1fr;
}

.vc-course-title{
font-size:20px;
}

.vc-lesson-card{
width:160px;
}

.vc-lesson-image{
width:160px;
height:240px;
}

.vc-lesson-image img{
height:240px;
}

.vc-client-data-card .woocommerce-billing-fields__field-wrapper{
grid-template-columns:1fr !important;
}

.vc-payment-header{
flex-direction:column !important;
align-items:flex-start !important;
}

.vc-subscription-row{
grid-template-columns:1fr !important;
}

.vc-sub-status{
padding:20px;
}

.vc-sub-status__top{
flex-direction:column;
align-items:flex-start;
}

.vc-sub-status__title{
font-size:24px;
}

.vc-sub-plan__head{
flex-direction:column;
align-items:flex-start;
}

.vc-sub-status__actions{
width:100%;
}

.vc-edit-account__grid{
grid-template-columns:1fr;
}
}

.vc-sub-modal{
position:fixed;
inset:0;
z-index:9999;
}

.vc-sub-modal__overlay{
position:absolute;
inset:0;
background:rgba(0,0,0,.65);
}

.vc-sub-modal__box{
position:relative;
max-width:460px;
margin:10vh auto 0;
background:#171922;
border-radius:16px;
padding:28px;
box-sizing:border-box;
z-index:2;
}

.vc-sub-modal__title{
font-size:22px;
line-height:1.4;
font-weight:700;
color:#ffffff;
margin-bottom:20px;
}

.vc-sub-modal__actions{
display:flex;
flex-wrap:wrap;
gap:12px;
}


/* =========================================================
   VC LOGIN - PAINEIS
========================================================= */

.pcvc-login-box .pcvc-auth-panels{
width:100%;
}

.pcvc-login-box .pcvc-auth-panel{
display:none !important;
width:100%;
}

.pcvc-login-box .pcvc-auth-panel.is-active{
display:block !important;
}

.pcvc-login-box .pcvc-panel-title{
display:block;
margin:0 0 18px;
font-size:22px;
line-height:1.2;
font-weight:700;
color:#ffffff;
}