.page-demo-register{
    background:#fff;
    color:#333;
}

.demo-register-hero{
    position:relative;
    overflow:hidden;
    padding:80px 20px 150px;
    background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);
    color:#fff;
}

.demo-register-hero::after{
    content:"";
    position:absolute;
    left:-5%;
    right:-5%;
    bottom:-96px;
    height:180px;
    background:#fff;
    transform:rotate(-4deg);
    transform-origin:center;
}

.demo-register-hero-inner{
    position:relative;
    z-index:1;
    max-width:900px;
    margin:0 auto;
    text-align:center;
}

.demo-register-hero h1{
    margin:0 0 20px;
    font-size:clamp(2.45rem,5vw,3.5rem);
    font-weight:700;
    line-height:1.06;
    letter-spacing:-1px;
}

.demo-register-hero p{
    max-width:900px;
    margin:0 auto;
    font-size:1.18rem;
    line-height:1.65;
    opacity:.92;
}

.demo-register-main{
    position:relative;
    z-index:2;
    margin-top:-95px;
    padding:0 0 90px;
}

.demo-register-grid{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(320px,1fr);
    gap:80px;
    align-items:start;
    max-width:1400px;
}

.demo-register-card{
    padding:40px;
    border-radius:20px;
    background:#fff;
    box-shadow:0 20px 60px rgba(0,0,0,.15),0 8px 32px rgba(0,0,0,.12);
    animation:demoSlideUp .55s ease-out;
}

@keyframes demoSlideUp{
    from{opacity:0;transform:translateY(28px)}
    to{opacity:1;transform:translateY(0)}
}

.demo-register-info{
    padding:40px 0;
    margin-top:285px;
}

.demo-register-info h2{
    margin:0 0 20px;
    color:#1f2937;
    font-size:2.45rem;
    font-weight:700;
    line-height:1.12;
}

.demo-register-info p{
    max-width:570px;
    margin:0;
    color:#6b7280;
    font-size:1.08rem;
    line-height:1.75;
}

.demo-form-alert{
    display:grid;
    gap:4px;
    margin-bottom:22px;
    padding:14px 16px;
    border-radius:12px;
    font-size:.9rem;
}

.demo-form-alert-error{
    border:2px solid #ef4444;
    background:#fef2f2;
    color:#991b1b;
}

.demo-honeypot{
    position:absolute!important;
    left:-10000px!important;
    width:1px!important;
    height:1px!important;
    overflow:hidden!important;
}

.demo-form-progress{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    margin:0 0 30px;
}

.demo-form-progress button{
    display:flex;
    align-items:center;
    gap:8px;
    padding:0;
    border:0;
    background:none;
    color:#9ca3af;
    font:inherit;
    cursor:default;
}

.demo-form-progress button span{
    display:grid;
    place-items:center;
    width:28px;
    height:28px;
    border:2px solid #e5e7eb;
    border-radius:50%;
    background:#fff;
    font-size:.75rem;
    font-weight:800;
}

.demo-form-progress button strong{
    font-size:.78rem;
}

.demo-form-progress button.is-active,
.demo-form-progress button.is-complete{
    color:#374151;
}

.demo-form-progress button.is-active span,
.demo-form-progress button.is-complete span{
    border-color:#5f5bd6;
    background:#5f5bd6;
    color:#fff;
}

.demo-form-progress i{
    width:36px;
    height:2px;
    background:#e5e7eb;
}

.demo-step-heading{
    margin:0 0 26px;
}

.demo-step-heading h2{
    margin:0 0 5px;
    color:#1f2937;
    font-size:1.35rem;
}

.demo-step-heading p{
    margin:0;
    color:#6b7280;
    font-size:.9rem;
}

.demo-form-step{
    display:block;
}

#demoForm.is-enhanced .demo-form-step{
    display:none;
}

#demoForm.is-enhanced .demo-form-step.is-active{
    display:block;
    animation:demoStepFade .2s ease;
}

@keyframes demoStepFade{
    from{opacity:0;transform:translateY(6px)}
    to{opacity:1;transform:translateY(0)}
}

.demo-form-group{
    display:grid;
    grid-template-columns:160px minmax(0,1fr);
    gap:20px;
    align-items:start;
    margin-bottom:25px;
}

.demo-form-label{
    display:flex;
    align-items:center;
    min-width:0;
    padding-top:14px;
    color:#374151;
    font-size:.95rem;
    font-weight:600;
    line-height:1.35;
}

.demo-form-label svg{
    width:18px;
    height:18px;
    flex:0 0 18px;
    margin-right:8px;
    fill:currentColor;
    color:#6b7280;
}

.demo-form-label em{
    margin-left:4px;
    color:#ef4444;
    font-style:normal;
}

.demo-input-wrap{
    display:flex;
    min-width:0;
    flex-direction:column;
}

.demo-input,
.demo-select,
.demo-date-display{
    width:100%;
    min-height:52px;
    padding:14px 16px;
    border:2px solid #e5e7eb;
    border-radius:12px;
    background:#f9fafb;
    color:#333;
    font:inherit;
    font-size:1rem;
    transition:all .25s ease;
}

.demo-input:focus,
.demo-select:focus,
.demo-date-display:focus{
    outline:none;
    border-color:#4f46e5;
    background:#fff;
    box-shadow:0 0 0 4px rgba(79,70,229,.1);
    transform:translateY(-2px);
}

.demo-select{
    cursor:pointer;
    appearance:none;
    background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");
    background-position:right 12px center;
    background-repeat:no-repeat;
    background-size:16px;
    padding-right:40px;
}

.demo-textarea{
    min-height:115px;
    resize:vertical;
}

.demo-date-display{
    text-align:left;
    cursor:pointer;
}

.demo-date-display:disabled{
    cursor:not-allowed;
    color:#9ca3af;
}

.demo-date-display.has-value{
    border-color:#10b981;
    background:#fff;
    color:#065f46;
    font-weight:500;
}

.demo-field-description{
    margin-top:6px;
    color:#6b7280;
    font-size:.84rem;
    font-style:italic;
    line-height:1.5;
}

.demo-field-error{
    margin-top:6px;
    color:#b91c1c;
    font-size:.8rem;
}

.demo-form-group.has-error .demo-input,
.demo-form-group.has-error .demo-select,
.demo-form-group.has-error .demo-date-display{
    border-color:#ef4444;
    background:#fffafa;
}

.demo-consent{
    display:flex;
    gap:10px;
    align-items:flex-start;
    margin:8px 0 4px 180px;
    color:#59616a;
    font-size:.83rem;
    line-height:1.5;
    cursor:pointer;
}

.demo-consent input{
    width:16px;
    height:16px;
    flex:0 0 16px;
    margin-top:3px;
    accent-color:#5f5bd6;
}

.demo-consent.has-error{
    color:#991b1b;
}

.demo-consent-error{
    display:block;
    margin:0 0 12px 180px;
}

.demo-step-actions{
    display:flex;
    justify-content:flex-end;
    gap:12px;
    margin-top:30px;
    padding-top:24px;
    border-top:1px solid #e5e7eb;
}

.demo-step-actions-split{
    justify-content:space-between;
}

.demo-submit,
.demo-secondary-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:150px;
    min-height:50px;
    padding:14px 22px;
    border-radius:12px;
    font:inherit;
    font-size:1rem;
    font-weight:600;
    cursor:pointer;
    transition:all .25s ease;
}

.demo-submit{
    border:0;
    background:linear-gradient(135deg,#4f46e5 0%,#7c3aed 100%);
    color:#fff;
    box-shadow:0 8px 20px rgba(79,70,229,.2);
}

.demo-submit:hover{
    transform:translateY(-2px);
    box-shadow:0 10px 25px rgba(79,70,229,.3);
}

.demo-submit.is-loading{
    opacity:.65;
    pointer-events:none;
}

.demo-secondary-btn{
    border:2px solid #e5e7eb;
    background:#f9fafb;
    color:#374151;
}

.demo-secondary-btn:hover{
    border-color:#d1d5db;
    background:#fff;
}

.demo-submit-note{
    margin:13px 0 0;
    color:#6b7280;
    font-size:.82rem;
    text-align:right;
}

.demo-review{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}

.demo-review > div{
    display:grid;
    gap:5px;
    padding:14px 15px;
    border:1px solid #e5e7eb;
    border-radius:11px;
    background:#f9fafb;
}

.demo-review span{
    color:#6b7280;
    font-size:.72rem;
    text-transform:uppercase;
    letter-spacing:.05em;
    font-weight:700;
}

.demo-review strong{
    color:#1f2937;
    font-size:.92rem;
    line-height:1.45;
    overflow-wrap:anywhere;
}

.demo-review-wide{
    grid-column:1/-1;
}

/* Modal: intentionally mirrors the previous public form style. */
.demo-slot-modal{
    position:fixed;
    inset:0;
    z-index:1000;
    display:none;
    align-items:center;
    justify-content:center;
    padding:18px;
}

.demo-slot-modal.is-open{
    display:flex;
    animation:demoFadeIn .25s ease;
}

@keyframes demoFadeIn{
    from{opacity:0}
    to{opacity:1}
}

.demo-slot-backdrop{
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.5);
    backdrop-filter:blur(8px);
}

.demo-slot-dialog{
    position:relative;
    z-index:1;
    display:flex;
    flex-direction:column;
    width:min(600px,95vw);
    max-height:85vh;
    padding:32px 32px 20px;
    border-radius:20px;
    background:#fff;
    box-shadow:0 25px 50px rgba(0,0,0,.25);
    animation:demoModalIn .25s ease;
}

@keyframes demoModalIn{
    from{opacity:0;transform:translateY(18px)}
    to{opacity:1;transform:translateY(0)}
}

.demo-slot-dialog-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin-bottom:24px;
    padding-bottom:16px;
    border-bottom:2px solid #e5e7eb;
}

.demo-slot-dialog-head h2{
    margin:0;
    color:#1f2937;
    font-size:1.5rem;
    font-weight:700;
}

.demo-slot-close{
    padding:4px 8px;
    border:0;
    border-radius:8px;
    background:none;
    color:#6b7280;
    font-size:1.5rem;
    line-height:1;
    cursor:pointer;
}

.demo-slot-close:hover{
    background:#f3f4f6;
    color:#1f2937;
}

.demo-slot-dialog-scroll{
    overflow-y:auto;
    flex:1;
    padding-right:8px;
    margin-right:-8px;
}

.demo-slot-list{
    display:grid;
    gap:24px;
}

.demo-slot-date-group{
    padding:20px;
    border:2px solid #e5e7eb;
    border-radius:12px;
    background:#f9fafb;
    transition:all .2s ease;
}

.demo-slot-date-group:hover{
    border-color:#d1d5db;
    box-shadow:0 4px 12px rgba(0,0,0,.05);
}

.demo-slot-date-title{
    margin-bottom:8px;
    color:#1f2937;
    font-size:1.1rem;
    font-weight:600;
}

.demo-slot-date-day{
    margin-bottom:16px;
    color:#6b7280;
    font-size:.95rem;
    font-weight:500;
}

.demo-slot-times{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.demo-slot-option,
.demo-no-time{
    display:flex;
    align-items:center;
    justify-content:space-between;
    width:100%;
    padding:14px 16px;
    border:2px solid #e5e7eb;
    border-radius:10px;
    background:#fff;
    color:#374151;
    font:inherit;
    font-size:.95rem;
    text-align:left;
    cursor:pointer;
    transition:all .2s ease;
}

.demo-slot-option:hover,
.demo-no-time:hover{
    border-color:#4f46e5;
    background:#f5f3ff;
    transform:translateX(4px);
}

.demo-slot-option.is-selected,
.demo-no-time.is-selected{
    border-color:#4f46e5;
    background:linear-gradient(135deg,#4f46e5 0%,#7c3aed 100%);
    color:#fff;
    font-weight:600;
}

.demo-slot-option svg,
.demo-no-time svg{
    width:18px;
    height:18px;
    flex:0 0 18px;
    fill:currentColor;
    opacity:0;
}

.demo-slot-option.is-selected svg,
.demo-no-time.is-selected svg{
    opacity:1;
}

.demo-slot-empty{
    padding:18px;
    border:2px solid #e5e7eb;
    border-radius:12px;
    background:#f9fafb;
    color:#6b7280;
    line-height:1.55;
}

.demo-other-option{
    margin-top:24px;
    padding:20px;
    border:2px solid #e5e7eb;
    border-radius:12px;
    background:#f9fafb;
}

.demo-other-option h3{
    margin:0 0 16px;
    color:#1f2937;
    font-size:1.1rem;
}

.demo-other-option p{
    margin:0;
    color:#6b7280;
    font-size:.85rem;
    font-style:italic;
    line-height:1.5;
}

.demo-no-time{
    margin-bottom:12px;
}

.demo-slot-actions{
    display:flex;
    gap:12px;
    max-height:0;
    margin-top:0;
    padding-top:0;
    overflow:hidden;
    border-top:0 solid #e5e7eb;
    opacity:0;
    transition:max-height .25s ease,opacity .25s ease,margin .25s ease,padding .25s ease;
}

.demo-slot-actions.is-visible{
    max-height:100px;
    margin-top:24px;
    padding-top:20px;
    border-top-width:2px;
    opacity:1;
}

.demo-modal-btn{
    flex:1;
    padding:14px;
    border:0;
    border-radius:10px;
    font:inherit;
    font-size:1rem;
    font-weight:600;
    cursor:pointer;
}

.demo-modal-cancel{
    background:#f3f4f6;
    color:#374151;
}

.demo-modal-confirm{
    background:linear-gradient(135deg,#4f46e5 0%,#7c3aed 100%);
    color:#fff;
}

.demo-modal-confirm:disabled{
    opacity:.5;
    cursor:not-allowed;
}

/* Thank-you */
.demo-thanks-hero{
    padding-bottom:130px;
}

.demo-thanks-card{
    max-width:720px;
    margin:0 auto;
    padding:38px;
    border-radius:20px;
    background:#fff;
    box-shadow:0 20px 60px rgba(0,0,0,.15),0 8px 32px rgba(0,0,0,.12);
    text-align:center;
}

.demo-thanks-icon{
    display:grid;
    place-items:center;
    width:54px;
    height:54px;
    margin:0 auto 18px;
    border-radius:50%;
    background:#ecfdf5;
    color:#065f46;
    font-size:1.4rem;
    font-weight:800;
}

.demo-thanks-card h2{
    margin:0 0 12px;
    color:#1f2937;
    font-size:1.65rem;
}

.demo-thanks-card p{
    margin:8px auto 0;
    color:#6b7280;
    line-height:1.65;
}

.demo-thanks-details{
    display:grid;
    gap:8px;
    max-width:520px;
    margin:20px auto 0;
    padding:16px;
    border-radius:12px;
    background:#f9fafb;
    text-align:left;
}

.demo-thanks-details div{
    display:flex;
    justify-content:space-between;
    gap:18px;
}

.demo-thanks-details span{
    color:#6b7280;
}

.demo-thanks-actions{
    display:flex;
    justify-content:center;
    gap:10px;
    flex-wrap:wrap;
    margin-top:24px;
}

.demo-thanks-link,
.demo-thanks-secondary{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    padding:13px 18px;
    border-radius:11px;
    font-weight:700;
    text-decoration:none;
}

.demo-thanks-link{
    background:linear-gradient(135deg,#4f46e5 0%,#7c3aed 100%);
    color:#fff;
}

.demo-thanks-secondary{
    border:2px solid #e5e7eb;
    color:#374151;
    background:#fff;
}

@media(max-width:1024px){
    .demo-register-grid{
        gap:60px;
    }

    .demo-register-hero h1{
        font-size:3rem;
    }

    .demo-register-info{
        margin-top:220px;
    }
}

@media(max-width:768px){
    .demo-register-hero{
        padding:60px 20px 125px;
    }

    .demo-register-hero h1{
        font-size:2.5rem;
    }

    .demo-register-hero p{
        font-size:1.05rem;
    }

    .demo-register-main{
        margin-top:-78px;
        padding-bottom:60px;
    }

    .demo-register-grid{
        grid-template-columns:1fr;
        gap:40px;
    }

    .demo-register-card{
        padding:30px 20px;
    }

    .demo-register-info{
        margin-top:0;
        padding:20px;
        text-align:center;
    }

    .demo-register-info h2{
        font-size:2rem;
    }

    .demo-form-group{
        grid-template-columns:1fr;
        gap:8px;
        margin-bottom:20px;
    }

    .demo-form-label{
        padding-top:0;
    }

    .demo-consent,
    .demo-consent-error{
        margin-left:0;
    }

    .demo-form-progress button strong{
        display:none;
    }

    .demo-form-progress i{
        width:24px;
    }

    .demo-review{
        grid-template-columns:1fr;
    }

    .demo-review-wide{
        grid-column:auto;
    }

    .demo-slot-dialog{
        padding:24px 20px 18px;
        max-height:90vh;
    }

    .demo-slot-dialog-head h2{
        font-size:1.25rem;
    }

    .demo-slot-option{
        padding:12px 14px;
    }
}

@media(max-width:480px){
    .demo-register-hero h1{
        font-size:2rem;
    }

    .demo-register-hero p{
        font-size:1rem;
    }

    .demo-register-card{
        padding:25px 15px;
    }

    .demo-register-info h2{
        font-size:1.75rem;
    }

    .demo-step-actions-split{
        flex-direction:column-reverse;
    }

    .demo-submit,
    .demo-secondary-btn{
        width:100%;
    }

    .demo-thanks-details div{
        flex-direction:column;
        gap:2px;
    }
}

/* =========================================================
   PUBLIC-DEMO-001-HOTFIX2 — navbar spacing + desktop balance
   ========================================================= */

/* The shared navbar is fixed. Keep the hero comfortably below it on every
   viewport instead of allowing the first line to sit underneath the nav. */
.page-demo-register .demo-register-hero{
    margin-top:88px;
}

/* The old standalone form had deliberate breathing room around the card.
   Recreate that balance inside the shared PHP layout. */
.page-demo-register .demo-register-grid{
    width:calc(100% - 64px);
    max-width:1280px;
    margin-left:auto;
    margin-right:auto;
    grid-template-columns:minmax(0,1.12fr) minmax(280px,.72fr);
    gap:56px;
}

.page-demo-register .demo-register-info p{
    max-width:500px;
}

@media(max-width:1024px){
    .page-demo-register .demo-register-grid{
        width:calc(100% - 48px);
        grid-template-columns:minmax(0,1fr) minmax(260px,.78fr);
        gap:42px;
    }
}

@media(max-width:768px){
    .page-demo-register .demo-register-hero{
        margin-top:80px;
    }

    .page-demo-register .demo-register-grid{
        width:calc(100% - 28px);
        grid-template-columns:1fr;
        gap:40px;
    }

    .page-demo-register .demo-register-info p{
        max-width:570px;
        margin-left:auto;
        margin-right:auto;
    }
}

@media(max-width:480px){
    .page-demo-register .demo-register-hero{
        margin-top:78px;
    }

    .page-demo-register .demo-register-grid{
        width:calc(100% - 20px);
    }
}

.demo-inquiry-empty{
    display:grid;
    gap:10px;
    margin-top:14px;
    padding:18px;
    border:1px solid #dbe4ff;
    border-radius:12px;
    background:#f7f9ff;
}

.demo-inquiry-empty[hidden]{
    display:none;
}

.demo-inquiry-empty strong{
    color:#1f2937;
}

.demo-inquiry-empty p{
    margin:0;
    color:#5f6872;
    line-height:1.55;
}

.demo-inquiry-empty a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:max-content;
    min-width:180px;
    padding:11px 16px;
    border-radius:10px;
    background:linear-gradient(135deg,#4f46e5 0%,#7c3aed 100%);
    color:#fff;
    font-weight:700;
    text-decoration:none;
}

/* ENROLLMENT-QA-FIXES-001 — no-date inquiry is visible without opening the modal */
.demo-inquiry-inline{
    margin:0 0 18px;
}
.demo-inquiry-inline[hidden]{
    display:none;
}
