/* ============================================================
   LIGHT UP LETTERS LONDON
   PHASE 3 — GUIDED AVAILABILITY ENQUIRY
   ============================================================ */

.quote-panel-phase3{
    display:grid;
    grid-template-columns:minmax(330px,.72fr) minmax(0,1.28fr);
    gap:0;
    background:#181613;
    color:#fff;
    border-top:1px solid rgba(255,255,255,.08);
}

.quote-intro-phase3{
    position:relative;
    padding:100px 5vw;
    min-height:760px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    overflow:hidden;
    background:
        radial-gradient(circle at 5% 5%,rgba(201,170,115,.16),transparent 32%),
        #181613;
}

.quote-intro-phase3::after{
    content:"";
    position:absolute;
    width:460px;
    height:460px;
    right:-260px;
    bottom:-180px;
    border:1px solid rgba(255,241,205,.08);
    border-radius:50%;
}

.quote-intro-phase3 h2{
    margin:10px 0 28px;
    font:clamp(60px,6vw,94px) 'DM Serif Display',Georgia,serif;
    font-weight:400;
    line-height:.9;
    letter-spacing:-.04em;
}

.quote-intro-phase3 h2 em{
    color:var(--warm);
    font-weight:400;
}

.quote-intro-phase3 > p:not(.eyebrow){
    max-width:470px;
    margin:0;
    color:rgba(255,255,255,.58);
    font-size:14px;
    line-height:1.8;
}

.quote-reassurance-phase3{
    display:grid;
    gap:0;
    margin-top:48px;
    max-width:480px;
    border-top:1px solid rgba(255,255,255,.12);
}

.quote-reassurance-phase3 span{
    display:grid;
    grid-template-columns:42px 1fr;
    gap:12px;
    align-items:center;
    padding:17px 0;
    border-bottom:1px solid rgba(255,255,255,.1);
    color:rgba(255,255,255,.66);
    font-size:11px;
    letter-spacing:.04em;
}

.quote-reassurance-phase3 b{
    color:#cfb37c;
    font-size:9px;
    letter-spacing:.14em;
}

.guided-quote-form{
    position:relative;
    min-width:0;
    min-height:760px;
    padding:58px clamp(28px,4vw,70px) 54px;
    background:#f4f0e8;
    color:#171614;
}

.guided-quote-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:25px;
    padding-bottom:20px;
    border-bottom:1px solid rgba(23,22,20,.12);
}

.guided-quote-head > div:first-child{
    display:flex;
    flex-direction:column;
    gap:5px;
}

.guided-quote-head span{
    color:#9a8158;
    font-size:8px;
    font-weight:700;
    letter-spacing:.16em;
    text-transform:uppercase;
}

.guided-quote-head strong{
    font:23px 'DM Serif Display',Georgia,serif;
    font-weight:400;
}

.guided-progress-track{
    width:min(240px,38%);
    height:3px;
    background:#ddd3c6;
    overflow:hidden;
}

.guided-progress-track span{
    display:block;
    width:25%;
    height:100%;
    background:#9d7d49;
    transition:width .35s ease;
}

.guided-step-indicators{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:0;
    list-style:none;
    margin:0;
    padding:24px 0 0;
}

.guided-step-indicators li{
    position:relative;
    display:flex;
    align-items:center;
    gap:8px;
    padding-bottom:18px;
    color:#a29a91;
    border-bottom:1px solid #d8d0c5;
    transition:color .2s ease,border-color .2s ease;
}

.guided-step-indicators li.is-active,
.guided-step-indicators li.is-complete{
    color:#171614;
    border-color:#9d7d49;
}

.guided-step-indicators span{
    display:grid;
    place-items:center;
    width:25px;
    height:25px;
    border:1px solid #cbc1b4;
    border-radius:50%;
    font-size:7px;
    letter-spacing:.08em;
}

.guided-step-indicators li.is-complete span{
    background:#171614;
    border-color:#171614;
    color:#fff;
}

.guided-step-indicators li.is-active span{
    border-color:#9d7d49;
    color:#8a6d40;
}

.guided-step-indicators small{
    font-size:8px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.guided-quote-step{
    padding-top:45px;
    animation:guidedStepIn .32s ease both;
}

.guided-quote-step[hidden]{
    display:none !important;
}

@keyframes guidedStepIn{
    from{
        opacity:.2;
        transform:translateY(8px);
    }
    to{
        opacity:1;
        transform:translateY(0);
    }
}

.guided-step-heading{
    display:grid;
    grid-template-columns:48px 1fr;
    gap:18px;
    margin-bottom:34px;
}

.guided-step-heading > span{
    display:grid;
    place-items:center;
    width:42px;
    height:42px;
    border:1px solid rgba(23,22,20,.16);
    border-radius:50%;
    color:#9d7d49;
    font-size:8px;
    font-weight:700;
    letter-spacing:.12em;
}

.guided-step-heading .eyebrow{
    margin:0 0 10px;
    color:#8a7350;
}

.guided-step-heading h3{
    margin:0;
    font:clamp(38px,4vw,58px) 'DM Serif Display',Georgia,serif;
    font-weight:400;
    line-height:.98;
}

.guided-step-heading div > p:last-child{
    max-width:640px;
    margin:14px 0 0;
    color:#6b635b;
    font-size:12px;
    line-height:1.7;
}

.event-choice-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
}

.event-choice-grid button{
    min-height:72px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:18px 20px;
    border:1px solid rgba(23,22,20,.14);
    background:rgba(255,255,255,.32);
    color:#171614;
    cursor:pointer;
    text-align:left;
    transition:
        background .2s ease,
        color .2s ease,
        border-color .2s ease,
        transform .2s ease;
}

.event-choice-grid button:hover{
    transform:translateY(-1px);
    border-color:#aa8a57;
}

.event-choice-grid button.is-selected{
    background:#171614;
    color:#fff;
    border-color:#171614;
}

.event-choice-grid span{
    font:21px 'DM Serif Display',Georgia,serif;
}

.event-choice-grid b{
    color:#9d7d49;
    font-size:15px;
    font-weight:400;
}

.event-choice-grid button.is-selected b{
    color:#cfb37c;
}

.guided-hidden-select{
    position:absolute !important;
    width:1px !important;
    height:1px !important;
    padding:0 !important;
    margin:-1px !important;
    overflow:hidden !important;
    clip:rect(0,0,0,0) !important;
    white-space:nowrap !important;
    border:0 !important;
}

.guided-field-grid,
.guided-contact-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:24px;
}

.guided-field-stack{
    display:grid;
    gap:24px;
}

.guided-quote-form label{
    display:flex;
    flex-direction:column;
    gap:9px;
    color:#5f574f;
    font-size:9px;
    font-weight:700;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.guided-quote-form label > span{
    margin-left:5px;
    color:#a39b91;
    font-size:7px;
    font-weight:500;
}

.guided-quote-form input,
.guided-quote-form select,
.guided-quote-form textarea{
    width:100%;
    border:1px solid #d5cbbf;
    border-radius:2px;
    background:rgba(255,255,255,.58);
    color:#171614;
    padding:15px 15px;
    outline:none;
    font-size:14px;
    font-weight:400;
    letter-spacing:0;
    text-transform:none;
    transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}

.guided-quote-form textarea{
    min-height:118px;
    resize:vertical;
    line-height:1.6;
}

.guided-quote-form input:focus,
.guided-quote-form select:focus,
.guided-quote-form textarea:focus{
    background:#fff;
    border-color:#aa8a57;
    box-shadow:0 0 0 3px rgba(157,125,73,.09);
}

.guided-quote-form input.is-invalid,
.guided-quote-form select.is-invalid,
.guided-quote-form textarea.is-invalid{
    border-color:#a95e52;
    box-shadow:0 0 0 3px rgba(169,94,82,.08);
}

.guided-quote-form label small{
    color:#999084;
    font-size:8px;
    font-weight:500;
    letter-spacing:0;
    line-height:1.5;
    text-transform:none;
}

.guided-email-field{
    grid-column:1/-1;
}

.guided-step-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:18px;
    margin-top:34px;
    padding-top:25px;
    border-top:1px solid rgba(23,22,20,.12);
}

.guided-step-actions > span{
    margin-right:auto;
    color:#91877b;
    font-size:9px;
}

.guided-step-actions .btn{
    min-width:180px;
    min-height:50px;
    cursor:pointer;
}

.guided-back{
    margin-right:auto;
    border:0;
    background:transparent;
    color:#756c63;
    padding:10px 0;
    cursor:pointer;
    font-size:9px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.guided-quote-summary{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:1px;
    margin-bottom:28px;
    background:#d8cfc3;
    border:1px solid #d8cfc3;
}

.guided-quote-summary > div{
    min-width:0;
    padding:16px 18px;
    background:#ebe4da;
}

.guided-quote-summary span{
    display:block;
    margin-bottom:5px;
    color:#91867a;
    font-size:7px;
    font-weight:700;
    letter-spacing:.13em;
    text-transform:uppercase;
}

.guided-quote-summary strong{
    display:block;
    overflow:hidden;
    color:#171614;
    font:18px 'DM Serif Display',Georgia,serif;
    font-weight:400;
    white-space:nowrap;
    text-overflow:ellipsis;
}

.guided-final-note{
    display:grid;
    grid-template-columns:150px 1fr;
    gap:24px;
    margin-top:26px;
    padding:20px;
    border:1px solid #d8cfc3;
    background:#ebe4da;
}

.guided-final-note span{
    color:#8c7044;
    font-size:8px;
    font-weight:700;
    letter-spacing:.12em;
}

.guided-final-note p{
    margin:0;
    color:#6b635b;
    font-size:10px;
    line-height:1.65;
}

.guided-form-status{
    min-height:20px;
    margin:16px 0 0;
    color:#9b5549;
    font-size:11px;
}

.guided-quote-success{
    min-height:580px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    max-width:720px;
}

.guided-success-mark{
    width:50px;
    height:50px;
    display:grid;
    place-items:center;
    margin-bottom:24px;
    border-radius:50%;
    background:#171614;
    color:#fff1cd;
    font-size:20px;
}

.guided-quote-success h3{
    margin:8px 0 24px;
    font:clamp(54px,6vw,84px) 'DM Serif Display',Georgia,serif;
    font-weight:400;
    line-height:.92;
}

.guided-quote-success h3 em{
    color:#9d7d49;
    font-weight:400;
}

.guided-quote-success > p:not(.eyebrow){
    max-width:650px;
    color:#655e57;
    line-height:1.8;
}

.guided-success-next{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    margin-top:34px;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
}

.guided-success-next span{
    padding:18px 15px;
    border-right:1px solid var(--line);
    color:#655e57;
    font-size:10px;
}

.guided-success-next span:last-child{
    border-right:0;
}

.guided-success-next b{
    display:block;
    margin-bottom:7px;
    color:#9d7d49;
    font-size:8px;
}


/* Contact-page Phase 3 introduction */
.contact-intro-phase3{
    align-items:start;
}

.contact-intro-phase3 h2{
    line-height:.92;
}

.contact-intro-proof{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    margin-top:34px;
    border-top:1px solid var(--line);
}

.contact-intro-proof span{
    display:grid;
    grid-template-columns:32px 1fr;
    gap:8px;
    align-items:center;
    min-height:58px;
    border-bottom:1px solid var(--line);
    color:#6d655d;
    font-size:10px;
}

.contact-intro-proof span:nth-child(odd){
    border-right:1px solid var(--line);
}

.contact-intro-proof b{
    color:#9d7d49;
    font-size:8px;
    letter-spacing:.12em;
}


@media (max-width:1050px){

    .quote-panel-phase3{
        grid-template-columns:1fr;
    }

    .quote-intro-phase3{
        min-height:auto;
        padding-top:82px;
        padding-bottom:82px;
    }

    .guided-quote-form{
        min-height:720px;
    }
}


@media (max-width:700px){

    .quote-intro-phase3{
        padding:72px 5vw;
    }

    .quote-intro-phase3 h2{
        font-size:clamp(52px,14vw,68px);
    }

    .guided-quote-form{
        min-height:0;
        padding:38px 5vw 42px;
    }

    .guided-quote-head{
        align-items:flex-start;
        flex-direction:column;
        gap:14px;
    }

    .guided-progress-track{
        width:100%;
    }

    .guided-step-indicators{
        overflow-x:auto;
        scrollbar-width:none;
    }

    .guided-step-indicators::-webkit-scrollbar{
        display:none;
    }

    .guided-step-indicators li{
        min-width:92px;
    }

    .guided-step-indicators small{
        font-size:7px;
    }

    .guided-quote-step{
        padding-top:34px;
    }

    .guided-step-heading{
        grid-template-columns:38px 1fr;
        gap:13px;
    }

    .guided-step-heading > span{
        width:34px;
        height:34px;
    }

    .guided-step-heading h3{
        font-size:40px;
    }

    .event-choice-grid{
        grid-template-columns:1fr;
    }

    .event-choice-grid button{
        min-height:62px;
    }

    .guided-field-grid,
    .guided-contact-grid{
        grid-template-columns:1fr;
        gap:18px;
    }

    .guided-email-field{
        grid-column:auto;
    }

    .guided-step-actions{
        align-items:stretch;
        flex-direction:column-reverse;
    }

    .guided-step-actions .btn{
        width:100%;
    }

    .guided-step-actions > span{
        margin-right:0;
    }

    .guided-back{
        margin-right:0;
        align-self:flex-start;
    }

    .guided-quote-summary{
        grid-template-columns:1fr;
    }

    .guided-final-note{
        grid-template-columns:1fr;
        gap:8px;
    }

    .guided-success-next{
        grid-template-columns:1fr;
    }

    .guided-success-next span{
        border-right:0;
        border-bottom:1px solid var(--line);
    }

    .guided-success-next span:last-child{
        border-bottom:0;
    }

    .contact-intro-proof{
        grid-template-columns:1fr;
    }

    .contact-intro-proof span:nth-child(odd){
        border-right:0;
    }
}


@media (prefers-reduced-motion:reduce){

    .guided-quote-step,
    .guided-progress-track span,
    .event-choice-grid button{
        animation:none !important;
        transition:none !important;
    }
}
