 .frg-welcome{position:relative;overflow:hidden;min-height:640px;border-radius:36px;background:radial-gradient(circle at 20% 15%,rgba(199,163,91,.25),transparent 30%),linear-gradient(135deg,#fbf8f1,#fff 52%,#f3eadb);box-shadow:var(--shadow);border:1px solid var(--border);display:flex;align-items:center;justify-content:center}.frg-bg-orb{position:absolute;border-radius:999px;filter:blur(2px);animation:frgFloat 9s ease-in-out infinite}.frg-bg-orb-one{width:260px;height:260px;background:rgba(199,163,91,.13);left:-70px;bottom:-80px}.frg-bg-orb-two{width:180px;height:180px;background:rgba(31,58,45,.08);right:8%;top:8%;animation-delay:-3s}.frg-welcome-card{text-align:center;max-width:760px;padding:40px;position:relative;z-index:2}.frg-brand-mark{width:86px;height:86px;border-radius:30px;margin:0 auto 22px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.72);border:1px solid var(--border);font-size:44px;box-shadow:0 18px 45px rgba(31,58,45,.1)}.frg-subtitle{font-size:24px;color:var(--gold);font-weight:800;margin:14px 0}.frg-intro{font-size:18px;line-height:1.7;max-width:640px;margin:0 auto 28px}.frg-start{background:var(--green);color:#fff;padding:16px 34px;font-size:16px;box-shadow:0 18px 40px rgba(31,58,45,.22)}.frg-wizard,.frg-results{display:none}.frg-wizard.is-active,.frg-results.is-active{display:block}.frg-welcome:not(.is-active){display:none}.frg-wizard-shell,.frg-result-shell{border-radius:36px;background:linear-gradient(135deg,#fbf8f1,#fff);box-shadow:var(--shadow);border:1px solid var(--border);padding:38px;overflow:hidden}.frg-wizard-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.frg-wizard-top h2{max-width:760px}.frg-progress-ring{width:76px;height:76px;border-radius:50%;background:linear-gradient(135deg,var(--green),var(--gold));color:#fff;display:flex;align-items:center;justify-content:center;flex:0 0 auto;box-shadow:0 16px 34px rgba(31,58,45,.16)}.frg-progress-ring span{font-size:28px;font-weight:900}.frg-progress-ring small{opacity:.76;margin-left:2px}.frg-progress-line{height:8px;background:rgba(31,58,45,.1);border-radius:99px;overflow:hidden;margin:22px 0 34px}.frg-progress-line span{display:block;height:100%;width:25%;background:linear-gradient(90deg,var(--green),var(--gold));border-radius:99px;transition:width .35s ease}.frg-question{display:none;animation:frgSlide .35s ease}.frg-question.is-active{display:block}.frg-question h3{font-size:clamp(28px,4vw,46px);margin:0 0 26px}.frg-choice-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.frg-choice-grid button{min-height:168px;border:1px solid var(--border);border-radius:28px;background:rgba(255,255,255,.75);box-shadow:0 14px 34px rgba(31,58,45,.08);padding:22px;text-align:left;cursor:pointer;color:var(--green);transition:all .24s ease}.frg-choice-grid button:hover{background:var(--green);color:#fff;transform:translateY(-5px);box-shadow:0 24px 50px rgba(31,58,45,.16)}.frg-choice-grid button span{display:block;font-size:36px;margin-bottom:20px}.frg-choice-grid button strong{display:block;font-size:20px}.frg-choice-grid button small{display:block;margin-top:7px;font-size:13px;opacity:.72}@keyframes frgFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-16px)}}@keyframes frgSlide{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}} 
/* v2.4.0 clickable full-image hero */
.frg-image-hero{
    min-height:0!important;
    padding:0!important;
    border-radius:36px;
    background:none!important;
    box-shadow:var(--shadow);
    border:1px solid var(--border);
    overflow:hidden;
}
.frg-hero-image-button{
    display:block;
    width:100%;
    padding:0;
    margin:0;
    border:0;
    background:transparent;
    cursor:pointer;
    border-radius:36px;
    overflow:hidden;
    line-height:0;
    position:relative;
}
.frg-hero-image-button img{
    display:block;
    width:100%;
    height:auto;
    transition:transform .45s ease, filter .45s ease;
}
.frg-hero-image-button:hover img{
    transform:scale(1.012);
    filter:brightness(1.025);
}
.frg-hero-image-button:focus-visible{
    outline:3px solid var(--gold);
    outline-offset:5px;
}

/* v2.5.0 animated concierge thinking screen */
.frg-processing{
    display:none;
}
.frg-processing.is-active{
    display:block;
}
.frg-processing-shell{
    min-height:620px;
    border-radius:36px;
    background:
        radial-gradient(circle at 20% 18%, rgba(199,163,91,.24), transparent 34%),
        radial-gradient(circle at 82% 8%, rgba(31,58,45,.10), transparent 24%),
        linear-gradient(135deg,#fbf8f1,#fff 54%,#f4eadb);
    border:1px solid var(--border);
    box-shadow:var(--shadow);
    padding:60px 34px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    text-align:center;
    overflow:hidden;
    position:relative;
}
.frg-processing-shell:before{
    content:"";
    position:absolute;
    inset:auto -10% -42% -10%;
    height:55%;
    background:radial-gradient(circle, rgba(199,163,91,.14), transparent 62%);
    pointer-events:none;
}
.frg-processing-orb{
    position:relative;
    width:118px;
    height:118px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin:0 auto 28px;
}
.frg-processing-orb strong{
    position:relative;
    z-index:3;
    width:74px;
    height:74px;
    border-radius:26px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:rgba(255,255,255,.78);
    border:1px solid var(--border);
    box-shadow:0 18px 45px rgba(31,58,45,.12);
    font-size:35px;
}
.frg-processing-orb span{
    position:absolute;
    inset:0;
    border:1px solid rgba(199,163,91,.46);
    border-radius:50%;
    animation:frgPulseRing 2.2s ease-out infinite;
}
.frg-processing-orb span:nth-child(2){
    animation-delay:.45s;
}
.frg-processing-orb span:nth-child(3){
    animation-delay:.9s;
}
.frg-processing h2{
    color:var(--green);
    font-size:clamp(34px,5vw,64px);
    line-height:1.04;
    margin:0 0 16px;
    letter-spacing:-1.1px;
}
.frg-processing-copy{
    max-width:650px;
    margin:0 auto 28px;
    font-size:18px;
    line-height:1.65;
    color:var(--text);
}
.frg-thinking-steps{
    width:100%;
    max-width:620px;
    display:grid;
    gap:12px;
    margin:8px auto 24px;
}
.frg-thinking-steps div{
    display:flex;
    align-items:center;
    gap:12px;
    padding:15px 18px;
    border-radius:18px;
    background:rgba(255,255,255,.68);
    border:1px solid rgba(199,163,91,.22);
    color:var(--text);
    font-weight:800;
    opacity:.55;
    transform:translateY(4px);
    transition:all .28s ease;
}
.frg-thinking-steps div.is-active,
.frg-thinking-steps div.is-complete{
    opacity:1;
    transform:translateY(0);
    border-color:var(--border);
    box-shadow:0 12px 28px rgba(31,58,45,.08);
}
.frg-thinking-steps i{
    width:24px;
    height:24px;
    border-radius:50%;
    border:2px solid rgba(199,163,91,.42);
    position:relative;
    flex:0 0 auto;
}
.frg-thinking-steps div.is-active i{
    border-color:var(--gold);
}
.frg-thinking-steps div.is-active i:after{
    content:"";
    position:absolute;
    inset:4px;
    border-radius:50%;
    background:var(--gold);
    animation:frgDotBreath 1s ease-in-out infinite;
}
.frg-thinking-steps div.is-complete i{
    background:var(--green);
    border-color:var(--green);
}
.frg-thinking-steps div.is-complete i:after{
    content:"✓";
    position:absolute;
    inset:0;
    color:#fff;
    font-size:14px;
    display:flex;
    align-items:center;
    justify-content:center;
}
.frg-processing-bar{
    width:100%;
    max-width:620px;
    height:8px;
    border-radius:999px;
    background:rgba(31,58,45,.10);
    overflow:hidden;
}
.frg-processing-bar span{
    display:block;
    width:100%;
    height:100%;
    border-radius:999px;
    background:linear-gradient(90deg,var(--green),var(--gold));
    transform-origin:left center;
    animation:frgProcessingBar 2.05s ease-in-out forwards;
}
@keyframes frgPulseRing{
    0%{transform:scale(.72);opacity:.75}
    100%{transform:scale(1.2);opacity:0}
}
@keyframes frgDotBreath{
    0%,100%{transform:scale(.7);opacity:.65}
    50%{transform:scale(1);opacity:1}
}
@keyframes frgProcessingBar{
    0%{transform:scaleX(.08)}
    45%{transform:scaleX(.56)}
    100%{transform:scaleX(1)}
}
