* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    /* Colors from Figma */
    --color-black: #000000;
    --color-dark-navy: #002c41;
    --color-navy: #004159;
    --color-blue: #007ac2;
    --color-dark-blue: #082036;
    --color-near-black: #231f20;
    --color-dark-brown: #282223;
    --color-medium-blue: #4495d1;
    --color-gray-dark: #53575a;
    --color-gray-medium: #939697;
    --color-light-blue: #b0cad8;
    --color-red-dark: #b11116;
    --color-gray-light: #d3d5d6;
    --color-red: #ed1c24;
    --color-gray-100: #ededed;
    --color-gray-50: #f5f5f5;
    --color-white: #ffffff;
    --color-primary-blue: #236092;

    /* Fonts from Figma */
    --font-helvetica: Helvetica, Arial, sans-serif;
    --font-helvetica-neue: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    --font-verdana: Verdana, Geneva, sans-serif;
    --font-inter: Inter, sans-serif;
}

body {
    font-family: var(--font-verdana);
    background-color: var(--color-white);
    color: var(--color-gray-dark);
    margin: 0;
    padding: 0;
}

html {
    margin: 0;
    padding: 0;
}

/* Scroll Progress */
.scroll-progress {
    position: fixed;
    top: 0;
    left: 0;
    width: 0%;
    height: 4px;
    background: linear-gradient(90deg, var(--color-red) 0%, var(--color-primary-blue) 100%);
    z-index: 9999;
    transition: width 0.1s ease-out;
}

/* Skip Link */
.skip-link {
    position: absolute;
    top: -40px;
    left: 0;
    background: var(--color-primary-blue);
    color: var(--color-white);
    padding: 10px 15px;
    text-decoration: none;
    z-index: 100;
    font-size: 14px;
}

.skip-link:focus {
    top: 0;
}

/* Container */
.container {
    width: 100%;
    margin: 0;
    padding: 0;
}

/* Header */
.header {
    margin-bottom: 40px;
}

.header-top {
    display: flex;
    align-items: center;
    padding: 20px 60px;
    gap: 20px;
    background-color: var(--color-white);
}

.header-logo {
    height: 40px;
    width: auto;
}

.header-brand {
    flex: 1;
    font-family: var(--font-helvetica);
    font-size: 14px;
    font-weight: 400;
    color: var(--color-gray-dark);
}

.header-subscribe {
    font-family: var(--font-helvetica);
    font-size: 14px;
    font-weight: 400;
    color: var(--color-dark-brown);
    text-decoration: none;
}

.header-subscribe:hover {
    color: var(--color-primary-blue);
}

/* New Logo Row */
.header-logo-row {
    display: flex;
    align-items: center;
    padding: 20px 60px;
    gap: 20px;
    background-color: var(--color-white);
}

.header-logo-main {
    height: 50px;
    width: auto;
}

.header-logo-divider {
    width: 2px;
    height: 40px;
    background-color: var(--color-gray-light);
}

.header-logo-text {
    font-family: var(--font-helvetica);
    font-size: 14px;
    font-weight: 400;
    color: var(--color-gray-dark);
    letter-spacing: 1px;
    flex: 1;
}

.header-subscribe-btn {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--font-helvetica);
    font-size: 14px;
    font-weight: 400;
    color: var(--color-near-black);
    text-decoration: none;
}

.header-subscribe-btn:hover {
    color: var(--color-primary-blue);
}

.header-subscribe-btn svg {
    width: 22px;
    height: 20px;
}

.header-hero {
    position: relative;
    width: 100%;
    overflow: hidden;
    background-color: var(--color-gray-100);
}

.hero-image {
    width: 100%;
    height: auto;
    display: block;
}

.header-content-box {
    position: absolute;
    top: 50%;
    left: 60px;
    transform: translateY(-50%);
    padding: 0;
    max-width: 600px;
    background: none;
}

.header-eyebrow {
    font-family: var(--font-helvetica-neue);
    font-size: 40px;
    font-weight: 500;
    font-style: italic;
    color: var(--color-white);
    letter-spacing: -0.8px;
    line-height: 1.2;
    margin-bottom: 0;
    text-shadow: 0 2px 4px rgba(0,0,0,0.3);
}

.header-title {
    font-family: 'Helvetica Neue Condensed Bold', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-size: 140px;
    font-weight: 700;
    font-stretch: condensed;
    color: var(--color-white);
    letter-spacing: -2.8px;
    line-height: 120px;
    margin: 0;
    text-shadow: 0 2px 4px rgba(0,0,0,0.3);
}

.header-down-arrow {
    position: absolute;
    bottom: 40px;
    right: 60px;
    cursor: pointer;
    transition: transform 0.3s ease;
    z-index: 10;
    text-decoration: none;
}

.header-down-arrow:hover {
    transform: translateY(5px);
}

/* Intro Section */
.intro-section {
    padding: 40px 60px;
    max-width: 1280px;
    margin: 0 auto 30px auto;
}

.intro-headline {
    font-family: var(--font-helvetica-neue);
    font-size: 40px;
    font-weight: 700;
    color: var(--color-primary-blue);
    line-height: 40px;
    letter-spacing: -0.4px;
    margin-bottom: 20px;
}

.intro-text {
    font-family: var(--font-helvetica-neue);
    font-size: 18px;
    font-weight: 700;
    color: var(--color-near-black);
    line-height: 22px;
}

/* Section Divider */
.section-divider {
    height: 8px;
    background-color: var(--color-primary-blue);
    margin: 20px auto;
    width: 0;
    max-width: 1280px;
    transition: width 1.2s ease;
}

.section-divider.visible {
    width: 100%;
}

.section-divider.gold {
    background-color: var(--color-red);
}

/* Section Divider Images (from Figma) */
.section-divider-img {
    display: block;
    width: auto;
    max-width: 1180px;
    height: 65px;
    margin: 0 0 0 60px;
    object-fit: contain;
    object-position: left;
}

.section-divider-img.gold {
    /* Gold striped dividers use rectangle-127 */
}

/* Survey Section */
.survey-section {
    max-width: 1280px;
    margin: 40px auto;
    padding: 40px 60px;
    text-align: center;
}

.survey-title {
    font-family: 'Helvetica Neue Condensed Bold', 'Helvetica Neue', var(--font-helvetica-neue);
    font-size: 140px;
    font-weight: 700;
    font-stretch: condensed;
    color: var(--color-red);
    line-height: 120px;
    letter-spacing: 0;
    margin-bottom: 30px;
}

.survey-subtitle {
    font-family: var(--font-helvetica-neue);
    font-size: 40px;
    font-weight: 700;
    color: var(--color-primary-blue);
    line-height: 40px;
    letter-spacing: 0;
    margin-bottom: 20px;
}

.survey-description {
    font-family: var(--font-helvetica-neue);
    font-size: 18px;
    font-weight: 400;
    color: var(--color-black);
    line-height: 22px;
    max-width: 800px;
    margin: 0 auto;
    text-align: left;
}

/* Chart Section */
.chart-section {
    margin: 40px auto;
    max-width: 1280px;
    padding: 0 60px;
}

.chart-section.full-width {
    background-color: var(--color-white);
    display: block;
}

.chart-section.full-width.bg-grey {
    background-color: #f5f5f5;
}

.chart-section.full-width .chart-inner {
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    padding: 50px 60px;
}

.chart-header {
    margin: 0 0 40px 0;
}

.section-title {
    font-family: var(--font-helvetica-neue);
    font-size: 30px;
    font-weight: 700;
    color: var(--color-near-black);
    line-height: 30px;
    margin-bottom: 10px;
}

.section-title.blue {
    color: var(--color-primary-blue);
}

/* Horizontal Bar Chart */
.horizontal-bar-container {
    display: flex;
    flex-direction: column;
    gap: 25px;
    margin: 40px 0;
}

.horizontal-bar-item {
    display: flex;
    align-items: center;
    width: 100%;
}

.horizontal-bar-visual {
    width: 0;
    height: 50px;
    transition: width 1.2s ease;
}

.horizontal-bar-visual.animate {
    width: calc(var(--bar-width) * 1%);
}

.horizontal-bar-label {
    font-family: var(--font-helvetica-neue);
    font-size: 15px;
    font-weight: 700;
    color: var(--color-near-black);
    padding: 0 15px;
    white-space: nowrap;
    min-width: 180px;
}

.horizontal-bar-divider {
    width: 4px;
    height: 50px;
    background-color: var(--color-red-dark);
}

.horizontal-bar-percentage {
    font-family: var(--font-verdana);
    font-size: 35px;
    font-weight: 700;
    color: var(--color-black);
    letter-spacing: -3.5px;
    padding-left: 15px;
    opacity: 0;
    transform: translateX(20px);
    transition: opacity 1.2s ease, transform 1.2s ease;
    min-width: 80px;
}

.horizontal-bar-percentage.animate {
    opacity: 1;
    transform: translateX(0);
}

/* Vertical Bar Chart */
.bar-container {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    margin: 60px 0 40px 0;
    gap: 50px;
    height: 520px;
}

.bar-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    width: 150px;
    cursor: pointer;
    transition: all 0.8s ease;
    background: transparent;
    border: none;
    padding: 0;
    font: inherit;
}

.bar-item:focus {
    outline: none;
}

.bar-item:focus-visible {
    outline: 3px solid var(--color-primary-blue);
    outline-offset: 5px;
}

.bar-percentage {
    font-family: var(--font-verdana);
    font-size: 45px;
    font-weight: 700;
    color: var(--color-black);
    line-height: 40px;
    letter-spacing: -4.5px;
    margin-bottom: 10px;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 1.2s ease, transform 1.2s ease;
}

.bar-percentage.animate {
    opacity: 1;
    transform: translateY(0);
}

.bar-underline {
    width: 110px;
    height: 5px;
    margin-bottom: 20px;
    opacity: 0;
    transform: scaleX(0);
    transition: opacity 1.2s ease, transform 1.2s ease;
}

.bar-underline.animate {
    opacity: 1;
    transform: scaleX(1);
}

.bar-label {
    font-family: var(--font-verdana);
    font-size: 18px;
    font-weight: 400;
    color: #53575A;
    line-height: 18px;
    margin-bottom: 15px;
    max-width: 120px;
}

.bar-visual {
    width: 110px;
    height: 0;
    transition: height 1.2s ease;
    max-height: 400px;
}

.bar-visual.animate {
    height: calc(var(--bar-height) * 6px);
}

/* Collapsed state */
.bar-item.collapsed .bar-visual {
    height: calc(var(--bar-height) * 0.8px) !important;
    opacity: 0.6;
}

.bar-item.collapsed .bar-percentage {
    opacity: 1;
    margin-bottom: 5px;
}

.bar-item.collapsed .bar-underline,
.bar-item.collapsed .bar-label {
    opacity: 0;
    height: 0;
    margin: 0;
}

/* Expanded state */
.bar-item.expanded .bar-visual {
    height: calc(var(--bar-height) * 6px) !important;
    opacity: 1;
}

.bar-item.expanded .bar-percentage,
.bar-item.expanded .bar-underline,
.bar-item.expanded .bar-label {
    opacity: 1;
}

/* Stat Highlight */
.stat-highlight {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    margin: 40px 0;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}

.stat-highlight.visible {
    opacity: 1;
    transform: translateY(0);
}

.stat-number-large {
    font-family: var(--font-verdana);
    font-size: 170px;
    font-weight: 700;
    color: var(--color-black);
    letter-spacing: -17px;
    line-height: 1;
}

.stat-label-large {
    font-family: var(--font-verdana);
    font-size: 18px;
    font-weight: 400;
    color: var(--color-gray-dark);
    max-width: 200px;
    text-align: left;
}

/* Two Column Layout */
.chart-section.two-column .chart-inner {
    display: flex;
    gap: 60px;
}

.chart-column {
    flex: 1;
}

/* Hover Reveal Stats - 3D Flip Card Effect */
.hover-reveal-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 40px;
    margin: 40px 0;
    perspective: 1000px;
}

.hover-reveal-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    cursor: pointer;
    position: relative;
}

.hover-reveal-item:focus {
    outline: 3px solid var(--color-primary-blue);
    outline-offset: 10px;
}

.hover-reveal-card {
    position: relative;
    width: 100%;
    min-height: 120px;
    transform-style: preserve-3d;
    transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.hover-reveal-item:hover .hover-reveal-card,
.hover-reveal-item:focus .hover-reveal-card,
.hover-reveal-item.active .hover-reveal-card {
    transform: rotateY(180deg);
}

.hover-reveal-default,
.hover-reveal-hover {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 120px;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

.hover-reveal-default {
    position: relative;
}

.hover-reveal-hover {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    transform: rotateY(180deg);
}

.hover-reveal-item:hover .hover-reveal-default,
.hover-reveal-item:focus .hover-reveal-default,
.hover-reveal-item.active .hover-reveal-default {
    opacity: 0;
    transform: scale(0.8);
}

.hover-reveal-item:hover .hover-reveal-hover,
.hover-reveal-item:focus .hover-reveal-hover,
.hover-reveal-item.active .hover-reveal-hover {
    opacity: 1;
    transform: scale(1);
}

.hover-reveal-percentage {
    font-family: var(--font-verdana);
    font-size: 80px;
    font-weight: 700;
    color: var(--color-near-black);
    line-height: 1;
}

.hover-reveal-answer {
    font-family: var(--font-helvetica-neue);
    font-size: 70px;
    font-weight: 700;
    line-height: 1;
}

.hover-reveal-answer.yes {
    color: var(--color-primary-blue);
}

.hover-reveal-answer.no {
    color: var(--color-red);
}

.hover-reveal-label {
    font-family: var(--font-helvetica-neue);
    font-size: 14px;
    font-weight: 400;
    color: var(--color-gray-dark);
    margin-top: 20px;
    line-height: 1.4;
    max-width: 180px;
}

/* Circular Stats */
.circular-stats-grid {
    display: flex;
    justify-content: center;
    gap: 80px;
    margin: 40px 0;
}

.circular-stat-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.circular-stat-ring {
    position: relative;
    width: 150px;
    height: 150px;
}

.circular-stat-ring svg {
    width: 100%;
    height: 100%;
    transform: rotate(-90deg);
}

.circular-stat-bg {
    fill: none;
    stroke: var(--color-gray-light);
    stroke-width: 8;
}

.circular-stat-progress {
    fill: none;
    stroke: var(--color-primary-blue);
    stroke-width: 8;
    stroke-linecap: round;
    stroke-dasharray: 339.292;
    stroke-dashoffset: 339.292;
    transition: stroke-dashoffset 1.5s ease;
}

.circular-stat-progress.animate {
    stroke-dashoffset: calc(339.292 - (339.292 * var(--progress) / 100));
}

.circular-stat-value {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-family: var(--font-verdana);
    font-size: 36px;
    font-weight: 700;
    color: var(--color-near-black);
    opacity: 0;
    transition: opacity 0.8s ease;
}

.circular-stat-value.animate {
    opacity: 1;
}

.circular-stat-label {
    font-family: var(--font-helvetica-neue);
    font-size: 14px;
    font-weight: 400;
    color: var(--color-gray-dark);
    margin-top: 20px;
    line-height: 1.4;
    max-width: 150px;
}

/* Icon Stats */
.icon-stats-grid {
    display: flex;
    justify-content: center;
    gap: 80px;
    margin: 40px 0;
}

.icon-stat-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.icon-stat-icon {
    width: 80px;
    height: 80px;
    color: var(--color-primary-blue);
    margin-bottom: 20px;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}

.icon-stat-icon.animate {
    opacity: 1;
    transform: translateY(0);
}

.icon-stat-icon svg {
    width: 100%;
    height: 100%;
}

.icon-stat-percentage {
    font-family: var(--font-verdana);
    font-size: 48px;
    font-weight: 700;
    color: var(--color-near-black);
    line-height: 1;
    margin-bottom: 10px;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.8s ease 0.2s, transform 0.8s ease 0.2s;
}

.icon-stat-percentage.animate {
    opacity: 1;
    transform: translateY(0);
}

.icon-stat-label {
    font-family: var(--font-helvetica-neue);
    font-size: 14px;
    font-weight: 400;
    color: var(--color-gray-dark);
    line-height: 1.4;
}

/* Icon Box Hover Reveal */
.icon-box-grid {
    display: flex;
    justify-content: center;
    gap: 40px;
    margin: 40px 0;
}

.icon-box-item {
    position: relative;
    width: 300px;
    height: 260px;
    background-color: #ededed;
    border-radius: 20px;
    cursor: pointer;
    overflow: hidden;
}

.icon-box-item:focus {
    outline: 3px solid var(--color-primary-blue);
    outline-offset: 5px;
}

.icon-box-default,
.icon-box-hover {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    transition: opacity 0.4s ease, transform 0.4s ease;
}

.icon-box-default {
    opacity: 1;
    transform: scale(1);
}

.icon-box-hover {
    opacity: 0;
    transform: scale(0.9);
    background-color: var(--color-white);
}

.icon-box-item:hover .icon-box-default,
.icon-box-item:focus .icon-box-default,
.icon-box-item.active .icon-box-default {
    opacity: 0;
    transform: scale(0.9);
}

.icon-box-item:hover .icon-box-hover,
.icon-box-item:focus .icon-box-hover,
.icon-box-item.active .icon-box-hover {
    opacity: 1;
    transform: scale(1);
}

.icon-box-image {
    max-width: 80%;
    max-height: 70%;
    object-fit: contain;
}

.icon-box-percentage {
    font-family: var(--font-verdana);
    font-size: 72px;
    font-weight: 700;
    color: var(--color-primary-blue);
    line-height: 1;
}

.icon-box-label {
    font-family: var(--font-helvetica-neue);
    font-size: 16px;
    font-weight: 400;
    color: var(--color-gray-dark);
    margin-top: 10px;
    text-align: center;
}

/* Line Chart */
.line-chart-container {
    width: 100%;
    height: 350px;
    margin: 20px 0;
}

.chart-subtitle {
    font-family: var(--font-helvetica-neue);
    font-size: 16px;
    font-weight: 400;
    color: var(--color-gray-dark);
    margin-top: 10px;
}

/* Chart titles in red for spot market sections */
.chart-title-red {
    font-family: var(--font-helvetica-neue);
    font-size: 40px;
    font-weight: 700;
    color: var(--color-red);
    line-height: 40px;
    letter-spacing: -0.4px;
    margin-bottom: 5px;
}

.chart-subtitle-red {
    font-family: var(--font-helvetica-neue);
    font-size: 40px;
    font-weight: 400;
    color: var(--color-red);
    line-height: 40px;
    letter-spacing: -0.4px;
    margin-top: 0;
}

.chart-title-blue {
    font-family: var(--font-helvetica-neue);
    font-size: 40px;
    font-weight: 700;
    color: var(--color-primary-blue);
    line-height: 40px;
    letter-spacing: -0.4px;
    margin-bottom: 5px;
}

.chart-subtitle-blue {
    font-family: var(--font-helvetica-neue);
    font-size: 40px;
    font-weight: 400;
    color: var(--color-primary-blue);
    line-height: 40px;
    letter-spacing: -0.4px;
    margin-top: 0;
}

.chart-description {
    font-family: var(--font-helvetica-neue);
    font-size: 18px;
    font-weight: 400;
    color: var(--color-black);
    line-height: 22px;
    margin: 20px 0;
    max-width: 900px;
}

.read-more {
    color: var(--color-primary-blue);
    text-decoration: none;
    font-weight: 700;
    font-style: italic;
}

.read-more:hover {
    text-decoration: underline;
}

/* Accordion Text Sections */
.accordion-text {
    width: 100%;
}

.read-more-toggle {
    color: var(--color-primary-blue);
    text-decoration: none;
    font-weight: 700;
    font-style: italic;
    cursor: pointer;
    transition: color 0.2s ease;
}

.read-more-toggle:hover {
    text-decoration: underline;
}

.read-more-toggle::after {
    content: ' +';
    font-style: normal;
    font-weight: 700;
}

.read-more-toggle.expanded::after {
    content: ' −';
}

.accordion-content {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.4s ease, opacity 0.3s ease, margin 0.3s ease;
    margin-top: 0;
}

.accordion-content.expanded {
    max-height: 2000px;
    opacity: 1;
    margin-top: 20px;
}

.accordion-content p {
    font-family: var(--font-verdana);
    font-size: 15px;
    color: var(--color-gray-dark);
    line-height: 1.7;
    margin-bottom: 15px;
}

.accordion-content p:last-child {
    margin-bottom: 0;
}

.article-byline {
    font-style: italic;
    color: var(--color-gray-medium);
    margin-top: 20px;
}

/* Flip Card Section */
.flip-cards-row {
    display: flex;
    justify-content: center;
    gap: 60px;
    flex-wrap: wrap;
}

.flip-card-section {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 30px;
}

.flip-card-title {
    font-family: var(--font-helvetica-neue);
    font-size: 18px;
    font-weight: 700;
    color: var(--color-primary-blue);
    text-align: center;
    max-width: 300px;
    line-height: 1.4;
}

.flip-card-header {
    text-align: center;
}

.flip-card-container {
    width: 350px;
    height: 280px;
    perspective: 1000px;
    cursor: pointer;
    overflow: hidden;
    border-radius: 20px;
    background-color: #f5f5f5;
    touch-action: pan-y;
}

/* Flip cards on grey sections should have white background */
.bg-grey .flip-card-container {
    background-color: #FFFFFF;
}

.flip-card-inner {
    position: relative;
    width: 100%;
    height: 100%;
    text-align: center;
    transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    transform-style: preserve-3d;
    border-radius: 20px;
    will-change: transform;
}

.flip-card-container:hover .flip-card-inner,
.flip-card-container:focus .flip-card-inner,
.flip-card-container.active .flip-card-inner {
    transform: rotateY(180deg);
}

/* Disable hover-triggered flip during active scrolling */
body.is-scrolling .flip-card-container:hover .flip-card-inner {
    transform: none;
}
body.is-scrolling .replacement-stat-row:hover .icon-swap-container .icon-default {
    opacity: 1;
}
body.is-scrolling .replacement-stat-row:hover .icon-swap-container .icon-hover {
    opacity: 0;
}
body.is-scrolling .replacement-stat-row:hover .large-stat-number {
    color: var(--color-gray-light);
}
body.is-scrolling .replacement-stat-row:hover .icon-swap-container.truck .icon-default.truck-icons {
    opacity: 1;
}
body.is-scrolling .replacement-stat-row:hover .icon-swap-container.truck .icon-hover.truck-icons {
    opacity: 0;
}
body.is-scrolling .replacement-stat-row:hover .icon-swap-container.trailer .icon-default.trailer-icons {
    opacity: 1;
}
body.is-scrolling .replacement-stat-row:hover .icon-swap-container.trailer .icon-hover.trailer-icons {
    opacity: 0;
}

.flip-card-front,
.flip-card-back {
    position: absolute;
    width: 100%;
    height: 100%;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    border-radius: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}

.flip-card-front {
    background-color: #f5f5f5;
}

/* Flip card with image instead of % symbol */
.flip-card-container.with-image .flip-card-front {
    padding: 20px;
}

.flip-card-image {
    max-width: 200px;
    max-height: 150px;
    object-fit: contain;
}

/* Vertical results layout for maintenance */
.flip-card-results.vertical {
    flex-direction: column;
    gap: 20px;
}

.flip-card-results.vertical .flip-result {
    flex: none;
}

.flip-result-label.blue {
    color: var(--color-primary-blue);
}

.flip-result-label.red {
    color: #ED1C24;
}

.flip-result-percentage.blue {
    color: var(--color-primary-blue);
}

.flip-result-percentage.red {
    color: #ED1C24;
}

.flip-card-symbol {
    font-family: var(--font-verdana);
    font-size: 170px;
    font-weight: 700;
    color: #ed1c24;
    letter-spacing: -17px;
    line-height: 1;
}

.flip-card-symbol.grey {
    color: var(--color-gray-light);
}

.flip-card-back {
    background-color: #f5f5f5;
    transform: rotateY(180deg);
}

.flip-card-results {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    padding: 20px;
    box-sizing: border-box;
}

.flip-result {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 10px;
}

.flip-result-divider {
    width: 1px;
    height: 60%;
    background-color: #ccc;
}

.flip-result-label {
    font-family: var(--font-helvetica-neue);
    font-size: 20px;
    font-weight: 700;
    margin-bottom: 8px;
}

.yes-result .flip-result-label {
    color: var(--color-gray-dark);
}

.no-result .flip-result-label {
    color: var(--color-gray-dark);
}

.flip-result-percentage {
    font-family: var(--font-verdana);
    font-size: 40px;
    font-weight: 700;
    line-height: 1;
}

.yes-result .flip-result-percentage {
    color: var(--color-primary-blue);
}

.no-result .flip-result-percentage {
    color: #ED1C24;
}

/* Icon Flip Card Grid */
.icon-flip-grid {
    display: flex;
    justify-content: center;
    gap: 40px;
    flex-wrap: wrap;
    margin: 40px 0;
}

.icon-flip-card {
    width: 280px;
    height: 240px;
    perspective: 1000px;
    cursor: pointer;
}

.icon-flip-inner {
    position: relative;
    width: 100%;
    height: 100%;
    text-align: center;
    transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    transform-style: preserve-3d;
}

.icon-flip-card:hover .icon-flip-inner,
.icon-flip-card:focus .icon-flip-inner,
.icon-flip-card.active .icon-flip-inner {
    transform: rotateY(180deg);
}

.icon-flip-front,
.icon-flip-back {
    position: absolute;
    width: 100%;
    height: 100%;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    border-radius: 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.icon-flip-front {
    background-color: #ededed;
}

.icon-flip-image {
    max-width: 70%;
    max-height: 60%;
    object-fit: contain;
}

.icon-flip-back {
    background-color: #fff;
    transform: rotateY(180deg);
    padding: 20px;
}

.icon-flip-percentage {
    font-family: var(--font-verdana);
    font-size: 64px;
    font-weight: 700;
    color: var(--color-primary-blue);
    line-height: 1;
}

.icon-flip-label {
    font-family: var(--font-helvetica-neue);
    font-size: 16px;
    font-weight: 400;
    color: var(--color-gray-dark);
    margin-top: 15px;
    text-align: center;
    line-height: 1.4;
}

/* Footer Red Subscribe Button */
.footer-subscribe-btn-red {
    display: block;
}

.subscribe-btn-img {
    height: 50px;
    width: auto;
}

.chart-legend {
    display: flex;
    justify-content: center;
    gap: 40px;
    margin-top: 20px;
}

.legend-item {
    display: flex;
    align-items: center;
    gap: 10px;
}

.legend-line {
    width: 30px;
    height: 3px;
    border-radius: 2px;
}

.legend-label {
    font-family: var(--font-helvetica-neue);
    font-size: 14px;
    font-weight: 400;
    color: var(--color-gray-dark);
}

/* Line chart axis styles */
.line-chart-container .axis text {
    font-family: var(--font-helvetica-neue);
    font-size: 12px;
    fill: var(--color-gray-dark);
}

.line-chart-container .axis line,
.line-chart-container .axis path {
    stroke: var(--color-gray-light);
}

.line-chart-container .grid line {
    stroke: var(--color-gray-light);
    stroke-opacity: 0.5;
    stroke-dasharray: 3,3;
}

/* Footer */
.footer-yellow-bar {
    height: 8px;
    background-color: var(--color-red);
    width: 100%;
    margin-top: 80px;
}

.footer-section {
    padding: 40px 60px;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.footer-brand {
    font-family: var(--font-helvetica);
    font-size: 14px;
    font-weight: 400;
    color: var(--color-gray-dark);
}

.footer-copyright {
    text-align: center;
    padding-top: 20px;
    border-top: 1px solid var(--color-gray-light);
}

.footer-copyright p {
    margin: 0 0 10px 0;
    font-size: 14px;
    color: var(--color-gray-dark);
}

.footer-subscribe {
    font-family: var(--font-helvetica);
    font-size: 14px;
    color: var(--color-primary-blue);
    text-decoration: none;
}

.footer-subscribe:hover {
    text-decoration: underline;
}

/* Reduced Motion */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
    }

    .section-divider {
        width: 100%;
    }

    .horizontal-bar-visual.animate {
        width: calc(var(--bar-width) * 1%);
    }

    .bar-visual.animate {
        height: calc(var(--bar-height) * 4px);
    }
}

/* Responsive */
@media (max-width: 768px) {
    .header-top {
        flex-direction: column;
        gap: 15px;
        padding: 15px 20px;
    }

    .header-subscribe-btn {
        display: none;
    }

    /* Keep header content positioned over the hero image on mobile */
    .header-hero {
        position: relative;
        min-height: 300px;
    }

    .hero-image {
        width: 100%;
        height: 100%;
        object-fit: cover;
        min-height: 300px;
    }

    .header-content-box {
        position: absolute;
        left: 20px;
        top: 50%;
        transform: translateY(-50%);
        padding: 0;
        margin: 0;
        max-width: calc(100% - 40px);
        background: none;
    }

    .header-eyebrow {
        font-size: 24px;
        line-height: 28px;
    }

    .header-title {
        font-size: 70px;
        line-height: 65px;
        letter-spacing: -1.5px;
    }

    .header-down-arrow {
        position: absolute;
        bottom: 20px;
        right: 20px;
        margin: 0;
    }

    .intro-section,
    .survey-section {
        padding: 25px 15px;
    }

    .footer-section {
        padding: 0 15px;
    }

    .survey-title {
        font-size: 48px;
        line-height: 50px;
    }

    .survey-subtitle {
        font-size: 24px;
        line-height: 28px;
    }

    .section-title {
        font-size: 20px;
        line-height: 24px;
    }

    .bar-container {
        gap: 15px;
        height: 350px;
        overflow-x: auto;
    }

    .bar-item {
        width: 80px;
        min-width: 60px;
    }

    .bar-percentage {
        font-size: 24px;
    }

    .bar-label {
        font-size: 12px;
    }

    .bar-visual {
        width: 50px;
    }

    .horizontal-bar-container {
        gap: 15px;
    }

    .horizontal-bar-visual {
        height: 35px;
    }

    .horizontal-bar-label {
        font-size: 12px;
        min-width: 100px;
        padding: 0 10px;
    }

    .horizontal-bar-divider {
        height: 35px;
        width: 3px;
    }

    .horizontal-bar-percentage {
        font-size: 20px;
        padding-left: 10px;
    }

    .stat-number-large {
        font-size: 80px;
        letter-spacing: -8px;
    }

    .stat-label-large {
        font-size: 14px;
    }

    .chart-section.two-column .chart-inner {
        flex-direction: column;
    }

    .footer-section {
        padding: 30px 20px;
    }

    .hover-reveal-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 30px;
    }

    .hover-reveal-percentage {
        font-size: 50px;
    }

    .hover-reveal-answer {
        font-size: 45px;
    }

    .hover-reveal-default,
    .hover-reveal-hover {
        min-height: 80px;
    }

    .circular-stats-grid {
        flex-wrap: wrap;
        gap: 40px;
    }

    .circular-stat-ring {
        width: 120px;
        height: 120px;
    }

    .circular-stat-value {
        font-size: 28px;
    }

    .icon-stats-grid {
        flex-wrap: wrap;
        gap: 40px;
    }

    .icon-stat-icon {
        width: 60px;
        height: 60px;
    }

    .icon-stat-percentage {
        font-size: 36px;
    }

    .line-chart-container {
        height: 250px;
    }

    .chart-legend {
        flex-wrap: wrap;
        gap: 20px;
    }

    .icon-box-grid {
        flex-wrap: wrap;
    }

    .icon-box-item {
        width: 250px;
        height: 220px;
    }

    .large-percentage-grid {
        flex-direction: column;
        gap: 40px;
    }

    .large-percentage-circle {
        width: 150px;
        height: 150px;
    }

    .large-percentage-value {
        font-size: 48px;
    }
}

/* Gray Background Sections */
.chart-section.gray-bg {
    background-color: var(--color-gray-100);
}

/* Four Column Hover Grid */
.hover-reveal-grid.four-col {
    grid-template-columns: repeat(4, 1fr);
}

/* Large Percentage Circles */
.large-percentage-grid {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: 100px;
    margin: 60px 0;
}

.large-percentage-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.large-percentage-circle {
    position: relative;
    width: 200px;
    height: 200px;
}

.large-percentage-circle svg {
    width: 100%;
    height: 100%;
    transform: rotate(-90deg);
}

.large-percentage-circle .circle-bg {
    fill: none;
    stroke: var(--color-gray-light);
    stroke-width: 8;
}

.large-percentage-circle .circle-progress {
    fill: none;
    stroke: var(--color-primary-blue);
    stroke-width: 8;
    stroke-linecap: round;
    stroke-dasharray: 339.292;
    stroke-dashoffset: calc(339.292 - (339.292 * var(--progress) / 100));
    transition: stroke-dashoffset 1.5s ease;
}

.large-percentage-value {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-family: var(--font-verdana);
    font-size: 64px;
    font-weight: 700;
    color: var(--color-near-black);
    letter-spacing: -4px;
}

.large-percentage-label {
    font-family: var(--font-helvetica-neue);
    font-size: 16px;
    font-weight: 400;
    color: var(--color-gray-dark);
    margin-top: 20px;
    line-height: 1.4;
    max-width: 180px;
}

/* Multi-column layouts with subgrid for alignment */
.three-column-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: auto auto;
    gap: 15px 40px;
    align-items: start;
}

.two-column-row {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: auto auto;
    gap: 15px 60px;
    align-items: start;
}

.column-item {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 2;
    align-items: start;
}

/* Titles at top */
.column-item .section-title {
    margin: 0;
}

.column-item .flip-card-container {
    align-self: start;
    width: 100%;
    height: 280px;
}

.column-item .large-stat-number {
    font-family: var(--font-verdana);
    font-size: 120px;
    font-weight: 700;
    color: var(--color-black);
    letter-spacing: -12px;
    line-height: 1;
    margin-top: 10px;
}

.column-item > .text-stat-list {
    margin: 20px 0 0 0;
    max-width: 100%;
}

/* Compact bar container for columns */
.bar-container.compact {
    gap: 15px;
    height: 280px;
    margin: 30px 0 20px 0;
}

.bar-container.compact .bar-item {
    width: 50px;
}

.bar-container.compact .bar-percentage {
    font-size: 28px;
    letter-spacing: -2.8px;
}

.bar-container.compact .bar-visual {
    width: 45px;
}

.bar-container.compact .bar-underline {
    width: 45px;
}

.bar-container.compact .bar-label {
    font-size: 12px;
    max-width: 60px;
}

/* Truck icons row */
.truck-icons-row {
    width: 100%;
    max-width: 350px;
    height: auto;
    margin-top: 20px;
    opacity: 0.4;
}

.truck-icons-row-full {
    width: 100%;
    max-width: 800px;
    height: auto;
    margin: 30px auto 0;
    display: block;
    opacity: 0.4;
}

/* Centered text stat list */
.text-stat-list.centered {
    max-width: 500px;
}

/* Section subtitle */
.section-subtitle {
    font-family: var(--font-helvetica-neue);
    font-size: 15px;
    font-weight: 300;
    font-style: italic;
    color: var(--color-primary-blue);
}

/* D3 Charts Container */
.d3-charts-container {
    display: flex;
    flex-direction: column;
    gap: 40px;
    margin: 30px 0;
}

.d3-charts-container.single {
    gap: 0;
}

/* Static Charts Container - for image-based charts */
.static-charts-container {
    display: flex;
    flex-direction: column;
    gap: 40px;
    margin: 30px 0;
    align-items: center;
}

.static-chart-image {
    width: 100%;
    max-width: 900px;
    height: auto;
    object-fit: contain;
}

.d3-chart-wrapper {
    width: 100%;
}

.d3-chart-wrapper.full-width {
    max-width: 100%;
}

.d3-chart-title {
    font-family: var(--font-helvetica-neue);
    font-size: 24px;
    font-weight: 700;
    color: var(--color-black);
    text-align: center;
    margin-bottom: 20px;
}

.d3-chart-legend {
    display: flex;
    justify-content: flex-end;
    gap: 30px;
    flex-wrap: wrap;
    margin-bottom: 15px;
    padding-right: 100px;
}

.d3-chart-legend .legend-item {
    display: flex;
    align-items: center;
    gap: 0;
    font-family: var(--font-helvetica-neue);
    font-size: 13px;
    color: var(--color-gray-dark);
}

.d3-chart-legend .legend-bullet {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.d3-chart-legend .legend-line-segment {
    width: 25px;
    height: 2px;
    margin-right: 8px;
}

.d3-chart-legend .legend-line {
    width: 30px;
    height: 3px;
    border-radius: 1px;
}

.d3-chart-legend .legend-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
}

.d3-chart-source {
    font-family: var(--font-helvetica-neue);
    font-size: 14px;
    color: var(--color-gray-dark);
    text-align: center;
    margin-top: 15px;
}

.line-chart-container {
    width: 100%;
    height: 350px;
    position: relative;
}

.line-chart-container svg {
    width: 100%;
    height: 100%;
}

.line-chart-container .axis text {
    font-family: var(--font-helvetica-neue);
    font-size: 11px;
    fill: var(--color-gray-dark);
}

.line-chart-container .axis line,
.line-chart-container .axis path {
    stroke: var(--color-gray-light);
}

.line-chart-container .grid line {
    stroke: var(--color-gray-light);
    stroke-opacity: 0.5;
}

.line-chart-container .chart-line {
    fill: none;
    stroke-width: 2.5;
}

.line-chart-container .end-value {
    font-family: var(--font-helvetica-neue);
    font-size: 14px;
    font-weight: 700;
}

.line-chart-container .end-value-circle {
    stroke-width: 2;
}

/* Chart images (fallback) */
.chart-image-container {
    display: flex;
    flex-direction: column;
    gap: 30px;
    margin: 20px 0;
}

.chart-image {
    width: 100%;
    height: auto;
    display: block;
}

/* Icon flip grid inside column */
.column-item .icon-flip-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    width: 100%;
    margin: 0;
}

.column-item .icon-flip-card {
    width: 100%;
    height: 200px;
}

/* Footer social links */
.footer-social-links {
    font-family: var(--font-helvetica);
    font-size: 16px;
    font-weight: 400;
    color: var(--color-black);
}

.footer-social-links a {
    color: inherit;
    text-decoration: none;
}

.footer-social-links a:hover {
    text-decoration: underline;
}

/* Disclaimer section */
.disclaimer-section {
    padding: 30px 60px;
    max-width: 1280px;
    margin: 0 auto;
}

.disclaimer-text {
    font-family: var(--font-helvetica-neue);
    font-size: 18px;
    font-weight: 400;
    color: var(--color-black);
    line-height: 22px;
    max-width: 600px;
}

/* Footer subscribe red button */
.footer-subscribe-btn-red {
    font-family: var(--font-helvetica-neue);
    font-size: 14px;
    font-weight: 700;
    color: var(--color-white);
    background-color: #d32f2f;
    padding: 10px 30px;
    text-decoration: none;
    text-transform: uppercase;
}

.footer-subscribe-btn-red:hover {
    background-color: #b71c1c;
}

/* Grey Box Container */
.grey-box {
    background: #F5F5F5;
    border-radius: 20px;
    padding: 30px 25px;
    width: 100%;
    min-height: 280px;
    display: flex;
    align-items: center;
}

/* Grey boxes in columns - fixed height to match flip cards */
.column-item .grey-box {
    align-self: start;
    width: 100%;
    height: 280px;
    min-height: 280px;
}

/* On grey background sections, boxes should be white */
.bg-grey .grey-box {
    background: #FFFFFF;
}

/* Flip cards on grey sections should be white */
.bg-grey .flip-card-front,
.bg-grey .flip-card-back {
    background: #FFFFFF;
}

.grey-box.with-image {
    position: relative;
    padding-left: 160px;
}

.grey-box .box-truck-image {
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
    width: 130px;
    height: auto;
}

.grey-box .box-trailer-image {
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
    width: 130px;
    height: auto;
}

.grey-box .text-stat-list {
    margin: 0;
    max-width: 100%;
}

.text-stat-list.dark-blue .text-stat-label,
.text-stat-list.dark-blue .text-stat-value {
    color: #004159;
}

/* Column with truck icon layout */
.column-content-with-icon {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    margin-top: 20px;
}

.column-truck-icon {
    width: 100px;
    height: auto;
    flex-shrink: 0;
}

.column-content-with-icon .text-stat-list {
    margin: 0;
    flex: 1;
}

/* Large stats row - two big numbers side by side */
.large-stats-row {
    gap: 80px;
}

.large-stat-column {
    text-align: center;
}

.large-stat-column .section-title {
    text-align: center;
    margin-bottom: 20px;
}

.large-stat-column .large-stat-number {
    font-family: var(--font-verdana);
    font-size: 170px;
    font-weight: 700;
    color: var(--color-black);
    letter-spacing: -17px;
    line-height: 1;
}

/* Text Stat List - Dotted Leader Style */
.text-stat-list {
    display: flex;
    flex-direction: column;
    gap: 0;
    max-width: 400px;
    margin: 20px auto 0;
}

.text-stat-item {
    display: flex;
    align-items: baseline;
    font-family: var(--font-helvetica-neue);
    font-size: 15px;
    font-weight: 700;
    color: var(--color-near-black);
    line-height: 30px;
}

.text-stat-label {
    flex-shrink: 0;
}

.text-stat-dots {
    flex: 1;
    border-bottom: 2px dotted var(--color-black);
    margin: 0 5px;
    margin-bottom: 5px;
}

.text-stat-value {
    flex-shrink: 0;
    font-weight: 400;
}

/* Large Stat Row - Two numbers side by side */
.large-stat-row {
    display: flex;
    justify-content: center;
    gap: 100px;
    align-items: flex-start;
}

.large-stat-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    max-width: 300px;
}

.large-stat-number {
    font-family: var(--font-verdana);
    font-size: 120px;
    font-weight: 700;
    color: var(--color-black);
    letter-spacing: -12px;
    line-height: 1;
}

.large-stat-number.blue {
    color: var(--color-primary-blue);
}

.large-stat-number.red {
    color: var(--color-red);
}

.large-stat-number-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 200px;
}

.large-stat-number-container .truck-row-icon {
    width: 100%;
    max-width: 400px;
    height: auto;
    margin-bottom: 20px;
}

/* Maintenance stats */
.maintenance-stats {
    display: flex;
    flex-direction: column;
    gap: 20px;
    align-items: center;
    padding: 40px 20px;
}

.maintenance-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
}

.maintenance-label {
    font-family: var(--font-verdana);
    font-size: 18px;
    font-weight: 400;
    color: var(--color-black);
}

.maintenance-value {
    font-family: var(--font-verdana);
    font-size: 80px;
    font-weight: 700;
    letter-spacing: -8px;
}

.maintenance-value.blue {
    color: var(--color-primary-blue);
}

.maintenance-value.red {
    color: var(--color-red);
}

/* Icon flip column */
.icon-flip-column {
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Section title colors */
.section-title.red {
    color: var(--color-red);
}

/* Wide grey box for full width content */
.grey-box.wide {
    max-width: 800px;
    margin: 0 auto;
}

/* Replacement stat row - horizontal layout */
.replacement-stat-row {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 15px;
    padding: 10px 0;
    cursor: pointer;
    touch-action: pan-y;
}

.truck-row-icon-horizontal {
    height: 30px;
    width: auto;
    max-width: 350px;
    transition: opacity 0.3s ease, filter 0.3s ease;
}

.truck-row-icon-horizontal.trailer {
    height: 28px;
    max-width: 300px;
}

.replacement-stat-row .large-stat-number {
    font-size: 60px;
    font-weight: 700;
    letter-spacing: -3px;
    line-height: 1;
    color: var(--color-gray-light);
    transition: color 0.3s ease;
}

/* Icon swap container for hover effect */
.icon-swap-container {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.icon-swap-container img {
    transition: opacity 0.3s ease;
}

.icon-swap-container .icon-default {
    opacity: 1;
}

.icon-swap-container .icon-hover {
    position: absolute;
    left: 0;
    top: 0;
    opacity: 0;
}

/* Trailer icons row styling */
.icon-swap-container.trailer {
    height: 45px;
}

.icon-swap-container.trailer .trailer-icons {
    display: flex;
    align-items: center;
    gap: 4px;
    transition: opacity 0.3s ease;
}

.icon-swap-container.trailer .icon-default.trailer-icons {
    opacity: 1;
}

.icon-swap-container.trailer .icon-hover.trailer-icons {
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    opacity: 0;
}

.icon-swap-container.trailer .single-trailer-filled,
.icon-swap-container.trailer .single-trailer-unfilled {
    height: 35px;
    width: auto;
}

/* Hover state for trailer icons */
.replacement-stat-row:hover .icon-swap-container.trailer .icon-default.trailer-icons {
    opacity: 0;
}

.replacement-stat-row:hover .icon-swap-container.trailer .icon-hover.trailer-icons {
    opacity: 1;
}

/* Hover state - swap icons and number turns blue */
.replacement-stat-row:hover .icon-swap-container .icon-default {
    opacity: 0;
}

.replacement-stat-row:hover .icon-swap-container .icon-hover {
    opacity: 1;
}

.replacement-stat-row:hover .large-stat-number {
    color: var(--color-primary-blue);
}

.replacement-stat-column .large-stat-number {
    font-size: 100px;
    letter-spacing: -10px;
}

/* Truck icons row styling */
.icon-swap-container.truck {
    height: 45px;
}

.icon-swap-container.truck .truck-icons {
    display: flex;
    align-items: center;
    gap: 4px;
    transition: opacity 0.3s ease;
}

.icon-swap-container.truck .icon-default.truck-icons {
    opacity: 1;
}

.icon-swap-container.truck .icon-hover.truck-icons {
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    opacity: 0;
}

.icon-swap-container.truck .single-truck-filled {
    height: 35px;
    width: auto;
}

.icon-swap-container.truck .truck-group-unfilled {
    height: 35px;
    width: auto;
}

/* Hover state for truck icons */
.replacement-stat-row:hover .icon-swap-container.truck .icon-default.truck-icons {
    opacity: 0;
}

.replacement-stat-row:hover .icon-swap-container.truck .icon-hover.truck-icons {
    opacity: 1;
}

/* Active state (touch/tap) - mirrors hover for mobile */
.replacement-stat-row.active .icon-swap-container .icon-default {
    opacity: 0;
}

.replacement-stat-row.active .icon-swap-container .icon-hover {
    opacity: 1;
}

.replacement-stat-row.active .large-stat-number {
    color: var(--color-primary-blue);
}

.replacement-stat-row.active .icon-swap-container.trailer .icon-default.trailer-icons {
    opacity: 0;
}

.replacement-stat-row.active .icon-swap-container.trailer .icon-hover.trailer-icons {
    opacity: 1;
}

.replacement-stat-row.active .icon-swap-container.truck .icon-default.truck-icons {
    opacity: 0;
}

.replacement-stat-row.active .icon-swap-container.truck .icon-hover.truck-icons {
    opacity: 1;
}

/* Inner divider for replacement section */
.section-inner-divider {
    width: 100%;
    height: 1px;
    background-color: #ccc;
    margin: 15px 0;
}

/* Two column row - tight spacing */
.two-column-row-tight {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 40px;
    align-items: start;
}

.column-item.narrow {
    max-width: 280px;
}

.column-item.wide {
    flex: 1;
}

/* Small flip card */
.flip-card-container.small {
    height: 180px;
    max-width: 220px;
}

/* Replacement row single - for trailer replacement */
.replacement-row-single {
    padding-left: 320px;
}

/* Parts Online Section Layout */
.parts-online-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 40px;
}

.parts-online-left {
    flex: 0 0 280px;
}

.parts-online-icons {
    display: flex;
    gap: 30px;
    align-items: center;
}

/* YES/NO Stats */
.yes-no-stats {
    display: flex;
    gap: 30px;
    margin-top: 20px;
}

.yes-no-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.yes-no-label {
    font-family: var(--font-verdana);
    font-size: 16px;
    font-weight: 700;
}

.yes-no-label.blue {
    color: var(--color-primary-blue);
}

.yes-no-label.red {
    color: var(--color-red);
}

.yes-no-value {
    font-family: var(--font-verdana);
    font-size: 70px;
    font-weight: 700;
    letter-spacing: -7px;
    line-height: 1;
}

.yes-no-value.blue {
    color: var(--color-primary-blue);
}

.yes-no-value.red {
    color: var(--color-red);
}

/* Icon box static (no flip) */
.icon-box-static {
    background: #FFFFFF;
    border-radius: 20px;
    padding: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 150px;
    min-height: 150px;
}

.icon-box-static .icon-box-image {
    max-width: 120px;
    max-height: 120px;
}

/* Market conditions row */
.market-conditions-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 40px;
    margin-top: 60px;
}

.market-conditions-left {
    flex: 0 0 350px;
}

.icon-with-flip {
    margin-top: 20px;
}

.market-icon {
    max-width: 200px;
    height: auto;
}

.disclaimer-right {
    flex: 1;
    display: flex;
    align-items: center;
}

.disclaimer-text-inline {
    font-family: var(--font-helvetica-neue);
    font-size: 14px;
    color: var(--color-gray-dark);
    line-height: 1.6;
}

/* Tariffs + Replacement Layout */
.tariffs-replacement-layout {
    display: grid;
    grid-template-columns: 350px 1fr;
    gap: 60px;
    align-items: start;
}

.tariffs-left {
    width: 350px;
}

.tariffs-left .section-title {
    font-size: 30px;
    line-height: 30px;
    margin-bottom: 20px;
}

.tariffs-left .flip-card-container {
    width: 350px;
    height: 280px;
    margin: 0;
}

.tariffs-left .flip-card-image {
    max-width: 200px;
    max-height: 200px;
}

/* Ballot box image in tariffs flip card */
.tariffs-left .flip-card-image.ballot-box {
    max-width: 180px;
    max-height: 180px;
}

/* Tariffs flip card back styling */
.tariffs-left .flip-card-back .flip-card-results {
    padding: 20px;
}

.tariffs-left .flip-result-label {
    font-size: 20px;
    margin-bottom: 8px;
}

.tariffs-left .flip-result-percentage {
    font-size: 40px;
}

.replacement-right {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.replacement-item {
    padding: 20px 0;
}

.replacement-item .section-title {
    font-size: 30px;
    line-height: 30px;
    margin-bottom: 15px;
}

.trailer-replacement-row {
    padding-left: 340px;
}

/* Fuel icons container */
.fuel-icons-container {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 40px 20px;
}

.fuel-icon-item {
    display: flex;
    align-items: center;
    justify-content: center;
}

.fuel-icon {
    width: auto;
    height: 80px;
    max-width: 300px;
}

.large-stat-question {
    font-family: var(--font-helvetica-neue);
    font-size: 18px;
    font-weight: 400;
    color: var(--color-gray-dark);
    margin-top: 20px;
    line-height: 1.4;
}

/* Bar container variations */
.bar-container-3 {
    max-width: 600px;
    margin: 0 auto;
}

.bar-container-5 .bar-item {
    flex: 1;
}

/* Updated Footer - Matching Figma */
.footer-section {
    background-color: var(--color-white);
    padding: 0;
}

.footer-divider {
    width: 100%;
    height: auto;
    display: block;
}

.footer-subscribe-row {
    display: flex;
    justify-content: center;
    padding: 25px 0;
}

.footer-subscribe-btn {
    display: inline-block;
    background-color: var(--color-red);
    color: var(--color-white);
    font-family: var(--font-helvetica);
    font-size: 18px;
    font-weight: 700;
    text-decoration: none;
    padding: 18px 50px;
    border-radius: 30px;
    transition: background-color 0.2s ease;
}

.footer-subscribe-btn:hover {
    background-color: #c41a1a;
}

.footer-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding: 15px 100px 40px;
    box-sizing: border-box;
}

.footer-logo {
    height: 70px;
    width: auto;
}

.footer-social-links {
    font-family: var(--font-helvetica);
    font-size: 14px;
    font-weight: 400;
    color: var(--color-black);
    text-align: right;
    letter-spacing: 0;
    line-height: normal;
}

/* Mobile adjustments for new sections */
@media (max-width: 768px) {
    .text-stat-list {
        max-width: 100%;
        padding: 0;
    }

    .text-stat-item {
        font-size: 13px;
        line-height: 26px;
    }

    .large-stat-row {
        flex-direction: column;
        gap: 40px;
        align-items: center;
    }

    .large-stat-number {
        font-size: 100px;
        letter-spacing: -10px;
    }

    .large-stat-question {
        font-size: 14px;
    }

    .bar-container-3 {
        max-width: 100%;
    }

    .hover-reveal-grid.four-col {
        grid-template-columns: repeat(2, 1fr);
    }

    .footer-section {
        padding: 0;
    }

    .footer-subscribe-row {
        padding: 30px 20px;
    }

    .footer-subscribe-btn {
        padding: 15px 40px;
        font-size: 16px;
    }

    .footer-content {
        flex-direction: column;
        gap: 20px;
        text-align: center;
        padding: 20px;
    }

    .footer-logo {
        height: 50px;
    }

    .footer-social-links {
        text-align: center;
        font-size: 12px;
    }

    /* Three-column layout: Stack vertically on mobile, full width */
    .three-column-row {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
        gap: 30px;
        padding: 0;
    }

    /* Reset subgrid behavior on mobile */
    .three-column-row .column-item {
        grid-row: auto;
        display: flex;
        flex-direction: column;
        gap: 12px;
    }

    .two-column-row {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
        gap: 30px;
        padding: 0;
    }

    .two-column-row .column-item {
        grid-row: auto;
        display: flex;
        flex-direction: column;
        gap: 12px;
    }

    .column-item .large-stat-number {
        font-size: 80px;
        letter-spacing: -8px;
    }

    /* Flip cards on mobile - full width */
    .column-item .flip-card-container,
    .flip-card-container {
        width: 100%;
        max-width: none;
        height: 250px;
        margin: 0;
        border-radius: 15px;
    }

    .column-item .icon-flip-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 15px;
    }

    .column-item .icon-flip-card {
        height: 160px;
    }

    /* Grey boxes - auto height on mobile, full width */
    .grey-box {
        min-height: auto;
        height: auto;
        padding: 20px 15px;
        border-radius: 15px;
    }

    .column-item .grey-box {
        height: auto;
        min-height: auto;
    }

    /* Grey box with truck/trailer image - stack vertically */
    .grey-box.with-image {
        padding: 20px 15px;
        flex-direction: column;
        align-items: center;
        gap: 15px;
    }

    .grey-box .box-truck-image,
    .grey-box .box-trailer-image {
        position: static;
        transform: none;
        width: 100px;
        margin-bottom: 5px;
    }

    .bar-container.compact {
        height: 240px;
        gap: 10px;
    }

    .bar-container.compact .bar-percentage {
        font-size: 20px;
    }

    .bar-container.compact .bar-item {
        width: 40px;
    }

    .bar-container.compact .bar-visual {
        width: 35px;
    }

    .chart-image-container {
        gap: 20px;
    }

    /* Tariffs + Replacement Layout mobile */
    .tariffs-replacement-layout {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .tariffs-left {
        width: 100%;
    }

    .tariffs-left .section-title {
        font-size: 22px;
        line-height: 26px;
    }

    .tariffs-left .flip-card-container {
        width: 100%;
        max-width: none;
        margin: 0;
    }

    .replacement-right {
        width: 100%;
    }

    .replacement-item .section-title {
        font-size: 20px;
        line-height: 24px;
    }

    /* Truck/trailer replacement section - horizontal on mobile */
    .replacement-stat-row {
        flex-direction: row;
        flex-wrap: nowrap;
        gap: 15px;
        align-items: center;
        justify-content: center;
    }

    .replacement-stat-row .large-stat-number {
        font-size: 48px;
        letter-spacing: -3px;
    }

    .icon-swap-container.truck,
    .icon-swap-container.trailer {
        height: auto;
        max-width: 100%;
        width: 100%;
    }

    .icon-swap-container.truck .single-truck-filled,
    .icon-swap-container.truck .truck-group-unfilled {
        height: 20px;
    }

    .icon-swap-container.trailer .single-trailer-filled,
    .icon-swap-container.trailer .single-trailer-unfilled {
        height: 20px;
    }

    .icon-swap-container.truck .truck-icons,
    .icon-swap-container.trailer .trailer-icons {
        gap: 2px;
        flex-wrap: nowrap;
        justify-content: center;
    }

    .replacement-item {
        padding: 15px 0;
    }

    .section-inner-divider {
        margin: 20px 0;
    }

    /* Flip card symbol mobile */
    .flip-card-symbol {
        font-size: 100px;
        letter-spacing: -10px;
    }

    /* Flip card results mobile */
    .flip-result-percentage {
        font-size: 36px;
    }

    .flip-result-label {
        font-size: 16px;
    }

    /* Dividers mobile */
    .section-divider-img {
        height: 35px;
        margin: 0 0 0 20px;
        max-width: calc(100% - 20px);
    }

    .section-divider {
        height: 5px;
        margin: 15px auto;
    }

    .footer-divider {
        height: auto;
        max-height: 40px;
    }

    /* D3 Chart Legend - horizontal on mobile */
    .d3-chart-legend {
        justify-content: center;
        padding-right: 0;
        gap: 12px;
        flex-wrap: wrap;
        margin-bottom: 10px;
    }

    .d3-chart-legend .legend-item {
        font-size: 12px;
    }

    /* Chart sections - remove 60px padding on mobile */
    .chart-section {
        padding: 0 15px;
        margin: 25px auto;
    }

    .chart-section.full-width .chart-inner {
        padding: 20px 0;
    }

    /* Minimal padding on text elements within */
    .chart-section .chart-header,
    .chart-section .accordion-text,
    .chart-section .chart-description {
        padding-left: 0;
        padding-right: 0;
    }

    /* Line chart container mobile - BIGGER and scrollable */
    .line-chart-container {
        height: 350px;
        width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
    }

    .line-chart-container svg {
        min-width: 600px;
        height: 350px;
    }

    /* Static chart images - full screen width on mobile */
    .static-chart-image {
        width: 100vw;
        max-width: 100vw;
        height: auto;
        min-height: 250px;
        object-fit: contain;
        margin-left: 0;
        margin-right: 0;
    }

    .static-charts-container {
        gap: 30px;
        margin: 20px 0;
        padding: 0;
        width: 100%;
    }

    /* D3 charts container mobile */
    .d3-charts-container {
        gap: 30px;
        margin: 20px 0;
        padding: 0;
    }

    .d3-chart-wrapper {
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        padding: 0;
    }

    .d3-chart-wrapper.full-width {
        overflow-x: auto;
    }

    /* D3 chart title and source - no extra padding needed since parent has it */
    .d3-chart-title,
    .d3-chart-source {
        padding-left: 0;
        padding-right: 0;
    }

    /* Chart titles mobile */
    .chart-title-red,
    .chart-title-blue {
        font-size: 28px;
        line-height: 32px;
    }

    .chart-subtitle-red,
    .chart-subtitle-blue {
        font-size: 22px;
        line-height: 26px;
    }

    /* D3 chart title mobile */
    .d3-chart-title {
        font-size: 18px;
    }

    /* Intro headline mobile */
    .intro-headline {
        font-size: 28px;
        line-height: 32px;
    }

    /* Survey section mobile */
    .survey-title {
        font-size: 60px;
        line-height: 58px;
    }

    .survey-subtitle {
        font-size: 28px;
        line-height: 32px;
    }

    /* Flip card image sizing */
    .flip-card-image {
        max-width: 140px;
        max-height: 120px;
    }

    /* Ballot box image mobile */
    .tariffs-left .flip-card-image.ballot-box,
    .flip-card-image.ballot-box {
        max-width: 140px;
        max-height: 140px;
    }

    /* Section titles in columns */
    .column-item .section-title,
    .section-title {
        font-size: 20px;
        line-height: 24px;
    }

    /* Disclaimer column - full width on mobile */
    .disclaimer-column {
        order: 1;
    }

    .disclaimer-text-inline {
        font-size: 13px;
        text-align: center;
    }
}

/* Extra small mobile (under 480px) */
@media (max-width: 480px) {
    .header-top {
        padding: 15px;
    }

    .header-brand {
        font-size: 11px;
        text-align: center;
    }

    /* Keep header content over hero on extra small */
    .header-hero {
        min-height: 250px;
    }

    .hero-image {
        min-height: 250px;
    }

    .header-content-box {
        left: 15px;
        max-width: calc(100% - 30px);
    }

    .header-title {
        font-size: 56px;
        line-height: 52px;
    }

    .header-eyebrow {
        font-size: 20px;
    }

    .intro-section,
    .survey-section {
        padding: 20px 10px;
    }

    .chart-section {
        padding: 0 10px;
    }

    .chart-section.full-width .chart-inner {
        padding: 15px 0;
    }

    .survey-title {
        font-size: 48px;
        line-height: 46px;
    }

    .survey-subtitle {
        font-size: 22px;
        line-height: 26px;
    }

    .intro-headline {
        font-size: 24px;
        line-height: 28px;
    }

    .chart-title-red,
    .chart-title-blue {
        font-size: 24px;
        line-height: 28px;
    }

    .chart-subtitle-red,
    .chart-subtitle-blue {
        font-size: 18px;
        line-height: 22px;
    }

    /* Bar container on very small screens */
    .bar-container {
        gap: 8px;
        height: 300px;
        padding: 0 5px;
    }

    .bar-item {
        width: 45px;
        min-width: 40px;
    }

    .bar-percentage {
        font-size: 20px;
        letter-spacing: -2px;
    }

    .bar-label {
        font-size: 10px;
        line-height: 12px;
    }

    .bar-visual {
        width: 40px;
    }

    .bar-underline {
        width: 40px;
    }

    /* Flip cards extra small */
    .flip-card-container {
        height: 220px;
    }

    .flip-card-symbol {
        font-size: 80px;
        letter-spacing: -8px;
    }

    .flip-result-percentage {
        font-size: 30px;
    }

    /* Text stat items tighter */
    .text-stat-item {
        font-size: 12px;
        line-height: 24px;
    }

    /* Truck/trailer icons smaller on extra small */
    .icon-swap-container.truck .single-truck-filled,
    .icon-swap-container.truck .truck-group-unfilled,
    .icon-swap-container.trailer .single-trailer-filled,
    .icon-swap-container.trailer .single-trailer-unfilled {
        height: 16px;
    }

    .replacement-stat-row .large-stat-number {
        font-size: 40px;
        letter-spacing: -2px;
    }

    /* Grey box images smaller */
    .grey-box .box-truck-image,
    .grey-box .box-trailer-image {
        width: 80px;
    }

    /* D3 chart legend very small */
    .d3-chart-legend {
        gap: 8px;
    }

    .d3-chart-legend .legend-item {
        font-size: 10px;
    }

    .d3-chart-legend .legend-line-segment {
        width: 18px;
        margin-right: 5px;
    }

    /* Line charts on extra small - ensure scrollable and visible */
    .line-chart-container {
        height: 320px;
        min-height: 320px;
    }

    .line-chart-container svg {
        min-width: 550px;
        height: 320px;
    }

    /* Static chart images on extra small - full width */
    .static-chart-image {
        width: 100vw;
        max-width: 100vw;
        min-height: 220px;
    }

    /* Footer smaller */
    .footer-subscribe-btn {
        padding: 12px 30px;
        font-size: 14px;
    }

    .footer-logo {
        height: 40px;
    }

    .footer-social-links {
        font-size: 10px;
    }
}
