@media (max-width: 991.98px) {
  .sol-page footer .hawk-w-cap-1080 {
    width: 100%;
    max-width: 100%;
  }

  .sol-page footer .sol-footer__layout {
    flex-direction: column;
    align-items: stretch;
    gap: 1.5rem;
  }

  .sol-page footer .sol-footer__brand {
    max-width: 100%;
  }

  .sol-page footer .sol-footer__brand .d-flex.align-items-center.flex-wrap.gap-2 {
    max-width: 100%;
  }

  .sol-page footer .sol-footer__brand .d-flex.align-items-center.flex-wrap.gap-2 img {
    max-width: min(156px, 42vw);
    width: auto;
    height: auto;
  }

  .sol-page footer .sol-footer__brand .hawk-c-body {
    max-width: 100%;
  }

  .sol-page footer .sol-footer__contact-wrap {
    flex-grow: 0;
    margin-top: 0;
  }

  .sol-page footer .sol-footer__contact-col {
    justify-content: flex-start;
    align-items: flex-start;
    width: 100%;
    max-width: 100%;
  }

  .sol-page footer .sol-footer__contact {
    width: 100%;
    max-width: 100%;
    min-height: 0;
  }
}

@media (max-width: 1023.98px) {
  /* Chỉ dùng header mobile từ partial — ẩn block desktop trùng (pt-3/pb-3) */
  body.hawk-ff-bvp.sol-page > .hawk-header-sticky {
    display: none !important;
  }

  body.hawk-ff-bvp.sol-page > #main-content,
  body.hawk-ff-bvp.sol-page > #main-content.menu-scrolled {
    padding-top: var(--sol-mobile-header-offset);
  }

  body.hawk-ff-bvp.sol-page .header.small-screen {
    padding-top: calc(0.5rem + env(safe-area-inset-top, 0px));
  }
}

@media (min-width: 992px) {
  body.hawk-ff-bvp.sol-page {
    --sol-header-height: 80px;
  }
}

@media (min-width: 992px) {
  .sol-hero__inner > .row {
    justify-content: center;
    align-items: center;
    width: 100%;
    max-width: var(--sol-content-max);
    margin-left: auto;
    margin-right: auto;
  }

  .sol-hero .col-lg-6 {
    flex: 0 1 auto;
    width: auto;
    min-width: 0;
  }

  .sol-hero .col-lg-6:first-child {
    flex: 1 1 0;
    width: auto;
    max-width: none;
  }

  .sol-hero .col-lg-6:last-child {
    flex: 1 1 0;
    width: auto;
    max-width: none;
    padding-left: 0;
    padding-right: 0;
  }
}

@media (min-width: 1440px) {
  .sol-hero .col-lg-6:first-child {
    flex: 0 1 462px;
    width: 462px;
    max-width: 462px;
  }

  .sol-hero .col-lg-6:last-child {
    flex: 0 1 560px;
    width: 560px;
    max-width: 560px;
  }
}

@media (min-width: 1440px) {
  .sol-video-sec {
    padding-top: 112px;
    padding-bottom: 112px;
  }
}

@media (max-width: 767.98px) {
  .sol-video-sec {
    padding: 3rem 0 3.5rem;
  }

  .sol-video-player {
    border-radius: 16px;
  }

  .sol-video-player__play {
    width: 56px;
    height: 56px;
  }

  .sol-video-player__play-icon {
    margin-left: 3px;
    border-width: 9px 0 9px 15px;
  }
}

@media (min-width: 1440px) {
  .sol-problems {
    padding-top: 112px;
    padding-bottom: 112px;
  }
}

@media (max-width: 575.98px) {
  .sol-problems {
    padding: 3rem 0 3.5rem;
  }

  .sol-beam__avatar {
    width: 80px;
    height: 80px;
  }

  .sol-beam__node--dxf { left: 4%; top: 38%; }
  .sol-beam__node--pdf { left: 96%; top: 38%; }
  .sol-beam__node--email { left: 14%; top: 84%; }
  .sol-beam__node--folder { left: 86%; top: 84%; }
}

@media (min-width: 1440px) {
  .sol-features {
    padding-top: 112px;
    padding-bottom: 112px;
  }
}

@media (min-width: 992px) {
  .sol-features #sol-feature-intake,
  .sol-features #sol-feature-doc,
  .sol-features #sol-feature-pricing,
  .sol-features #sol-feature-offer,
  .sol-features .sol-feature-row {
    display: grid;
    align-items: center;
    width: 100%;
    max-width: var(--sol-content-max);
    height: auto;
    min-height: var(--sol-feature-viz-h);
    margin-left: auto;
    margin-right: auto;
    gap: clamp(24px, 4.5vw, 64px);
    --bs-gutter-x: 0;
    --bs-gutter-y: 0;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .sol-features .sol-feature-row > .col-lg-6 {
    width: auto;
    max-width: none;
    flex: none;
    padding: 0;
    min-width: 0;
    height: auto;
  }
}

@media (min-width: 1440px) {
  .sol-features #sol-feature-intake,
  .sol-features #sol-feature-doc,
  .sol-features #sol-feature-pricing,
  .sol-features #sol-feature-offer,
  .sol-features .sol-feature-row {
    width: var(--sol-content-max);
    max-width: var(--sol-content-max);
    height: 400px;
    min-height: 400px;
    gap: 64px;
  }

  .sol-features #sol-feature-intake,
  .sol-features #sol-feature-pricing,
  .sol-features .sol-feature-row:not(.sol-feature-row--doc):not(.sol-feature-row--offer) {
    grid-template-columns: 492px 524px;
  }

  .sol-features #sol-feature-doc,
  .sol-features #sol-feature-offer,
  .sol-features .sol-feature-row--doc,
  .sol-features .sol-feature-row--offer {
    grid-template-columns: 524px 492px;
  }

  .sol-features .sol-feature-row > .col-lg-6 {
    height: 100%;
  }
}

@media (min-width: 1440px) {
  .sol-how__grid {
    grid-template-columns: repeat(3, 318px);
    column-gap: 64px;
    row-gap: 64px;
    width: 1082px;
    max-width: 1082px;
  }

  .sol-how__step article {
    width: 318px;
  }
}

@media (max-width: 991.98px) {
  .sol-why__inner > .row {
    --bs-gutter-x: 0;
    --bs-gutter-y: 0;
    row-gap: 1.5rem;
  }
}

@media (min-width: 992px) {
  .sol-why__inner > .row {
    --bs-gutter-x: 0;
    --bs-gutter-y: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: clamp(32px, 8vw, 112px);
    row-gap: 0;
    align-items: start;
  }

  .sol-why__inner > .row > .col-lg-6 {
    width: auto;
    max-width: none;
    flex: none;
    min-width: 0;
  }
}

@media (min-width: 1440px) {
  .sol-why__inner > .row {
    column-gap: 112px;
  }
}

@media (min-width: 1440px) {
  .sol-eco__inner > .row {
    min-height: 480px;
    max-height: none;
    overflow: visible;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sol-eco__bubble {
    animation: none !important;
  }

  .sol-eco__bubble.is-exiting,
  .sol-eco__bubble.is-entering.is-active,
  .sol-eco__bubble.is-preparing {
    animation: none !important;
    opacity: 1;
    transform: translate3d(-50%, -50%, 0);
  }

  .sol-eco__bubble.is-active:not(.is-entering):not(.is-exiting) .sol-eco__bubble-card {
    animation: none;
  }

  .sol-faq__answer {
    transition: none;
  }

  .sol-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sol-skel-shiny::after {
    animation: none;
    opacity: 0.35;
  }
}

@media (max-width: 575.98px) {
  .sol-cta-demo {
    min-height: 300px;
    padding: 2.5rem 1rem;
  }

  .sol-cta-demo__content {
    gap: 24px;
    min-height: 0;
  }

  .sol-faq {
    padding: 3rem 0 4rem;
  }

  .sol-features__header,
  .sol-how__header,
  .sol-why__header,
  .sol-faq__header {
    margin-bottom: 2rem;
  }

  .sol-faq__question {
    font-size: 0.98rem;
  }

  .sol-faq__item {
    padding: 0.3rem 0.85rem 0.55rem;
  }

  .sol-eco {
    padding: 3rem 0 4rem;
  }

  .sol-eco__cloud {
    position: static;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.15rem 0.85rem;
    min-height: 0;
    height: auto;
    max-height: none;
    padding-top: 0.5rem;
  }

  .sol-eco__bubble {
    position: static;
    transform: none;
    animation: none;
    display: flex;
    justify-content: center;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto;
  }

  .sol-eco__bubble--soft {
    opacity: 1;
  }

  .sol-eco__bubble--soft .sol-eco__bubble-card {
    transform: none;
  }

  .sol-eco__bubble-card {
    width: min(100%, 118px);
  }

  .sol-why__points {
    gap: 24px;
  }

  .sol-why__form-card {
    max-width: 100%;
    min-height: 0;
    padding: 6px;
  }

  .sol-why__form-grid {
    grid-template-columns: 1fr;
  }

  .sol-why__field--full {
    grid-column: 1;
  }

  .sol-how__grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .sol-how__step:nth-child(n) {
    grid-column: auto;
    grid-row: auto;
  }

  .sol-how__step article {
    align-items: center;
    text-align: center;
    margin: 0 auto;
  }

  .sol-features {
    padding: 3rem 0 4rem;
  }

  /* Viz responsive → solution-viz.css */
}

@media (min-width: 1068px) {
  .sol-stats__row {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    justify-content: center;
    align-items: flex-start;
    column-gap: clamp(24px, 5vw, 71px);
    row-gap: 40px;
  }
}

@media (min-width: 1068px) {
  .sol-stats .row > .col-6.col-lg-3 {
    width: auto;
    max-width: none;
  }
}

@media (max-width: 1067.98px) {
  .sol-stats__row {
    padding-top: 3rem;
    padding-bottom: 3rem;
  }

  .sol-stat {
    width: 100%;
    max-width: min(216.75px, 100%);
    height: auto;
    min-height: 115px;
  }

  .sol-stat__desc {
    max-width: 100%;
  }
}

/* ── Frame < 1440px: pad đều 2 bên, không tràn, căn giữa khi trống ── */
@media (max-width: 1439.98px) {
  :root {
    --sol-section-pad-x: max(1.25rem, calc((100vw - min(var(--sol-content-max), 100vw - 2.5rem)) / 2));
  }

  .sol-inner,
  .sol-hero__inner,
  .sol-stats__inner,
  .sol-video-sec__inner,
  .sol-problems__inner,
  .sol-features__inner,
  .sol-how__inner,
  .sol-why__inner,
  .sol-eco__inner,
  .sol-faq__inner,
  .sol-cta-demo__inner {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    margin-top: 50px;
  }

  .sol-sec-header,
  .sol-problems__header,
  .sol-video-sec__header,
  .sol-features__header,
  .sol-how__header,
  .sol-why__header,
  .sol-faq__header {
    width: 100%;
    max-width: min(var(--sol-sec-header-max), 100%);
    margin-left: auto;
    margin-right: auto;
  }

  .sol-copy-col,
  .sol-text-container {
    width: 100%;
    max-width: min(var(--sol-copy-max), 100%);
    margin-left: auto;
    margin-right: auto;
  }

  .sol-features .sol-copy-col,
  .sol-features .sol-text-container {
    max-width: 100%;
  }

  .sol-features .sol-viz-intake-section,
  .sol-features .sol-viz-doc-section,
  .sol-features .sol-viz-hub-section,
  .sol-features .sol-viz-offer-section {
    width: 100%;
    max-width: 100%;
  }

  .sol-why__points {
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
  }

  .sol-why__point {
    max-width: 100%;
  }

  .sol-why__form-card {
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
  }

  .sol-beam {
    width: min(100%, 844px);
    margin-left: auto;
    margin-right: auto;
  }

  .sol-cta-demo__title {
    white-space: normal;
  }

  .sol-cta-demo__content {
    width: 100%;
    max-width: min(800px, 100%);
    padding-left: 0;
    padding-right: 0;
  }

  .sol-eco__copy {
    margin-left: auto;
    margin-right: auto;
  }

  .sol-eco__cloud {
    width: 100%;
    max-width: min(620px, 100%);
    margin-left: auto;
    margin-right: auto;
  }

  .sol-faq__list {
    width: 100%;
    max-width: var(--sol-content-max);
    margin-left: auto;
    margin-right: auto;
  }
}

/* ── Responsive ── */
@media (min-width: 992px) {
  .sol-hero {
    padding: 3.5rem 0 0;
  }
}

@media (max-width: 991.98px) {
  .sol-hero {
    padding-top: 1.5rem;
  }

  .sol-hero .col-lg-6:first-child,
  .sol-hero .col-lg-6:last-child {
    max-width: none;
    width: 100%;
  }

  .sol-hero__desc {
    max-width: none;
  }

  .sol-hero__visual {
    min-height: 320px;
    padding-left: 0;
    margin-top: 1.5rem;
  }

  .sol-card-stack {
    margin-left: auto;
    margin-right: auto;
  }

  .sol-hero__checks {
    grid-template-columns: 1fr;
    max-width: 100%;
  }
}

@media (max-width: 575.98px) {
  .sol-hero__visual {
    min-height: 420px;
  }

  .sol-hero-deck {
    max-width: 100%;
  }

  .sol-hero-deck__stage {
    height: 420px;
  }

  .sol-hero-deck__card {
    width: min(88%, 280px);
  }

  .sol-hero-slide-viz {
    height: auto;
    aspect-ratio: 1 / 1;
  }

  .sol-hero-deck__card-foot {
    flex: 0 0 130px;
    flex-basis: 130px;
    height: 130px;
    min-height: 130px;
    max-height: 130px;
    padding: 24px;
    gap: 0;
  }

  .sol-intake-title {
    font-size: 20px;
    padding: 0;
  }

  .sol-intake-explore {
    font-size: 16px;
    padding: 0;
  }

  .sol-hero-deck__card[data-pos="0"] {
    transform-origin: 50% 50%;
    transform: translate(calc(-50% - 48px), calc(-50% - 12px)) rotate(0deg);
  }

  .sol-hero-deck__card[data-pos="1"] {
    transform: translate(calc(-50% - 16px), calc(-50% - 2px)) rotate(1.5deg);
  }

  .sol-hero-deck__card[data-pos="2"] {
    transform: translate(calc(-50% + 16px), calc(-50% + 4px)) rotate(4deg);
  }

  .sol-hero-deck__card[data-pos="3"] {
    transform: translate(calc(-50% + 48px), calc(-50% + 12px)) rotate(6.5deg);
  }
}
@media (min-width: 992px) {
  .sol-eco__bubble-card {
    width: 100px;
    height: 100px;
    padding: 3px;
    gap: 8px;
  }

  .sol-eco__logo {
    max-height: 34px;
  }

  .sol-eco__logo--text {
    height: 32px;
    font-size: clamp(0.66rem, 1.1vw, 0.82rem);
  }

  .sol-eco__tag {
    font-size: 0.62rem;
  }
}

@media (min-width: 1440px) {
  .sol-eco__inner > .row > .col-lg-7 {
    min-height: 480px;
    max-height: none;
    overflow: visible;
  }
}

@media (max-width: 991.98px) {
  .sol-eco {
    max-height: none;
    overflow: visible;
    padding: 3rem 0 4rem;
  }

  .sol-eco__inner > .row {
    max-height: none;
    overflow: visible;
  }

  .sol-eco__copy {
    max-width: 100%;
    min-height: 0;
    text-align: center;
    align-items: center;
    margin: 0 auto;
  }

  .sol-eco__cloud {
    height: auto;
    max-height: none;
    min-height: clamp(480px, 72vw, 560px);
    max-width: 100%;
    overflow: visible;
  }

  .sol-how__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: minmax(274px, auto);
    width: 100%;
    max-width: 100%;
    gap: clamp(1.5rem, 4vw, 2.5rem);
  }

  .sol-how__step:nth-child(n) {
    grid-column: auto;
    grid-row: auto;
  }

  .sol-how__step article {
    width: 100%;
    max-width: none;
    height: 100%;
    min-height: 274px;
  }

  .sol-text-container {
    width: 100%;
    max-width: 492px;
    min-height: 0;
    padding-right: 0;
    text-align: start;
    align-items: flex-start;
  }

  .sol-text-container__desc {
    max-width: 492px;
  }

  .sol-text-container--end {
    padding-left: 0;
    margin-left: 0;
    margin-right: 0;
    align-items: flex-start;
    align-self: flex-start;
    text-align: start;
  }

  .sol-problem-list {
    margin-top: 0.5rem;
  }

  /* Document Review — tablet */
  .sol-offer-flow {
    max-width: 100%;
  }

  .sol-offer-card {
    max-width: none;
  }

  .sol-offer-card--review {
    max-width: none;
  }
}

@media (max-width: 991.98px) {
  .sol-features {
    --sol-feature-viz-h: clamp(300px, 76vw, 400px);
    --sol-feature-viz-w: min(100%, 524px);
  }
}

@media (max-width: 767.98px) {
  .sol-features {
    --sol-feature-viz-h: clamp(280px, 80vw, 360px);
  }

  .sol-feature-row > .row {
    min-height: 0;
    align-items: center;
  }

  .sol-viz-doc-section .sol-doc-review__blueprint {
    opacity: 1;
  }

  /* Request Intake — viz trên, text dưới */
  #sol-feature-intake > .col-lg-6:first-child {
    order: 2;
  }

  #sol-feature-intake > .col-lg-6:last-child {
    order: 1;
  }

  #sol-feature-intake .sol-text-container {
    text-align: start;
    align-items: flex-start;
    padding-top: 0.25rem;
  }

  #sol-feature-intake .sol-text-container__desc {
    max-width: 100%;
  }

  #sol-feature-intake .sol-viz-intake-section {
    margin-top: 0;
  }

  /* Pricing hub — viz trên, text dưới */
  #sol-feature-pricing > .col-lg-6:first-child {
    order: 2;
  }

  #sol-feature-pricing > .col-lg-6:last-child {
    order: 1;
  }

  #sol-feature-pricing .sol-text-container {
    text-align: start;
    align-items: flex-start;
    padding-top: 0.25rem;
  }

  #sol-feature-pricing .sol-text-container__desc {
    max-width: 100%;
  }

  #sol-feature-pricing .sol-viz-hub-section {
    margin-top: 0;
  }
}

@media (max-width: 575.98px) {
  .sol-features {
    --sol-feature-viz-h: 300px;
  }

  #sol-feature-intake > .row {
    --bs-gutter-y: 1rem;
  }

  #sol-feature-pricing {
    --bs-gutter-y: 1rem;
  }
}

/* ≥1500px: mở rộng frame nội dung 1080 → 1440 (đặt cuối file để override 1440px) */
@media (min-width: 1500px) {
  .sol-page {
    --sol-content-max: 1440px;
    --sol-copy-max: 656px;
    --sol-section-pad-x: 0;
  }

  .sol-page footer .hawk-w-cap-1080 {
    width: min(1440px, 100%);
  }

  .sol-hero .col-lg-6:first-child {
    flex: 0 1 616px;
    width: 616px;
    max-width: 616px;
  }

  .sol-hero .col-lg-6:last-child {
    flex: 0 1 747px;
    width: 747px;
    max-width: 747px;
  }

  .sol-features {
    --sol-feature-viz-w: 699px;
  }

  .sol-features .sol-text-container {
    width: min(100%, 656px);
    max-width: 656px;
  }

  .sol-features .sol-text-container__desc {
    max-width: 656px;
  }

  .sol-features #sol-feature-intake,
  .sol-features #sol-feature-doc,
  .sol-features #sol-feature-pricing,
  .sol-features #sol-feature-offer,
  .sol-features .sol-feature-row {
    width: var(--sol-content-max);
    max-width: var(--sol-content-max);
    margin-left: auto;
    margin-right: auto;
    gap: 85px;
    grid-template-columns: 656px 699px;
  }

  .sol-features #sol-feature-doc,
  .sol-features #sol-feature-offer,
  .sol-features .sol-feature-row--doc,
  .sol-features .sol-feature-row--offer {
    grid-template-columns: 699px 656px;
  }

  .sol-how__grid {
    width: var(--sol-content-max);
    max-width: var(--sol-content-max);
    margin-left: auto;
    margin-right: auto;
    grid-template-columns: repeat(3, 424px);
    column-gap: 84px;
    row-gap: 84px;
  }

  .sol-how__step article {
    width: 424px;
  }
}
