/* Comp-verbatim extract - pte-voucher-code-ind.html (Subash, 2026-08-10).
   Source of truth is the comp, not this file. Design changes go through the
   designer; re-extract rather than hand-editing. Filename must stay
   voucher-pte-voucher-code.* - voucher_styles.php enqueues by slug and a
   mismatch loads nothing, silently.

   GENERATED by seeds/tools/rebuild_pte_voucher_css.py - do not hand-edit.

   COMPOSITION, and why it is not just the comp's <style> block:
   this file is  [ voucher-ets-toefl-voucher-code-ind.css ]  +  [ the comp's PTE delta ].
   The comp is NOT self-contained - it <link>s the live TOEFL stylesheet as its base and
   adds only PTE-only sections on top. Shipping the delta alone (2026-08-11) left the page
   defining 0 of the 9 design tokens it uses, so every var() resolved to nothing and the
   page rendered unstyled. There is no shared "voucher bundle": every voucher page ships
   one self-contained stylesheet.
*/
/* Voucher skin — CSS VERBATIM from toefl-discount-code-international.html comp, scoped under body.galv-voucher. Do NOT re-skin. */

        body.galv-voucher {
            --bg-navy: #13217c;
            --primary-blue: #3b5bff;
            --cta-magenta: #cc00cc;
            --accent-blue: #e6ebff;
            --text-white: #fffdfe;
            --text-dark: #333;
            --text-gray: #808080;
            --success-green: #2d8a4e;
            --font-heading: 'Poppins', sans-serif;
            --font-body: 'Inter', sans-serif;
            --container-width: 1920px;
        }

        body.galv-voucher *{
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        html {
            scroll-behavior: smooth;
        }

        body.galv-voucher {
            font-family: var(--font-body);
            color: var(--text-dark);
        }

        body.galv-voucher h1, body.galv-voucher h2, body.galv-voucher h3, body.galv-voucher h4, body.galv-voucher h5, body.galv-voucher h6{
            font-family: var(--font-heading);
            font-weight: 600;
        }

        body.galv-voucher h2.section-title{
            font-size: 36px;
            line-height: 48px;
            color: var(--primary-blue);
            text-align: center;
            margin-bottom: 15px;
        }

        body.galv-voucher .section-subtitle{
            font-family: var(--font-heading);
            font-size: 20px;
            line-height: 30px;
            color: var(--text-dark);
            text-align: center;
            font-weight: 500;
        }

        body.galv-voucher .container{
            width: 100%;
            max-width: var(--container-width);
            padding: 0 80px;
            margin: 0 auto;
        }

        body.galv-voucher section{
            display: flex;
            justify-content: center;
            padding: 60px 0;
        }

        body.galv-voucher .section-for-desktop{
            display: flex;
            justify-content: center;
            padding: 60px 0;
        }

        body.galv-voucher .text-center{
            text-align: center;
        }

        body.galv-voucher .btn{
            display: inline-block;
            padding: 12px 24px;
            border-radius: 10px;
            font-weight: 600;
            text-decoration: none;
            cursor: pointer;
            transition: all .3s ease;
            border: none;
            font-family: var(--font-heading);
        }

        body.galv-voucher .btn-magenta{
            background-color: var(--cta-magenta);
            color: var(--text-white);
        }

        body.galv-voucher .btn-magenta:hover{
            background-color: #a600a6;
        }

        body.galv-voucher .btn-blue{
            background-color: var(--primary-blue);
            border-radius: 10px;
            font-size: 18px;
            color: var(--text-white);
        }

        body.galv-voucher .btn-blue:hover{
            background-color: #13217c;
        }

        body.galv-voucher .btn-ghost-blue{
            background-color: var(--primary-blue);
            color: var(--text-white);
            font-size: 18px;
        }

        body.galv-voucher .btn-ghost-blue:hover{
            background-color: #13217c;
        }

        body.galv-voucher section{
            padding: 0 0 0px;
        }

        body.galv-voucher .hero{
            background-color: var(--bg-navy);
            color: var(--text-white);
            padding: 60px 0 140px;
            position: relative;
            overflow: hidden;
        }

        body.galv-voucher .hero .container{
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 30px;
            align-items: center;
        }

        body.galv-voucher .hero-content, body.galv-voucher .hero-testimonial{
            min-width: 0;
        }

        body.galv-voucher .hero-content .ambassador-img{
            max-height: 80px;
            margin-bottom: 20px;
            display: block;
        }

        body.galv-voucher .hero-content h1{
            font-size: 42px;
            line-height: 1.2;
            margin-bottom: 20px;
            overflow-wrap: break-word;
        }

        body.galv-voucher .hero-content p{
            font-family: var(--font-heading);
            font-weight: 500;
            font-size: 22px;
            line-height: 30px;
            margin-bottom: 20px;
            overflow-wrap: break-word;
        }

        body.galv-voucher .hero-features{
            list-style: none;
            margin-bottom: 30px;
        }

        body.galv-voucher .hero-feature-item{
            display: flex;
            align-items: center;
            gap: 15px;
            margin-bottom: 20px;
            font-size: 18px;
            flex-wrap: nowrap;
        }

        body.galv-voucher .hero-feature-item img{
            flex-shrink: 0;
            margin-top: 3px;
            width: 24px;
            height: 24px;
        }

        body.galv-voucher .hero-offers{
            display: flex;
            flex-direction: column;
            gap: 30px;
            width: 100%;
            justify-self: center;
        }

        body.galv-voucher .offer-card{
            background: #fff;
            border-radius: 20px;
            overflow: hidden;
        }

        body.galv-voucher .offer-card-header{
            background: var(--cta-magenta);
            color: white;
            padding: 15px 20px;
            display: flex;
            align-items: center;
            gap: 15px;
        }

        body.galv-voucher .offer-icon-wrapper{
            width: 56px;
            height: 56px;
            border-radius: 50%;
            background: white;
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
        }

        body.galv-voucher .offer-icon{
            width: 46px;
            height: 46px;
            border-radius: 50%;
            object-fit: contain;
        }

        body.galv-voucher .offer-header-text h3{
            font-size: 20px;
            margin-bottom: 2px;
            font-family: var(--font-heading);
            font-weight: 600;
        }

        body.galv-voucher .offer-header-text p{
            font-size: 14px;
            line-height: 22px;
            margin: 0;
            font-family: var(--font-body);
        }

        body.galv-voucher .offer-table{
            width: 100%;
            border-collapse: collapse;
            text-align: center;
            color: var(--text-dark);
        }

        body.galv-voucher .offer-table th, body.galv-voucher .offer-table td{
            padding: 12px 10px;
            border: 1px solid #e0e0e0;
            border-top: none;
        }

        body.galv-voucher .offer-table th{
            background: #FFF6E5;
            font-weight: 600;
            font-size: 14px;
            line-height: 22px;
            color: var(--text-dark);
            border-bottom: 1px solid #d0d5f0;
        }

        body.galv-voucher .offer-table th:first-child, body.galv-voucher .offer-table td:first-child{
            text-align: left;
            border-left: none;
            width: 42%;
            padding-left: 20px;
        }

        body.galv-voucher .offer-table th:last-child, body.galv-voucher .offer-table td:last-child{
            border-right: none;
        }

        body.galv-voucher .offer-table td{
            font-size: 14px;
            font-weight: 500;
            background: #fff;
            color: var(--text-dark);
        }

        body.galv-voucher .offer-table td.code-text{
            color: var(--primary-blue);
            font-weight: 700;
            letter-spacing: 0.5px;
        }

        body.galv-voucher .btn-sm{
            padding: 8px 16px;
            font-size: 14px;
            border-radius: 10px;
        }


        body.galv-voucher .stats-bar{
            background: var(--text-white);
            border-radius: 20px;
            padding: 30px;
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 20px;
            margin: -80px auto 0;
            max-width: 1062px;
            box-shadow: 0 15px 40px rgba(0, 0, 0, .1);
            text-align: center;
            position: relative;
            z-index: 20;
        }

        body.galv-voucher .stat-item h2{
            font-size: 40px;
            color: var(--bg-navy);
            margin-bottom: 4px;
            font-weight: 600;
        }

        body.galv-voucher .stat-item p{
            font-size: 16px;
            color: var(--text-dark);
            line-height: 26px;
            max-width: 220px;
            margin: 0 auto;
        }

        body.galv-voucher .stat-item p span{
            color: var(--cta-magenta);
            font-weight: 600;
        }

        body.galv-voucher .register{
            padding: 60px 0;
            overflow: hidden;
        }

        body.galv-voucher .register-carousel-container{
            width: 100%;
            overflow: hidden;
            margin-top: 40px;
            position: relative;
        }

        body.galv-voucher .register-track{
            /* Let Swiper handle layout */
        }

        body.galv-voucher .register-step-card{
            background: var(--accent-blue);
            border-radius: 20px;
            padding: 20px;
            text-align: left;
            height: auto;
            position: relative;
            display: flex;
            flex-direction: column;
        }

        body.galv-voucher .register-step-card span{
            color: var(--cta-magenta);
            font-weight: 600;
        }

        body.galv-voucher .step-image-box{
            background: #fff;
            border-radius: 10px;
            padding: 12px;
            margin-bottom: 24px;
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
            display: flex;
            align-items: center;
            justify-content: center;
        }

        body.galv-voucher .step-image-box img{
            width: 100%;
            height: auto;
            border-radius: 8px;
            object-fit: cover;
        }

        body.galv-voucher .step-label{
            font-size: 18px;
            line-height: 29px;
            color: var(--text-dark);
            font-weight: 700;
            margin-bottom: 8px;
            letter-spacing: 0.5px;
            text-transform: uppercase;
        }

        body.galv-voucher .step-desc{
            font-size: 14px;
            line-height: 22px;
            color: var(--text-dark);
            margin: 0;
            flex-grow: 1;
        }

        body.galv-voucher .register-notes-container{
            display: flex;
            gap: 30px;
            justify-content: center;
            margin-top: 40px;
        }

        body.galv-voucher .register-note-box{
            background: var(--accent-blue);
            border-radius: 12px;
            padding: 24px 30px;
            text-align: center;
            flex: 1;
            max-width: 420px;
        }

        body.galv-voucher .register-note-box p{
            font-size: 18px;
            line-height: 29px;
            color: var(--text-dark);
            margin: 0;
        }

        body.galv-voucher .register-note-box .magenta-text{
            color: var(--cta-magenta);
            font-weight: 700;
        }

        body.galv-voucher .register-note-box .blue-link{
            color: var(--primary-blue);
            text-decoration: underline;
            font-weight: 600;
        }


        body.galv-voucher .register-help-container{
            text-align: center;
            margin-top: 0;
        }

        body.galv-voucher .register-help-container h3{
            font-size: 22px;
            line-height: 30px;
            color: var(--text-dark);
            font-weight: 500;
            margin-bottom: 15px;
            font-family: var(--font-heading);
        }

        body.galv-voucher .register-help-container p{
            font-size: 18px;
            line-height: 29px;
            color: var(--text-dark);
            margin-bottom: 30px;
        }

        body.galv-voucher .register-help-container .btn{
            font-size: 18px;
        }

        /* ETS PARTNER SECTION */

        body.galv-voucher .ets-partner{
            background-color: var(--accent-blue);
            padding: 60px 0px 160px;
        }

        body.galv-voucher .partner-cards-grid{
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 30px;
            margin-top: 40px;
        }

        body.galv-voucher .partner-card{
            background: #fff;
            border-radius: 40px;
            padding: 20px;
            display: flex;
            flex-direction: column;
        }

        body.galv-voucher .partner-img-wrapper{
            position: relative;
            margin-bottom: 15px;
            width: 100%;
            border-radius: 25px;
            overflow: hidden;
            background: #fdfdfd;
        }

        body.galv-voucher .partner-img-wrapper::after{
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            width: 100%;
            height: 50%;
            background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0) 100%);
            pointer-events: none;
            z-index: 1;
        }

        body.galv-voucher .partner-main-img{
            width: 100%;
            height: auto;
            object-fit: cover;
            display: block;
        }

        body.galv-voucher .partner-badge{
            position: absolute;
            bottom: 12px;
            left: 12px;
            width: 44px;
            height: 44px;
            background: rgba(243, 243, 243, 0.4);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            z-index: 2;
        }

        body.galv-voucher .partner-badge img{
            width: 22px;
            height: 22px;
            object-fit: contain;
        }

        body.galv-voucher .partner-title{
            font-size: 18px;
            line-height: 29px;
            font-weight: 600;
            color: var(--text-dark);
            margin-bottom: 25px;
            flex-grow: 1;
            font-family: var(--font-heading);
            padding: 0 8px;
        }

        body.galv-voucher .partner-footer{
            background: var(--accent-blue);
            border-radius: 40px;
            padding: 10px 16px;
            display: flex;
            align-items: center;
            justify-content: space-between;
        }

        body.galv-voucher .continue-reading{
            font-family: var(--font-heading);
            font-size: 14px;
            line-height: 22px;
            color: var(--text-gray);
            font-weight: 500;
        }

        body.galv-voucher .partner-socials{
            display: flex;
            gap: 8px;
        }

        body.galv-voucher .social-icon{
            width: 32px;
            height: 32px;
            background: #fff;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            color: #999;
            transition: all 0.3s ease;
        }

        body.galv-voucher .social-icon:hover{
            background: var(--primary-blue);
            color: #fff;
        }

        body.galv-voucher .social-icon svg{
            width: 16px;
            height: 16px;
        }

        body.galv-voucher .partner-connect-section{
            text-align: center;
            margin-top: 50px;
        }

        body.galv-voucher .connect-text{
            font-size: 22px;
            line-height: 30px;
            font-weight: 500;
            color: var(--text-dark);


            margin-bottom: 30px;
            font-family: var(--font-heading);
        }

        body.galv-voucher .connect-socials{
            display: flex;
            justify-content: center;
            gap: 20px;
        }

        body.galv-voucher .connect-social-icon{
            width: 44px;
            height: 44px;
            background: var(--primary-blue);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            color: #fff;
            transition: all 0.3s ease;
        }

        body.galv-voucher .connect-social-icon:hover{
            background: var(--bg-navy);
        }

        body.galv-voucher .connect-social-icon svg{
            width: 22px;
            height: 22px;
        }


        /* TOEFL PRACTICE TEST */
        body.galv-voucher .toefl-practice-test{
            background-color: var(--bg-navy);
            padding: 60px 0;
            text-align: center;
        }

        body.galv-voucher .practice-main-title{
            color: var(--text-white);
            font-size: 36px;
            line-height: 48px;
            font-weight: 600;
            margin-bottom: 15px;
            font-family: var(--font-heading);
        }

        body.galv-voucher .practice-subtitle{
            font-family: var(--font-heading);
            color: var(--text-white);
            font-size: 20px;
            line-height: 30px;
            margin-bottom: 50px;
            font-weight: 500;
            max-width: 800px;
            margin-inline: auto;
        }

        body.galv-voucher .practice-card{
            background: #fff;
            border-radius: 50px;
            max-width: 650px;
            margin: 0 auto;
            padding: 40px;
            text-align: left;
        }

        body.galv-voucher .practice-icon-wrapper{
            background: #eef2fc;
            width: 80px;
            height: 80px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            margin: 0 auto 24px;
        }

        body.galv-voucher .practice-img{
            width: 48px;
            height: 48px;
            object-fit: contain;
        }

        body.galv-voucher .practice-card-title{
            color: var(--primary-blue);
            font-size: 24px;
            line-height: 32px;
            font-weight: 600;
            text-align: center;
            margin-bottom: 30px;
            font-family: var(--font-heading);
        }

        body.galv-voucher .practice-details{
            margin-bottom: 30px;
        }

        body.galv-voucher .practice-list-header{
            color: var(--text-dark);
            font-weight: 600;
            font-size: 18px;
            line-height: 26px;
            margin-bottom: 15px;
            border-top: 1px solid #D9D9D9;
            border-bottom: 1px solid #D9D9D9;
            padding: 10px 0;
        }

        body.galv-voucher .practice-list{
            list-style: none;
            padding: 0;
            margin: 0;
            display: flex;
            flex-direction: column;
            gap: 12px;
        }

        body.galv-voucher .practice-list li{
            display: flex;
            align-items: flex-start;
            gap: 12px;
        }

        body.galv-voucher .check-icon{
            width: 18px;
            height: 18px;
            flex-shrink: 0;
            margin-top: 3px;
        }

        body.galv-voucher .practice-list li span{
            color: var(--text-dark);
            font-size: 16px;
            line-height: 26px;
        }

        body.galv-voucher .practice-list li span strong{
            color: var(--text-dark);
            font-weight: 600;
        }

        body.galv-voucher .practice-divider{
            border: none;
            margin: 15px 0;
        }

        body.galv-voucher .practice-btn{
            display: block;
            width: 40%;
            text-align: center;
            margin: 0 auto;
        }

        /* UNIVERSITIES SECTION */
        body.galv-voucher .universities-section{
            background-color: var(--accent-blue);
            padding: 60px 0;
            overflow: hidden;
        }

        body.galv-voucher .uni-wrapper{
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 60px;
        }

        body.galv-voucher .uni-left{
            display: grid;
            grid-template-columns: 1.1fr 1fr;
            grid-template-areas:
                "title logos"
                "subtitle logos"
                "cards logos"
                "cta logos";
            gap: 0 60px;
            align-items: center;
        }

        body.galv-voucher .uni-title{
            grid-area: title;
            color: var(--primary-blue);
            font-size: 36px;
            line-height: 48px;
            font-weight: 600;
            margin-bottom: 15px;
            font-family: var(--font-heading);
        }

        body.galv-voucher .uni-subtitle{
            grid-area: subtitle;
            color: var(--text-dark);
            font-size: 18px;
            margin-bottom: 40px;
            line-height: 29px;
        }

        body.galv-voucher .uni-cards-grid{
            grid-area: cards;
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 20px;
            margin-bottom: 30px;
        }

        body.galv-voucher .uni-feature-card{
            background: #fff;
            border-radius: 20px;
            padding: 24px;
            text-align: left;
        }

        body.galv-voucher .uni-icon{
            margin-bottom: 12px;
        }

        body.galv-voucher .uni-icon img{
            width: 36px;
            height: 36px;
            object-fit: contain;
        }

        body.galv-voucher .uni-feature-title{
            font-family: var(--font-heading);
            font-size: 18px;
            font-weight: 600;
            color: var(--text-dark);
            margin-bottom: 5px;
            line-height: 29px;
        }

        body.galv-voucher .uni-feature-desc{
            font-size: 16px;
            color: var(--text-dark);
            line-height: 26px;
            margin: 0;
        }

        body.galv-voucher .uni-cta-box{
            grid-area: cta;
            margin-top: 20px;
            text-align: left;
        }

        body.galv-voucher .uni-cta-box p{
            font-family: var(--font-heading);
            font-size: 20px;
            line-height: 30px;
            font-weight: 500;
            color: var(--text-dark);
            margin-bottom: 30px;
        }


        body.galv-voucher .uni-logos-grid{
            grid-area: logos;
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 15px;
            position: relative;
        }

        body.galv-voucher .uni-logos-grid::after{
            content: "";
            position: absolute;
            inset: -20px;
            background: radial-gradient(circle, transparent 35%, var(--accent-blue) 75%);
            pointer-events: none;
            z-index: 1;
        }

        body.galv-voucher .uni-logo-box{
            background: #fff;
            border-radius: 16px;
            padding: 20px;
            display: flex;
            align-items: center;
            justify-content: center;
            aspect-ratio: 1;
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03);
            position: relative;
            transition: transform 0.3s;
        }

        body.galv-voucher .uni-logo-box img{
            max-width: 100%;
            max-height: 100%;
            object-fit: contain;
            transition: all 0.3s;
        }

        body.galv-voucher .uni-logo-highlight{
            border: 2px solid var(--cta-magenta);
            box-shadow: 0 8px 25px rgba(214, 0, 214, 0.15);
            z-index: 2;
        }

        body.galv-voucher .uni-logo-highlight img{
            opacity: 1;
            filter: grayscale(0%);
        }

        body.galv-voucher .uni-tooltip-container{
            position: absolute;
            bottom: -2px;
            right: -90px;
            z-index: 10;
            animation: bounce 2s infinite;
        }

        body.galv-voucher .uni-tooltip-container svg{
            width: 60px;
            height: 60px;
            fill: var(--cta-magenta);
        }

        body.galv-voucher .cursor-pointer{
            width: 32px;
            height: 32px;
            fill: var(--cta-magenta);
            transform: rotate(-15deg);
            position: absolute;
            top: -20px;
            left: -15px;
        }

        body.galv-voucher .tooltip-text{
            background: var(--cta-magenta);
            color: #fff;
            font-weight: 600;
            font-size: 13px;
            padding: 8px 16px;
            border-radius: 20px;
            white-space: nowrap;
            display: inline-block;
        }

        @keyframes bounce {

            0%,
            100% {
                transform: translateY(0);
            }

            50% {
                transform: translateY(-8px);
            }
        }



        /* CONTACT FORM */
        body.galv-voucher .contact-form{
            padding: 60px 0;
            background-color: var(--bg-navy);

        }

        body.galv-voucher .contact-form-wrapper{
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 40px;
        }

        body.galv-voucher .contact-form-left{
            display: flex;
            align-items: center;
            justify-content: center;
        }

        body.galv-voucher .contact-form-left img{
            width: 100%;
            height: auto;
        }

        body.galv-voucher .contact-form-right form{
            display: flex;
            flex-direction: column;
            gap: 0px;
        }

        body.galv-voucher .contact-form-right form .form-group{
            display: flex;
            flex-direction: column;
            gap: 10px;
        }

        body.galv-voucher .contact-form-right form .form-group label{
            font-weight: 600;
        }

        body.galv-voucher .contact-form-right form .form-group input, body.galv-voucher .contact-form-right form .form-group textarea{
            padding: 10px;
            border: 1px solid #ccc;
            border-radius: 5px;
        }

        body.galv-voucher .contact-form-right form .form-group input:focus, body.galv-voucher .contact-form-right form .form-group textarea:focus{
            outline: none;
            border-color: var(--cta-magenta);
        }

        body.galv-voucher .contact-form-right form .btn-blue{
            background-color: var(--cta-magenta);
            color: #fff;
            border: none;
            padding: 10px;
            border-radius: 5px;
            cursor: pointer;
        }

        body.galv-voucher .contact-form-right form .btn-blue:hover{
            background-color: var(--cta-magenta);
        }


        /* FAQ */
        body.galv-voucher .faq-section{
            padding: 60px 0;
        }

        body.galv-voucher .section-header{
            margin-bottom: 50px;
        }

        body.galv-voucher .faq-container{
            max-width: 900px;
            margin: 0 auto;
            padding: 0 20px;
        }

        body.galv-voucher .faq-title{
            font-family: var(--font-heading);
            font-size: 36px;
            line-height: 48px;
            font-weight: 600;
            color: var(--primary-blue);
            margin-bottom: 30px;
        }

        body.galv-voucher .faq-item{
            background: var(--primary-blue);
            margin-bottom: 18px;
            overflow: hidden;
        }

        body.galv-voucher .faq-question{
            padding: 20px 50px 20px 20px;
            font-size: 20px;
            line-height: 30px;
            font-weight: 400;
            color: var(--text-white);
            cursor: pointer;
            position: relative;
            transition: all 0.3s ease;
            user-select: none;
        }

        body.galv-voucher .faq-question::after{
            content: "›";
            position: absolute;
            right: 28px;
            top: 50%;
            transform: translateY(-50%) rotate(0deg);
            font-size: 28px;
            color: #fff;
            font-weight: 400;
            transition: transform 0.3s ease;
            line-height: 1;
        }

        body.galv-voucher .faq-question.active::after{
            content: "›";
            transform: translateY(-50%) rotate(90deg);
        }

        body.galv-voucher .faq-answer{
            background-color: var(--accent-blue);
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.4s ease, padding 0.4s ease;
            padding: 0 28px;
            font-size: 20px;
            line-height: 30px;
            font-weight: 400;
            color: var(--primary-blue);
        }

        body.galv-voucher .faq-answer.active{
            max-height: 500px;
            padding: 20px;
        }


        /* FAQ Layout */
        body.galv-voucher .faq-layout{
            display: grid;
            grid-template-columns: 2fr 3fr;
            gap: 20px;
            align-items: start;
        }

        body.galv-voucher .faq-image-col{
            position: sticky;
            top: 40px;
        }

        body.galv-voucher .faq-image-col img{
            width: 100%;
            max-width: 420px;
            height: auto;
            border-radius: 20px;
            display: block;
        }

        body.galv-voucher .faq-layout .faq-container{
            max-width: 100%;
            margin: 0;
            padding: 0;
        }

        /* TOEFL APP SECTION */
        body.galv-voucher .toefl-app{
            background-color: #fff;
            padding: 60px 0;
        }

        body.galv-voucher .toefl-app-card{
            background: var(--accent-blue);
            border-radius: 50px;
            padding: 0;
            display: grid;
            grid-template-columns: 1.15fr 0.85fr;
            gap: 0;
            align-items: stretch;
            text-align: left;
            max-width: 1400px;
            margin: 0 auto;
            overflow: hidden;
            margin-top: 40px;
        }

        body.galv-voucher .toefl-app-content{
            padding: 50px;
            display: flex;
            flex-direction: column;
            justify-content: start;
        }

        body.galv-voucher .toefl-app-content h3{
            font-size: 24px;
            line-height: 32px;
            color: var(--primary-blue);
            margin-bottom: 25px;
        }

        body.galv-voucher .toefl-app-features{
            list-style: none;
            margin-bottom: 35px;
        }

        body.galv-voucher .toefl-app-features li{
            position: relative;
            padding-left: 25px;
            margin-bottom: 15px;
            font-size: 18px;
            line-height: 29px;
            color: var(--text-dark);
        }

        body.galv-voucher .toefl-app-features li::before{
            content: "•";
            position: absolute;
            left: 0;
            color: var(--text-dark);
            font-weight: bold;
            font-size: 24px;
            line-height: 24px;
        }

        body.galv-voucher .toefl-app-buttons{
            display: flex;
            gap: 20px;
        }

        body.galv-voucher .toefl-app-buttons img{
            height: 55px;
            width: auto;
            transition: transform 0.3s ease;
        }

        body.galv-voucher .toefl-app-buttons img:hover{
            transform: scale(1.05);
        }

        body.galv-voucher .toefl-app-image{
            width: 100%;
            height: 100%;
            display: flex;
            position: relative;
            overflow: hidden;
        }

        body.galv-voucher .toefl-app-image img{
            height: 260%;
            width: auto;
            max-width: none;
            position: absolute;
            top: 70%;
            left: -80%;
            transform: translateY(-50%);
            object-fit: contain;
        }

        /* UNI PARTNERS CAROUSEL */

        body.galv-voucher .uni-partners{
            background: var(--text-white);
            border-radius: 20px;
            padding: 30px;
            display: grid;
            margin: -100px auto 0;
            max-width: 1062px;
            box-shadow: 0 15px 40px rgba(0, 0, 0, .1);
            text-align: center;
            position: relative;
            z-index: 20;
        }

        body.galv-voucher .uni-partners h2{
            font-family: var(--font-heading);
            font-size: 22px;
            line-height: 30px;
            font-weight: 600;
            color: var(--primary-blue);
            margin-bottom: 30px;
        }

        body.galv-voucher .partners{
            background: linear-gradient(to bottom, var(--bg-navy) 50%, #e6ebff 50%);
            padding: 60px 0 0;
            overflow: hidden;
        }

        body.galv-voucher .university-card{
            background: #fff;
            border-radius: 30px;
            padding: 40px 30px;
            max-width: 1062px;
            margin: 0 auto;
        }

        body.galv-voucher .university-card h2{
            font-size: 22px;
            color: #3b5bff;
            margin-bottom: 30px;
            font-weight: 600;
        }

        body.galv-voucher .logo-carousel{
            width: 100%;
            overflow: hidden;
            position: relative;
            padding: 10px 0;
        }

        body.galv-voucher .logo-track{
            display: flex;
            width: max-content;
            animation: scroll 40s linear infinite;
            gap: 30px;
        }

        @keyframes scroll {
            0% {
                transform: translateX(0);
            }

            100% {
                transform: translateX(calc(-140px * 20));
            }
        }

        body.galv-voucher .logo-track:hover{
            animation-play-state: paused;
        }

        body.galv-voucher .logo-item{
            width: 110px;
            display: flex;
            justify-content: center;
            align-items: center;
            flex-shrink: 0;
        }

        body.galv-voucher .logo-item img{
            height: 45px;
            width: auto;
            max-width: 180px;
            object-fit: contain;
            transition: all .5s ease;
        }

        body.galv-voucher .logo-item:hover img{
            transform: scale(1.08);
        }

        /* PLAN CTA */
        body.galv-voucher .plan-cta{
            background-color: var(--bg-navy);
            color: var(--text-white);
            padding: 40px 0 30px;
        }

        body.galv-voucher .btn-margin{
            margin-top: 30px;
        }

        body.galv-voucher .flex-cta{
            display: flex;
            flex-direction: row;
            align-items: center;
            gap: 30px;
            justify-content: center;
        }

        body.galv-voucher .flex-cta h2{
            text-align: left;
            font-size: 30px;
            line-height: 40px;
            font-weight: 600;
        }

        body.galv-voucher .flex-cta p{
            text-align: left;
            font-size: 18px;
            font-weight: 400;
            line-height: 29px;
        }

        body.galv-voucher .flex-cta-content{
            width: 60%;
        }



        body.galv-voucher .diagnostic{
            background-color: var(--text-white);
            padding: 60px 0;
        }

        body.galv-voucher .diagnostic-grid{
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 30px;
            margin-top: 50px;
            align-items: flex-start;
        }

        body.galv-voucher .test-card{
            background: var(--accent-blue);
            border-radius: 20px;
            padding: 30px;
            border: 1px solid #e6ebff;
            display: flex;
            flex-direction: column;
        }

        body.galv-voucher .test-card.blue{
            background: #e6ebff;
        }

        body.galv-voucher .test-title{
            font-size: 22px;
            color: var(--primary-blue);
            margin-bottom: 8px;
            font-weight: 600;
        }

        body.galv-voucher .test-card p{
            font-size: 18px;
            color: #808080;
            margin-bottom: 20px;
        }

        body.galv-voucher .test-details{
            display: flex;
            gap: 30px;
            margin-bottom: 15px;
        }

        body.galv-voucher .detail-item{
            font-size: 18px;
            color: #333;
        }

        body.galv-voucher .detail-item strong{
            font-weight: 600;
        }

        body.galv-voucher .test-divider{
            border: 0;
            border-top: 1px solid #bdbdbd;
            margin: 0 0 20px;
            width: 100%;
        }

        body.galv-voucher .test-features{
            list-style: none;
            margin-bottom: 10px;
            flex-grow: 1;
        }

        body.galv-voucher .test-feature-item{
            display: flex;
            align-items: center;
            gap: 10px;
            margin-bottom: 12px;
            font-size: 16px;
        }

        body.galv-voucher .test-feature-item svg{
            color: var(--success-green);
            flex-shrink: 0;
        }

        body.galv-voucher .test-button-container{
            text-align: center;
            margin-top: 20px;
        }

        body.galv-voucher .test-button-container .btn{
            width: 100%;
            box-sizing: border-box;
        }

        body.galv-voucher .accordion-item{
            background: #eef2ff;
            border: 1px solid #c7d2fe;
            border-radius: 12px;
            margin-bottom: 12px;
            overflow: hidden;
            transition: all .3s ease;
        }

        body.galv-voucher .accordion-header{
            padding: 16px 20px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            cursor: pointer;
            font-weight: 500;
            font-size: 18px;
            color: #1e293b;
            user-select: none;
        }

        body.galv-voucher .accordion-icon{
            font-size: 20px;
            color: #333;
            transition: transform .3s ease;
        }

        body.galv-voucher .accordion-content{
            max-height: 0;
            overflow: hidden;
            transition: max-height .3s ease-out, padding .3s ease;
            background: #eef2ff;
        }

        body.galv-voucher .accordion-item.active .accordion-content{
            max-height: 500px;
            padding: 0 20px 20px;
        }

        body.galv-voucher .accordion-list{
            list-style: none;
            padding: 0;
            margin: 0;
        }

        body.galv-voucher .accordion-list li{
            position: relative;
            padding-left: 20px;
            margin-bottom: 8px;
            font-size: 16px;
            color: #475569;
            line-height: 1.5;
        }

        body.galv-voucher .accordion-list li::before{
            content: "•";
            position: absolute;
            left: 0;
            color: #1e293b;
            font-weight: 600;
        }

        body.galv-voucher .text-left{
            text-align: left;
        }

        body.galv-voucher .video-modal-overlay{
            position: fixed;
            inset: 0;
            background: rgba(0, 0, 0, 0.7);
            display: none;
            align-items: center;
            justify-content: center;
            z-index: 9999;
        }

        body.galv-voucher .video-modal-overlay .video-modal-content{
            position: relative;
            width: min(90vw, 800px);
            aspect-ratio: 16/9;
            background: #000;
        }

        body.galv-voucher .video-modal-overlay .video-modal-content iframe{
            width: 100%;
            height: 100%;
            border: none;
        }

        body.galv-voucher .video-modal-overlay .video-modal-close{
            position: absolute;
            top: -36px;
            right: 0;
            background: #fff;
            border-radius: 50%;
            width: 32px;
            height: 32px;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            font-weight: bold;
        }

        /* Consolidated Media Queries */
        @media (max-width: 1024px) {
            body.galv-voucher .hero-offers{
                display: flex;
                flex-direction: column;
                width: 100%;
            }

            body.galv-voucher .offer-card:nth-child(2) .offer-table{
                display: block;
            }

            body.galv-voucher .offer-card:nth-child(2) .offer-table thead, body.galv-voucher .offer-card:nth-child(2) .offer-table tbody{
                display: block;
            }

            body.galv-voucher .offer-card:nth-child(2) .offer-table thead tr, body.galv-voucher .offer-card:nth-child(2) .offer-table tbody tr{
                display: flex;
                flex-wrap: wrap;
            }

            body.galv-voucher .offer-card:nth-child(2) .offer-table thead tr th:nth-child(3){
                display: none;
            }

            body.galv-voucher .offer-card:nth-child(2) .offer-table th:first-child, body.galv-voucher .offer-card:nth-child(2) .offer-table td:first-child, body.galv-voucher .offer-card:nth-child(2) .offer-table th:nth-child(2), body.galv-voucher .offer-card:nth-child(2) .offer-table td:nth-child(2){
                flex: 1;
                width: 50%;
            }

            body.galv-voucher .offer-card:nth-child(2) .offer-table tbody tr td:nth-child(3){
                flex: 0 0 100%;
                width: 100%;
                text-align: center;
                border: none;
                padding: 25px 0;
                background: transparent;
                display: flex;
                justify-content: center;
            }

            body.galv-voucher .btn-sm{
                font-size: 14px;
                line-height: 24px;
                padding: 8px 16px;
            }

            body.galv-voucher .free-sample-test{
                padding: 40px 0;
            }

            body.galv-voucher .sample-test-wrapper{
                flex-direction: row;
                gap: 20px;
            }

            body.galv-voucher .uni-wrapper{
                flex-direction: row;
            }

            body.galv-voucher .uni-cards-grid{
                margin-bottom: 40px;
            }

            body.galv-voucher .uni-left{
                display: flex;
                flex-direction: column;
                max-width: 100%;
                text-align: center;
                gap: 0;
            }

            body.galv-voucher .uni-logos-grid{
                margin-bottom: 40px;
            }

            body.galv-voucher .uni-logo-box{
                padding: 15px;
            }

            body.galv-voucher .uni-cta-box{
                text-align: center;
                margin-top: 0;
            }

            body.galv-voucher .uni-right{
                flex: 0.5;
            }


            body.galv-voucher .container{
                padding: 0 40px;
            }

            body.galv-voucher .diagnostic-grid{
                grid-template-columns: 1fr;
                margin-top: 40px;
            }

            body.galv-voucher .hero{
                padding: 40px 0 120px;
            }

            body.galv-voucher .hero .container{
                display: flex;
                flex-direction: column;
                gap: 10px;
                align-items: start;
            }

            body.galv-voucher .hero-content h1{
                font-size: 38px;
            }

            body.galv-voucher .hero-content p{
                font-size: 16px;
                margin-bottom: 20px;
            }

            body.galv-voucher .hero-feature-item{
                font-size: 16px;
                gap: 10px;
                margin-bottom: 20px;
            }

            body.galv-voucher .hero-features{
                margin-bottom: 30px;
            }

            body.galv-voucher .hero-img{
                max-width: 380px;
            }

            body.galv-voucher .register{
                padding: 40px 0;
            }

            body.galv-voucher .ets-partner{
                padding: 40px 0 140px;
            }

            body.galv-voucher .partner-connect-section{
                margin-top: 40px;
            }

            body.galv-voucher .partner-cards-grid{
                display: flex;
                flex-wrap: wrap;
                justify-content: center;
                gap: 20px;
            }

            body.galv-voucher .partner-card{
                flex: 0 1 calc(50% - 10px);
            }

            body.galv-voucher .features-grid{
                grid-template-columns: repeat(2, 1fr);
            }

            body.galv-voucher .flex-cta img{
                width: 40%;
            }

            body.galv-voucher .toefl-practice-test{
                padding: 40px 0;
            }

            body.galv-voucher .toefl-app{
                padding: 40px 0;
            }

            body.galv-voucher .toefl-app-image img{
                top: 90%;
                left: -120%;
            }

            body.galv-voucher .universities-section{
                padding: 40px 0;
            }

            body.galv-voucher .diagnostic{
                padding: 40px 0;
            }

            body.galv-voucher .contact-form{
                padding: 40px 0;
            }

            body.galv-voucher .faq-section{
                padding: 40px 0;
            }

            body.galv-voucher .pricing-grid{
                grid-template-columns: repeat(2, 1fr);
            }
        }

        @media (max-width: 860px) {
            body.galv-voucher .toefl-app-card{
                grid-template-columns: 1fr;
                border-radius: 30px;
                gap: 0;
            }

            body.galv-voucher .toefl-app-content{
                padding: 30px;
                align-items: start;
                order: 2;
            }

            body.galv-voucher .toefl-app-features{
                text-align: left;
                margin-bottom: 25px;
                padding-left: 0;
            }

            body.galv-voucher .toefl-app-features li{
                font-size: 16px;
                line-height: 24px;
            }

            body.galv-voucher .toefl-app-image{
                height: 300px;
                justify-content: center;
                align-items: center;
                order: 1;
            }

            body.galv-voucher .toefl-app-image img{
                height: 500%;
                width: auto;
                position: relative;
                top: 40%;
                left: -8%;
                transform: none;
                margin: 0 auto;
                display: block;
            }
        }

        @media (max-width: 768px) {
            body.galv-voucher .register-notes-container{
                flex-direction: column;
                align-items: center;
                gap: 20px;
                margin-top: 30px;
            }

            body.galv-voucher .register-carousel-container{
                margin-top: 30px;
            }

            body.galv-voucher .register-help-container{
                margin-top: 30px;
            }

            body.galv-voucher .register-help-container h3{
                font-size: 20px;
            }

            body.galv-voucher .partner-cards-grid{
                margin-top: 30px;
            }

            body.galv-voucher .connect-text{
                font-size: 20px;
            }

            body.galv-voucher .ets-partner{
                padding: 40px 0 160px;
            }

            body.galv-voucher .register-note-box{
                max-width: 100%;
                width: 100%;
                box-sizing: border-box;
            }

            body.galv-voucher .uni-partners h2{
                font-size: 20px;
            }

            body.galv-voucher .uni-cards-grid{
                grid-template-columns: 1fr;
                margin-bottom: 30px;
            }

            body.galv-voucher .uni-logos-grid{
                grid-template-columns: repeat(3, 1fr);
                gap: 10px;
                margin-bottom: 40px;
            }

            body.galv-voucher .uni-logo-box{
                padding: 10px;
                border-radius: 10px;
            }

            body.galv-voucher .uni-tooltip-container{
                bottom: -50px;
                right: -40px;

                /* Move tooltip closer */
            }

            body.galv-voucher .flex-cta{
                flex-direction: column;
            }

            body.galv-voucher .flex-cta h2{
                text-align: center;
            }

            body.galv-voucher .flex-cta p{
                text-align: center;
            }

            body.galv-voucher .flex-cta img{
                display: none;
            }

            body.galv-voucher .plan-cta{
                padding: 40px 0;
            }

            body.galv-voucher .flex-cta-content{
                width: 100%;
                text-align: center;
            }

            body.galv-voucher .diagnostic-grid{
                margin-top: 30px;
            }

            body.galv-voucher .test-card{
                padding: 20px;
            }

            body.galv-voucher .test-card p{
                text-align: left;
            }

            body.galv-voucher .practice-main-title{
                font-size: 24px;
                line-height: 38px;
                font-weight: 600;
                color: var(--text-white);
                margin-bottom: 10px;
            }

            body.galv-voucher .practice-subtitle{
                font-size: 18px;
                line-height: 29px;
                color: var(--text-white);
                font-weight: 500;
            }

            body.galv-voucher .practice-card{
                border-radius: 40px;
                padding: 30px;
            }

            body.galv-voucher .practice-btn{
                width: 100%;
            }

            body.galv-voucher .toefl-app-image img{
                height: 480%;
            }

            body.galv-voucher .toefl-app-content{
                padding: 20px;
            }

            body.galv-voucher .toefl-app-buttons img{
                height: 40px;
                width: auto;
            }

            body.galv-voucher .uni-title{
                font-size: 24px;
                line-height: 38px;
                margin-bottom: 10px;
            }

            body.galv-voucher .uni-subtitle{
                font-size: 18px;
                line-height: 29px;
                font-weight: 500;
            }

            body.galv-voucher .contact-form-wrapper{
                display: flex;
                flex-direction: column;
                gap: 30px;
            }

            body.galv-voucher .faq-layout{
                display: flex;
                flex-direction: column;
                gap: 30px;
            }

            body.galv-voucher .faq-image-col{
                display: none;
            }

            body.galv-voucher .faq-title{
                font-size: 24px;
                line-height: 38px;
            }

            body.galv-voucher nav button, body.galv-voucher nav a{
                padding: 10px 14px;
            }

            body.galv-voucher .container{
                padding: 0 20px;
            }

            body.galv-voucher .register, body.galv-voucher .pricing, body.galv-voucher .testimonials-video, body.galv-voucher .diagnostic{
                padding: 40px 0;
            }

            body.galv-voucher h2.section-title{
                font-size: 24px;
                line-height: 38px;
                margin-bottom: 10px;
            }

            body.galv-voucher .section-subtitle{
                font-size: 18px;
                line-height: 29px;
            }

            body.galv-voucher .hero{
                padding: 40px 0 250px;
            }

            body.galv-voucher .hero .container{
                grid-template-columns: 1fr;
                gap: 0px;
                text-align: left;
                padding: 0 20px;
            }

            body.galv-voucher .hero-offers{
                display: flex;
                flex-direction: column;
            }

            body.galv-voucher .hero-content .ambassador-img{
                max-height: 50px;
            }

            body.galv-voucher .hero-content h1{
                font-size: 36px;
                line-height: 42px;
                text-align: left;
                width: 100%;
                overflow-wrap: break-word;
                word-break: break-word;
                white-space: normal !important;
            }

            body.galv-voucher .hero-content p{
                font-size: 20px;
                margin-bottom: 20px;
            }

            body.galv-voucher .hero-feature-item{
                font-size: 16px;
                margin-bottom: 20px;
            }

            body.galv-voucher .hero-testimonial{
                width: 100%;
                justify-content: center;
            }

            body.galv-voucher .hero-img{
                max-width: 100%;
                border-radius: 12px;
            }

            body.galv-voucher .offer-table td{
                font-size: 12px;
                padding: 14px 8px;
            }

            body.galv-voucher .offer-table td:first-child{
                padding-left: 10px;
            }

            /* SUBASH-V9 2026-07-16: tighter horizontal padding so the button fits the
               narrow mobile column. Inside the 768px block only — desktop .btn-sm
               (base rule, 8px 16px) is untouched. */
            body.galv-voucher .btn-sm{
                font-size: 16px;
                line-height: 26px;
                padding: 12px 12px;
            }

            body.galv-voucher .features-grid, body.galv-voucher .pricing-grid, body.galv-voucher .stats-bar{
                grid-template-columns: 1fr;
                margin-top: 20px;
            }

            body.galv-voucher .partner-card{
                flex: 0 1 100%;
            }

            body.galv-voucher .stat-item p{
                font-size: 16px;
                line-height: 26px;
                max-width: 200px;
            }

            body.galv-voucher .video-carousel-container{
                max-width: 297px;
                margin: 20px auto;
            }

            body.galv-voucher .video-card{
                /* Let Swiper set the width */
                margin: 0;
            }

            body.galv-voucher .video-carousel-dots{
                display: none;
            }

            body.galv-voucher .register-name{
                font-size: 18px;
                line-height: 29px;
            }

            body.galv-voucher .register-country{
                font-size: 16px;
                line-height: 26px;
            }

            body.galv-voucher .stats-bar{
                margin-top: -200px;
            }

            body.galv-voucher .feature-card h3{
                font-size: 20px;
            }

            body.galv-voucher .feature-card p{
                font-size: 18px;
            }

            body.galv-voucher .pricing-card-wrapper-margin{
                margin: 30px auto 20px;
            }

            body.galv-voucher .pricing-featured{
                width: 100%;
            }

            body.galv-voucher .university-card h2{
                font-size: 20px;
                line-height: 29px;
            }

            body.galv-voucher .partners{
                padding: 20px 0 0;
            }

            body.galv-voucher .whats-included-grid{
                grid-template-columns: 1fr;
            }

            body.galv-voucher .whats-included-box{
                padding: 20px 16px;
            }
            
            body.galv-voucher .toefl-code-box{
                border: 2px dashed var(--primary-blue);
                border-radius: 8px;
                padding: 12px 30px;
                width: 40%;
                box-sizing: border-box;
            }            
            
        }

        @media (max-width: 350px) {
            body.galv-voucher .continue-reading{
                font-size: 12px;
            }

            body.galv-voucher .partner-footer{
                padding: 10px 12px;
                gap: 4px;
            }

            body.galv-voucher .partner-socials{
                gap: 4px;
            }

            body.galv-voucher .social-icon{
                width: 28px;
                height: 28px;
            }

            body.galv-voucher .social-icon svg{
                width: 12px;
                height: 12px;
            }

            body.galv-voucher .btn{
                font-size: 16px;
                padding: 12px 16px;
            }
        }

        /* TOEFL DISCOUNT CARD */
        body.galv-voucher .toefl-discount-header{
            justify-content: center;
        }

        body.galv-voucher .toefl-discount-header .offer-header-text{
            text-align: center;
        }

        body.galv-voucher .toefl-discount-body{
            padding: 20px 25px 25px;
            text-align: center;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 15px;
        }

        body.galv-voucher .toefl-validity{
            font-size: 15px;
            font-weight: 600;
            color: var(--text-dark);
            margin: 0;
        }

        body.galv-voucher .toefl-save{
            font-size: 22px;
            font-weight: 700;
            color: var(--cta-magenta);
            margin: 0;
            font-family: var(--font-heading);
        }

        body.galv-voucher .toefl-code-box{
            border: 2px dashed var(--primary-blue);
            border-radius: 10px;
            padding: 12px 30px;
            width: 100%;
            box-sizing: border-box;
        }

        body.galv-voucher .toefl-code{
            font-size: 20px;
            font-weight: 700;
            color: var(--primary-blue);
            letter-spacing: 1px;
            font-family: var(--font-heading);
        }

        body.galv-voucher .toefl-btn-group{
            display: flex;
            gap: 12px;
            justify-content: center;
            width: 100%;
        }

        body.galv-voucher .toefl-email-btn{
            background: white;
            color: var(--primary-blue);
            border: 2px solid var(--primary-blue);
            font-size: 14px;
        }

        body.galv-voucher .toefl-email-btn:hover{
            background: #3b5bff;
            color: #fffdfe;
        }

        /* OTHER TOEFL DISCOUNT CODES SECTION */
        body.galv-voucher .other-codes-section{
            background-color: var(--accent-blue);
            padding: 60px 0;
            margin-top: -100px;
            padding-top: 150px;
        }
        
        @media (max-width: 768px) {
        body.galv-voucher .other-codes-section{
            background-color: var(--accent-blue);
            padding: 60px 0;
            margin-top: -280px;
            padding-top: 330px;
        }
        }

        body.galv-voucher .other-codes-layout{
            display: grid;
            grid-template-columns: 1fr 1.6fr;
            gap: 50px;
            align-items: center;
        }

        body.galv-voucher .other-codes-left{
            display: flex;
            flex-direction: column;
            gap: 20px;
            align-items: flex-start;
        }

        body.galv-voucher .other-codes-title{
            font-family: var(--font-heading);
            font-size: 36px;
            line-height: 48px;
            color: var(--primary-blue);
            font-weight: 600;
            margin: 0;
        }

        body.galv-voucher .other-codes-desc{
            font-family: var(--font-body);
            font-size: 18px;
            line-height: 29px;
            color: var(--text-dark);
            margin: 0;
        }

        body.galv-voucher .other-codes-right{
            display: flex;
            flex-direction: column;
            gap: 20px;
        }

        body.galv-voucher .other-codes-card-header{
            background: var(--bg-navy) !important;
        }

        @media (max-width: 1024px) {
            body.galv-voucher .other-codes-layout{
                gap: 30px;
            }

            body.galv-voucher .other-codes-title{
                font-size: 28px;
                line-height: 40px;
            }
        }

        @media (max-width: 768px) {
            body.galv-voucher .other-codes-layout{
                grid-template-columns: 1fr;
                gap: 30px;
            }

            body.galv-voucher .other-codes-title{
                font-size: 24px;
                line-height: 38px;
            }

            body.galv-voucher .other-codes-desc{
                font-size: 16px;
                line-height: 26px;
            }

            body.galv-voucher .other-codes-btn{
                width: 100%;
                text-align: center;
                box-sizing: border-box;
            }
        }
        

/* Subash voucher review v2 (2026-06-15): the TOEFL app screenshot was scaled to
   height:260% and absolutely positioned + magnified per breakpoint, so it overflowed
   its frame and looked oversized. Replace the crop technique uniformly (this block
   wins over the comp's per-breakpoint img rules by source order) with a naturally-fit
   image: full image, aspect preserved, centered, proportionate across desktop /
   tablet / mobile. */
body.galv-voucher .toefl-app-image {
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: visible;
}
body.galv-voucher .toefl-app-image img {
    position: static;
    top: auto;
    left: auto;
    transform: none;
    height: auto;
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    display: block;
    object-fit: contain;
}

/* Subash voucher review v2 (2026-06-15): register step cards were stretched to equal
   height (Swiper default — no autoHeight), so short-text cards (e.g. "Verify your
   location and proceed!") showed a large gap between .step-desc and the card bottom in
   the first visible set, while longer-text cards looked right. (superseded by the v4 stretch rule below) */
body.galv-voucher .register-step-card.swiper-slide {
    /* v4 2026-06-15: equal height (stretch) fixes a lazy-load-dependent dead-space gap
       (measured up to ~155px) below shorter cards before .register-help-container, which
       varied as step images loaded / the carousel scrolled. Replaces v2/v3 flex-start. */
    align-self: stretch;
}

/* Subash voucher review v3 (2026-06-15): "Master Every TOEFL Section" product-cards
   section -> condensed toefl-prep .pricing CTA. Rules ported from the GRE voucher comp
   (these classes weren't present on the TOEFL pages). */
body.galv-voucher .pricing {
    background-color: var(--bg-navy);
    color: var(--text-white);
    padding: 60px 0 0;
}
body.galv-voucher .pricing .pricing-subheading {
    font-family: 'Poppins', sans-serif;
    font-size: 18px;
    font-weight: 400;
    color: var(--text-white);
    margin-bottom: 40px;
    max-width: 844px;
    margin-left: auto;
    margin-right: auto;
}
body.galv-voucher .consultation-cta {
    margin-top: 40px;
    margin-bottom: 60px;
    font-size: 18px;
    text-align: center;
}
body.galv-voucher .consultation-cta p {
    margin-bottom: 20px;
    font-size: 22px;
}

/* Subash voucher review v5 (2026-06-15): register-step-card dead-space + carousel gap.
   ROOT CAUSE (measured via Playwright on staging, not guessed): .step-image-box img had
   no reserved aspect ratio, so a LiteSpeed lazy-load 1x1 placeholder — and the always-
   offscreen Swiper loop clones — rendered as a 325x325 SQUARE, forcing slide height to
   ~494px. Swiper's default align-items:stretch then propagated that to every visible
   card, leaving ~146px of dead space below .step-desc (and, once cards hug content, the
   same 146px reappears as a gap before .register-help-container). Real image is 351x193;
   loaded cards are 348px. Reserving the ratio makes every slide (loaded, unloaded, or
   clone) a deterministic 348px regardless of lazy-load timing -> no dead space, carousel
   hugs content. Root-cause fix; supersedes the v2/v4 height workarounds. Verified on
   staging: wrapper 494->348, carousel->help gap 0. */
body.galv-voucher .step-image-box img {
    aspect-ratio: 351 / 193;
}

/* Subash voucher review v6 (2026-06-16): +20px breathing room above the help-section heading. */
body.galv-voucher .register-help-container h3 {
    margin-top: 20px;
}


/* ============================================================================
 * Subash Feedback v8 — 2026-07-14 — hero + other-codes sections.
 * Ported from his comp, NOT eyeballed. Only the rules that actually CHANGED or are NEW
 * are here: bulk-appending his 100 selectors would restyle blocks he never touched
 * (.hero and .offer-card are shared further down this page).
 * Scoped under body.galv-voucher, appended last so it wins at equal specificity.
 * ==========================================================================*/
body.galv-voucher .hero {
    background-color: var(--bg-navy);
    color: var(--text-white);
    padding: 60px 0 140px;
    position: relative;
    overflow: hidden;
}
body.galv-voucher .hero .container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: center;
}
body.galv-voucher .hero-content {
    min-width: 0;
}
body.galv-voucher .hero-content .ambassador-img {
    max-height: 80px;
    margin-bottom: 20px;
    display: block;
}
body.galv-voucher .hero-content h1 {
    font-size: 42px;
    line-height: 1.2;
    margin-bottom: 20px;
    overflow-wrap: break-word;
}
body.galv-voucher .hero-content p {
    font-family: var(--font-heading);
    font-weight: 500;
    font-size: 22px;
    line-height: 30px;
    margin-bottom: 20px;
    overflow-wrap: break-word;
}
body.galv-voucher .hero-content p.hero-form-note {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px;
    line-height: 26px;
    margin-bottom: 12px;
    opacity: 0.85;
}
body.galv-voucher .hero-features {
    list-style: none;
    margin-bottom: 30px;
}
body.galv-voucher .hero-feature-item {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    margin-bottom: 20px;
    font-size: 18px;
    line-height: 28px;
    flex-wrap: nowrap;
}
body.galv-voucher .hero-feature-item img {
    flex-shrink: 0;
    margin-top: 3px;
    width: 24px;
    height: 24px;
}
body.galv-voucher .hero-feature-link {
    color: var(--text-white);
    text-decoration: underline;
    text-underline-offset: 2px;
    font-weight: 400;
    white-space: nowrap;
}
body.galv-voucher .hero-feature-link:hover {
    opacity: 0.85;
}
body.galv-voucher .hero-offers {
    display: flex;
    flex-direction: column;
    gap: 30px;
    width: 100%;
    justify-self: center;
}
body.galv-voucher .offer-card {
    background: #fff;
    border-radius: 20px;
    overflow: hidden;
}
body.galv-voucher .offer-card-header {
    background: var(--cta-magenta);
    color: white;
    padding: 15px 20px;
    display: flex;
    align-items: center;
    gap: 15px;
}
body.galv-voucher .offer-icon-wrapper {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: white;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
body.galv-voucher .offer-icon {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    object-fit: contain;
}
body.galv-voucher .offer-header-text h3 {
    font-size: 26px;
    margin-bottom: 2px;
    font-family: var(--font-heading);
    font-weight: 600;
}
body.galv-voucher .offer-table {
    width: 100%;
    border-collapse: collapse;
    text-align: center;
    color: var(--text-dark);
}
body.galv-voucher .offer-table th,
body.galv-voucher .offer-table td {
    padding: 12px 10px;
    border: 1px solid #E6EBFF;
    border-top: none;
}
body.galv-voucher .offer-table th {
    background: #E6EBFF;
    font-weight: 600;
    font-size: 14px;
    line-height: 22px;
    color: var(--text-dark);
    border-bottom: 1px solid #C7D0FF;
}
body.galv-voucher .offer-table th:first-child,
body.galv-voucher .offer-table td:first-child {
    text-align: left;
    border-left: none;
    width: 34%;
    padding-left: 20px;
}
body.galv-voucher .offer-table th:last-child,
body.galv-voucher .offer-table td:last-child {
    border-right: none;
}
body.galv-voucher .offer-table td {
    font-size: 14px;
    font-weight: 500;
    background: #fff;
    color: var(--text-dark);
}
body.galv-voucher .offer-table td.code-text {
    color: var(--primary-blue);
    font-weight: 700;
    letter-spacing: 0.5px;
}
body.galv-voucher /* TOEFL DISCOUNT CARD */
        .toefl-discount-header {
    justify-content: center;
}
body.galv-voucher .toefl-discount-header .offer-header-text {
    text-align: center;
}
body.galv-voucher .toefl-discount-body {
    padding: 20px 20px 20px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
}
body.galv-voucher .toefl-save {
    font-size: 22px;
    font-weight: 700;
    color: var(--cta-magenta);
    margin: 0;
    font-family: var(--font-heading);
}
body.galv-voucher .toefl-code-box {
    border: 2px dashed var(--primary-blue);
    border-radius: 10px;
    padding: 12px 30px;
    width: 100%;
    max-width: 240px;
    box-sizing: border-box;
}
body.galv-voucher .toefl-code {
    font-size: 18px;
    font-weight: 700;
    color: var(--primary-blue);
    letter-spacing: 1px;
    font-family: var(--font-heading);
}
body.galv-voucher .toefl-btn-group {
    display: flex;
    gap: 12px;
    justify-content: center;
    width: 100%;
}
body.galv-voucher .toefl-india-note {
    font-size: 14px;
    line-height: 20px;
    color: #333333;
    margin: 4px 0 0;
    text-align: center;
}
body.galv-voucher .toefl-india-note a {
    color: var(--primary-blue);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
body.galv-voucher .toefl-india-note a:hover {
    color: var(--bg-navy);
}
body.galv-voucher /* OTHER TOEFL DISCOUNT CODES SECTION */
        .other-codes-section {
    background-color: var(--accent-blue);
    padding: 60px 0;
    margin-top: -100px;
    padding-top: 150px;
}
body.galv-voucher .other-codes-layout {
    display: flex;
    flex-direction: column;
    gap: 40px;
}
body.galv-voucher .other-codes-left {
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: center;
    text-align: center;
    max-width: 820px;
    margin: 0 auto;
}
body.galv-voucher .other-codes-title {
    font-family: var(--font-heading);
    font-size: 36px;
    line-height: 48px;
    color: var(--primary-blue);
    font-weight: 600;
    margin: 0;
}
body.galv-voucher .other-codes-desc {
    font-family: var(--font-body);
    font-size: 18px;
    line-height: 29px;
    color: var(--text-dark);
    margin: 0;
}
body.galv-voucher .other-codes-right {
    display: flex;
    flex-direction: column;
    gap: 20px;
    max-width: 820px;
    margin: 0 auto;
    width: 100%;
}
body.galv-voucher .other-codes-card-header {
    background: var(--bg-navy) !important;
}
body.galv-voucher .offer-note {
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 20px;
    font-style: italic;
    color: #808080;
    padding: 12px 20px 14px;
    margin: 0;
}

body.galv-voucher .offer-note a {
    color: #3B5BFF;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}

body.galv-voucher .offer-note a:hover {
    color: #13217c;
}

/* ST-38 (2026-08-04) — dead-code report path.
   ETS codes carry a fixed redemption allocation, so a valid code can still fail. This is the
   affordance that turns that dead end into a lead + a monitoring signal, so it has to be
   findable at the moment of failure — but it must never out-shout the offers themselves.
   Register sits deliberately between .offer-outside (filled cross-sell banner) and
   .offer-note (italic grey fine-print). */
body.galv-voucher .offer-report {
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 20px;
    font-weight: 500;
    color: var(--text-gray);
    padding: 4px 20px 14px;
    margin: 0;
}
body.galv-voucher .offer-report a {
    color: var(--primary-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}
body.galv-voucher .offer-report a:hover { color: var(--bg-navy); }

@media (max-width: 1024px) {
    body.galv-voucher .hero-offers {
        display: flex;
        flex-direction: column;
        width: 100%;
    }
    body.galv-voucher .hero {
        padding: 40px 0 120px;
    }
    body.galv-voucher .hero .container {
        display: flex;
        flex-direction: column;
        gap: 10px;
        align-items: start;
    }
    body.galv-voucher .hero-content h1 {
        font-size: 36px;
    }
    body.galv-voucher .hero-content p {
        font-size: 16px;
        margin-bottom: 20px;
    }
    body.galv-voucher .hero-feature-item {
        font-size: 16px;
        gap: 10px;
        margin-bottom: 20px;
    }
    body.galv-voucher .hero-features {
        margin-bottom: 30px;
    }
    body.galv-voucher .other-codes-layout {
        gap: 30px;
    }
    body.galv-voucher .other-codes-title {
        font-size: 26px;
        line-height: 40px;
    }
}

@media (max-width: 768px) {
    body.galv-voucher .hero {
        padding: 40px 0 250px;
    }
    body.galv-voucher .hero .container {
        grid-template-columns: 1fr;
        gap: 0px;
        text-align: left;
        padding: 0 20px;
    }
    body.galv-voucher .hero-offers {
        display: flex;
        flex-direction: column;
    }
    body.galv-voucher .hero-content {
        padding-bottom: 40px;
    }
    body.galv-voucher .hero-content .ambassador-img {
        max-height: 50px;
    }
    body.galv-voucher .hero-content h1 {
        font-size: 30px;
        line-height: 40px;
        text-align: left;
        width: 100%;
        overflow-wrap: break-word;
        word-break: break-word;
        white-space: normal !important;
    }
    body.galv-voucher .hero-content p {
        font-size: 18px;
        margin-bottom: 20px;
    }
    body.galv-voucher .hero-feature-item {
        font-size: 16px;
        line-height: 26px;
        margin-bottom: 20px;
    }
    body.galv-voucher .offer-header-text h3 {
        font-size: 20px;
    }
    body.galv-voucher .offer-table td {
        font-size: 14px;
        padding: 14px 8px;
    }
    body.galv-voucher .offer-table td:first-child {
        padding-left: 10px;
    }
    body.galv-voucher .toefl-code-box {
        border: 2px dashed var(--primary-blue);
        border-radius: 8px;
        padding: 12px 24px;
        width: fit-content;
        max-width: 100%;
        box-sizing: border-box;
    }
    body.galv-voucher .other-codes-section {
        background-color: var(--accent-blue);
        padding: 40px 0;
        margin-top: -280px;
        padding-top: 330px;
    }
    body.galv-voucher .other-codes-layout {
        gap: 30px;
    }
    body.galv-voucher .other-codes-title {
        font-size: 26px;
        line-height: 38px;
    }
    body.galv-voucher .other-codes-desc {
        font-size: 16px;
        line-height: 26px;
    }
}

@media (max-width: 600px) {
    body.galv-voucher .other-codes-right .offer-table {
        display: block;
        padding: 12px;
    }
    body.galv-voucher .other-codes-right .offer-table thead {
        display: none;
    }
    body.galv-voucher .other-codes-right .offer-table tbody,
    body.galv-voucher .other-codes-right .offer-table tr,
    body.galv-voucher .other-codes-right .offer-table td {
        display: block;
        width: 100%;
    }
    body.galv-voucher .other-codes-right .offer-table tr {
        border: none;
        border-radius: 12px;
        overflow: hidden;
        margin-bottom: 14px;
        background: var(--accent-blue);
    }
    body.galv-voucher .other-codes-right .offer-table tr:last-child {
        margin-bottom: 0;
    }
    body.galv-voucher .other-codes-right .offer-table tbody td {
        position: relative;
        text-align: left;
        padding: 6px 16px 6px 42%;
        border: none;
        background: transparent;
        font-size: 14px;
    }
    body.galv-voucher .other-codes-right .offer-table tbody td:first-of-type {
        padding-top: 14px;
    }
    body.galv-voucher .other-codes-right .offer-table tbody td:last-child {
        padding-bottom: 14px;
    }
    body.galv-voucher .other-codes-right .offer-table td::before {
        content: attr(data-label);
        position: absolute;
        left: 16px;
        top: 6px;
        width: 38%;
        text-align: left;
        font-weight: 600;
        color: var(--text-gray);
    }
    body.galv-voucher .other-codes-right .offer-table tbody td:first-of-type::before {
        top: 14px;
    }
    body.galv-voucher .other-codes-right .offer-table td.product-cell {
        width: 100%;
        text-align: left;
        background: var(--accent-blue);
        padding: 6px 16px;
        font-size: 15px;
        font-weight: 600;
    }
    body.galv-voucher .other-codes-right .offer-table td.product-cell::before {
        content: none;
    }
    body.galv-voucher .other-codes-right .offer-table td .btn-sm {
        display: inline-block;
        width: auto;
        padding: 8px 18px;
    }
    body.galv-voucher .other-codes-right .offer-table tbody td:has(.btn-sm)::before {
        top: 0;
        bottom: 0;
        display: flex;
        align-items: center;
    }
}


/* ETS proof-link CTA color (Subash 2026-07-22): #3B5BFF, hover #13217C. Targets only the .connect-text proof link in the ETS partner section; the 'Explore Now' button is a sibling and unaffected. */
body.galv-voucher .connect-text a { color: #3B5BFF; }
body.galv-voucher .connect-text a:hover { color: #13217C; }


/* ============================================================================
   VOUCHER FLOW REDESIGN — Subash comp `toefl-voucher-hero-redesign.html`
   (drop 2026-07-28). Extracted verbatim; only the `body.galv-voucher` scope
   prefix is added, per this file's SCOPING convention (see header).

   DELIBERATELY NOT PORTED from the comp — do not "fix" these back:
   - The comp's `.hero { padding: 60px 0 }`. Ours is `60px 0 160px`; the 160px
     bottom is load-bearing for .stats-section's negative-margin overlap
     (see the .hero rule above). The comp has no stats bar, so it never needed it.
   - The comp's `.btn-magenta { font-size: 18px }`. Ours has no font-size, and
     .btn-magenta is used site-wide on this page — the comp's value would resize
     buttons in sections the redesign does not touch.
   - The comp's `.offer-table { text-align: left }` and its `td` left-padding.
     Ours centres; changing it reflows all six rows, which is not part of this change.
   - The comp's page-global `*`, `html`, `body`, `h1`-`h6` and `:root` blocks.
     Those leak into the Bricks header/footer chrome; the tokens they define
     already exist in the body.galv-voucher block above.
   ============================================================================ */

body.galv-voucher .is-hidden { display: none !important; }

/* Inline email widget (locked pattern: 44px, magenta CTA).
   Intent: FREE codes by email. Optional — every code stays visible in the
   table beside it, so this is a soft opt-in, not a gate. */
body.galv-voucher .email-widget {
    display: flex;
    gap: 10px;
    max-width: 480px;
}
body.galv-voucher .email-widget input[type="email"] {
    flex: 1;
    min-width: 0;
    height: 44px;
    padding: 0 14px;
    border: none;
    border-radius: 10px;
    font-family: var(--font-body);
    font-size: 16px;
    color: var(--text-dark);
    background: var(--text-white);
}
body.galv-voucher .email-widget input[type="email"]:focus {
    outline: 2px solid var(--primary-blue);
}
body.galv-voucher .email-widget .btn {
    height: 44px;
    padding: 0 22px;
    font-size: 16px;
    line-height: 44px;
    white-space: nowrap;
}
/* Success/error text. The comp styles a standalone `.email-widget-done` <p>,
   but galvanize-forms owns the success state for bare comp forms and injects
   its own `.galv-form__status` node (setStatus overwrites className, so the
   comp's class cannot survive on it). Both selectors carry the comp's type. */
body.galv-voucher .email-widget-done,
body.galv-voucher .hero-content .galv-form__status {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 24px;
    font-weight: 600;
}

/* Code string + Copy button share one line in the code cell. Full-width +
   space-between anchors every Copy button at the same x-position regardless
   of code length. */
body.galv-voucher .code-cell-inner {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    flex-wrap: nowrap;
    white-space: nowrap;
}
body.galv-voucher .code-copy {
    font-family: var(--font-heading);
    font-size: 12px;
    line-height: 18px;
    font-weight: 600;
    color: var(--primary-blue);
    background: #fff;
    border: 1px solid var(--primary-blue);
    border-radius: 5px;
    padding: 3px 10px;
    cursor: pointer;
    transition: all .2s ease;
}
body.galv-voucher .code-copy:hover,
body.galv-voucher .code-copy.is-copied {
    background: var(--primary-blue);
    color: var(--text-white);
}


/* Paid voucher row. No tint — the row reads as paid via the magenta Buy
   Voucher button and the .voucher-row-label, not a background fill. */
body.galv-voucher .voucher-row-label {
    display: block;
    font-size: 11px;
    line-height: 16px;
    font-weight: 600;
    color: var(--cta-magenta);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: 2px;
}

/* GRE cross-link callout (inside the offer card) */
body.galv-voucher .offer-outside {
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 22px;
    font-weight: 500;
    color: var(--text-dark);
    background: var(--accent-blue);
    border-left: 4px solid var(--primary-blue);
    padding: 12px 16px;
    margin: 14px 16px 0;
    border-radius: 8px;
}
body.galv-voucher .offer-outside a {
    color: var(--primary-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}
body.galv-voucher .offer-outside a:hover { color: var(--bg-navy); }

@media (max-width: 768px) {
    body.galv-voucher .email-widget { flex-direction: column; }
    /* In column direction flex-basis governs HEIGHT — without this reset,
       flex:1 collapses the input to ~20px despite height:44px */
    body.galv-voucher .email-widget input[type="email"] { flex: 0 0 auto; }
    body.galv-voucher .email-widget .btn { width: 100%; text-align: center; }
    /* Same line here too: tighter code type + button so the longest code fits
       beside Copy; wrap stays as last-resort fallback. justify-content resets
       so Copy hugs the code text (desktop's space-between would push it to
       the cell's far edge). */
    body.galv-voucher .code-cell-inner {
        flex-wrap: wrap;
        justify-content: flex-start;
        gap: 6px;
        font-size: 12px;
        letter-spacing: 0;
    }
    body.galv-voucher .code-cell-inner .code-copy { padding: 2px 8px; }
    /* Vertically centre the stacked-mobile row label against the taller
       Copy button, matching the existing .btn-sm rule at the 600px stop. */
    body.galv-voucher .offer-table tbody td:has(.code-copy)::before {
        top: 0;
        bottom: 0;
        display: flex;
        align-items: center;
    }
}

/* --- offer-row emphasis (comp 2026-07-28, per-page) --- */
body.galv-voucher .offer-table tr.highlight-row td { background: #fffdfe; }
body.galv-voucher .offer-table tr.voucher-row td { background: #FFF6E5; }
@media (max-width: 768px) {
    /* rows stack into cards here, so the tint re-applies to the row and its product cell */
    body.galv-voucher .offer-table tr.highlight-row { background: #fffdfe; }
    /* v3 2026-07-29 (Subash): the product cell alone moves to #E6EBFF; the rest of the
       card stays #fffdfe. Split from the v2 rule above, which tinted both the same. */
    body.galv-voucher .offer-table tr.highlight-row td.product-cell { background: #E6EBFF; }
    body.galv-voucher .offer-table tr.voucher-row,
    body.galv-voucher .offer-table tr.voucher-row td.product-cell { background: #FFF6E5; }
}

/* ---- Form section, Subash feedback v2 (2026-07-28) ----------------------------
   The support opt-in checkbox is injected by the paired JS (.support-optin-label)
   and had no styles of its own, so it inherited body colour. Subash asked for the
   same muted grey the offer notes now use.

   This is the checkbox that REMAINS after the visible consent row moved to the
   implicit pattern. It is `upgrade_interest` -- a progressive-disclosure toggle,
   NOT a consent control. Do not relabel it as consent. */
body.galv-voucher .support-optin-label {
    /* v3 2026-07-29 (Subash): supersedes the v2 muted grey -- this label was getting
       lost against the offer notes it was matched to. Text is UNCHANGED; styling only. */
    color: #333333;
    font-size: 16px;
    font-weight: 500;
}

/* ---- Mobile hero table: stack rows into cards (Subash feedback v2, 2026-07-28) --
   Ported from /toefl-voucher-code/, which already had this block and which Subash
   did NOT flag -- so it is the accepted rendering, and porting it makes all six
   pages agree rather than making four of them agree with a comp the other two
   diverge from.

   Scoped to .hero-offers deliberately. toefl can use a bare .offer-table selector
   because it has only one table pattern; these pages carry a second table below
   the hero with its own .other-codes-right mobile treatment, and a bare selector
   would reach into it.

   Relies on data-label being present on every hero <td> (it is, on all six) --
   the labels are drawn by td::before from that attribute. If a future row is
   added without data-label, its label silently renders empty.

   [VERIFY] comp says padding-left 36% / label width 32%; this ships toefl's
   42% / 38%. Raised with Subash. */
@media (max-width: 600px) {

    body.galv-voucher .hero-offers .offer-table {
        display: block;
        min-width: 0;
        padding: 12px;
    }
    body.galv-voucher .hero-offers .offer-table thead {
        display: none;
    }
    body.galv-voucher .hero-offers .offer-table tbody,
    body.galv-voucher .hero-offers .offer-table tbody tr {
        display: block;
        width: 100%;
    }
    body.galv-voucher .hero-offers .offer-table tbody tr {
        border: none;
        border-radius: 12px;
        overflow: hidden;
        margin-bottom: 14px;
        background: #e6ebff;
    }
    body.galv-voucher .hero-offers .offer-table tbody tr:last-child {
        margin-bottom: 0;
    }
    body.galv-voucher .hero-offers .offer-table tbody td {
        position: relative;
        display: block;
        text-align: left;
        padding: 6px 16px 6px 42%;
        border: none;
        background: transparent;
        font-size: 14px;
    }
    body.galv-voucher .hero-offers .offer-table tbody td:first-of-type {
        padding-top: 14px;
    }
    body.galv-voucher .hero-offers .offer-table tbody td:last-child {
        padding-bottom: 14px;
    }
    body.galv-voucher .hero-offers .offer-table td::before {
        content: attr(data-label);
        position: absolute;
        left: 16px;
        top: 6px;
        width: 38%;
        text-align: left;
        font-weight: 600;
        color: #808080;
    }
    body.galv-voucher .hero-offers .offer-table tbody td:first-of-type::before {
        top: 14px;
    }
    body.galv-voucher .hero-offers .offer-table td.product-cell {
        width: 100%;
        text-align: left;
        background: #e6ebff;
        padding: 6px 16px;
        margin-bottom: 0;
        font-size: 15px;
        font-weight: 600;
    }
    body.galv-voucher .hero-offers .offer-table td.product-cell::before {
        content: none;
    }
    body.galv-voucher .hero-offers .offer-table td .btn-sm {
        display: inline-block;
        width: auto;
        padding: 8px 18px;
    }
    /* Vertically centre the label against the taller Get Code button */
    body.galv-voucher .hero-offers .offer-table tbody td:has(.btn-sm)::before {
        top: 0;
        bottom: 0;
        display: flex;
        align-items: center;
    }

}


/* ---- v3 2026-07-29 (Subash, with reference comps) --------------------------------
   The second mobile card takes #FFF6E5 across its WHOLE height, not only the
   product-cell strip at the top. Reported as: "only the header has this color, while
   the rest of the card uses #E6EBFF".

   Deliberately a new rule rather than an edit to the ones above. At this breakpoint
   the card body is painted by `.other-codes-right .offer-table tbody td` and the row
   tint by `.offer-table tr.voucher-row td` -- IDENTICAL specificity (0,3,3), so which one
   wins depends on source order across two interleaved media blocks. Rather than
   deduce that, this adds `tbody` to reach (0,3,4): strictly higher than every
   candidate, so it cannot lose on ordering and does not care which currently wins.

   Scoped to one row class on one breakpoint, and additive -- no existing rule is
   touched, so no other card, page or breakpoint moves. */
@media (max-width: 768px) {
    body.galv-voucher .offer-table tbody tr.voucher-row,
    body.galv-voucher .offer-table tbody tr.voucher-row td,
    body.galv-voucher .offer-table tbody tr.voucher-row td.product-cell {
        background: #FFF6E5;
    }
}

/* ==========================================================================
   PTE DELTA - extracted verbatim from the comp's single <style> block.
   Everything above this line is the TOEFL base the comp was drawn against.
   ========================================================================== */
/* =====================================================================
           PTE-ONLY SECTIONS - append to voucher-pte-voucher-code.css
           Tokens reused verbatim from the voucher bundle:
           --bg-navy --primary-blue --cta-magenta --accent-blue --text-white
           --text-dark --text-gray --font-heading --font-body

           Every selector is scoped with body.galv-voucher to outrank the
           bundle's "body.galv-voucher *{margin:0;padding:0}" reset and its
           "body.galv-voucher section{padding:0}" rule. Do not drop the prefix
           when adding a new rule here - unprefixed rules lose to both and the
           section renders with no padding or margins.
           ===================================================================== */

        /* ---------- SAVINGS BREAKDOWN ----------
           margin-top/padding-top inherited from .other-codes-section, which used
           to hold this slot: the .stats-bar above is pulled up -80px and this
           section's background has to slide behind it. -------------------- */
        body.galv-voucher .pte-savings {
            background: var(--accent-blue);
            padding: 150px 0 60px;
            margin-top: -100px;
        }

        body.galv-voucher .pte-savings-intro {
            max-width: 820px;
            margin: 0 auto 40px;
            text-align: center;
        }

        body.galv-voucher .pte-savings-intro p {
            font-family: var(--font-body);
            font-size: 18px;
            line-height: 29px;
        }

        body.galv-voucher .pte-savings-card {
            background: var(--text-white);
            border: 1px solid #C7D0FF;
            border-radius: 20px;
            overflow: hidden;
            max-width: 1062px;
            margin: 0 auto;
        }

        body.galv-voucher .pte-savings-table {
            width: 100%;
            border-collapse: collapse;
            text-align: center;
        }

        body.galv-voucher .pte-savings-table th {
            background: var(--bg-navy);
            color: var(--text-white);
            font-family: var(--font-heading);
            font-size: 14px;
            line-height: 22px;
            letter-spacing: 0.5px;
            text-transform: uppercase;
            padding: 18px 12px;
        }

        body.galv-voucher .pte-savings-table td {
            padding: 20px 12px;
            border-bottom: 1px solid #E6EBFF;
            font-size: 16px;
            font-weight: 500;
        }

        body.galv-voucher .pte-savings-table tr:last-child td {
            border-bottom: none;
        }

        body.galv-voucher .pte-savings-table th:first-child,
        body.galv-voucher .pte-savings-table td:first-child {
            text-align: left;
            padding-left: 30px;
            width: 40%;
            font-family: var(--font-heading);
            font-weight: 600;
        }

        body.galv-voucher .pte-savings-tag {
            display: inline-block;
            margin-left: 8px;
            padding: 2px 10px;
            border-radius: 20px;
            background: var(--accent-blue);
            /* was --primary-blue - 4.29:1, fails AA at this size */
            color: var(--bg-navy);
            font-family: var(--font-body);
            font-size: 12px;
            line-height: 20px;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            vertical-align: middle;
        }

        body.galv-voucher .pte-savings-table td.fee {
            /* was --text-gray (3.90:1 on white) - fails AA. The line-through already
               carries the "old price" meaning, so colour is not the sole indicator. */
            color: var(--text-dark);
            text-decoration: line-through;
        }

        body.galv-voucher .pte-savings-table td.save {
            color: var(--cta-magenta);
            font-weight: 700;
        }

        body.galv-voucher .pte-savings-table td.pay {
            color: var(--primary-blue);
            font-family: var(--font-heading);
            font-weight: 700;
        }

        body.galv-voucher .pte-savings-note {
            font-family: var(--font-body);
            font-size: 14px;
            line-height: 22px;
            font-style: italic;
            /* was --text-gray - 3.33:1 on this section's accent-blue, fails AA */
            color: var(--text-dark);
            max-width: 1062px;
            margin: 20px auto 0;
        }

        /* ---------- REDEEM STEPS ---------- */
        body.galv-voucher .pte-redeem {
            background: var(--text-white);
            padding: 60px 0;
        }

        body.galv-voucher .pte-redeem-grid {
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            gap: 20px;
            margin-top: 50px;
        }

        body.galv-voucher .pte-redeem-step {
            flex: 1 1 0;
            min-width: 0;
        }

        body.galv-voucher .pte-redeem-step {
            background: var(--accent-blue);
            border-radius: 20px;
            padding: 28px 24px;
            display: flex;
            flex-direction: column;
        }

        body.galv-voucher .pte-redeem-number {
            width: 48px;
            height: 48px;
            border-radius: 50%;
            background: var(--primary-blue);
            color: var(--text-white);
            font-family: var(--font-heading);
            font-size: 22px;
            font-weight: 700;
            display: flex;
            align-items: center;
            justify-content: center;
            margin-bottom: 20px;
            flex-shrink: 0;
        }

        body.galv-voucher .pte-redeem-title {
            font-size: 18px;
            line-height: 28px;
            margin-bottom: 8px;
        }

        body.galv-voucher .pte-redeem-desc {
            font-size: 16px;
            line-height: 26px;
        }

        body.galv-voucher .pte-redeem-desc .code-inline {
            color: var(--cta-magenta);
            font-weight: 700;
            letter-spacing: 0.5px;
        }

        /* ---------- VOUCHER PATH (second product, second transaction) ---------- */
        body.galv-voucher .pte-voucher-path {
            max-width: 1062px;
            margin: 40px auto 0;
            text-align: center;
        }

        body.galv-voucher .pte-voucher-path-title {
            font-size: 22px;
            line-height: 32px;
            color: var(--primary-blue);
            margin-bottom: 20px;
        }

        /* Separates the secondary discount-code path from the voucher block
           above it. Same type scale and colour as .pte-voucher-path-title so
           the two routes read as siblings, one after the other. */
        body.galv-voucher .pte-redeem-subhead {
            max-width: 1062px;
            margin: 70px auto 0;
            font-size: 22px;
            line-height: 32px;
            color: var(--primary-blue);
            text-align: center;
        }

        /* The gap UNDER this heading is set by .pte-redeem-grid's 50px
           margin-top, which collapses with the heading's own bottom margin and
           wins. Tightening the heading alone does nothing - the grid has to be
           pulled up here. Scoped to the grid that directly follows the
           subhead so the code-path grid keeps its own spacing elsewhere. */
        body.galv-voucher .pte-redeem-subhead + .pte-redeem-grid {
            margin-top: 24px;
        }

        body.galv-voucher .pte-voucher-path-steps {
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            gap: 20px;
            list-style: none;
            margin-bottom: 30px;
            text-align: left;
        }

        /* No wrapper panel - the cards sit directly on the section background.
           Card geometry and fill are identical to .pte-redeem-step below
           (--accent-blue is #e6ebff), so the voucher route and the
           discount-code route read as the same component. */
        body.galv-voucher .pte-voucher-path-steps li {
            flex: 0 1 calc(33.333% - 14px);
            /* ⚠ 220px is DESKTOP/TABLET ONLY now — the mobile value is in the
               600px block below (Subash, 2026-08-13). Left at 220 here on
               purpose: flex-grow is 0, so this min-width is what actually sets
               the card width at every viewport under ~1000px, and raising it
               globally re-flows tablet AND small-desktop. Measured on the 3-up
               comp layout: at 1024px it takes the row from 3 cards to 2, at
               768px from 2 to 1. Neither was asked for. */
            min-width: 220px;
            display: flex;
            flex-direction: column;
            background: var(--accent-blue);
            border-radius: 20px;
            padding: 28px 24px;
            font-size: 16px;
            line-height: 26px;
            color: var(--text-gray);
        }

        /* Mobile: 220px -> 360px (Subash, 2026-08-13). flex-grow is 0, so at
           220px the card never reaches the container edge — on a 375px phone
           it sat 220px wide inside 304px, i.e. 84px of dead space with the
           three steps floating in the middle of the band. 600px is this page's
           established mobile stop (the hero offer table cards there too).
           ⛔ min() IS LOAD-BEARING — do not flatten it to a bare 360px. Below
           768px .container is padding:0 20px, so a 375px phone has 304px of
           content and a hard 360px makes the CARD WIDER THAN ITS CONTAINER.
           Measured on the bare value: li=360 vs container 289/304/319/341 at
           360/375/390/412px — overflowing at every phone width tested, and
           clipped rather than scrolled, so the right edge of the card is
           simply cut off with nothing to reveal it. min(360px,100%) gives
           Subash's 360 wherever it fits and full-bleed where it does not. */
        @media (max-width: 600px) {
            body.galv-voucher .pte-voucher-path-steps li {
                min-width: min(360px, 100%);
            }
        }

        body.galv-voucher .pte-voucher-path-step-title {
            font-family: var(--font-heading);
            font-size: 18px;
            line-height: 28px;
            font-weight: 700;
            color: var(--text-dark);
            margin-bottom: 8px;
        }

        body.galv-voucher .pte-voucher-path-num {
            width: 48px;
            height: 48px;
            border-radius: 50%;
            background: var(--primary-blue);
            color: var(--text-white);
            font-family: var(--font-heading);
            font-size: 22px;
            font-weight: 700;
            display: flex;
            align-items: center;
            justify-content: center;
            margin-bottom: 20px;
            flex-shrink: 0;
        }

        /* ---------- FAQ: .faq-question is a <button> for keyboard access.
                       The bundle styles the class, so only the UA button
                       defaults need neutralising here. ---------------------- */
        body.galv-voucher button.faq-question {
            display: block;
            width: 100%;
            margin: 0;
            border: none;
            background: none;
            font-family: inherit;
            text-align: left;
            -webkit-appearance: none;
            appearance: none;
        }

        body.galv-voucher button.faq-question:focus-visible {
            outline: 3px solid var(--cta-magenta);
            outline-offset: -3px;
        }

        /* ---------- TEST CENTRES ---------- */
        body.galv-voucher .pte-centres {
            background: var(--accent-blue);
            padding: 60px 0;
        }

        body.galv-voucher .pte-centres-grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 30px;
            margin-top: 50px;
        }

        body.galv-voucher .pte-centre-card {
            background: var(--text-white);
            border-radius: 20px;
            padding: 30px;
            display: flex;
            flex-direction: column;
        }

        body.galv-voucher .pte-centre-head {
            display: flex;
            align-items: center;
            gap: 15px;
            margin-bottom: 20px;
        }

        body.galv-voucher .pte-centre-badge {
            width: 44px;
            height: 44px;
            border-radius: 50%;
            background: var(--bg-navy);
            color: var(--text-white);
            font-family: var(--font-heading);
            font-size: 18px;
            font-weight: 700;
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
        }

        body.galv-voucher .pte-centre-region {
            font-size: 22px;
            line-height: 30px;
            color: var(--primary-blue);
        }

        body.galv-voucher .pte-centre-desc {
            font-size: 16px;
            line-height: 26px;
            margin-bottom: 20px;
            flex-grow: 1;
        }

        body.galv-voucher .pte-centre-label {
            font-family: var(--font-heading);
            font-size: 14px;
            line-height: 22px;
            font-weight: 600;
            letter-spacing: 0.5px;
            text-transform: uppercase;
            /* was --text-gray - 3.90:1 on the white card, fails AA */
            color: var(--text-dark);
            margin-bottom: 12px;
        }

        body.galv-voucher .pte-centre-cities {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            list-style: none;
        }

        body.galv-voucher .pte-centre-cities li {
            background: var(--accent-blue);
            border-radius: 20px;
            padding: 8px 16px;
            font-size: 14px;
            line-height: 22px;
            font-weight: 500;
        }

        body.galv-voucher .pte-centres-note {
            text-align: center;
            font-size: 18px;
            line-height: 29px;
            margin-top: 40px;
        }

        body.galv-voucher .pte-centres-note span {
            color: var(--cta-magenta);
            font-weight: 600;
        }

        /* ---------- WHERE PTE TAKES YOU (padding-bottom clears the uni-partners
                       overlap, the job .pte-compare used to do before it was
                       removed - .uni-partners pulls up -100px) ------------- */
        body.galv-voucher .pte-usecases {
            background: var(--text-white);
            padding: 60px 0 160px;
        }

        body.galv-voucher .pte-usecases-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 30px;
            margin-top: 50px;
        }

        body.galv-voucher .pte-usecase-card {
            background: var(--accent-blue);
            border-radius: 20px;
            padding: 30px;
            display: flex;
            flex-direction: column;
        }

        body.galv-voucher .pte-usecase-icon {
            width: 64px;
            height: 64px;
            border-radius: 16px;
            background: var(--text-white);
            display: flex;
            align-items: center;
            justify-content: center;
            margin-bottom: 24px;
        }

        body.galv-voucher .pte-usecase-icon svg {
            width: 32px;
            height: 32px;
            stroke: var(--primary-blue);
            fill: none;
            stroke-width: 1.8;
            stroke-linecap: round;
            stroke-linejoin: round;
        }

        body.galv-voucher .pte-usecase-title {
            font-size: 22px;
            line-height: 32px;
            color: var(--primary-blue);
            margin-bottom: 10px;
        }

        body.galv-voucher .pte-usecase-text {
            font-size: 16px;
            line-height: 26px;
            margin-bottom: 24px;
            flex-grow: 1;
        }

        body.galv-voucher .pte-usecase-tags {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            list-style: none;
        }

        body.galv-voucher .pte-usecase-tags li {
            background: var(--text-white);
            border-radius: 20px;
            padding: 8px 16px;
            font-size: 14px;
            line-height: 22px;
            font-weight: 600;
            color: var(--primary-blue);
        }

        /* Consent note under the form fields. The body.galv-voucher prefix is
           load-bearing, not decoration: the bundle's
           body.galv-voucher * { margin:0; padding:0 } is (0,1,1), so a bare
           .galv-form__note at (0,1,0) loses and the padding never lands. */
        body.galv-voucher .galv-form__note {
            padding-bottom: 5px;
        }

        /* Sub-copy under the form heading. Prefixed so it outranks the
           bundle's own .consultation-form .sub (0,2,0) - this is (0,3,1). */
        body.galv-voucher .consultation-form .sub {
            line-height: 24px;
        }

        /* ---------- RESPONSIVE ---------- */
        @media (max-width: 1200px) {
            body.galv-voucher .pte-redeem-step {
                /* grow:0 so a trailing row of 1-2 keeps column width and centres
                   rather than stretching to fill */
                flex: 0 1 calc(33.333% - 14px);
            }
        }

        @media (max-width: 1024px) {

            body.galv-voucher .pte-savings {
                padding-bottom: 40px;
            }

            body.galv-voucher .pte-redeem,
            body.galv-voucher .pte-centres {
                padding: 40px 0;
            }

            body.galv-voucher .pte-usecases {
                padding: 40px 0 140px;
            }

            body.galv-voucher .pte-centres-grid,
            body.galv-voucher .pte-usecases-grid {
                grid-template-columns: 1fr;
                gap: 20px;
                margin-top: 40px;
            }

            body.galv-voucher .pte-redeem-grid {
                margin-top: 40px;
            }

            body.galv-voucher .pte-redeem-step {
                flex: 0 1 calc(50% - 10px);
            }
        }

        @media (max-width: 768px) {
            body.galv-voucher .pte-savings {
                padding: 330px 0 40px;
                margin-top: -280px;
            }

            body.galv-voucher .pte-usecases {
                padding: 40px 0 160px;
            }

            /* Stacked card layout for the PTE savings table on mobile,
               mirroring what the voucher CSS does to .offer-table */
            body.galv-voucher .pte-savings-table thead {
                display: none;
            }

            body.galv-voucher .pte-savings-table,
            body.galv-voucher .pte-savings-table tbody,
            body.galv-voucher .pte-savings-table tr,
            body.galv-voucher .pte-savings-table td {
                display: block;
                width: 100%;
            }

            body.galv-voucher .pte-savings-table tr {
                border-radius: 12px;
                overflow: hidden;
                margin-bottom: 14px;
                background: var(--text-white);
            }

            body.galv-voucher .pte-savings-table tr:last-child {
                margin-bottom: 0;
            }

            body.galv-voucher .pte-savings-table td {
                position: relative;
                text-align: left;
                padding: 6px 16px 6px 46%;
                border: none;
                font-size: 15px;
            }

            body.galv-voucher .pte-savings-table td::before {
                content: attr(data-label);
                position: absolute;
                left: 16px;
                top: 6px;
                width: 42%;
                font-weight: 600;
                color: var(--text-dark);
            }

            body.galv-voucher .pte-savings-table td:first-child {
                width: 100%;
                padding: 12px 16px;
                background: var(--text-white);
                font-size: 16px;
            }

            body.galv-voucher .pte-savings-table td:first-child::before {
                content: none;
            }

            body.galv-voucher .pte-savings-table td:last-child {
                padding-bottom: 14px;
            }

            body.galv-voucher .pte-savings-card {
                background: transparent;
                border: none;
                border-radius: 0;
            }

            body.galv-voucher .pte-redeem-grid {
                margin-top: 30px;
            }

            body.galv-voucher .pte-redeem-step {
                flex: 1 1 100%;
            }

            body.galv-voucher .pte-centre-card,
            body.galv-voucher .pte-usecase-card {
                padding: 22px;
            }

            body.galv-voucher .pte-centre-region,
            body.galv-voucher .pte-usecase-title {
                font-size: 18px;
                line-height: 29px;
            }
        }
