/* Comparison edition. Shared insurance railboard rules remain in enhance.css.
   Farby pozadia, paleta a stavba hero sekcie zostavaju v enhance.css —
   tu sa uz neprepisuju, aby bol podklad na celej stranke jednotny. */
:root { --refine-shadow: 0 12px 40px -26px rgba(22, 56, 73, .3); }
body.dark-mode { --refine-shadow: 0 16px 48px -26px rgba(0, 0, 0, .5); color-scheme: dark; }

[hidden] { display: none !important; }
.main-header { box-shadow: 0 1px 0 var(--surface-border); }
.header-main-row { min-height: 76px; }
#hero .hero-text { max-width: 930px; }
#hero h1 { font-size: clamp(2.1rem, 4.8vw, 4rem); }
#hero .hero-text > p { max-width: 660px; font-size: 1.12rem; line-height: 1.75; color: var(--text-muted); }
.hero-actions { margin-bottom: 35px; }
.hero-scroll { margin-top: 28px; }
#vyhody, #sluzby, #postup, #recenzie, #kontakt { padding-block: 76px; }
.section-header, .reviews-head { margin-bottom: 36px; }
.benefit-item { padding: 28px; box-shadow: var(--refine-shadow); }
.cennik-wrapper { padding: 25px 32px; margin-top: 28px; }
#vyhody .cennik-wrapper h2 { font-size: 1.25rem; margin-bottom: 12px; }
.cennik-wrapper h2::after { display: none; }
.cennik-wrapper .price-subtitle { font-size: 1rem; }
.cennik-wrapper .legal-text { max-width: 900px; margin: 10px auto 0; font-size: .84rem; }
.section-lede { max-width: 540px; margin: 16px auto 0; color: var(--text-muted); font-size: 1rem; line-height: 1.65; }

/* Six short entry points; details are displayed in a native modal. */
.coverage-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; max-width: 1160px; margin: 0 auto; }
.coverage-card {
    display: flex; flex-direction: column; min-width: 0; position: relative; overflow: hidden;
    padding: 28px; text-align: left; font: inherit; color: var(--heading-color); cursor: pointer;
    background: var(--surface); border: 1px solid var(--surface-border); border-radius: 22px;
    box-shadow: var(--refine-shadow); transition: border-color .25s, box-shadow .25s, transform .25s;
}
.coverage-card::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at 100% 0%, color-mix(in srgb, var(--coverage-tone) 13%, transparent), transparent 68%); opacity: .55; pointer-events: none; }
.coverage-card > span { position: relative; }
.coverage-card:hover { transform: translateY(-4px); border-color: color-mix(in srgb, var(--coverage-tone) 50%, var(--surface-border)); box-shadow: 0 20px 40px -24px color-mix(in srgb, var(--coverage-tone) 40%, transparent); }
.coverage-card__top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; }
.coverage-icon { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 14px; color: var(--coverage-tone); background: color-mix(in srgb, var(--coverage-tone) 10%, var(--surface)); }
.coverage-icon svg { width: 25px; height: 25px; }
body.dark-mode .coverage-icon { color: color-mix(in srgb, var(--coverage-tone) 52%, white); }
.coverage-card__title { font: 700 1.18rem/1.35 'Montserrat', sans-serif; margin-bottom: 9px; }
.coverage-card__desc { color: var(--text-muted); font-size: .94rem; line-height: 1.65; margin-bottom: 24px; }
.coverage-card__more { margin-top: auto; font-size: .83rem; font-weight: 600; display: flex; justify-content: space-between; gap: 10px; }
.coverage-footnote { margin: 24px 0 0; text-align: center; font-size: .93rem; color: var(--text-muted); }
.coverage-footnote a { color: var(--heading-color); font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.coverage-dialog { margin: auto; padding: 0; width: min(590px, calc(100% - 32px)); max-height: calc(100dvh - 40px); border: 1px solid var(--surface-border); border-radius: 26px; background: var(--surface); color: var(--heading-color); box-shadow: 0 30px 100px #0005; overscroll-behavior: contain; }
.coverage-dialog::backdrop { background: rgba(5, 16, 30, .58); backdrop-filter: blur(8px); }
.coverage-dialog[open] { animation: dialogIn .25s ease-out; }
@keyframes dialogIn { from { opacity: 0; transform: translateY(12px) scale(.98); } to { opacity: 1; transform: none; } }
.coverage-dialog__shell { padding: 42px; position: relative; background: radial-gradient(ellipse at 100% 0%, color-mix(in srgb, var(--coverage-tone, #0c8179) 12%, transparent), transparent 60%); }
.dialog-close { position: absolute; right: 14px; top: 12px; width: 44px; height: 44px; font: 300 1.75rem/1 sans-serif; color: var(--text-muted); background: transparent; border: 0; border-radius: 50%; cursor: pointer; }
.dialog-close:hover { background: var(--surface-ring); }
.coverage-dialog__eyebrow { display: block; font-size: .65rem; font-weight: 600; letter-spacing: .12em; margin: 12px 30px 18px 0; color: var(--text-muted); }
.coverage-dialog h2 { text-align: left; font-size: 1.8rem; line-height: 1.2; margin: 0 0 16px; }
.coverage-dialog h2::after { display: none; }
.coverage-dialog__lede { color: var(--text-muted); font-size: .96rem; line-height: 1.65; }
.coverage-points { list-style: none; margin: 26px 0; padding: 0; }
.coverage-points li { border-top: 1px solid var(--surface-border); padding: 14px 0; }
.coverage-points strong { font-size: .94rem; }
.coverage-points p { font-size: .88rem; color: var(--text-muted); line-height: 1.6; margin-top: 4px; }
.coverage-dialog__note { font-size: .75rem; color: var(--text-muted); line-height: 1.6; margin-bottom: 22px; }
.coverage-dialog .btn-primary { width: 100%; justify-content: center; }
.coverage-dialog__assurance { display: block; text-align: center; font-size: .75rem; color: var(--text-muted); margin-top: 12px; }
body:has(.coverage-dialog[open]) { overflow: hidden; }

/* Manual review strip: native touch scroll and keyboard scrolling. */
.reviews-manual { max-width: 1160px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; mask-image: none; -webkit-mask-image: none; border-radius: 22px; }
.reviews-manual::-webkit-scrollbar { display: none; }
.reviews-manual .reviews-track { width: 100%; gap: 18px; animation: none; transform: none; will-change: auto; }
.reviews-manual .review-item { flex: 0 0 calc((100% - 36px) / 3); max-width: none; min-width: 0; scroll-snap-align: start; padding: 28px; border-radius: 22px; box-shadow: none; }
.reviews-manual .review-item:hover { transform: none; }
.reviews-manual .review-item p { font-size: 1rem; line-height: 1.75; }
.reviews-manual .review-item::before { font-size: 6rem; top: 6px; }
.reviews-manual .review-foot { gap: 10px; padding-top: 18px; margin-top: 22px; }
.reviews-manual .review-avatar { width: 38px; height: 38px; font-size: .78rem; }
.reviews-navigation { max-width: 1160px; margin: 22px auto 0; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.reviews-navigation > p { color: var(--text-muted); font-size: .9rem; }
.reviews-controls { display: flex; align-items: center; gap: 12px; }
.reviews-controls button { width: 44px; height: 44px; background: var(--surface); color: var(--heading-color); border: 1px solid var(--surface-border); border-radius: 50%; font-size: 1.2rem; cursor: pointer; transition: background .2s; }
.reviews-controls button:hover:not(:disabled) { background: var(--surface-ring); }
.reviews-controls button:disabled { opacity: .35; cursor: default; }
#review-position { min-width: 48px; text-align: center; color: var(--text-muted); font-size: .8rem; font-variant-numeric: tabular-nums; }
.reviews-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 16px; margin-top: 30px; }
.reviews-cta p { margin: 0; font-size: .9rem; }
.reviews-cta .btn-secondary { font-size: .88rem; padding: 10px 20px; }
.review-modal-dialog { background: var(--surface); border-radius: 24px; padding: 30px; }

/* One contact channel at a time, extra questions are optional. */
.contact-form-wrapper { padding: 32px; transform: none !important; box-shadow: var(--refine-shadow); }
.contact-form-wrapper::before { display: none; }
.contact-form { gap: 0 16px; }
.contact-form > .form-heading, .contact-form > .form-assurance, .contact-form > noscript { grid-column: 1 / -1; }
.form-heading .section-subtitle { background: none; padding: 0; color: var(--text-muted); font-size: .65rem; }
.form-heading h3 { font: 700 1.35rem/1.3 'Montserrat', sans-serif; color: var(--heading-color); margin: 12px 0 6px; }
.form-intro { font-size: .9rem; color: var(--text-muted); margin-bottom: 24px; }
.form-group { min-width: 0; }
.form-extra { border-block: 1px solid var(--surface-border); margin: 0 0 20px; }
.form-extra summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; cursor: pointer; list-style: none; min-height: 48px; font-size: .85rem; color: var(--text-muted); }
.form-extra summary::-webkit-details-marker { display: none; }
.form-extra summary > span { font-size: 1.2rem; transition: transform .2s; }
.form-extra[open] summary > span { transform: rotate(45deg); }
.form-extra .form-group { margin: 0 0 16px; }
.form-consent { background: transparent; border: 0; padding: 0; margin-bottom: 18px; }
.form-consent label { font-size: .8rem; color: var(--text-muted); }
.contact-form input[type=checkbox] { flex: 0 0 18px; width: 18px; height: 18px; margin-top: 3px; accent-color: #157e77; }
.contact-form .form-status { padding: 0; }
.contact-form .form-status:not(:empty) { padding: 12px; margin-bottom: 14px; border-radius: 10px; }
.contact-form .form-status.error { color: #a72b2b; background: #fff0ef; }
.contact-form .form-status.success { color: #09664d; background: #e6f6ee; }
body.dark-mode .contact-form .form-status.error { color: #ffc6c2; background: #462524; }
body.dark-mode .contact-form .form-status.success { color: #a2e3cb; background: #163d31; }
.contact-row__value a { display: inline-block; white-space: nowrap; }
.contact-row__value .sep { margin: 0 6px; }
.contact-quick { gap: 10px; }
.contact-details h2 { font-size: clamp(1.8rem, 3.7vw, 2.7rem); }
.contact-lede { margin-bottom: 24px !important; }
.form-assurance { margin-top: 16px; gap: 8px 14px; }
.form-assurance span { font-size: .76rem; }
.coverage-card:focus-visible, .reviews-controls button:focus-visible, .reviews-manual:focus-visible, .dialog-close:focus-visible { outline: 3px solid #28958d; outline-offset: 3px; }
body.dark-mode .nav-overlay { background: #0d1828; }
body.dark-mode .nav-overlay__header { border-color: var(--surface-border); }
body.dark-mode .nav-overlay .nav-pill { color: var(--heading-color); background: var(--surface); border-color: var(--surface-border); }
body.dark-mode .nav-overlay .nav-pill.active { background: #28342f; border-color: #a58c53; }
body.dark-mode .nav-close { color: var(--heading-color); }
body.dark-mode .nav-overlay .animated-logo { background-image: linear-gradient(90deg, #f1f5f9, #ebc881); }

@media (max-width: 1024px) {
    .desktop-nav { display: none; }
    .hamburger { display: flex; }
    .header-main-row .site-logo { white-space: nowrap; }
    .coverage-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .reviews-manual .review-item { flex-basis: calc((100% - 18px) / 2); }
}
@media (max-width: 768px) {
    .header-main-row { min-height: 62px; }
    #hero { padding: 38px 16px 34px; }
    #hero .hero-text > p { font-size: .95rem; line-height: 1.7; max-width: 410px; }
    #hero h1 { font-size: clamp(1.85rem, 7.8vw, 2.3rem); }
    .hero-actions { width: 100%; margin-bottom: 26px; }
    .hero-actions .btn-primary { width: min(100%, 350px); justify-content: center; }
    .hero-actions .btn-secondary { background: transparent; border: 0; padding: 7px 14px; font-size: .88rem; box-shadow: none; }
    .hero-stats { width: 100%; }
    .hero-stat { padding: 16px 6px; }
    .hero-stat__value { font-size: 1.4rem; }
    .hero-stat__label { font-size: .65rem; line-height: 1.45; margin-top: 7px; }
    .hero-scroll { display: none; }
    .page-bg__blobs span { filter: blur(80px); animation: none; }
    #vyhody, #sluzby, #postup, #recenzie, #kontakt { padding: 48px 16px; }
    .section-header, .reviews-head { margin-bottom: 25px; }
    .section-lede { font-size: .9rem; margin-top: 12px; }
    .benefit-item { display: grid; grid-template-columns: 40px minmax(0,1fr); column-gap: 14px; padding: 20px 18px; }
    .benefit-item .benefit-icon { width: 40px; height: 40px; grid-row: 1 / 3; margin: 0; }
    .benefit-item h3 { font-size: .98rem; margin: 0 0 7px; }
    .benefit-item p { grid-column: 2; font-size: .86rem; line-height: 1.65; }
    .cennik-wrapper { padding: 20px; margin-top: 20px; }
    #vyhody .cennik-wrapper h2 { font-size: 1.08rem; }
    .cennik-wrapper .price-subtitle { font-size: .88rem; }
    .cennik-wrapper .legal-text { font-size: .78rem; line-height: 1.65; }
    .coverage-grid { gap: 10px; }
    .coverage-card { padding: 18px 14px; border-radius: 17px; }
    .coverage-card__top { margin-bottom: 16px; }
    .coverage-icon { width: 38px; height: 38px; border-radius: 11px; }
    .coverage-icon svg { width: 22px; height: 22px; }
    .coverage-card__title { font-size: .98rem; }
    .coverage-card__desc { font-size: .8rem; line-height: 1.6; margin-bottom: 17px; }
    .coverage-card__more { font-size: .7rem; gap: 3px; }
    .coverage-footnote { font-size: .85rem; }
    .coverage-dialog { width: calc(100% - 20px); max-height: calc(100dvh - 24px); border-radius: 22px; }
    .coverage-dialog__shell { padding: 24px; }
    .coverage-dialog h2 { font-size: 1.5rem; }
    .coverage-dialog__eyebrow { font-size: .59rem; }
    .coverage-points { margin: 18px 0; }
    .coverage-points li { padding: 12px 0; }
    .online-grid { gap: 10px; }
    .online-card { display: grid; grid-template-columns: 40px minmax(0,1fr); column-gap: 12px; text-align: left; padding: 18px; }
    .online-card__icon { grid-row: 1 / 3; margin: 0; width: 40px; height: 40px; }
    .online-card h3 { font-size: .98rem; margin: 0 0 5px; }
    .online-card p { grid-column: 2; font-size: .85rem; }
    .reviews-manual { border-radius: 18px; }
    .reviews-manual .review-item { flex-basis: 88%; padding: 24px; border-radius: 18px; }
    .reviews-manual .review-item p { font-size: .96rem; }
    .reviews-navigation { gap: 12px; margin-top: 16px; }
    .reviews-navigation > p { font-size: .76rem; max-width: 145px; }
    .reviews-controls { gap: 7px; }
    .reviews-cta { gap: 10px; margin-top: 24px; }
    .reviews-cta p { font-size: .83rem; }
    .contact-container { gap: 22px; }
    .contact-details h2 { font-size: 1.8rem; }
    .contact-info-items { gap: 8px; }
    .contact-row { padding: 12px; }
    .contact-row__value { font-size: .87rem; }
    .contact-row__value .sep { display: none; }
    .contact-row__value a + a, .contact-row__value .sep + a { display: block; margin-top: 4px; }
    .contact-quick { display: grid; grid-template-columns: 1fr 1fr; }
    .contact-quick a { padding: 12px 10px; font-size: .79rem; gap: 7px; white-space: nowrap; }
    .contact-quick svg { width: 16px; height: 16px; }
    .contact-form-wrapper { padding: 24px 18px; }
    .contact-form { grid-template-columns: 1fr; }
    .contact-form input, .contact-form select, .contact-form textarea { font-size: 16px; padding: 10px 12px; }
    .contact-form input, .contact-form select { height: 48px; }
    .form-group { margin-bottom: 17px; }
    .form-extra summary { font-size: .8rem; }
    .form-assurance span { font-size: .69rem; }
    .form-heading h3 { font-size: 1.2rem; }
    .nav-grid { gap: 8px; padding: 16px; }
    .nav-pill { min-height: 48px; padding: 12px; }
    .insurer-back { display: inline-flex; padding: 9px 12px; font-size: .75rem; }
}
@media (max-width: 359px) {
    .coverage-card { padding: 16px 12px; }
    .coverage-card__title { font-size: .9rem; }
    .coverage-card__more { font-size: .65rem; }
    .insurer-back { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .coverage-dialog[open] { animation: none; }
}

/* Soft pools of light instead of outlined orbits. The central text stays clear. */
.hero-light { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: -1; }
.hero-light span { position: absolute; width: min(640px, 75vw); aspect-ratio: 1.4; border-radius: 50%; filter: blur(65px); opacity: .45; }
.hero-light span:first-child { left: -18%; top: 2%; background: radial-gradient(ellipse, #d6b472, #ead7b355 40%, transparent 72%); }
.hero-light span:last-child { right: -15%; bottom: 5%; background: radial-gradient(ellipse, #73bcb8, #8baee455 42%, transparent 72%); }
body.dark-mode .hero-light span { opacity: .18; }

/* One continuous journey with a quiet highlight on the step under the pointer. */
.journey { max-width: 1160px; margin: auto; border: 1px solid var(--surface-border); border-radius: 26px; overflow: hidden; background: var(--surface); box-shadow: var(--refine-shadow); }
.journey-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.journey-step { min-width: 0; padding: 30px 25px 25px; display: flex; flex-direction: column; position: relative; background: linear-gradient(160deg, color-mix(in srgb, var(--journey-color) 9%, transparent), transparent 72%); transition: background-color .25s; }
.journey-step:nth-child(1) { --journey-color: #c5832b; }
.journey-step:nth-child(2) { --journey-color: #0d9488; }
.journey-step:nth-child(3) { --journey-color: #2563eb; }
.journey-step:nth-child(4) { --journey-color: #7c3aed; }
.journey-step + .journey-step { border-left: 1px solid var(--surface-border); }
.journey-step:hover { background-color: color-mix(in srgb, var(--journey-color) 13%, transparent); }
.journey-step__top { display: flex; align-items: center; gap: 13px; margin-bottom: 24px; }
.journey-step__number {
    display: grid; place-items: center; flex: none;
    width: 44px; height: 44px; border-radius: 14px;
    color: #fff; background: var(--journey-color);
    font: 800 1.15rem/1 'Montserrat', sans-serif; letter-spacing: -.02em;
    box-shadow: 0 10px 22px -12px color-mix(in srgb, var(--journey-color) 90%, transparent);
}
body.dark-mode .journey-step__number { color: #fff; background: var(--journey-color); }
.journey-step__label { font-size: .62rem; font-weight: 600; letter-spacing: .07em; color: var(--text-muted); }
.journey-step h3 { margin: 0 0 14px; color: var(--heading-color); font: 700 1.15rem/1.4 'Montserrat', sans-serif; }
.journey-step p { color: var(--text-muted); font-size: .88rem; line-height: 1.75; margin: 0 0 25px; }
.journey-step__outcome { margin-top: auto; padding-top: 17px; border-top: 1px solid var(--surface-border); color: var(--text-muted); font-size: .72rem; line-height: 1.55; }
.journey-footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 25px; border-top: 1px solid var(--surface-border); background: color-mix(in srgb, var(--page-base) 55%, var(--surface)); }
.journey-footer p { font-size: .88rem; color: var(--text-muted); margin: 0; }
.journey-footer strong { color: var(--heading-color); font-weight: 600; }
.journey-footer a { display: inline-flex; align-items: center; justify-content: center; gap: 20px; min-height: 44px; color: var(--heading-color); font-size: .86rem; font-weight: 600; text-decoration: none; }
.journey-footer a span { transition: transform .2s; }
.journey-footer a:hover span { transform: translate(2px,-2px); }
#review-position { min-width: 84px; white-space: nowrap; }

@media (max-width: 1024px) {
    .journey-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .journey-step:nth-child(3) { border-left: 0; }
    .journey-step:nth-child(n+3) { border-top: 1px solid var(--surface-border); }
}
@media (max-width: 768px) {
    .hero-light span { width: 90vw; filter: blur(48px); opacity: .3; }
    .hero-light span:first-child { left: -45%; top: 5%; }
    .hero-light span:last-child { right: -40%; bottom: 0; }
    #postup > .container { padding-inline: 0; }
    .journey { border-radius: 20px; }
    .journey-step { padding: 20px 15px 17px; }
    .journey-step__top { margin-bottom: 18px; flex-wrap: wrap; gap: 9px; }
    .journey-step__number { font-size: 1.35rem; }
    .journey-step__label { display: none; }
    .journey-step h3 { font-size: .95rem; margin-bottom: 10px; }
    .journey-step p { font-size: .8rem; line-height: 1.65; margin-bottom: 18px; }
    .journey-step__outcome { font-size: .7rem; padding-top: 12px; }
    .journey-footer { padding: 16px; flex-direction: column; gap: 3px; }
    .journey-footer p { font-size: .8rem; }
    .journey-footer a { font-size: .81rem; }
    .reviews-navigation > p { max-width: 115px; }
}
@media (prefers-reduced-motion: reduce) {
    .coverage-card:hover, .journey-footer a:hover span { transform: none; }
}

/* Porovnanie: obeh, vyhodnotenie ponúk a potvrdenie v jednom pokojnom cykle. */
.hero-proof {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    max-width: 100%;
    padding: 9px 22px 9px 10px;
    margin-bottom: 30px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--surface) 88%, transparent);
    border: 1px solid var(--surface-border);
    box-shadow: 0 8px 24px -16px rgba(15,44,89,.3);
    color: var(--heading-color);
    text-decoration: none;
    text-align: left;
    transition: border-color .3s, box-shadow .3s;
}
.hero-proof:is(:hover, :focus-visible) {
    border-color: color-mix(in srgb, var(--teal) 45%, var(--surface-border));
    box-shadow: 0 10px 30px -18px rgba(13,148,136,.4);
}
.hero-proof:focus-visible { outline: 2px solid var(--teal); outline-offset: 4px; }
.hero-proof__scan {
    display: grid; place-items: center; flex: none; width: 42px; height: 42px;
    border-radius: 50%; color: #0c8179;
    background: radial-gradient(circle, color-mix(in srgb, var(--teal) 12%, var(--surface)), transparent 72%);
}
.hero-proof__scan svg { width: 42px; height: 42px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; }
.hero-proof__ring { stroke-width: .8; opacity: .18; }
.hero-proof__orbit { transform-origin: 24px 24px; animation: comparisonOrbit 6s cubic-bezier(.4,0,.2,1) infinite; }
.hero-proof__orbit path { stroke-width: 1.2; opacity: .65; }
.hero-proof__orbit circle { fill: currentColor; stroke: none; }
.hero-proof__bars { animation: comparisonBars 6s ease-in-out infinite; }
.hero-proof__bars path { stroke-width: 2; transform-origin: 24px 30px; animation: comparisonMeasure 6s ease-in-out infinite; }
.hero-proof__bars path:nth-child(2) { animation-delay: -.3s; }
.hero-proof__bars path:nth-child(3) { animation-delay: -.6s; }
.hero-proof__halo { stroke-width: .9; transform-origin: 24px 24px; opacity: 0; animation: comparisonHalo 6s ease-out infinite; }
.hero-proof__check { stroke-width: 2; stroke-dasharray: 1; stroke-dashoffset: 1; opacity: 0; animation: comparisonCheck 6s ease-in-out infinite; }
@keyframes comparisonOrbit {
    0% { transform: rotate(-90deg); opacity: .45; }
    12% { opacity: 1; }
    60%, 80% { transform: rotate(270deg); opacity: .65; }
    100% { transform: rotate(270deg); opacity: .45; }
}
@keyframes comparisonMeasure {
    0%, 50%, 100% { transform: scaleY(1); }
    16% { transform: scaleY(.55); }
    32% { transform: scaleY(.85); }
}
@keyframes comparisonBars {
    0%, 46%, 100% { opacity: 1; }
    55%, 88% { opacity: 0; }
}
@keyframes comparisonCheck {
    0%, 53% { stroke-dashoffset: 1; opacity: 0; }
    58% { opacity: 1; }
    69%, 82% { stroke-dashoffset: 0; opacity: 1; }
    92%, 100% { stroke-dashoffset: 0; opacity: 0; }
}
@keyframes comparisonHalo {
    0%, 62% { transform: scale(.7); opacity: 0; }
    68% { opacity: .35; }
    87%, 100% { transform: scale(1.4); opacity: 0; }
}
.hero-proof__text { font-size: .87rem; line-height: 1.4; font-weight: 600; letter-spacing: .015em; }
body.dark-mode .hero-proof__scan { color: #65c8be; }
.coverage-icon .coverage-car { width: 29px; height: 29px; }
.journey-footer__arrow {
    display: grid; place-items: center; flex: none; width: 34px; height: 34px;
    border: 1px solid var(--surface-border); border-radius: 50%;
    background: var(--surface); color: var(--heading-color);
}
.journey-footer__arrow svg { width: 17px; height: 17px; transition: transform .25s; }
.journey-footer a:is(:hover, :focus-visible) .journey-footer__arrow { transform: none; border-color: var(--gold); }
.journey-footer a:is(:hover, :focus-visible) .journey-footer__arrow svg { transform: translateX(2px); }
@media (max-width: 768px) {
    .hero-proof { gap: 9px; padding: 8px 15px 8px 8px; margin-bottom: 22px; }
    .hero-proof__scan { width: 36px; height: 36px; }
    .hero-proof__scan svg { width: 34px; height: 34px; }
    .hero-proof__text { font-size: .77rem; }
    .coverage-icon .coverage-car { width: 26px; height: 26px; }
}
@media (prefers-reduced-motion: reduce) {
    .hero-proof__scan svg * { animation: none; }
    .hero-proof__orbit { transform: rotate(-45deg); opacity: .55; }
    .hero-proof__bars { opacity: 0; }
    .hero-proof__check { stroke-dashoffset: 0; opacity: 1; }
    .hero-proof__halo { opacity: 0; }
    .journey-footer a:is(:hover, :focus-visible) .journey-footer__arrow svg { transform: none; transition: none; }
}

/* =====================================================================
   Mobil — výkon
   Na telefóne sa pozadie kreslilo ako päť prvkov s rozostrením 120 px
   na pripnutej vrstve, plus maskovaná mriežka. Rozostrenie aj maska sa
   musia pri každom posune prepočítať, čo na iPhone viditeľne seká.
   Tu sa to nahrádza rovnako vyzerajúcimi prechodmi, ktoré prehliadač
   vykreslí raz a ďalej ich už len posúva.
   ===================================================================== */
@media (max-width: 900px) {
    /* Rozostrené škvrny nahradí jeden statický podklad */
    .page-bg__blobs { display: none; }

    .page-bg {
        background-color: var(--page-base);
        background-image:
            radial-gradient(60% 44% at -6% -4%, rgba(232, 181, 99, .40), transparent 64%),
            radial-gradient(64% 46% at 106% -2%, rgba(77, 141, 240, .34), transparent 64%),
            radial-gradient(56% 40% at -8% 46%, rgba(45, 212, 191, .30), transparent 64%),
            radial-gradient(62% 42% at 44% 104%, rgba(139, 124, 240, .32), transparent 64%),
            radial-gradient(54% 38% at 106% 102%, rgba(217, 155, 74, .30), transparent 64%);
        background-repeat: no-repeat;
    }

    body.dark-mode .page-bg {
        background-image:
            radial-gradient(60% 44% at -6% -4%, rgba(232, 181, 99, .26), transparent 64%),
            radial-gradient(64% 46% at 106% -2%, rgba(77, 141, 240, .24), transparent 64%),
            radial-gradient(56% 40% at -8% 46%, rgba(45, 212, 191, .20), transparent 64%),
            radial-gradient(62% 42% at 44% 104%, rgba(139, 124, 240, .22), transparent 64%),
            radial-gradient(54% 38% at 106% 102%, rgba(217, 155, 74, .20), transparent 64%);
    }

    /* Maska mriežky je na pripnutej vrstve drahá. Namiesto nej len
       stlmíme celú mriežku — je aj tak sotva viditeľná a takto
       neprekrýva farby pod sebou. */
    .page-bg__grid {
        mask-image: none;
        -webkit-mask-image: none;
        opacity: .5;
    }
}

/* Pás recenzií je široký takmer 12 000 px a animácia beží stále, aj keď
   je sekcia mimo obrazovky. Mimo výrezu ju zastavíme — vlastnou triedou,
   aby sa nebila s pozastavením pri prejdení myšou v script.js. */
.reviews-track.is-offscreen { animation-play-state: paused; }
