/* HVO's public portal. All rules stay inside this page. */
.hvo-portal { --hp-ink:#153557; --hp-muted:#52677c; --hp-blue:#087cc6; --hp-yellow:#ffda68; color:var(--hp-ink); background:#fff; font-family:'Nunito',sans-serif; overflow:clip; }
.hvo-portal *, .hvo-portal *::before, .hvo-portal *::after { box-sizing:border-box; }
.hvo-portal a { color:inherit; text-decoration:none; }
.hvo-portal img { display:block; max-width:100%; object-fit:cover; }
.hvo-portal h1, .hvo-portal h2, .hvo-portal h3 { color:var(--hp-ink); font-family:inherit; font-weight:900; line-height:1.13; letter-spacing:-.035em; margin:0; }
.hvo-portal h1 { font-size:clamp(42px,4.65vw,70px); margin:23px 0 26px; }
.hvo-portal h1 > span { display:block; color:var(--hp-blue); }
.hvo-portal h2 { font-size:clamp(30px,3.2vw,46px); }
.hvo-portal h3 { font-size:30px; }
.hvo-portal p { margin:0 0 12px; }
.hvo-portal :is(a,button,[tabindex]):focus-visible { outline:3px solid #ee6c39; outline-offset:5px; }
.hvo-portal .hp-wrap { width:min(1240px,calc(100% - 64px)); margin-inline:auto; }
.hvo-portal .hp-section { padding-block:88px; scroll-margin-top:110px; }
.hvo-portal .hp-eyebrow { display:block; font-size:11px; line-height:1.7; font-weight:900; letter-spacing:.13em; color:#0b77ba; }
.hvo-portal .hp-description { font-size:17px; line-height:1.85; color:var(--hp-muted); }
.hvo-portal .hp-description p:last-child { margin-bottom:0; }
.hvo-portal .hp-heading { max-width:790px; margin:0 auto 42px; text-align:center; }
.hvo-portal .hp-heading h2 { margin-block:13px 18px; }
.hvo-portal .hp-heading > p { font-size:17px; color:var(--hp-muted); }
.hvo-portal .hp-heading > .hp-eyebrow::before { content:''; display:inline-block; width:22px; height:5px; border-radius:5px; background:#ffba53; vertical-align:middle; margin-right:10px; }
.hvo-portal .hp-button { display:inline-flex; align-items:center; justify-content:center; gap:17px; min-height:55px; padding:13px 20px; border:2px solid var(--hp-blue); border-radius:14px; background:var(--hp-blue); color:#fff; font:900 15px/1.4 'Nunito',sans-serif; box-shadow:0 4px 0 #095b91; cursor:pointer; transition:transform .16s,box-shadow .16s; }
.hvo-portal .hp-button > span { display:grid; place-items:center; flex-shrink:0; width:28px; height:28px; border-radius:50%; background:var(--hp-yellow); color:#153557; font-size:20px; }
.hvo-portal .hp-button:hover { color:#fff; transform:translateY(-2px); box-shadow:0 6px 0 #095b91; }
.hvo-portal .hp-button-light { background:white; color:#146b9f; border-color:#b9d8e9; box-shadow:none; }
.hvo-portal .hp-button-light:hover { color:#146b9f; box-shadow:0 4px 0 #d9e9f2; }
.hvo-portal .hp-button:disabled { opacity:.6; cursor:wait; transform:none; }

.hvo-portal .hp-hero { position:relative; background:#fffbef; }
.hvo-portal .hp-hero-grid { display:grid; grid-template-columns:1.05fr 1fr; gap:70px; align-items:center; min-height:650px; padding-block:58px 68px; }
.hvo-portal .hp-hero-copy { min-width:0; position:relative; z-index:1; }
.hvo-portal .hp-hero-copy > .hp-eyebrow { display:inline-flex; align-items:center; gap:8px; padding:8px 12px; border-radius:9px; background:#fff; border:1px solid #efdfba; font-size:10px; letter-spacing:.1em; }
.hvo-portal .hp-eyebrow i { width:8px; height:8px; flex-shrink:0; border-radius:50%; background:#ff8557; box-shadow:0 0 0 3px #fff0dc; }
.hvo-portal .hp-hero-copy .hp-description { max-width:540px; }
.hvo-portal .hp-actions { display:flex; flex-wrap:wrap; gap:14px; margin-top:27px; }
.hvo-portal .hp-hero-note { display:flex; align-items:center; gap:10px; color:#577086; margin-top:27px; font-size:13px; font-weight:700; }
.hvo-portal .hp-hero-note > span { color:#ee8052; font-size:24px; }
.hvo-portal .hp-hero-art { position:relative; min-width:0; padding:30px 0; }
.hvo-portal .hp-hero-picture { position:relative; z-index:1; height:470px; border:7px solid white; border-radius:110px 36px 110px 36px; background:#dff5ff; box-shadow:12px 12px 0 #b9e6ff; transform:rotate(3deg); overflow:hidden; }
.hvo-portal .hp-hero-picture img { width:100%; height:100%; object-position:center; }
.hvo-portal .hp-art-sun { position:absolute; top:-12px; right:-10px; color:#ffa459; font-size:110px; line-height:1; z-index:2; transform:rotate(12deg); }
.hvo-portal .hp-art-spark { position:absolute; left:24px; top:45px; color:#067cc9; font-size:50px; z-index:2; }
.hvo-portal .hp-art-orbit { position:absolute; inset:0 -20px; width:calc(100% + 40px); height:100%; color:#e9a253; transform:rotate(-8deg); }
.hvo-portal .hp-art-tags { position:absolute; z-index:3; left:-27px; bottom:54px; display:flex; flex-direction:column; gap:10px; }
.hvo-portal .hp-art-tag { display:flex; align-items:center; gap:10px; padding:9px 13px 9px 9px; border:2px solid white; border-radius:14px; background:var(--hp-tone); color:var(--hp-accent); box-shadow:0 5px 20px #15355712; font-size:14px; font-weight:900; transform:rotate(-5deg); }
.hvo-portal .hp-art-tag:nth-child(2) { transform:rotate(3deg); margin-left:25px; }
.hvo-portal .hp-art-tag:nth-child(3) { transform:rotate(-2deg); margin-left:8px; }
.hvo-portal .hp-art-tag b { display:grid; place-items:center; width:37px; height:37px; border-radius:10px; background:#ffffffa8; font-size:20px; letter-spacing:-.06em; }
.hvo-portal .hp-art-tag > span:last-child { margin-left:15px; font-size:22px; }
.hvo-portal .hp-subjects { background:#153c66; color:white; }
.hvo-portal .hp-subjects > .hp-wrap { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.hvo-portal .hp-subjects a { display:flex; align-items:center; gap:16px; padding:26px 28px; border-right:1px solid #ffffff29; }
.hvo-portal .hp-subjects a:first-child { padding-left:0; }
.hvo-portal .hp-subjects a:last-child { border:0; padding-right:0; }
.hvo-portal .hp-subjects b { display:grid; place-items:center; flex-shrink:0; width:52px; height:52px; background:var(--hp-tone); color:var(--hp-accent); border-radius:15px; font-size:24px; letter-spacing:-.07em; }
.hvo-portal .hp-subjects strong { display:block; color:white; font-size:18px; font-weight:900; }
.hvo-portal .hp-subjects a div > span { display:block; color:#c0d4e9; font-size:12px; margin-top:3px; }
.hvo-portal .hp-subject-arrow { color:#ffd76f; font-size:25px; margin-left:auto; }

.hvo-portal .hp-tone-0 { --hp-tone:#fff0bc; --hp-accent:#9a5800; --hp-strong:#efb834; }
.hvo-portal .hp-tone-1 { --hp-tone:#ffe5ec; --hp-accent:#b23a65; --hp-strong:#ed8fab; }
.hvo-portal .hp-tone-2 { --hp-tone:#dff5ff; --hp-accent:#086caa; --hp-strong:#72c8ed; }
.hvo-portal .hp-program-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; }
.hvo-portal .hp-program { display:flex; flex-direction:column; background:white; border:1px solid #dce6ed; border-radius:27px; overflow:hidden; box-shadow:0 8px 0 #f0f5f8; transition:transform .2s,box-shadow .2s; }
.hvo-portal .hp-program:hover { transform:translateY(-5px); box-shadow:0 13px 0 var(--hp-tone); }
.hvo-portal .hp-program-image { display:block; position:relative; background:var(--hp-tone); border-bottom:5px solid var(--hp-strong); }
.hvo-portal .hp-program-image img { width:100%; height:235px; object-position:center; }
.hvo-portal .hp-number { display:grid; place-items:center; position:absolute; top:15px; left:16px; width:37px; height:37px; border-radius:50%; color:var(--hp-accent); background:white; font-weight:900; font-size:14px; }
.hvo-portal .hp-program-symbol { position:absolute; right:18px; bottom:-26px; display:grid; place-items:center; width:62px; height:62px; border:5px solid white; border-radius:19px; background:var(--hp-tone); color:var(--hp-accent); font-size:27px; font-weight:900; transform:rotate(6deg); }
.hvo-portal .hp-program-copy { padding:34px 26px 27px; display:flex; flex-direction:column; flex:1; }
.hvo-portal .hp-program-copy > .hp-eyebrow { color:var(--hp-accent); font-size:10px; }
.hvo-portal .hp-program h3 { margin:10px 0 17px; }
.hvo-portal .hp-program .hp-description { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:5; overflow:hidden; font-size:15px; line-height:1.8; min-height:135px; }
.hvo-portal .hp-features { color:#3e5b72; line-height:1.7; font-size:15px; }
.hvo-portal .hp-features ul { list-style:none; padding:0; margin:22px 0; }
.hvo-portal .hp-features li { position:relative; padding-left:25px; margin-bottom:12px; }
.hvo-portal .hp-features li::before { content:'✓'; position:absolute; left:0; font-weight:900; color:var(--hp-accent); }
.hvo-portal .hp-program .hp-features li span { display:none; }
.hvo-portal .hp-program .hp-features strong { font-weight:800; }
.hvo-portal .hp-text-link { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:auto; padding-top:18px; border-top:1px solid #e2eaf0; font-size:15px; font-weight:900; color:var(--hp-accent); }
.hvo-portal .hp-text-link > span { display:grid; place-items:center; width:33px; height:33px; flex-shrink:0; border-radius:50%; background:var(--hp-tone); font-size:22px; }

.hvo-portal .hp-details { position:relative; background:#eef8ff; border-block:1px solid #deedf8; }
.hvo-portal .hp-tabs { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin:0 auto 32px; }
.hvo-portal .hp-tabs button { display:flex; align-items:center; justify-content:center; gap:12px; min-height:56px; padding:12px 27px; border:1px solid #cddfe9; border-radius:15px; background:white; color:#3f637d; font:900 17px 'Nunito',sans-serif; cursor:pointer; }
.hvo-portal .hp-tabs button > span { font-size:20px; letter-spacing:-.06em; }
.hvo-portal .hp-tabs button[aria-selected="true"] { background:#153c66; color:white; border-color:#153c66; box-shadow:0 4px 0 #ffcd63; }
.hvo-portal .hp-detail-grid { display:grid; grid-template-columns:.95fr 1.05fr; background:white; border:1px solid #d9e7f1; border-radius:30px; overflow:hidden; }
.hvo-portal .hp-detail-grid[hidden] { display:none; }
.hvo-portal .hp-detail-visual { position:relative; margin:0; background:var(--hp-tone); min-width:0; display:flex; flex-direction:column; }
.hvo-portal .hp-detail-image { width:100%; height:100%; min-height:420px; object-position:center; flex:1; }
.hvo-portal .hp-detail-visual figcaption { position:relative; display:flex; align-items:center; justify-content:center; gap:13px; padding:23px 20px; color:var(--hp-accent); background:var(--hp-tone); font-size:16px; font-weight:900; border-top:1px solid #ffffffaa; }
.hvo-portal .hp-detail-visual figcaption > span { font-size:27px; }
.hvo-portal .hp-detail-copy { padding:40px 42px; }
.hvo-portal .hp-detail-copy h3 { font-size:32px; margin:13px 0 20px; }
.hvo-portal .hp-detail-copy > .hp-description { font-size:16px; line-height:1.8; }
.hvo-portal .hp-detail-copy .hp-features ul { counter-reset:topic; }
.hvo-portal .hp-detail-copy .hp-features li { counter-increment:topic; padding-left:44px; margin-bottom:19px; }
.hvo-portal .hp-detail-copy .hp-features li::before { content:counter(topic,decimal-leading-zero); display:grid; place-items:center; width:29px; height:29px; border-radius:9px; background:var(--hp-tone); color:var(--hp-accent); font-size:12px; top:0; }
.hvo-portal .hp-detail-copy .hp-features li strong { display:block; font-weight:900; margin-bottom:3px; }
.hvo-portal .hp-detail-copy .hp-features li span { display:block; color:#60758a; font-size:14px; line-height:1.65; }
.hvo-portal .hp-outcome { display:flex; gap:10px; align-items:center; padding:14px 17px; margin:10px 0 24px; border-radius:12px; background:var(--hp-tone); color:var(--hp-accent); font-size:14px; line-height:1.5; }
.hvo-portal .hp-outcome > span { font-size:24px; }

.hvo-portal .hp-reasons { display:grid; grid-template-columns:.9fr 1.1fr; gap:26px; align-items:stretch; }
.hvo-portal .hp-reasons-intro { display:flex; flex-direction:column; background:#153c66; border-radius:28px; padding:35px; overflow:hidden; }
.hvo-portal .hp-reasons .hp-heading { text-align:left; margin:0 0 28px; }
.hvo-portal .hp-reasons-intro h2 { color:white; font-size:36px; }
.hvo-portal .hp-reasons-intro .hp-eyebrow { color:#ffdc7c; font-size:10px; }
.hvo-portal .hp-reasons-intro .hp-description { color:#d3e2ef; font-size:16px; }
.hvo-portal .hp-reasons-intro > img { width:100%; height:250px; margin-top:auto; border-radius:17px; object-position:50% 46%; }
.hvo-portal .hp-reason-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.hvo-portal .hp-reason { padding:28px; border-radius:24px; background:var(--hp-tone); border:1px solid #ffffff50; }
.hvo-portal .hp-reason-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:28px; }
.hvo-portal .hp-reason-top > span:last-child { color:var(--hp-accent); font-weight:900; font-size:13px; opacity:.6; }
.hvo-portal .hp-reason-icon { display:grid; place-items:center; width:48px; height:48px; background:#ffffffa3; color:var(--hp-accent); border-radius:14px; font-size:29px; }
.hvo-portal .hp-reason h3 { font-size:24px; margin-bottom:15px; }
.hvo-portal .hp-reason .hp-description { font-size:15px; color:#4a6074; }

.hvo-portal .hp-reviews { background:#fff9e8; }
.hvo-portal .hp-review-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.hvo-portal .hp-review { display:flex; flex-direction:column; margin:0; padding:30px; border:1px solid #e7e1cf; border-radius:23px; background:white; box-shadow:0 6px 0 #f3eacc; }
.hvo-portal .hp-quote { display:block; color:#efaa3c; font:900 85px/.75 'Nunito',sans-serif; }
.hvo-portal blockquote { padding:14px 0 23px; margin:0; text-align:left; font-size:16px; line-height:1.85; color:#3f5971; }
.hvo-portal .hp-review figcaption { display:flex; align-items:center; gap:13px; margin-top:auto; padding-top:18px; border-top:1px solid #ecedf0; font-size:13px; }
.hvo-portal .hp-review figcaption strong { display:block; font-size:14px; margin-bottom:3px; }
.hvo-portal .hp-review-avatar { position:relative; display:grid; place-items:center; flex-shrink:0; width:48px; height:48px; border-radius:50%; background:#dcefff; color:#0876b8; font-size:20px; font-weight:900; overflow:hidden; }
.hvo-portal .hp-review-avatar img { position:absolute; inset:0; width:100%; height:100%; }

.hvo-portal .hp-consult { position:relative; display:grid; grid-template-columns:1fr 1.1fr; align-items:center; gap:55px; border-radius:30px; padding:50px; background:#087cc6; overflow:hidden; }
.hvo-portal .hp-consult-copy { min-width:0; }
.hvo-portal .hp-consult .hp-heading { text-align:left; margin:0; }
.hvo-portal .hp-consult h2 { color:white; font-size:42px; }
.hvo-portal .hp-consult .hp-eyebrow { color:#fff1b9; }
.hvo-portal .hp-consult .hp-description { color:#e5f5ff; font-size:16px; }
.hvo-portal .hp-consult-spark { color:#ffda68; display:block; font-size:70px; line-height:1; margin-bottom:22px; }
.hvo-portal .hp-consult-subjects { display:flex; flex-wrap:wrap; gap:8px; margin-top:25px; }
.hvo-portal .hp-consult-subjects span { border:1px solid #ffffff73; border-radius:99px; padding:6px 12px; color:white; font-size:12px; font-weight:800; }
.hvo-portal .hp-consult-form { position:relative; z-index:1; width:100%; min-width:0; padding:30px; border-radius:22px; background:white; box-shadow:0 10px 0 #0060a073; }
.hvo-portal .hp-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px 16px; margin-bottom:25px; }
.hvo-portal .hp-form-grid label { min-width:0; font-size:13px; font-weight:900; }
.hvo-portal .hp-form-grid input { display:block; width:100%; min-height:48px; border:1px solid #cbdde9; border-radius:9px; padding:10px 12px; margin-top:8px; color:#153557; background:#f7fbff; font:16px 'Nunito',sans-serif; }
.hvo-portal .hp-form-grid input:focus { outline:2px solid #087cc6; outline-offset:2px; }
.hvo-portal .hp-consult-form > .hp-button { width:100%; }
.hvo-portal .hp-form-error { color:#b63343; font-size:14px; }
.hvo-portal .hp-consult-success { padding:30px; background:white; border-radius:20px; line-height:1.8; }
.hvo-portal .hp-consult-success h3 { margin:14px 0; font-size:26px; }
.hvo-portal .hp-consult-success > span { font-size:40px; color:#087cc6; }

@media (max-width:1100px) {
    .hvo-portal .hp-hero-grid { gap:40px; padding-block:45px 55px; min-height:600px; }
    .hvo-portal .hp-hero-picture { height:410px; }
    .hvo-portal .hp-art-tags { left:-15px; }
    .hvo-portal .hp-program-grid { gap:18px; }
    .hvo-portal .hp-program-image img { height:190px; }
    .hvo-portal .hp-program-copy { padding:34px 22px 24px; }
    .hvo-portal .hp-program h3 { font-size:27px; }
    .hvo-portal .hp-detail-copy { padding:30px; }
    .hvo-portal .hp-subjects a { gap:12px; padding:22px 18px; }
    .hvo-portal .hp-subjects a div > span { display:none; }
    .hvo-portal .hp-subjects strong { font-size:16px; }
    .hvo-portal .hp-reasons { gap:20px; }
    .hvo-portal .hp-reasons-intro { padding:26px; }
    .hvo-portal .hp-reasons-intro h2 { font-size:30px; }
    .hvo-portal .hp-reason { padding:23px; }
    .hvo-portal .hp-consult { gap:35px; padding:35px; }
    .hvo-portal .hp-consult h2 { font-size:34px; }
}
@media (max-width:767px) {
    .hvo-portal .hp-wrap { width:calc(100% - 36px); }
    .hvo-portal .hp-section { padding-block:56px; }
    .hvo-portal h1 { font-size:clamp(39px,9.3vw,57px); margin-block:20px 22px; }
    .hvo-portal h2 { font-size:32px; }
    .hvo-portal .hp-hero-grid { grid-template-columns:1fr; gap:12px; padding-top:32px; padding-bottom:35px; }
    .hvo-portal .hp-hero-copy > .hp-eyebrow { font-size:9px; letter-spacing:.08em; padding:7px 9px; }
    .hvo-portal .hp-description { font-size:16px; line-height:1.8; }
    .hvo-portal .hp-actions { gap:12px; }
    .hvo-portal .hp-button { font-size:14px; padding:12px 15px; gap:12px; }
    .hvo-portal .hp-hero-note { font-size:12px; margin-top:21px; }
    .hvo-portal .hp-hero-art { width:100%; max-width:480px; margin:0 auto; padding:28px 8px 20px; }
    .hvo-portal .hp-hero-picture { height:340px; border-radius:70px 28px 70px 28px; box-shadow:8px 8px 0 #b9e6ff; }
    .hvo-portal .hp-art-sun { font-size:85px; top:5px; right:0; }
    .hvo-portal .hp-art-spark { font-size:35px; top:38px; left:16px; }
    .hvo-portal .hp-art-tags { bottom:40px; left:0; gap:7px; }
    .hvo-portal .hp-art-tag { padding:6px 10px 6px 6px; font-size:12px; gap:8px; border-radius:12px; }
    .hvo-portal .hp-art-tag b { width:31px; height:31px; font-size:17px; }
    .hvo-portal .hp-art-tag > span:last-child { font-size:17px; margin-left:5px; }
    .hvo-portal .hp-subjects > .hp-wrap { width:100%; }
    .hvo-portal .hp-subjects a, .hvo-portal .hp-subjects a:first-child, .hvo-portal .hp-subjects a:last-child { flex-direction:column; align-items:center; text-align:center; gap:9px; padding:20px 7px; }
    .hvo-portal .hp-subjects b { width:40px; height:40px; border-radius:12px; font-size:21px; }
    .hvo-portal .hp-subjects strong { font-size:13px; }
    .hvo-portal .hp-subject-arrow { display:none; }
    .hvo-portal .hp-heading { margin-bottom:30px; }
    .hvo-portal .hp-program-grid, .hvo-portal .hp-review-grid { grid-template-columns:1fr; gap:25px; }
    .hvo-portal .hp-program-image img { height:230px; }
    .hvo-portal .hp-program-copy { padding:34px 25px 26px; }
    .hvo-portal .hp-program .hp-description { min-height:0; -webkit-line-clamp:5; }
    .hvo-portal .hp-program h3 { font-size:30px; }
    .hvo-portal .hp-tabs { gap:8px; }
    .hvo-portal .hp-tabs button { gap:7px; padding:12px 13px; min-height:49px; font-size:13px; border-radius:12px; }
    .hvo-portal .hp-tabs button > span { font-size:15px; }
    .hvo-portal .hp-detail-grid { grid-template-columns:1fr; border-radius:24px; }
    .hvo-portal .hp-detail-image { height:270px; min-height:0; flex:auto; }
    .hvo-portal .hp-detail-visual figcaption { padding:15px; font-size:13px; }
    .hvo-portal .hp-detail-copy { padding:28px 24px; }
    .hvo-portal .hp-detail-copy h3 { font-size:28px; }
    .hvo-portal .hp-detail-copy .hp-features li { padding-left:40px; }
    .hvo-portal .hp-reasons { grid-template-columns:1fr; }
    .hvo-portal .hp-reasons-intro { padding:28px; }
    .hvo-portal .hp-reasons-intro > img { height:240px; }
    .hvo-portal .hp-reason-grid { gap:14px; }
    .hvo-portal .hp-reason { padding:21px; border-radius:20px; }
    .hvo-portal .hp-reason h3 { font-size:21px; }
    .hvo-portal .hp-reason .hp-description { font-size:14px; }
    .hvo-portal .hp-reason-top { margin-bottom:22px; }
    .hvo-portal .hp-review { padding:27px; }
    .hvo-portal .hp-consult { grid-template-columns:1fr; padding:30px 24px; gap:28px; border-radius:25px; }
    .hvo-portal .hp-consult h2 { font-size:32px; }
    .hvo-portal .hp-consult-spark { font-size:60px; }
    .hvo-portal .hp-consult-form { padding:23px; }
    .hvo-portal .hp-form-grid { grid-template-columns:1fr; gap:17px; }
}
@media (max-width:359px) {
    .hvo-portal .hp-reason-grid { grid-template-columns:1fr; }
    .hvo-portal .hp-hero-picture { height:300px; }
    .hvo-portal .hp-subjects strong { font-size:12px; }
}
@media (prefers-reduced-motion:reduce) {
    .hvo-portal .hp-button, .hvo-portal .hp-program { transition:none; }
}
