@font-face {
    font-family: 'Jakarta';
    font-weight: 400;
    font-style: normal;
    font-display: swap;
    src: url(fonts/plus-jakarta-sans-latin-400-normal.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD
}

@font-face {
    font-family: 'Jakarta';
    font-weight: 400;
    font-style: normal;
    font-display: swap;
    src: url(fonts/plus-jakarta-sans-latin-ext-400-normal.woff2) format('woff2');
    unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF
}

@font-face {
    font-family: 'Jakarta';
    font-weight: 500;
    font-style: normal;
    font-display: swap;
    src: url(fonts/plus-jakarta-sans-latin-500-normal.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD
}

@font-face {
    font-family: 'Jakarta';
    font-weight: 500;
    font-style: normal;
    font-display: swap;
    src: url(fonts/plus-jakarta-sans-latin-ext-500-normal.woff2) format('woff2');
    unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF
}

@font-face {
    font-family: 'Jakarta';
    font-weight: 600;
    font-style: normal;
    font-display: swap;
    src: url(fonts/plus-jakarta-sans-latin-600-normal.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD
}

@font-face {
    font-family: 'Jakarta';
    font-weight: 600;
    font-style: normal;
    font-display: swap;
    src: url(fonts/plus-jakarta-sans-latin-ext-600-normal.woff2) format('woff2');
    unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF
}

@font-face {
    font-family: 'Jakarta';
    font-weight: 700;
    font-style: normal;
    font-display: swap;
    src: url(fonts/plus-jakarta-sans-latin-700-normal.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD
}

@font-face {
    font-family: 'Jakarta';
    font-weight: 700;
    font-style: normal;
    font-display: swap;
    src: url(fonts/plus-jakarta-sans-latin-ext-700-normal.woff2) format('woff2');
    unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF
}

@font-face {
    font-family: 'Display';
    font-weight: 500;
    font-style: normal;
    font-display: swap;
    src: url(fonts/poppins-latin-500-normal.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD
}

@font-face {
    font-family: 'Display';
    font-weight: 500;
    font-style: normal;
    font-display: swap;
    src: url(fonts/poppins-latin-ext-500-normal.woff2) format('woff2');
    unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF
}

@font-face {
    font-family: 'Display';
    font-weight: 600;
    font-style: normal;
    font-display: swap;
    src: url(fonts/poppins-latin-600-normal.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD
}

@font-face {
    font-family: 'Display';
    font-weight: 600;
    font-style: normal;
    font-display: swap;
    src: url(fonts/poppins-latin-ext-600-normal.woff2) format('woff2');
    unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF
}

@font-face {
    font-family: 'Display';
    font-weight: 700;
    font-style: normal;
    font-display: swap;
    src: url(fonts/poppins-latin-700-normal.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD
}

@font-face {
    font-family: 'Display';
    font-weight: 700;
    font-style: normal;
    font-display: swap;
    src: url(fonts/poppins-latin-ext-700-normal.woff2) format('woff2');
    unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF
}

:root {
    --navy: #1f1f1f;
    --navy2: #2b2b2b;
    --or: #d9272e;
    --ord: #b81d23;
    --bg: #f5f5f5;
    --ink: #222222;
    --mut: #6f6f6f;
    --line: #e6e6e6
}

html {
    font-size: 14.5px
}

body {
    font-family: Jakarta, system-ui, sans-serif;
    color: var(--ink);
    background: #fff;
    line-height: 1.55
}

a {
    color: inherit;
    text-decoration: none
}

h1,
h2,
h3,
h4,
h5,
h6,
.pprice,
.btn,
.brand b,
.stat b {
    font-family: Display, Jakarta, sans-serif;
    letter-spacing: -.015em
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-weight: 600;
    line-height: 1.25
}

@media(min-width:1400px) {
    .container {
        max-width: 1240px
    }
}

.topbar {
    background: var(--navy);
    color: #d2d2d2;
    font-size: .76rem;
    padding: .5rem 0
}

.topbar i {
    color: var(--or);
    margin-right: .35rem
}

.topbar a:hover {
    color: #fff
}

.navbar {
    padding: .55rem 0;
    box-shadow: 0 1px 8px rgba(31, 31, 31, .07)
}

.brand {
    display: flex;
    align-items: center;
    gap: .5rem
}

.brand>i {
    color: var(--or);
    font-size: 2.1rem;
    line-height: 1
}

.brand b {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--navy);
    line-height: 1
}

.brand b em {
    color: var(--or);
    font-style: normal
}

.brand small {
    display: block;
    font-size: .55rem;
    color: var(--mut);
    margin-top: 3px;
    font-family: Jakarta
}

.navbar-nav .nav-link {
    font-weight: 500;
    font-size: .88rem;
    color: var(--ink);
    padding: .6rem .9rem;
    border-bottom: 2px solid transparent
}

.navbar-nav .nav-link.active,
.navbar-nav .nav-link:hover {
    color: var(--or)
}

.navbar-nav .nav-link.active {
    border-color: var(--or)
}

.dropdown-menu {
    border: 1px solid var(--line);
    box-shadow: 0 10px 26px rgba(31, 31, 31, .12);
    font-size: .86rem
}

.dropdown-item:hover {
    background: #fdecec;
    color: var(--or)
}

.btn-or {
    background: var(--or);
    color: #fff;
    font-weight: 600;
    font-size: .86rem;
    border: 0;
    border-radius: 8px;
    padding: .6rem 1.2rem
}

.btn-or:hover {
    background: var(--ord);
    color: #fff
}

.btn-line {
    border: 1px solid var(--or);
    color: var(--or);
    font-weight: 600;
    font-size: .86rem;
    border-radius: 8px;
    background: #fff
}

.btn-line:hover {
    background: var(--or);
    color: #fff
}

.badge-n {
    background: var(--or);
    color: #fff;
    font-size: .6rem;
    border-radius: 50%;
    padding: .1rem .35rem;
    margin-left: .15rem
}

/* hero */
.hero {
    background: linear-gradient(90deg, #1f1f1f 26%, rgba(31, 31, 31, .7) 48%, rgba(31, 31, 31, 0) 78%), url(img/hero.svg) right center/cover #1f1f1f;
    color: #fff;
    padding: 3.4rem 0 7rem
}

.eyebrow {
    letter-spacing: .38em;
    font-size: .7rem;
    font-weight: 600
}

.hero h1 {
    font-size: clamp(2rem, 4.4vw, 3.2rem);
    font-weight: 700;
    line-height: 1.08;
    margin: .8rem 0
}

.hero h1 span {
    display: block;
    color: var(--or)
}

.hero p {
    max-width: 420px;
    color: #d2d2d2;
    font-size: .95rem
}

.search-wrap {
    margin-top: -4.2rem;
    position: relative;
    z-index: 5
}

.stabs {
    display: inline-flex;
    background: #fff;
    border-radius: 12px 12px 0 0;
    padding: .2rem .8rem 0;
    max-width: 100%;
    overflow-x: auto
}

.stabs button {
    border: 0;
    background: none;
    padding: .8rem 1.3rem;
    font-size: .84rem;
    font-weight: 500;
    color: var(--ink);
    border-bottom: 2px solid transparent;
    white-space: nowrap
}

.stabs button i {
    margin-right: .4rem
}

.stabs button.on {
    color: var(--or);
    border-color: var(--or)
}

.sbox {
    background: #fff;
    border-radius: 0 12px 12px 12px;
    padding: 1.1rem;
    box-shadow: 0 16px 38px rgba(31, 31, 31, .18)
}

.sf {
    position: relative
}

.sf>i {
    position: absolute;
    left: .85rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--mut)
}

.sf .form-control,
.sf .form-select {
    padding-left: 2.2rem
}

.sbox .form-control,
.sbox .form-select,
.filters .form-control,
.filters .form-select {
    height: 46px;
    border: 1px solid var(--line);
    border-radius: 8px;
    font-size: .86rem
}

.sbox .btn-or {
    height: 46px;
    font-size: .95rem
}

/* sections */
.sect {
    padding: 3rem 0
}

.sect-alt {
    background: var(--bg)
}

.shead {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 1rem;
    margin-bottom: 1.4rem
}

.shead h2 {
    font-size: 1.4rem;
    font-weight: 700;
    margin: 0
}

.shead p {
    color: var(--mut);
    margin: .15rem 0 0;
    font-size: .88rem
}

.vall {
    color: var(--or);
    font-weight: 600;
    font-size: .82rem;
    white-space: nowrap
}

.tgrid {
    display: grid;
    grid-template-columns: repeat(20, 1fr);
    gap: 1rem
}

.ttile {
    grid-column: span 4;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 1.3rem .5rem;
    text-align: center;
    font-weight: 600;
    font-size: .84rem;
    transition: .2s
}

.ttile:nth-child(n+6) {
    grid-column: span 5
}

.ttile:hover {
    border-color: var(--or);
    box-shadow: 0 8px 22px rgba(31, 31, 31, .09);
    transform: translateY(-2px)
}

.ticon {
    width: 54px;
    height: 54px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    margin-bottom: .55rem
}

@media(max-width:768px) {
    .tgrid {
        grid-template-columns: 1fr 1fr
    }

    .ttile,
    .ttile:nth-child(n+6) {
        grid-column: auto
    }
}

/* cards */
.hscroll {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: calc((100% - 3rem)/4);
    gap: 1rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding: .2rem .2rem .8rem;
    scrollbar-width: none
}

.hscroll::-webkit-scrollbar {
    display: none
}

.hscroll>* {
    scroll-snap-align: start
}

@media(max-width:992px) {
    .hscroll {
        grid-auto-columns: calc((100% - 1rem)/2)
    }
}

@media(max-width:576px) {
    .hscroll {
        grid-auto-columns: 82%
    }
}

.sl-btn {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 1px solid var(--line);
    background: #fff;
    color: var(--ink);
    font-size: .8rem
}

.sl-btn:hover {
    border-color: var(--or);
    color: var(--or)
}

.pcard {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(31, 31, 31, .05);
    height: 100%;
    display: flex;
    flex-direction: column;
    transition: .2s
}

.pcard:hover {
    box-shadow: 0 10px 26px rgba(31, 31, 31, .12)
}

.pimg {
    position: relative;
    overflow: hidden
}

.thumb {
    width: 100%;
    height: 160px;
    object-fit: cover;
    display: block;
    background: #e4e4e4
}

.noimg {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.4rem;
    color: #9a9a9a
}

.ptag {
    position: absolute;
    top: 10px;
    left: 10px;
    background: var(--or);
    color: #fff;
    font-size: .66rem;
    font-weight: 600;
    padding: .25rem .6rem;
    border-radius: 4px;
    z-index: 2
}

.heart {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 0;
    background: #fff;
    color: var(--or);
    font-size: .8rem;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .15)
}

.pbody {
    padding: .85rem 1rem 1rem;
    display: flex;
    flex-direction: column;
    gap: .2rem;
    flex: 1
}

.pprice {
    font-weight: 700;
    font-size: 1.12rem;
    color: var(--navy)
}

.pprice small {
    font-size: .68rem;
    color: var(--mut);
    font-weight: 500
}

.ptitle {
    font-weight: 500;
    font-size: .88rem
}

a.ptitle:hover {
    color: var(--or)
}

.ploc {
    font-size: .74rem;
    color: var(--mut)
}

.ploc i {
    color: var(--or)
}

.pstats {
    display: flex;
    gap: .9rem;
    flex-wrap: wrap;
    font-size: .72rem;
    color: var(--mut);
    margin: .45rem 0 .6rem
}

.pstats i {
    margin-right: .25rem
}

.plink {
    color: var(--or);
    font-weight: 600;
    font-size: .78rem;
    margin-top: auto
}

/* stats / why */
.statband {
    background: var(--navy);
    color: #fff;
    padding: 1.7rem 0
}

.stat {
    display: flex;
    align-items: center;
    gap: .9rem;
    justify-content: center;
    padding: .3rem 0
}

.stat i {
    color: var(--or);
    font-size: 2.2rem
}

.stat b {
    display: block;
    font-size: 1.45rem;
    font-weight: 700;
    line-height: 1.1
}

.stat span {
    font-size: .8rem;
    color: #c8c8c8
}

@media(min-width:768px) {
    .statband .col-md-3+.col-md-3 {
        border-left: 1px solid rgba(255, 255, 255, .14)
    }
}

.kicker {
    color: var(--or);
    font-weight: 700;
    font-size: .72rem;
    letter-spacing: .06em
}

.why {
    display: flex;
    gap: .8rem;
    align-items: flex-start
}

.why .ticon {
    width: 46px;
    height: 46px;
    font-size: 1.25rem;
    flex: none;
    margin: 0
}

.why b {
    font-size: .9rem
}

.why p {
    color: var(--mut);
    font-size: .8rem;
    margin: .1rem 0 0
}

.loc {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 10px;
    overflow: hidden;
    display: block;
    transition: .2s
}

.loc:hover {
    box-shadow: 0 10px 24px rgba(31, 31, 31, .12);
    transform: translateY(-3px)
}

.loc img {
    width: 100%;
    height: 105px;
    object-fit: cover;
    display: block
}

.loc .lb {
    padding: .7rem .9rem;
    display: flex;
    justify-content: space-between;
    align-items: center
}

.loc b {
    font-size: .88rem;
    display: block
}

.loc small {
    color: var(--mut);
    font-size: .72rem
}

.loc .pin {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #fff;
    color: var(--or);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .7rem
}

.tcard {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 1.1rem;
    height: 100%
}

.avatar {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-weight: 600;
    font-size: .9rem
}

.stars {
    color: var(--or);
    font-size: .78rem;
    letter-spacing: 2px
}

.cta {
    background: linear-gradient(90deg, #1f1f1f 40%, rgba(31, 31, 31, .55)), url(img/skyline.svg) right bottom/cover #1f1f1f;
    color: #fff;
    padding: 2.2rem 0
}

.cta h2 {
    font-size: 1.5rem;
    font-weight: 700
}

.cta p {
    color: #d2d2d2;
    margin: 0;
    max-width: 520px;
    font-size: .9rem
}

footer {
    background: #161616;
    color: #b5b5b5;
    font-size: .82rem
}

footer h6 {
    color: #fff;
    font-size: .9rem;
    margin-bottom: .9rem
}

footer a {
    display: block;
    margin-bottom: .45rem;
    color: #b5b5b5
}

footer a:hover {
    color: var(--or)
}

footer .brand b {
    color: #fff
}

.soc a {
    display: inline-flex;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #2e2e2e;
    align-items: center;
    justify-content: center;
    margin-right: .5rem;
    color: #fff
}

.soc a:hover {
    background: var(--or);
    color: #fff
}

.fbar {
    border-top: 1px solid #2e2e2e;
    padding: .9rem 0;
    font-size: .76rem
}

.fbar a {
    display: inline
}

/* inner pages */
.pbanner {
    background: linear-gradient(90deg, #1f1f1f, #333333);
    color: #fff;
    padding: 1.9rem 0
}

.pbanner h1 {
    font-size: 1.55rem;
    font-weight: 700;
    margin: .2rem 0 0
}

.pbanner nav {
    font-size: .78rem;
    color: #b5b5b5
}

.pbanner nav a {
    color: var(--or)
}

.pbanner p {
    color: #d2d2d2;
    margin: .3rem 0 0;
    font-size: .88rem
}

.filters,
.panel {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 1.1rem
}

.filters label {
    font-size: .75rem;
    color: var(--mut);
    font-weight: 500
}

.filters h2 {
    font-size: .95rem
}

.rrow {
    display: flex;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 10px;
    overflow: hidden;
    margin-bottom: 1rem;
    transition: .2s
}

.rrow:hover {
    box-shadow: 0 10px 24px rgba(31, 31, 31, .1)
}

.rimg {
    position: relative;
    flex: 0 0 280px
}

.rimg .thumb {
    height: 100%;
    min-height: 190px
}

.rbody {
    padding: 1rem 1.2rem;
    display: flex;
    flex-direction: column;
    gap: .5rem;
    flex: 1
}

.rspecs {
    display: flex;
    gap: 1.3rem;
    flex-wrap: wrap;
    font-size: .8rem;
    color: var(--mut)
}

.rspecs b {
    color: var(--ink);
    display: block;
    font-size: .85rem
}

.rdesc {
    font-size: .8rem;
    color: var(--mut);
    margin: 0
}

@media(max-width:640px) {
    .rrow {
        flex-direction: column
    }

    .rimg {
        flex-basis: auto
    }

    .rimg .thumb {
        height: 180px
    }
}

.pagination .page-link {
    color: var(--or);
    font-size: .85rem
}

.pagination .active .page-link {
    background: var(--or);
    border-color: var(--or);
    color: #fff
}

.carousel img {
    height: min(55vw, 420px);
    object-fit: cover;
    width: 100%
}

.carousel video {
    height: min(55vw, 420px);
    width: 100%;
    object-fit: cover
}

.spec {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: .9rem;
    text-align: center
}

.spec small {
    display: block;
    color: var(--mut);
    font-size: .72rem
}

.spec b {
    font-size: .9rem
}

.chip {
    display: inline-block;
    background: #fdecec;
    color: var(--or);
    border-radius: 999px;
    padding: .3rem .8rem;
    font-size: .78rem;
    font-weight: 500;
    margin: 0 .3rem .4rem 0
}

.icard {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 1.2rem;
    display: flex;
    gap: .9rem;
    align-items: center
}

.icard .ticon {
    margin: 0;
    width: 44px;
    height: 44px;
    font-size: 1.2rem
}

.snap {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 1rem;
    text-align: center
}

.snap b {
    display: block;
    font-size: 1.4rem;
    color: var(--or)
}

.snap span {
    font-size: .8rem;
    color: var(--mut)
}

.form-control:focus,
.form-select:focus {
    border-color: var(--or);
    box-shadow: 0 0 0 .2rem rgba(217, 39, 46, .15)
}

@media(max-width:576px) {
    html {
        font-size: 14px
    }

    .hero {
        padding: 2.2rem 0 6rem
    }

    .search-wrap {
        margin-top: -3.8rem
    }

    .shead {
        flex-direction: column;
        align-items: start
    }

    .stat {
        justify-content: flex-start
    }
}

.btn-link {
    color: var(--or)
}

.btn-link:hover {
    color: var(--ord)
}

.btn-check:checked+.btn-outline-secondary {
    background: var(--or);
    border-color: var(--or);
    color: #fff
}

.btn-outline-secondary {
    color: var(--ink);
    border-color: var(--line)
}

.form-check-input:checked {
    background-color: var(--or);
    border-color: var(--or)
}

.preq {
    color: var(--or);
    font-size: .95rem !important;
    font-weight: 600
}

.btn-xs {
    padding: .22rem .6rem;
    font-size: .72rem;
    border-radius: 6px
}