@font-face {
    font-family: "Neue Haas Grotesk Display";
    src: url("./NeueHaasGrotDisp-55Roman-Trial.otf") format("opentype");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: "Neue Haas Grotesk Display";
    src: url("./NeueHaasGrotDisp-65Medium-Trial.otf") format("opentype");
    font-style: normal;
    font-weight: 500;
    font-display: swap;
}

@font-face {
    font-family: "Neue Haas Grotesk Display";
    src: url("./NeueHaasGrotDisp-56Italic-Trial.otf") format("opentype");
    font-style: italic;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: "Neue Haas Grotesk Text";
    src: url("./NeueHaasGrotText-55Roman-Trial.otf") format("opentype");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: "Neue Haas Grotesk Text";
    src: url("./NeueHaasGrotText-65Medium-Trial.otf") format("opentype");
    font-style: normal;
    font-weight: 500;
    font-display: swap;
}

@font-face {
    font-family: "Neue Haas Grotesk Text";
    src: url("./NeueHaasGrotText-56Italic-Trial.otf") format("opentype");
    font-style: italic;
    font-weight: 400;
    font-display: swap;
}


/* Extracted from Advance Financial public_html (5).zip; see control/SEM001_COMPONENTES_FUENTE.md */
.site-header{
position:sticky;top:0;z-index:1000;background:rgba(17,17,17,.97);
border-bottom:1px solid #2f2f2f;backdrop-filter:blur(12px)
}
.site-header__inner{
min-height:84px;display:grid;grid-template-columns:auto 1fr auto;
align-items:center;gap:38px
}
.site-header__brand{display:inline-flex;align-items:center}
.site-header__brand img{width:158px;height:auto;display:block}
.site-nav{display:flex;justify-content:center;align-items:center;gap:30px}
.site-nav>a,.site-nav__dropbtn{
appearance:none;border:0;background:none;padding:10px 0;color:#D9D9D9;
font-family:"Neue Haas Grotesk Text","Helvetica Neue",Arial,sans-serif;
font-size:.93rem;font-weight:400;text-decoration:none;cursor:pointer;white-space:nowrap
}
.site-nav>a:hover,.site-nav__dropbtn:hover{color:#FDFDFD}
.site-nav__dropdown{position:relative}
.site-nav__dropbtn span{margin-left:5px;color:#75923C}
.site-nav__menu{
position:absolute;top:calc(100% + 12px);left:50%;width:310px;
transform:translateX(-50%) translateY(8px);padding:12px;background:#181818;
border:1px solid #363636;opacity:0;visibility:hidden;pointer-events:none;
transition:opacity 160ms ease,transform 160ms ease,visibility 160ms ease
}
.site-nav__dropdown:hover .site-nav__menu,
.site-nav__dropdown:focus-within .site-nav__menu{
opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0)
}
.site-nav__menu a{
display:block;padding:15px 16px;color:#FDFDFD;text-decoration:none;
border-bottom:1px solid #2F2F2F
}
.site-nav__menu a:last-child{border-bottom:0}
.site-nav__menu a:hover{background:#222222}
.site-nav__menu strong,.site-nav__menu span{display:block}
.site-nav__menu strong{font-size:.95rem;font-weight:500;margin-bottom:3px}
.site-nav__menu span{color:#8F8F8F;font-size:.78rem}
.site-header__cta{
display:inline-flex;min-height:46px;padding:0 24px;align-items:center;justify-content:center;
background:#75923C;color:#FDFDFD;text-decoration:none;font-size:.88rem;font-weight:500;
white-space:nowrap;transition:background 160ms ease
}
.site-header__cta:hover{background:#829f48}
.wb-rail{
position:fixed;right:0;top:55%;transform:translateY(-50%);z-index:1500;
background:#75923C;color:#FDFDFD;border:0;padding:18px 10px;cursor:pointer;
writing-mode:vertical-rl;transform-origin:center;font-family:"IBM Plex Mono",Consolas,monospace;
font-size:.68rem;letter-spacing:.11em;text-transform:uppercase;min-height:142px;
box-shadow:0 10px 32px rgba(0,0,0,.24)
}
.wb-rail strong{font-weight:500}.wb-rail span{opacity:.78;margin-top:8px}
.wb-rail:hover{background:#829f48}
:root {
    --af-concierge-bg: #1f1f1f;
    --af-concierge-bg-2: #272727;
    --af-concierge-bg-3: #303030;
    --af-concierge-pearl: #f6f3ea;
    --af-concierge-muted: #b9b8b2;
    --af-concierge-line: rgba(246, 243, 234, 0.12);
    --af-concierge-green: #75923c;
    --af-concierge-green-soft: rgba(117, 146, 60, 0.18);
}

.af-concierge-launcher {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 2147482000;
    width: 62px;
    height: 62px;
    border-radius: 50%;
    border: 1px solid rgba(117, 146, 60, 0.68);
    background: var(--af-concierge-bg);
    color: var(--af-concierge-pearl);
    box-shadow: 0 18px 46px rgba(0, 0, 0, 0.34);
    cursor: pointer;
    display: grid;
    place-items: center;
    --af-helium-y: 0px;
    transform: translate3d(0, var(--af-helium-y), 0);
    will-change: transform;
    transition: border-color .18s ease, box-shadow .18s ease;
    animation: afConciergeIdleFloat 5.8s ease-in-out infinite;
}
.af-concierge-launcher:hover,
.af-concierge-launcher:focus-visible {
    border-color: var(--af-concierge-green);
    box-shadow: 0 20px 52px rgba(0, 0, 0, 0.42), 0 0 0 3px var(--af-concierge-green-soft);
    outline: none;
}
.af-concierge-launcher__icon {
    width: 34px;
    height: 34px;
    object-fit: contain;
    display: block;
    border-radius: 8px;
}
@keyframes afConciergeIdleFloat {
    0%, 100% { margin-top: 0; }
    50% { margin-top: -3px; }
}
.af-concierge-launcher__dot {
    position: absolute;
    right: 8px;
    top: 8px;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--af-concierge-green);
    box-shadow: 0 0 0 3px var(--af-concierge-bg);
}

.af-concierge-panel {
    position: fixed;
    right: 24px;
    bottom: 100px;
    z-index: 2147481999;
    width: min(410px, calc(100vw - 32px));
    height: min(680px, calc(100vh - 132px));
    min-height: 470px;
    background: var(--af-concierge-bg);
    color: var(--af-concierge-pearl);
    border: 1px solid var(--af-concierge-line);
    border-radius: 18px;
    box-shadow: 0 28px 80px rgba(0, 0, 0, 0.48);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    opacity: 0;
    visibility: hidden;
    transform: translateY(14px) scale(.985);
    transform-origin: bottom right;
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}
.af-concierge-launcher:has(+ .af-concierge-panel.is-open) { animation-play-state: paused; }

.af-concierge-panel.is-open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0) scale(1);
}

.af-concierge-header {
    flex: 0 0 auto;
    min-height: 78px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 18px;
    border-bottom: 1px solid var(--af-concierge-line);
    background: linear-gradient(180deg, #232323 0%, #1f1f1f 100%);
}
.af-concierge-header__logo {
    width: 118px;
    max-height: 26px;
    object-fit: contain;
    object-position: left center;
}
.af-concierge-header__copy {
    min-width: 0;
    margin-left: auto;
    text-align: right;
}
.af-concierge-header__title {
    display: block;
    font: 500 .92rem/1.15 "Neue Haas Grotesk Text", "Helvetica Neue", Arial, sans-serif;
    color: var(--af-concierge-pearl);
}
.af-concierge-header__status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 5px;
    font: 400 .72rem/1 "Neue Haas Grotesk Text", "Helvetica Neue", Arial, sans-serif;
    color: var(--af-concierge-muted);
}
.af-concierge-header__status::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--af-concierge-green);
}
.af-concierge-close {
    appearance: none;
    border: 0;
    background: transparent;
    color: var(--af-concierge-muted);
    width: 34px;
    height: 34px;
    border-radius: 50%;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
}
.af-concierge-close:hover,
.af-concierge-close:focus-visible {
    background: rgba(255, 255, 255, .05);
    color: var(--af-concierge-pearl);
    outline: none;
}

.af-concierge-messages {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 20px 18px 16px;
    scroll-behavior: smooth;
    scrollbar-width: thin;
    scrollbar-color: #444 transparent;
}
.af-concierge-message {
    max-width: 88%;
    margin: 0 0 14px;
    padding: 12px 14px;
    border-radius: 14px;
    font: 400 .93rem/1.48 "Neue Haas Grotesk Text", "Helvetica Neue", Arial, sans-serif;
    white-space: pre-wrap;
    word-break: break-word;
}
.af-concierge-message--assistant {
    margin-right: auto;
    background: var(--af-concierge-bg-2);
    color: var(--af-concierge-pearl);
    border: 1px solid rgba(246, 243, 234, .08);
    border-bottom-left-radius: 5px;
}
.af-concierge-message--user {
    margin-left: auto;
    background: #25271f;
    color: var(--af-concierge-pearl);
    border: 1px solid rgba(117, 146, 60, .34);
    border-bottom-right-radius: 5px;
}
.af-concierge-message--system {
    max-width: 100%;
    padding: 9px 0;
    background: transparent;
    color: var(--af-concierge-muted);
    font-size: .78rem;
}
.af-concierge-typing {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-width: 54px;
}
.af-concierge-typing span {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--af-concierge-muted);
    opacity: .45;
    animation: afConciergeTyping 1.1s infinite ease-in-out;
}
.af-concierge-typing span:nth-child(2){animation-delay:.14s}
.af-concierge-typing span:nth-child(3){animation-delay:.28s}
@keyframes afConciergeTyping {
    0%, 60%, 100% { transform: translateY(0); opacity: .35; }
    30% { transform: translateY(-3px); opacity: .9; }
}

.af-concierge-composer {
    flex: 0 0 auto;
    padding: 13px 14px 10px;
    border-top: 1px solid var(--af-concierge-line);
    background: #1d1d1d;
}
.af-concierge-composer__row {
    display: flex;
    align-items: flex-end;
    gap: 9px;
    background: var(--af-concierge-bg-2);
    border: 1px solid rgba(246, 243, 234, .13);
    border-radius: 14px;
    padding: 7px 7px 7px 12px;
}
.af-concierge-input {
    appearance: none;
    flex: 1 1 auto;
    min-height: 38px;
    max-height: 112px;
    resize: none;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--af-concierge-pearl);
    font: 400 .92rem/1.4 "Neue Haas Grotesk Text", "Helvetica Neue", Arial, sans-serif;
    padding: 9px 0 6px;
}
.af-concierge-input::placeholder { color: #85847f; }
.af-concierge-send {
    appearance: none;
    border: 1px solid var(--af-concierge-green);
    background: var(--af-concierge-green);
    color: #fff;
    min-width: 42px;
    height: 42px;
    border-radius: 11px;
    cursor: pointer;
    display: grid;
    place-items: center;
    transition: filter .15s ease, transform .15s ease;
}
.af-concierge-send:hover,
.af-concierge-send:focus-visible { filter: brightness(1.08); outline: none; }
.af-concierge-send:active { transform: scale(.97); }
.af-concierge-send:disabled { opacity: .45; cursor: default; }
.af-concierge-send svg { width: 17px; height: 17px; fill: currentColor; }
.af-concierge-note {
    margin: 8px 3px 0;
    color: #777670;
    font: 400 .68rem/1.35 "Neue Haas Grotesk Text", "Helvetica Neue", Arial, sans-serif;
}
.af-concierge-note a { color: #9b9a94; text-decoration: underline; text-underline-offset: 2px; }
.af-concierge-note a:hover { color: var(--af-concierge-pearl); }

@media (max-width: 640px) {
    .af-concierge-launcher {
        right: 16px;
        bottom: 16px;
        width: 58px;
        height: 58px;
    }
    .af-concierge-panel {
        inset: 0;
        width: 100vw;
        height: 100dvh;
        min-height: 0;
        border: 0;
        border-radius: 0;
        transform-origin: center;
    }
    .af-concierge-panel.is-open { transform: none; }
    body.af-concierge-open { overflow: hidden; }
}

@media (prefers-reduced-motion: reduce) {
    .af-concierge-launcher,
    .af-concierge-panel { transition: none; }
    .af-concierge-launcher { animation: none; transform: none !important; }
    .af-concierge-typing span { animation: none; }
}

/* SEM-001 scoping and responsive adaptation; landing content is untouched. */
.sem-shared .topbar{position:sticky;top:0;z-index:1000;background:rgba(17,17,17,.97);border-bottom:1px solid #2f2f2f}
.sem-shared .masthead{min-height:84px;display:grid;grid-template-columns:auto 1fr auto;gap:38px;align-items:center;padding-block:0}
.sem-shared .masthead nav{display:flex;justify-content:center;gap:30px;flex-wrap:wrap}
.sem-shared .masthead nav a{font-family:"Neue Haas Grotesk Text","Helvetica Neue",Arial,sans-serif;font-size:.93rem;font-weight:400;text-transform:none;letter-spacing:0;color:#D9D9D9}
.sem-gbm-brand{width:180px;height:26px;object-fit:contain;max-width:100%}
.sem-shared .sem-modal{padding:48px 32px 32px;max-height:85dvh;overflow:auto;border:1px solid #3A3A3A;background:#222222;color:#FDFDFD}
.sem-modal-close{position:absolute;right:10px;top:8px;min-width:44px;min-height:44px;font-size:28px;line-height:1;border:0;background:none;color:inherit;cursor:pointer}
.sem-mail-contact{position:fixed;right:96px;bottom:24px;z-index:1600;width:48px;height:48px;border:1px solid #75923C;border-radius:50%;display:grid;place-items:center;background:#222222;color:#FDFDFD}
.sem-privacy-footer{border-top:1px solid #3A3A3A;padding:32px max(5vw,24px) 110px;color:#D9D9D9;font-size:.78rem;background:#222222}
.sem-privacy-footer button{border:0;background:transparent;color:#D9D9D9;text-decoration:underline;cursor:pointer;padding:12px 0}
.sem-chat-consent{font:12px/1.4 Arial,sans-serif;display:block;margin-bottom:12px;color:#D9D9D9}.sem-chat-consent input{width:16px;height:16px;accent-color:#75923C}
.af-concierge-header__logo{width:100px;height:auto;object-fit:contain}.af-concierge-header__copy{flex:1}.af-concierge-header__status{display:block;font-size:11px}.af-concierge-close{min-width:44px;min-height:44px}
.participant-view{background:#222222;color:#FDFDFD;font-family:"Neue Haas Grotesk Text","Helvetica Neue",Helvetica,Arial,sans-serif}
.participant-view .participant-root{max-width:1250px;padding-inline:55px!important}.participant-view .experience-tools .tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.participant-view .experience-tools .tool-card{display:flex;flex-direction:column;min-height:330px;padding:32px 30px;background:#262626;border:1px solid #3A3A3A;transition:transform 180ms ease,border-color 180ms ease}
.participant-view .experience-tools .tool-card:hover{transform:translateY(-3px);border-color:#566D31}.participant-view .tool-card h3{font-family:"Neue Haas Grotesk Display","Helvetica Neue",Arial,sans-serif;font-size:1.55rem;font-weight:400;line-height:1.06;color:#FDFDFD;margin:0 0 18px}
.participant-view .tool-card p{font-size:.94rem;line-height:1.7;color:#BDBDBD}.participant-view .tool-card .chapter{font: .72rem/1.5 "IBM Plex Mono",Consolas,monospace;letter-spacing:.06em}.participant-view .tool-card a{margin-top:auto;padding-top:22px;border-top:1px solid #383838;font-size:.8rem}.participant-view .mobile-tool-picker{display:none}
:where(button,a,input,textarea,select):focus-visible{outline:2px solid #75923C;outline-offset:4px}
@media(max-width:900px){.sem-shared .masthead{gap:16px;grid-template-columns:1fr auto;min-height:84px;padding-block:16px}.sem-shared .masthead nav{grid-row:2;grid-column:1/-1;justify-content:flex-start;gap:18px}.sem-shared .sem-gbm-brand{grid-row:1;grid-column:2;width:145px}.participant-view .participant-root{padding-inline:24px!important}.participant-view .experience-tools .tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.participant-view .experience-tools .tool-grid{grid-template-columns:1fr}.wb-rail{top:auto;bottom:18px;right:auto;left:12px;transform:none;writing-mode:horizontal-tb;min-height:44px;padding:12px;font-size:.59rem;max-width:calc(100vw - 160px)}.sem-mail-contact{right:80px;bottom:20px;width:40px;height:40px}.af-concierge-launcher{right:12px;bottom:16px;width:56px;height:56px}.af-concierge-panel{right:10px;bottom:84px;height:min(650px,calc(100dvh - 105px));width:calc(100vw - 20px);min-height:0;border-radius:14px}.sem-shared .masthead nav a{font-size:.8rem}.sem-shared .brand{font-size:11px}.sem-shared .sem-modal{padding:48px 20px 24px}.sem-shared .masthead{gap:10px}.sem-gbm-brand{width:145px}.participant-view .tool-card{min-height:300px}}

.sem-gbm-brand{box-sizing:content-box;background:transparent;padding:12px 14px;width:180px;height:26px}.participant-view .mobile-tool-picker{display:none!important}.sem-shared .masthead{padding-right:12px}@media(max-width:640px){.sem-gbm-brand{width:135px;height:20px;padding:10px}}

/* Compact controls: ghost by default; green reserved for primary actions. */
.sem-shared .cta,.sem-shared .participant-root #tools button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 16px!important;background:transparent!important;color:#FDFDFD!important;border:1px solid #666!important;font-size:.76rem!important;line-height:1.3;text-decoration:none!important;letter-spacing:.02em;box-shadow:none}
.sem-shared .cta:hover,.sem-shared .participant-root #tools button:hover{border-color:#75923C!important;background:rgba(117,146,60,.08)!important}
.sem-shared .hero .cta,.sem-shared #inscripcion .cta,.sem-shared .experience-actions>.cta:first-child,.sem-shared .sem-modal form>.cta,.sem-shared .participant-root #tools form button{background:#75923C!important;border-color:#75923C!important;color:#111!important}
.sem-shared .hero .cta:hover,.sem-shared #inscripcion .cta:hover,.sem-shared .experience-actions>.cta:first-child:hover,.sem-shared .sem-modal form>.cta:hover,.sem-shared .participant-root #tools form button:hover{background:#829f48!important}
.sem-shared .experience-actions{gap:12px}.sem-shared .sem-modal .cta{width:auto;align-self:flex-start}
@media(max-width:640px){.sem-shared .cta,.sem-shared .participant-root #tools button{min-height:44px;padding:10px 14px!important;font-size:.75rem!important}}
