/* =========================================
   AMVC Design Tokens (CSS Custom Properties)
   ========================================= */
:root {
    --color-brand-red: #D11717;
    --color-primary-blue: #273272;
    --color-dark-navy: #1b182f;
    --color-text-dark: #222;
    --color-text-body: #73727c;
    --color-bg-light: #f4f5f4;
    --color-white: #fff;
    --color-cta-accent: #ec2126;
    --color-accent-gold: #d9a84b;
    --font-primary: 'Poppins', sans-serif;
    --spacing-section: 60px;
    --radius-card: 10px;
    --radius-btn: 10px;
    --radius-input: 4px;
    --transition-base: all 500ms ease;
}

.elementor-element .elementor-column-gap-default>.elementor-row>.elementor-column>.elementor-element-populated,
.elementor-column-gap-default>.elementor-column>.elementor-element-populated {
    padding: 0px !important;
}

.main-menu .navigation>li.dropdown>a::before {
    font-family: 'fontawesome';
}

.admin-bar .sticky-header {
    top: 32px !important;
}

.sidebar-page-container .comments-area .comment-box-list>.vezaconslt-comment-item:last-child>.comment-box {
    margin-bottom: 0px;
}

.comment-box>.comment-box {
    border-bottom: 1px solid #e1e8e4;
    padding-bottom: 40px;
}

.blog-details-content .comment-box .comment {
    margin-bottom: 52px;
}

.blog-details-content .comment-box {
    margin-top: 70px;
}

.vezaconslt-comment-item>.vezaconslt-comment-item {
    margin-left: 50px;
}

.comment-form {
    margin-top: 70px;
}

.vezaconslt-comment-item .comment-form {
    margin: 52px 0;
}

#cancel-comment-reply-link {
    color: inherit;
    display: block;
    font-size: 18px;
    margin-top: 8px;
}

.about-section .pattern-layer {
    z-index: -1;
}

.page-title .bread-crumb li:last-child {
    padding-right: 0;
    margin-right: 0;
}

.list-style-one li:last-child {
    margin-bottom: 0px
}

.team-details .text p {
    margin-bottom: 25px;
    font-size: 15px;
    line-height: 26px;
}

/*Coaching Menu*/
.coaching-sidebar ul.menu {
    margin-bottom: 30px;
}

.coaching-sidebar ul.menu li {
    margin-bottom: 10px;
    position: relative;
    display: block;
}

.coaching-sidebar ul.menu li a {
    font-size: 16px;
    font-weight: 500;
    color: #1b182f;
    display: block;
    position: relative;
    z-index: 1;
    background: #f1f0f7;
    border-radius: 10px;
    padding: 15px 30px;
}

.coaching-sidebar ul.menu li.current-menu-item a,
.coaching-sidebar ul.menu li a:hover {
    color: #fff;
}

.coaching-sidebar ul.menu li.current-menu-item a:before,
.coaching-sidebar ul.menu li a:hover:before {
    width: 100%;
}

.coaching-sidebar ul.menu li a:before {
    position: absolute;
    content: '';
    background: #1b182f;
    width: 0%;
    height: 100%;
    left: 0px;
    top: 0px;
    border-radius: 10px;
    z-index: -1;
    transition: all 500ms ease;
}

.coaching-sidebar ul.menu li a::after {
    position: absolute;
    content: "\f105";
    font-family: 'Font Awesome 5 Pro';
    top: 17px;
    right: 30px;
    transition: all 500ms ease;
}

.coaching-sidebar ul.menu li.current-menu-item a:after,
.coaching-sidebar ul.menu li a:hover:after {
    color: #ec2126;
}

.coaching-details figure.featured-image {
    margin-bottom: 30px !important;
}

.coaching-details .text .text p {
    margin-bottom: 35px;
    font-size: 18px;
    line-height: 36px;
}

.service-details figure.featured-image,
.country-details figure.featured-image {
    margin-bottom: 52px !important;
}

/*Services Menu*/
.service-details .service-sidebar .single-service-sidebar {
    margin-bottom: 45px;
}

.service-details .service-sidebar ul.menu li {
    position: relative;
    display: block;
}

.service-details .service-sidebar ul.menu li a {
    position: relative;
    display: block;
    font-size: 18px;
    line-height: 28px;
    font-weight: 500;
    color: #222;
    padding: 21px 40px;
    background: #e7ecf2;
    z-index: 1;
}

.service-details .service-sidebar ul.menu li a:after {
    color: #c8d1db;
    position: absolute;
    content: "\f102";
    font-family: flaticon !important;
    top: 17px;
    right: 30px;
    transition: all 500ms ease;
}

.service-details .service-sidebar ul.menu li.current-menu-item a:after,
.service-details .service-sidebar ul.menu li a:hover:after {
    color: #fff;
}

.service-details .service-sidebar ul.menu li.current-menu-item a,
.service-details .service-sidebar ul.menu li a:hover {
    color: #fff;
}

.service-details .service-sidebar ul.menu li a:before {
    position: absolute;
    content: '';
    width: 0%;
    height: 100%;
    top: 0px;
    right: 0px;
    z-index: -1;
    transition: all 500ms ease;
}

.service-details .service-sidebar ul.menu li.current-menu-item a:before,
.service-details .service-sidebar ul.menu li a:hover:before {
    width: 100%;
    left: 0px;
}

.service-details .service-sidebar ul.menu li:nth-child(2n+1) a {
    background: #eff2f5;
}

.service-details .service-sidebar ul.menu li a i {
    position: relative;
    font-size: 20px;
    font-weight: 700;
    float: right;
    color: #c8d1db;
    top: 2px;
    transition: all 500ms ease;
}

.service-details .service-sidebar ul.menu li.current-menu-item a i,
.service-details .service-sidebar ul.menu li a:hover i {
    color: #fff;
}

.service-details .service-sidebar ul.menu li a:before {
    background: #ec2126;
}

.service-details .service-sidebar #nav_menu-6 {
    padding: 33px 35px 39px 35px;
    background: #eff2f5;
}

.service-details .service-sidebar .widget-title h4 {
    font-size: 20px;
    line-height: 30px;
    margin: 0px;
}

.service-sidebar #nav_menu-6 ul.menu li {
    position: relative;
    display: block;
    margin-bottom: 8px;
}

.service-sidebar #nav_menu-6 ul.menu li a {
    position: relative;
    display: inline-block;
    font-size: 18px;
    font-weight: 500;
    color: #222;
    padding: 2px 0px;
    padding-left: 52px;
    background: none;
}

.service-sidebar #nav_menu-6 ul.menu li a::before {
    position: absolute;
    content: '';
    background: #d2dbe4;
    width: 1px;
    height: 100%;
    left: 28px;
    top: 0px;
}

.service-sidebar #nav_menu-6 ul.menu li a::after {
    position: absolute;
    content: "\f102";
    font-family: 'Flaticon', sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: #c8d1db;
    left: 0px;
    top: 0px;
    transition: all 500ms ease;
}

.service-sidebar #nav_menu-6 ul.menu li a:hover,
.service-sidebar #nav_menu-6 ul.menu li a:hover::after {
    color: #ec2126;
}

#contact-form input[type=submit] {
    background: #ec2126;
}

#contact-form input[type=submit]:hover {
    background: #1b182f;
}

.blog-sidebar .widget_search {
    background: none;
    padding: 0px;
}

/*Blog Sidebar Category*/
.single-sidebar.sidebar-widget ul li {
    position: relative;
    display: block;
    margin-bottom: 18px;
}

.single-sidebar.sidebar-widget ul li:last-child {
    margin-bottom: 0px;
}

.single-sidebar.sidebar-widget ul li a {
    display: inline-block;
    font-size: 16px;
    font-weight: 500;
    color: #73727c;
    width: 100%;
}

.single-sidebar.sidebar-widget ul li a:hover {
    color: #ec2126;
}

.single-sidebar.sidebar-widget ul li a span {
    float: right;
}

/*Tags*/
.blog-sidebar .tagcloud a {
    background: #fff;
    border-radius: 8px;
    color: #73727c;
    display: inline-block;
    font-size: 11px !important;
    font-weight: 700;
    line-height: 20px;
    margin-right: 10px;
    margin-bottom: 10px;
    padding: 10px 24px;
    position: relative;
    text-transform: uppercase;
    text-align: center;
}

.blog-sidebar .tagcloud a:hover {
    color: #fff;
    background: #ec2126;
}

/*Pagination*/
.pagination {
    position: relative;
    display: block;
    margin-top: 30px;
}

.pagination li {
    position: relative;
    float: left;
    margin-bottom: 10px;
    margin-right: 10px;
}

.pagination li:last-child {
    margin: 0px !important;
}

.pagination li a {
    position: relative;
    display: inline-block;
    font-size: 16px;
    font-weight: 600;
    height: 56px;
    width: 56px;
    line-height: 56px;
    text-align: center;
    color: #1e2434;
    z-index: 1;
    background-color: #f4f5f4;
    transition: all 500ms ease;
    border-radius: 0;
}

.pagination li span {
    position: relative;
    display: inline-block;
    font-size: 16px;
    font-weight: 600;
    height: 56px;
    width: 56px;
    line-height: 56px;
    text-align: center;
    color: #1e2434;
    z-index: 1;
    background-color: #f4f5f4;
    transition: all 500ms ease;
}

.pagination li a:hover,
.pagination li span.current {
    color: #fff;
    border-color: #ec2126;
    background-color: #ec2126;
}


.blog-sidebar .widget_vezaconslt_recent_posts {
    padding-bottom: 20px;
}

.blog-sidebar .widget_vezaconslt_recent_posts .post-widget {
    padding-bottom: 0px;
}

/** AMVC Logo & Header Refinement - Vertical Alignment Fix **/

/* 1. Make the outer container a flexbox to align logo and menu areas */
.header-lower .outer-box,
.sticky-header .outer-box {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    padding: 0 !important;
}

/* Ensure clearfix doesn't mess with flex */
.header-lower .outer-box::before,
.header-lower .outer-box::after,
.sticky-header .outer-box::before,
.sticky-header .outer-box::after {
    display: none !important;
}

/* 2. Reset logo box positioning and align it vertically on the left */
.header-lower .logo-box,
.sticky-header .logo-box {
    position: relative !important;
    left: auto !important;
    bottom: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    float: none !important;
}

/* 3. Reset menu area and align its contents (menu + search) */
.menu-area {
    display: flex !important;
    align-items: center !important;
    float: none !important;
    margin-left: auto !important;
    /* Pushes the menu area to the right */
}

/* 4. Align menu items text vertically */
.main-menu .navigation>li>a {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    line-height: 110px !important;
    /* Matches the .header-lower height */
    display: block !important;
}

/* Matching line-height for sticky header if its height is different */
.sticky-header .main-menu .navigation>li>a {
    line-height: 80px !important;
    /* Adjust if sticky header is shorter */
}

/* 5. Reset search icon margins and center it vertically */
.main-header .nav-right {
    margin: 0 0 0 30px !important;
    /* Spacing between menu and search icon */
    padding: 0 !important;
    float: none !important;
    display: flex !important;
    align-items: center !important;
    height: 110px !important;
}

.sticky-header .nav-right {
    height: 80px !important;
}

/* Remove any background patches if present */
.header-lower .logo-box::before,
.header-lower .logo-box::after,
.sticky-header .logo-box::before,
.sticky-header .logo-box::after {
    display: none !important;
}

/* Reduce banner to content spacing */
.page-title .content-box {
    padding-top: 80px !important;
    padding-bottom: 100px !important;
}


.sidebar-page-container {
    padding-top: 20px !important;
    padding-bottom: 60px !important;
}

/* Force all 5 items in the "Apply Online Visa" section into a single row on desktop */
@media (min-width: 992px) {
    .process-section .row {
        display: flex !important;
        flex-wrap: nowrap !important;
    }

    .process-section .processing-block {
        flex: 0 0 20% !important;
        max-width: 20% !important;
    }

    /* Adjust arrow position to bridge the gap between narrower blocks */
    .process-section .processing-block .arrow {
        left: auto !important;
        right: -55px !important;
    }
}

/* Ensure the arrow after the 5th item is always hidden */
.process-section .processing-block:last-child .arrow,
.process-section .processing-block:nth-child(5) .arrow {
    display: none !important;
}

/* Global fix for .row.clearfix used in theme templates */
.row.clearfix {
    display: flex !important;
    flex-wrap: wrap !important;
    margin-right: -15px !important;
    margin-left: -15px !important;
}

/* Ensure clearfix behavior doesn't break flex layout */
.row.clearfix::before,
.row.clearfix::after {
    display: none !important;
}

/* Fix for columns inside row clearfix */
.row.clearfix>[class*="col-"] {
    position: relative;
    width: 100%;
    padding-right: 15px;
    padding-left: 15px;
}

/* Hero Banner: Vibrant Brand Red Update (#D11717) & Synchronized Animation Sequence */
.banner-carousel .content-box h3,
.banner-section.style-two .banner-carousel .content-box h3,
.banner-carousel .content-box .rotate-text,
.banner-section.style-two .rotate-text {
    color: #D11717 !important;
}

/* Vertical Line Base State */
.banner-section.style-two .content-box:before {
    background-color: #D11717 !important;
    opacity: 0 !important;
    transform: translateY(-100px) !important;
    transition: all 800ms ease !important;
    top: 5px !important;
    height: 225px !important;
    width: 2px !important;
    left: -23px !important;
    position: absolute !important;
}

/* --- Synchronized Entrance Sequence (Slide Mode) --- */

/* 1. Subtitle & Vertical Line (Active - Start at 400ms) */
.banner-carousel .owl-item.active .content-box h3 {
    opacity: 1 !important;
    transition-delay: 400ms !important;
    visibility: visible !important;
}

.banner-carousel .owl-item.active .content-box:before {
    opacity: 1 !important;
    transform: translateY(0) !important;
    transition-delay: 400ms !important;
    visibility: visible !important;
}

/* 2. Vertical Rotating Text Base State & Entrance (Active - Start at 500ms) */
.banner-section.style-two .rotate-text {
    left: -130px !important;
    opacity: 0 !important;
    transform: translateX(-150px) rotate(-90deg) !important;
    transition: all 800ms ease !important;
    font-weight: 519 !important;
    letter-spacing: 12px !important;
}

.banner-carousel .owl-item.active .content-box .rotate-text {
    opacity: 1 !important;
    transform: translateX(0) rotate(-90deg) !important;
    transition-delay: 500ms !important;
    visibility: visible !important;
}

/* 3. Main Title H1 & H2 (Active - Start at 600ms) */
.banner-carousel .owl-item.active .content-box h1,
.banner-carousel .owl-item.active .content-box h2 {
    opacity: 1 !important;
    transition-delay: 600ms !important;
    visibility: visible !important;
}

/* 4. Action Button (Active - Start at 700ms) */
.banner-carousel .owl-item.active .content-box .btn-box {
    opacity: 1 !important;
    transition-delay: 700ms !important;
    visibility: visible !important;
}

/* Ensure all elements use consistent transition speed when active */
.banner-carousel .owl-item.active .content-box h3,
.banner-carousel .owl-item.active .content-box h1,
.banner-carousel .owl-item.active .content-box h2,
.banner-carousel .owl-item.active .content-box .btn-box,
.banner-carousel .owl-item.active .content-box .rotate-text,
.banner-carousel .owl-item.active .content-box:before {
    transition-duration: 800ms !important;
}

/* rotate-text responsive adjustment — migrated to responsive.css BP3 block */

/* Reduced banner height & consistent overlay coverage */
.banner-section.style-two .banner-carousel .slide-item {
    padding-top: 150px !important;
    padding-bottom: 80px !important;
    min-height: 500px !important;
}

/* Fix for wide top bar causing horizontal scroll */
.header-top .top-inner {
    max-width: 1180px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    float: none !important;
}

.header-top .top-inner::before {
    width: 100% !important;
}

/* Experienced Agents Widget Enhancements */
.why-different-container {
    border-top: 1px solid rgba(0, 0, 0, 0.05);
    padding-top: 30px;
}

.why-item {
    border-left: 2px solid #D11717;
    transition: all 0.3s ease;
    background: transparent;
}

.why-item:hover {
    border-left-width: 5px;
    padding-left: 23px !important;
}

.why-item h4 {
    color: #1b182f;
}

.why-item p {
    color: #73727c;
    line-height: 1.4 !important;
    margin-bottom: 0;
}

.offer-title-box h3 {
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Offer Grid & Counter Layout Refinement */
.offer-item {
    transition: all 0.3s ease;
}

.offer-item span {
    display: inline-block;
    vertical-align: top;
    color: #1b182f;
}

.offer-item i {
    font-size: 20px !important;
    margin-top: 2px;
}

.funfact-inner {
    position: relative;
    z-index: 2;
    background: transparent;
    border-top: 1px solid rgba(0, 0, 0, 0.05);
    padding-top: 20px;
}

.counter-block-one .inner-box {
    background: transparent !important;
    padding: 0 !important;
}

/* Background Extension Fix */
.chooseus-section .bg-layer {
    height: 100% !important;
}

.chooseus-section .image-layer {
    bottom: 0 !important;
}

/* About Us: 5-Step Process Roadmap */
.about-process-row {
    display: flex !important;
    flex-wrap: wrap !important;
}

@media (min-width: 992px) {
    .about-process-row .process-block-v2 {
        flex: 0 0 20% !important;
        max-width: 20% !important;
    }
}

/* About Us: Mission & Vision Boxes */
.mission-vision-container {
    display: flex;
    gap: 30px;
    margin: 40px 0;
}

.mv-box {
    flex: 1;
    padding: 40px;
    background: #fff;
    border-radius: 12px;
    border-top: 4px solid #D11717;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    transition: transform 0.3s ease;
    text-align: center;
}

.mv-box:hover {
    transform: translateY(-5px);
}

.mv-box i {
    font-size: 45px;
    color: #D11717;
    margin-bottom: 25px;
    display: block;
}

.mv-box h3 {
    margin-bottom: 15px;
    color: #1b182f;
    font-size: 24px;
}

.mv-box p {
    color: #73727c;
    line-height: 1.6;
    margin-bottom: 0;
}

/* mission-vision-container stack — migrated to responsive.css BP4 block */

/** Contact Us Page: Align 'Call Now' card with 'Full Name' field (Desktop only) **/
@media (min-width: 992px) {
    .contact-section .info-column .info-inner {
        margin-top: 122px !important;
    }
}

/** Service Card Bullet Points Styling **/
.service-excerpt ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* About Us: Signature Story (SEO Style) Layout */
.mission-vision-wrapper.balanced_story .about-seo-section {
    position: relative;
    display: block;
}

.mission-vision-wrapper.balanced_story .sub-title {
    color: #ec2126;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
}

.mission-vision-wrapper.balanced_story .color-dark {
    color: #1b182f;
}

.mission-vision-wrapper.balanced_story .color-gray {
    color: #73727c;
}

.mission-vision-wrapper.balanced_story .bg-light-gray {
    background: #f4f5f4;
}

.mission-vision-wrapper.balanced_story .highlight-text {
    border-left: 5px solid #d11717;
    transition: all 0.3s ease;
}

.mission-vision-wrapper.balanced_story .highlight-text:hover {
    padding-left: 30px;
    background: #ededed;
}

.mission-vision-wrapper.balanced_story .b_shadow_10 {
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1);
}

.mission-vision-wrapper.balanced_story .image-column figure {
    width: 100%;
    border-radius: 15px;
    overflow: hidden;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1);
}

.mission-vision-wrapper.balanced_story .image-column figure img {
    width: 100%;
    display: block;
    height: auto;
}

/* Layout Utilities */
.lh_1-2 {
    line-height: 1.2;
}

.ls_2 {
    letter-spacing: 2px;
}

.bl_5_red {
    border-left: 5px solid #d11717;
}

.p_20_25 {
    padding: 20px 25px;
}

.bg-light-gray {
    background-color: #f4f5f4;
}

.b_radius_4 {
    border-radius: 4px;
}

.b_radius_15,
.mission-vision-wrapper.balanced_story .image-column figure,
.mission-vision-wrapper.balanced_story .image-column figure img {
    border-radius: 10px !important;
    overflow: hidden !important;
}

.m_0 {
    margin: 0;
}

.pl_40 {
    padding-left: 40px;
}

.pr_40 {
    padding-right: 40px;
}

/* mission-vision-wrapper mobile overrides — migrated to responsive.css BP4 block */

.service-excerpt ul li:before {
    content: "\f105" !important;
    font-family: 'Font Awesome 5 Pro' !important;
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    color: #D11717 !important;
    /* Brand Red */
    font-weight: 900 !important;
}

.service-excerpt ul li:last-child {
    margin-bottom: 0 !important;
}

/** Pattern Layer Centering & LHS positioning **/
/** Pattern Layer Centering & LHS positioning **/
.pattern-layer.v_center {
    top: 50% !important;
    transform: translateY(-50%) !important;
    margin-top: 0 !important;
    width: 238px !important;
    /* Doubled from 119px */
    height: 494px !important;
    /* Doubled from 247px */
    background-size: contain !important;
    background-repeat: no-repeat !important;
}

.pattern-layer.l_0.v_center {
    transform: translateY(-50%) scaleX(-1) !important;
    /* Center and Flip */
}

/* CTA section tablet/mobile — migrated to responsive.css BP3 block */

/* --- Sticky Sidebar Logic --- */
@media only screen and (min-width: 992px) {

    /* Target both potential sidebar classes */
    .sidebar-side .service-sidebar,
    .sidebar-side .blog-sidebar {
        position: -webkit-sticky;
        position: sticky;
        top: 100px;
        /* Fallback offset, will be refined by JS */
        transition: top 0.3s ease;
        z-index: 9;
    }

    /* Ensure the parent row uses flex to maintain full height for the sticky track */
    .sidebar-page-container .row {
        display: flex;
        align-items: stretch;
    }

    /* Fix for sticky sidebar: allow overflow on the theme's inner-box wrapper */
    .sidebar-page-container .inner-box {
        overflow: visible !important;
    }

    .service-details-content {
        padding-top: 35px;
    }
}

/* About Us Section - Spacing Refinement */
.about-style-three .sec-title {
    margin-bottom: 10px !important;
}

.about-style-three .sec-title {
    margin-bottom: 10px;
}

/* Free Visa Assessment Form Grid */
.assessment-form-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px 20px;
    /* Reduced vertical gap from 20px to 12px */
    margin-bottom: 15px;
}

/* assessment-form-grid two-col rule — migrated to responsive.css min-width:768px block */


/* Match Sidebar Font (Roboto) */
.assessment-form-grid label,
.assessment-form-grid input,
.assessment-form-grid select,
.assessment-form-grid textarea {
    font-family: 'Roboto', sans-serif !important;
}

.assessment-form-grid label {
    font-weight: 500;
    color: #222;
    margin-bottom: 4px;
    display: block;
}

/* Ensure fields match and have consistent height */
.assessment-form-grid select.form-control,
.assessment-form-grid input.form-control {
    height: 45px !important;
    padding-top: 6px !important;
    padding-bottom: 6px !important;
    padding-right: 12px !important;
    padding-left: 12px;
    border: 1px solid #ced4da !important;
    border-radius: 4px !important;
    background-color: #fff !important;
    font-size: 16px;
    width: 100%;
}

.assessment-form-grid textarea.form-control {
    padding: 10px 12px !important;
    border: 1px solid #ced4da !important;
    border-radius: 4px !important;
    background-color: #fff !important;
    font-size: 16px;
    width: 100%;
    min-height: 120px;
}

.assessment-form-row {
    margin-bottom: 12px;
    /* Reduced from 20px */
}


/* Close down whitespace between label and field */
.assessment-form-row p {
    margin-bottom: 0 !important;
}

.assessment-form-row br {
    display: none !important;
}

/* Make intl-tel-input full width */
.iti {
    width: 100%;
}

.iti__flag-container {
    z-index: 99;
}

.assessment-error {
    color: #dc3232;
    font-size: 13px;
    margin-top: 5px;
    display: none;
}

.assessment-error.visible {
    display: block;
}

/* =========================================
   Assessment Page Sidebar – match Service Details look
   ========================================= */

/* Remove column padding so widgets touch the edges (full-width look) */
.page-id-1278 .sidebar-side {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Remove boundary styles from the sidebar container and widgets */
.page-id-1278 .sidebar-side .blog-sidebar .sidebar-widget {
    background: transparent !important;
    padding: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    border: none !important;
}

/* Hide the Free Visa Assessment CTA on the Assessment page itself */
.page-id-1278 .widget_vezaconslt_free_online_assessment {
    display: none !important;
}

.sidebar-page-container .sidebar-side .blog-sidebar .single-service-sidebar {
    margin-bottom: 45px;
}

.sidebar-page-container .sidebar-side .blog-sidebar ul.menu li {
    position: relative;
    display: block;
}

.sidebar-page-container .sidebar-side .blog-sidebar ul.menu li a {
    position: relative;
    display: block;
    font-size: 18px;
    line-height: 28px;
    font-weight: 500;
    color: #222;
    padding: 21px 40px;
    background: #e7ecf2;
    z-index: 1;
    text-decoration: none;
    transition: color 500ms ease;
}

.sidebar-page-container .sidebar-side .blog-sidebar ul.menu li a:after {
    color: #c8d1db;
    position: absolute;
    content: "\f102";
    font-family: flaticon !important;
    top: 17px;
    right: 30px;
    transition: all 500ms ease;
}

.sidebar-page-container .sidebar-side .blog-sidebar ul.menu li.current-menu-item a:after,
.sidebar-page-container .sidebar-side .blog-sidebar ul.menu li a:hover:after {
    color: #fff;
}

.sidebar-page-container .sidebar-side .blog-sidebar ul.menu li.current-menu-item a,
.sidebar-page-container .sidebar-side .blog-sidebar ul.menu li a:hover {
    color: #fff;
}

.sidebar-page-container .sidebar-side .blog-sidebar ul.menu li a:before {
    position: absolute;
    content: '';
    width: 0%;
    height: 100%;
    top: 0px;
    right: 0px;
    z-index: -1;
    background: #ec2126;
    transition: all 500ms ease;
}

.sidebar-page-container .sidebar-side .blog-sidebar ul.menu li.current-menu-item a:before,
.sidebar-page-container .sidebar-side .blog-sidebar ul.menu li a:hover:before {
    width: 100%;
    left: 0px;
}

.sidebar-page-container .sidebar-side .blog-sidebar ul.menu li:nth-child(2n+1) a {
    background: #eff2f5;
}

/* =========================================
   Assessment Form — Phase 3 UX / Accessibility
   ========================================= */

/* Focus-visible (WCAG 2.2) — gold ring on keyboard focus */
.wpcf7 input:focus-visible,
.wpcf7 select:focus-visible,
.wpcf7 textarea:focus-visible {
    outline: 2px solid #d9a84b;
    outline-offset: 2px;
}

/* Consent checkbox layout */
.wpcf7-checkbox .wpcf7-list-item {
    font-size: 1rem;
    margin-bottom: 0.6rem;
}

.checkbox-consent .wpcf7-list-item {
    font-size: 0.95rem;
    line-height: 1.5;
    margin-bottom: 10px;
}

/* Radio group — flex layout, no br gaps */
.wpcf7-radio .wpcf7-list-item {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-right: 1.2rem;
    margin-bottom: 0.4rem;
}

/* Phone hint text */
.form-hint {
    font-size: 0.82rem;
    color: #6b7280;
    margin-top: 4px;
    display: block;
}

/* Honeypot — completely hidden */
.wpcf7 .hp-field,
.wpcf7 .hp-field+.wpcf7-form-control-wrap {
    display: none !important;
    visibility: hidden !important;
    position: absolute !important;
    left: -9999px !important;
}

/* ============================================================
   Center-align last row of cards in the services grid (Desktop)
   ============================================================ */
@media (min-width: 992px) {
    .service-section .row.clearfix {
        justify-content: center !important;
    }
}

/* ============================================================
   CTA Section Redesign (Gradient, Shadows & Hover Interactions)
   ============================================================ */

/* 1. Gradient Background & Container Shadow */
.cta-section .inner-container {
    background: linear-gradient(135deg, #D11717 -20%, #273272 45%, #1b182f 100%) !important;
    box-shadow: 0 20px 50px rgba(27, 24, 47, 0.25) !important;
    overflow: hidden !important;
    /* Ensure content scale does not leak */
}

/* 1b. Hide CTA image to prevent overlap and allow full-width text */
.cta-section .inner-container .image-box {
    display: none !important;
}

/* 1c. Flex Layout on Desktop (992px and up) to prevent text wrapping */
@media (min-width: 992px) {
    .cta-section .inner-container {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        padding-left: 50px !important;
        padding-right: 50px !important;
        /* Balanced padding since image is removed */
    }

    .cta-section .inner-container::before,
    .cta-section .inner-container::after {
        display: none !important;
        /* Disable float clearfix */
    }

    .cta-section .inner-container .text {
        float: none !important;
        flex: 1 1 auto !important;
        margin-right: 30px !important;
    }

    .cta-section .inner-container .btn-box {
        float: none !important;
        margin-top: 0 !important;
        flex-shrink: 0 !important;
    }

    .cta-section .inner-container h2 {
        font-size: 34px !important;
        /* Slightly larger heading now that it has more room */
        line-height: 42px !important;
        white-space: nowrap !important;
        /* Force text in one single line */
    }

    .cta-section .inner-container h2 br {
        display: none !important;
        /* Remove line break */
    }
}

/* --- Banner / Page Title Enhancements --- */
.page-title {
    position: relative;
    overflow: hidden;
}

.page-title:before {
    background: linear-gradient(135deg, var(--color-dark-navy) 0%, var(--color-primary-blue) 60%, var(--color-brand-red) 100%) !important;
    opacity: 0.75 !important;
}

.page-title:after {
    position: absolute;
    content: '';
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200"><path fill="rgba(255,255,255,0.03)" d="M0 0h200v200H0z"/><circle cx="20" cy="30" r="1.5" fill="rgba(255,255,255,0.15)"/><circle cx="60" cy="80" r="1" fill="rgba(255,255,255,0.1)"/><circle cx="130" cy="20" r="1.5" fill="rgba(255,255,255,0.12)"/><circle cx="170" cy="90" r="1" fill="rgba(255,255,255,0.08)"/><circle cx="40" cy="150" r="1.5" fill="rgba(255,255,255,0.1)"/><circle cx="150" cy="160" r="1" fill="rgba(255,255,255,0.12)"/><circle cx="90" cy="50" r="1.5" fill="rgba(255,255,255,0.08)"/></svg>') repeat;
    opacity: 0.5;
    pointer-events: none;
    z-index: 1;
}

/* Service, Contact & Blog pages: remove dot pattern, use shape-7 instead */
.page-child .page-title:after,
.page-id-264 .page-title:after,
.page-id-454 .page-title:after,
.page-id-663 .page-title:after,
.page-id-1278 .page-title:after,
.blog .page-title:after {
    display: none;
}

.page-child .page-title,
.page-id-264 .page-title,
.page-id-454 .page-title,
.page-id-663 .page-title,
.page-id-1278 .page-title,
.blog .page-title {
    background-image: none !important;
}

.banner-shape {
    display: none;
    position: absolute;
    right: -80px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
    pointer-events: none;
    opacity: 0.12;
    width: 420px;
    height: auto;
}

.banner-shape img {
    width: 100%;
    height: auto;
    display: block;
}

.page-child .banner-shape,
.page-id-264 .banner-shape,
.page-id-454 .banner-shape,
.page-id-663 .banner-shape,
.page-id-1278 .banner-shape,
.blog .banner-shape {
    display: block;
}

.page-title .auto-container {
    position: relative;
    z-index: 2;
}

.page-title .content-box h1 {
    text-shadow: 0 2px 20px rgba(0, 0, 0, 0.3);
    letter-spacing: 0.5px;
}

.page-title .bread-crumb {
    border-radius: 8px 8px 0 0 !important;
    background: rgba(255, 255, 255, 0.95) !important;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    padding: 6px 30px !important;
    box-shadow: 0 -2px 15px rgba(0, 0, 0, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-bottom: none;
}

.page-title .bread-crumb li {
    color: var(--color-primary-blue) !important;
    font-weight: 500;
    font-size: 12px;
}

.page-title .bread-crumb li a {
    color: var(--color-brand-red) !important;
    transition: color 0.3s ease;
}

.page-title .bread-crumb li a:hover {
    color: var(--color-primary-blue) !important;
}

.page-title .bread-crumb li:before {
    background: var(--color-primary-blue) !important;
    width: 5px !important;
    height: 2px !important;
}

/* 3. Button Enhancements & Hover Glow */
.cta-section .inner-container .theme-btn {
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important;
    border: 2px solid transparent !important;
}

.cta-section .inner-container .theme-btn:hover {
    background: #D11717 !important;
    color: #fff !important;
    border-color: #fff !important;
    box-shadow: 0 10px 25px rgba(209, 23, 23, 0.4) !important;
    transform: translateY(-2px) !important;
}

.blog .sidebar-page-container {
    padding-top: 100px !important;
}

/* Choose us section: image matches content height */
.chooseus-section .image-column {
    display: flex;
}

.chooseus-section .image-box {
    height: 100%;
}

.chooseus-section .image-box .image {
    height: 100%;
    border-radius: 0 10px 10px 0;
}

.chooseus-section .image-box .image img {
    height: 100%;
    width: 100%;
    object-fit: cover;
    max-width: 100%;
    float: none;
    border-radius: 0 10px 10px 0;
}

.why-different-container .mb_20 {
    margin-bottom: 35px;
}

/* Hide number input arrows on English band score fields */
.page-id-1278 input[name="english-reading"],
.page-id-1278 input[name="english-writing"],
.page-id-1278 input[name="english-speaking"],
.page-id-1278 input[name="english-listening"] {
    -moz-appearance: textfield;
}

.page-id-1278 input[name="english-reading"]::-webkit-inner-spin-button,
.page-id-1278 input[name="english-writing"]::-webkit-inner-spin-button,
.page-id-1278 input[name="english-speaking"]::-webkit-inner-spin-button,
.page-id-1278 input[name="english-listening"]::-webkit-inner-spin-button,
.page-id-1278 input[name="english-reading"]::-webkit-outer-spin-button,
.page-id-1278 input[name="english-writing"]::-webkit-outer-spin-button,
.page-id-1278 input[name="english-speaking"]::-webkit-outer-spin-button,
.page-id-1278 input[name="english-listening"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Center and display process section in 5 columns on desktop */
@media (min-width: 1200px) {
    .process-section .row {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: center !important;
    }

    .process-section .processing-block {
        flex: 0 0 20% !important;
        max-width: 20% !important;
    }
}

/* Scale down process circles and arrows in landscape to prevent overlapping */
@media only screen and (max-width: 991px) and (orientation: landscape) {
    .processing-block-one .inner-box .icon-box {
        width: 120px !important;
        height: 120px !important;
        line-height: 130px !important;
        margin-bottom: 10px !important;
    }

    .processing-block-one .inner-box .icon-box i {
        font-size: 38px !important;
    }

    .processing-block-one .inner-box .icon-box span {
        width: 35px !important;
        height: 35px !important;
        line-height: 30px !important;
        font-size: 11px !important;
        padding-left: 10px !important;
        padding-bottom: 10px !important;
    }

    .processing-block-one .inner-box h3 {
        font-size: 16px !important;
        line-height: 22px !important;
        margin-bottom: 10px !important;
    }

    .processing-block-one .inner-box p {
        font-size: 13px !important;
        line-height: 18px !important;
    }

    .processing-block-one .inner-box .arrow {
        display: block !important;
        top: 55px !important;
        right: -25px !important;
        width: 40px !important;
        height: 18px !important;
        background-size: contain !important;
        background-repeat: no-repeat !important;
    }
}

/* Force 3-column layout and scale down Elementor features container on mobile */
@media (max-width: 767px) {
    .elementor-element-2ad883b {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    .elementor-element-2ad883b>.e-con-inner {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        justify-content: space-between !important;
        gap: 8px !important;
    }

    .elementor-element-2ad883b .elementor-widget-icon-box {
        width: 32% !important;
        max-width: 32% !important;
        margin-bottom: 0 !important;
    }

    /* Scale down icon sizes */
    .elementor-element-2ad883b .elementor-icon {
        font-size: 22px !important;
    }

    .elementor-element-2ad883b .elementor-icon-box-icon {
        margin-bottom: 4px !important;
    }

    .elementor-element-2ad883b .elementor-icon svg {
        width: 20px !important;
        height: 20px !important;
    }

    /* Scale down title text size */
    .elementor-element-2ad883b .elementor-icon-box-title {
        font-size: 16px !important;
        line-height: 14px !important;
        font-weight: 600 !important;
    }

    /* Ensure text is centered and aligned */
    .elementor-element-2ad883b .elementor-icon-box-wrapper {
        text-align: center !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
    }
}

/* Footer Responsive Column Layouts */
@media (max-width: 991px) {

    /* Omit the first column (About Us) below 992px */
    .main-footer .footer-column:nth-child(1) {
        display: none !important;
    }
}

@media (min-width: 768px) and (max-width: 991px) {

    /* Keep columns 2, 3, and 4 in 3 columns till the mobile viewport */
    .main-footer .footer-column {
        flex: 0 0 33.3333% !important;
        max-width: 33.3333% !important;
        width: 33.3333% !important;
    }
}

@media (max-width: 767px) {

    /* Use CSS Grid for the footer row to stack Explore and Get In Touch on the right */
    .main-footer .widget-section .row {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        row-gap: 0 !important;
        column-gap: 20px !important;
    }

    /* Prevent pseudo-elements (used for clearfix) from occupying grid cells */
    .main-footer .widget-section .row::before,
    .main-footer .widget-section .row::after {
        display: none !important;
    }

    /* Omit the first column (About Us) */
    .main-footer .footer-column:nth-child(1) {
        display: none !important;
    }

    /* Column 2 (Links) occupies the left side, spanning both rows */
    .main-footer .footer-column:nth-child(2) {
        grid-column: 1 !important;
        grid-row: 1 / span 2 !important;
        width: 100% !important;
        max-width: 100% !important;
        flex: none !important;
    }

    /* Column 3 (Explore) occupies the right side, top row */
    .main-footer .footer-column:nth-child(3) {
        grid-column: 2 !important;
        grid-row: 1 !important;
        width: 100% !important;
        max-width: 100% !important;
        flex: none !important;
    }

    /* Spacing between the Explore widget and Get In Touch widget below it */
    .main-footer .footer-column:nth-child(3) .footer-widget {
        margin-bottom: 15px !important;
    }

    /* Column 4 (Get In Touch) occupies the right side, bottom row */
    .main-footer .footer-column:nth-child(4) {
        grid-column: 2 !important;
        grid-row: 2 !important;
        width: 100% !important;
        max-width: 100% !important;
        flex: none !important;
        margin-top: 0 !important;
    }

    /* Reduce gap between Get In Touch title and the first contact item */
    .main-footer .contact-widget .widget-title {
        margin-bottom: 8px !important;
    }

    .main-footer .contact-widget .contact-list {
        margin-top: 0 !important;
    }
}

/* =========================================
   Blog Listicle Styles (Numbered Tip Posts)
   ========================================= */

.blog-details-content .tip-section {
    position: relative;
    padding: 30px 0;
}

.blog-details-content .tip-section:first-of-type {
    padding-top: 10px;
}

.blog-details-content .tip-section h2 {
    display: flex;
    align-items: center;
    gap: 18px;
    font-size: 24px;
    line-height: 34px;
    font-weight: 700;
    color: var(--color-dark-navy);
    margin-bottom: 18px;
}

.blog-details-content .tip-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    background: var(--color-brand-red);
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    border-radius: 50%;
    line-height: 1;
    font-family: var(--font-primary);
}

.blog-details-content .tip-section p {
    margin-bottom: 16px;
    font-size: 16px;
    line-height: 28px;
    color: var(--color-text-body);
}

.blog-details-content .tip-section p:last-child {
    margin-bottom: 0;
}

.blog-details-content .tip-section ul {
    list-style: none;
    padding: 0;
    margin: 12px 0 16px 0;
}

.blog-details-content .tip-section ul li {
    position: relative;
    padding-left: 24px;
    margin-bottom: 8px;
    font-size: 16px;
    line-height: 28px;
    color: var(--color-text-body);
}

.blog-details-content .tip-section ul li::before {
    content: "\f105";
    font-family: 'Font Awesome 5 Pro';
    position: absolute;
    left: 0;
    top: 0;
    color: var(--color-brand-red);
    font-weight: 900;
}

.blog-details-content .tip-section ul li:last-child {
    margin-bottom: 0;
}

/* Blog Callout Box */
.blog-details-content .blog-callout {
    background: #faf8f8;
    border-left: 4px solid var(--color-brand-red);
    padding: 20px 25px;
    border-radius: 0 10px 10px 0;
    margin: 20px 0;
}

.blog-details-content .blog-callout p {
    margin-bottom: 0;
    font-weight: 500;
    color: var(--color-dark-navy);
}

/* Blog CTA Box (Conclusion) */
.blog-details-content .blog-cta-box {
    background: linear-gradient(135deg, #faf8f8 0%, #f0f1f8 100%);
    border-radius: 10px;
    padding: 35px;
    margin: 40px 0 20px 0;
    border: 1px solid #e8e6ef;
}

.blog-details-content .blog-cta-box h2 {
    display: block;
    font-size: 26px;
    line-height: 36px;
    font-weight: 700;
    color: var(--color-dark-navy);
    margin-bottom: 16px;
}

.blog-details-content .blog-cta-box p {
    margin-bottom: 16px;
    font-size: 16px;
    line-height: 28px;
    color: var(--color-text-body);
}

.blog-details-content .blog-cta-box p:last-child {
    margin-bottom: 0;
}

.blog-details-content .blog-cta-box a {
    color: var(--color-brand-red);
    font-weight: 600;
    text-decoration: none;
    transition: color 500ms ease;
}

.blog-details-content .blog-cta-box a:hover {
    color: var(--color-primary-blue);
}

/* Blog Intro Paragraph (before first tip) */
.blog-details-content .blog-intro {
    font-size: 17px;
    line-height: 30px;
    color: var(--color-text-body);
    margin-bottom: 10px;
    padding-bottom: 20px;
    border-bottom: 2px solid #f0f0f0;
}

.blog-details-content .blog-intro p {
    margin-bottom: 16px;
}

.blog-details-content .blog-intro p:last-child {
    margin-bottom: 0;
}

/* Blog Card Fallback (no featured image) */
.news-block-one .inner-box .image-box:empty {
    display: none;
}

.sidebar-page-container .news-block-one .inner-box:has(.image-box:empty) .lower-content,
.sidebar-page-container .news-block-one .inner-box:not(:has(.image-box)) .lower-content {
    padding-top: 25px;
}

/* Blog Listicle Responsive */
@media (max-width: 767px) {
    .blog-details-content .tip-section h2 {
        font-size: 20px;
        line-height: 28px;
        gap: 14px;
    }

    .blog-details-content .tip-number {
        width: 36px;
        height: 36px;
        font-size: 15px;
    }

    .blog-details-content .blog-cta-box {
        padding: 25px 20px;
    }

    .blog-details-content .blog-cta-box h2 {
        font-size: 22px;
        line-height: 30px;
    }
}

@media (max-width: 479px) {
    .blog-details-content .tip-section h2 {
        font-size: 18px;
        line-height: 26px;
        gap: 12px;
    }

    .blog-details-content .tip-number {
        width: 32px;
        height: 32px;
        font-size: 14px;
    }
}
/* =========================================
   Blog Body Image (Portrait Inline — Float Right)
   ========================================= */
.blog-body-image {
    float: right;
    width: 30%;
    margin: 0 0 25px 30px;
    text-align: center;
}

.blog-body-image img {
    width: 100%;
    height: auto;
    border-radius: 10px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
    display: block;
}

@media (max-width: 767px) {
    .blog-body-image {
        float: none;
        width: 100%;
        max-width: 300px;
        margin: 25px auto;
    }
}

.single-post .blog-details-content .image-box,
.single-post .blog-details-content .image-box figure {
    max-width: 770px;
    margin-left: auto;
    margin-right: auto;
}

.single-post .blog-details-content .image-box figure img {
    width: 100%;
    height: auto;
}

.single-post .sidebar-page-container .content-side,
.single-post .sidebar-page-container .content-side .blog-details-content {
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
}

/* ========================================================
   AMVC Booking Wizard & Lead Panel CSS (Task 8)
   ======================================================== */
#veza-booking-app.veza-booking-card {
    background: #ffffff;
    border-radius: 16px;
    box-shadow: 0 10px 40px rgba(27, 24, 47, 0.08);
    padding: 40px;
    max-width: 800px;
    margin: 40px auto;
    font-family: inherit;
    box-sizing: border-box;
}

.veza-booking-steps {
    display: flex;
    justify-content: space-between;
    margin-bottom: 40px;
    position: relative;
}

.veza-booking-steps::before {
    content: '';
    position: absolute;
    top: 20px;
    left: 0;
    right: 0;
    height: 3px;
    background: #eff2f5;
    z-index: 0;
}

.veza-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    position: relative;
    z-index: 1;
    flex: 1;
}

.veza-step__num {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #e1e8ed;
    color: #7f8c8d;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 15px;
    transition: all 0.3s ease;
    border: 3px solid #ffffff;
}

.veza-step__label {
    font-size: 12px;
    color: #7f8c8d;
    font-weight: 600;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.veza-step--active .veza-step__num {
    background: #ec2126;
    color: #ffffff;
    box-shadow: 0 0 0 4px rgba(236, 33, 38, 0.15);
}

.veza-step--active .veza-step__label {
    color: #ec2126;
}

.veza-step--done .veza-step__num {
    background: #1b182f;
    color: #ffffff;
}

.veza-step--done .veza-step__label {
    color: #1b182f;
}

.veza-panel--hidden {
    display: none !important;
}

.veza-panel__title {
    font-size: 22px;
    font-weight: 700;
    color: #1b182f;
    margin-bottom: 8px;
    border-bottom: none !important;
}

.veza-panel__hint {
    font-size: 14px;
    color: #7f8c8d;
    margin-bottom: 24px;
}

/* Service Selection Cards Grid */
.veza-service-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 30px;
}

.veza-service-card {
    border: 2px solid #e1e8ed;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.25s ease;
    background: #ffffff;
    display: block;
    box-sizing: border-box;
}

.veza-service-card:hover, .veza-service-card--selected {
    border-color: #ec2126;
    box-shadow: 0 8px 24px rgba(236, 33, 38, 0.08);
}

.veza-service-card input[type="radio"] {
    display: none;
}

.veza-service-card__body {
    padding: 24px;
}

.veza-service-card__header-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}

.veza-service-card__badge {
    font-size: 11px;
    font-weight: 700;
    color: #ec2126;
    background: rgba(236, 33, 38, 0.08);
    padding: 4px 10px;
    border-radius: 20px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.veza-service-card__price {
    font-size: 22px;
    font-weight: 800;
    color: #ec2126;
}

.veza-service-card__name {
    font-size: 18px;
    font-weight: 700;
    color: #1b182f;
    margin-bottom: 15px;
}

.card-divider {
    border: 0;
    border-top: 1px solid #eff2f5;
    margin: 15px 0;
}

.deliverables-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.deliverables-list li {
    font-size: 13px;
    color: #555555;
    line-height: 1.6;
    margin-bottom: 8px;
}

/* Form Inputs & Layout */
.veza-datetime-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 24px;
}

.veza-field {
    margin-bottom: 20px;
}

.veza-field label {
    display: block;
    font-size: 14px;
    font-weight: 600;
    color: #1b182f;
    margin-bottom: 8px;
}

.veza-field .req {
    color: #ec2126;
}

.veza-input {
    width: 100% !important;
    padding: 12px 16px !important;
    border: 1.5px solid #dcdfe6 !important;
    border-radius: 8px !important;
    font-size: 15px !important;
    color: #1b182f !important;
    background: #fcfdfd !important;
    transition: all 0.25s ease !important;
    box-sizing: border-box !important;
    height: auto !important;
}

.veza-input:focus {
    outline: none !important;
    border-color: #ec2126 !important;
    box-shadow: 0 0 0 3px rgba(236, 33, 38, 0.1) !important;
    background: #ffffff !important;
}

.veza-loader {
    font-size: 13px;
    color: #7f8c8d;
    margin-top: 8px;
}

.veza-error-msg {
    font-size: 13px;
    color: #ec2126;
    margin-top: 8px;
}

/* Timezone Reference Panel */
.veza-timezone-box {
    background: #eff2f5;
    border-radius: 8px;
    padding: 16px 20px;
    margin-top: 15px;
    font-size: 13px;
    color: #555555;
    line-height: 1.6;
}

/* Wizard Navigation Row */
.veza-nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 30px;
    gap: 15px;
}

.btn-style-outline {
    padding: 12px 28px;
    border: 2px solid #1b182f;
    border-radius: 8px;
    background: transparent;
    color: #1b182f;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.25s ease;
}

.btn-style-outline:hover {
    background: #1b182f;
    color: #ffffff;
}

/* Review Summary Table */
.veza-summary-box {
    background: #eff2f5;
    border-radius: 12px;
    padding: 24px;
    margin-bottom: 24px;
}

.veza-summary-table {
    width: 100%;
    border-collapse: collapse;
}

.veza-summary-table td {
    padding: 12px 0;
    border-bottom: 1px solid #e1e8ed;
    font-size: 15px;
    color: #1b182f;
}

.veza-summary-table td:first-child {
    color: #7f8c8d;
    width: 180px;
}

.veza-total td {
    border-top: 2px solid #1b182f;
    border-bottom: none;
    padding-top: 16px;
}

.veza-total td:last-child {
    color: #ec2126;
    font-size: 20px;
    font-weight: 800;
}

/* Cancellation Policy Alert Box */
.veza-policy-box {
    background: #fff8f8;
    border-left: 4px solid #ec2126;
    border-radius: 0 8px 8px 0;
    padding: 20px;
    margin-bottom: 24px;
    font-size: 14px;
    box-sizing: border-box;
}

.veza-policy-box strong {
    display: block;
    margin-bottom: 10px;
    color: #1b182f;
}

.veza-policy-box ul {
    margin: 0 0 20px 0;
    padding-left: 20px;
    line-height: 1.8;
    color: #555555;
}

.veza-consent-checkbox {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    font-weight: 600;
    color: #1b182f;
}

.veza-consent-checkbox input[type="checkbox"] {
    width: 18px;
    height: 18px;
    cursor: pointer;
}

.veza-stripe-note {
    font-size: 13px;
    color: #7f8c8d;
    text-align: center;
    margin-top: 15px;
}

.veza-alert {
    padding: 14px 18px;
    border-radius: 8px;
    margin-bottom: 24px;
    font-size: 14px;
    line-height: 1.6;
}

.veza-alert--error {
    background: #fff0f0;
    border: 1px solid #ffd0d0;
    color: #c0392b;
}

/* In-place Success Confirmation View */
.veza-confirmed-box {
    text-align: center;
    padding: 40px 10px;
}

.veza-confirmed-icon {
    font-size: 54px;
    color: #ffffff;
    background: #27ae60;
    width: 90px;
    height: 90px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 24px auto;
    box-shadow: 0 8px 24px rgba(39, 174, 96, 0.2);
}

.veza-confirmed-title {
    font-size: 30px;
    font-weight: 800;
    color: #1b182f;
    margin-bottom: 12px;
}

.veza-confirmed-msg {
    font-size: 16px;
    color: #555555;
    line-height: 1.7;
    max-width: 580px;
    margin: 0 auto 30px auto;
}

.veza-confirmed-cta {
    background: #fafafa;
    border: 1.5px dashed #dcdfe6;
    border-radius: 12px;
    padding: 24px;
    margin-top: 30px;
    box-sizing: border-box;
}

.cta-hint {
    font-weight: 600;
    color: #1b182f;
    margin-bottom: 16px;
    font-size: 15px;
}

@media (max-width: 767px) {
    #veza-booking-app.veza-booking-card {
        padding: 24px 16px;
        margin: 20px auto;
    }
    .veza-service-grid, .veza-datetime-row {
        grid-template-columns: 1fr;
    }
    .veza-step__label {
        display: none;
    }
    .veza-summary-table td:first-child {
        width: 110px;
    }
    .veza-confirmed-title {
        font-size: 24px;
    }
}

/* Footer Column Width Overrides (40%, 20%, 20%, 20%) */
@media (min-width: 992px) {
    .main-footer .footer-column.footer-col-40 {
        flex: 0 0 35% !important;
        max-width: 35% !important;
        align-self: flex-start !important;
    }
    .main-footer .footer-column.footer-col-20 {
        flex: 0 0 20% !important;
        max-width: 20% !important;
        width: 20% !important;
    }
}

/* Submenu link hover color override (brand red) */
.main-menu .navigation > li > ul > li > a:hover,
.main-menu .navigation > li > .megamenu li > a:hover,
.main-menu .navigation > li > ul > li > ul > li > a:hover {
    color: #D11717 !important;
}

/* Footer links hover color override (brand red) */
.main-footer .widget-section a:hover,
.main-footer .widget-section .social-links li a:hover {
    color: #D11717 !important;
}


