/* AUDES power conditioner pages: the site's fonts, the shared top bar and small-screen fixes.
   Loaded after each page's own styles; colours come from each page's :root tokens. */

@font-face {
    font-family: 'Jost';
    font-style: normal;
    font-weight: 300 500;
    font-display: swap;
    src: url('../fonts/jost-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Jost';
    font-style: normal;
    font-weight: 300 500;
    font-display: swap;
    src: url('../fonts/jost-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('../fonts/manrope-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('../fonts/manrope-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('../fonts/manrope-greek.woff2') format('woff2');
    unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}

/* no text inflation when a phone is turned sideways */
html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

/* ---------- type ----------
   Jost is a wide geometric face: headings sit a step lighter and slightly tighter than the
   serif they replace, and the accent words that used to be italic stay upright in gold. */
h1,
h2,
h3,
h4 {
    font-weight: 400;
    letter-spacing: -0.01em;
    overflow-wrap: break-word;
    text-wrap: balance;
}
h1 {
    font-weight: 300;
}
h1 em,
h2 em,
h3 em,
p em {
    font-style: normal;
}
.hero .sub,
.tech .fig,
.xf .volt {
    font-weight: 300;
    letter-spacing: 0.01em;
}
.figs strong,
.hero-stats strong,
.xf .rating {
    font-weight: 300;
    letter-spacing: 0;
}
.hero-stats strong {
    white-space: nowrap;
}
@media (max-width: 40em) {
    .hero-stats strong {
        font-size: 1.5rem;
    }
}
.eyebrow {
    line-height: 1.5;
}

/* ---------- top bar ---------- */
.topbar {
    position: sticky;
    top: 0;
    z-index: 50;
    border-bottom: 1px solid var(--line);
    background: rgba(14, 12, 10, 0.9);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
}
/* browser zoom of 300-400 %: the screen is only about 250px tall, so the bar scrolls away with the page */
@media (max-height: 18em) {
    .topbar {
        position: relative;
    }
}
.topbar .wrap {
    display: flex;
    align-items: center;
    gap: 32px;
    min-height: 72px;
}
.logo-sm {
    flex: none;
    display: block;
}
.logo-sm img {
    width: 112px;
    height: auto;
}
.secnav,
.crumbs {
    display: flex;
    align-items: center;
    gap: 4px 20px;
    margin-left: auto;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    white-space: nowrap;
}
.secnav a,
.crumbs a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: var(--muted);
    border-bottom: 1px solid transparent;
    transition: color 0.25s ease, border-color 0.25s ease;
}
.secnav a:hover,
.crumbs a:hover {
    color: var(--accent-hi);
}
.secnav a.on {
    color: var(--accent);
    border-bottom-color: var(--accent);
}
.secnav a.page {
    color: var(--accent);
}
.crumbs {
    gap: 12px;
    color: var(--muted);
}
.crumbs b {
    color: var(--accent);
    font-weight: 600;
}
section[id] {
    scroll-margin-top: 88px;
}

/* Back and Home: two small buttons at the end of the bar */
.pc-actions {
    flex: none;
    display: flex;
    gap: 8px;
}
.pc-actions a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 40px;
    padding: 0 16px;
    border: 1px solid var(--line);
    color: var(--body);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    white-space: nowrap;
    transition: border-color 0.25s ease, color 0.25s ease, background 0.25s ease;
}
.pc-actions a:hover {
    border-color: var(--accent);
    color: var(--accent-hi);
}
.pc-actions .pc-home {
    border-color: var(--accent);
    color: var(--ink);
}
.pc-actions .pc-home:hover {
    background: var(--accent);
    color: #14110d;
}
.pc-back svg {
    width: 14px;
    height: 10px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.4;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform 0.25s ease;
}
.pc-back:hover svg {
    transform: translateX(-3px);
}

/* The menu button and panel: shown when the links no longer fit on one line
   (conditioners.js sets .pc-compact on <html>) */
.pc-toggle,
.pc-panel {
    display: none;
}
.pc-compact .topbar .secnav,
.pc-compact .topbar .crumbs,
.pc-compact .topbar .pc-actions {
    display: none;
}
.pc-compact .pc-toggle {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 7px;
    flex: none;
    width: 44px;
    height: 44px;
    margin-left: auto;
    padding: 0 10px;
    border: 0;
    background: none;
    cursor: pointer;
}
.pc-toggle span {
    display: block;
    height: 1px;
    background: var(--ink);
    transition: transform 0.3s ease;
}
.pc-toggle[aria-expanded='true'] span:first-child {
    transform: translateY(4px) rotate(45deg);
}
.pc-toggle[aria-expanded='true'] span:last-child {
    transform: translateY(-4px) rotate(-45deg);
}
.pc-compact .pc-panel.open {
    display: block;
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    max-height: calc(100vh - 72px);
    overflow-y: auto;
    background: var(--ground);
    border-bottom: 1px solid var(--line);
}
.pc-panel a {
    display: block;
    padding: 16px 24px;
    border-top: 1px solid var(--line);
    color: var(--body);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}
.pc-panel a:hover,
.pc-panel a.page,
.pc-panel a.pc-home {
    color: var(--accent);
}

/* ---------- small screens and large browser fonts ---------- */
.cta-row .btn {
    max-width: 100%;
    text-align: center;
    justify-content: center;
}
/* the view switchers (Front / Three-Quarter / Rear) stay on one line: on a phone the buttons get
   narrower and a long label breaks in two; on the narrowest screens and with a very large browser
   font they stack */
.switch {
    display: grid;
    grid-auto-flow: column;
    justify-content: center;
}
.table-box {
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
}
/* the model column stays in view while the table scrolls sideways */
.table-box tbody th {
    position: sticky;
    left: 0;
    z-index: 1;
    background: var(--ground);
}
@media (max-width: 40em) {
    .cta-row {
        flex-direction: column;
        align-items: stretch;
        width: 100%;
    }
    .switch button {
        padding: 0 12px;
        letter-spacing: 0.12em;
        line-height: 1.3;
    }
    .table-box tbody th {
        padding-inline: 12px;
        font-size: 1rem;
    }
}
@media (max-width: 22em) {
    .switch {
        grid-auto-flow: row;
        justify-content: stretch;
    }
    /* the review's facts (product, publication, reviewer, price): one per line */
    .facts {
        grid-template-columns: minmax(0, 1fr);
    }
    .facts div + div {
        border-left: 0;
        border-top: 1px solid var(--line);
    }
}

/* the numbered spots on the product photos are 24px: a finger gets a 44px target around each */
@media (pointer: coarse) {
    .hot::before {
        content: '';
        position: absolute;
        inset: -10px;
        border-radius: 50%;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}
