/* Mobile reading and contact layer. Load after the shared page styles. */
.mobile-contact-bar { display: none; }

@media (max-width: 900px) {
  :root { --mobile-header-height: 76px; --mobile-contact-height: 86px; }
  html { scroll-padding-top: calc(var(--mobile-header-height) + 18px); scrollbar-gutter: auto; }
  body, body.vsl { font-size: 16px; line-height: 1.7; -webkit-text-size-adjust: 100%; }
  body.has-mobile-contact { padding-bottom: calc(var(--mobile-contact-height) + env(safe-area-inset-bottom, 0px)); }
  .container, .nav-wrap, .vsl .container, .vsl .nav-wrap { width: min(720px, calc(100% - 40px)); }
  .hero-grid, .split, .product-split, .demo-grid, .problem-layout,
  .vsl .section-visual .split, .vsl .dark-section .split, .vsl .faq-layout { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .hero-grid > *, .split > *, .demo-grid > *, .problem-layout > *, .faq-layout > *, .benefit,
  .review, .result-card, .finance-path li > div, .footer-top > div { min-width: 0; }
  .section, .vsl .section { padding: 76px 0; }
  h1, h2, h3, p, li, a, b, strong, small, .eyebrow { overflow-wrap: break-word; }
  h2, .section-head h2, .vsl h2 { font-size: clamp(30px, 5.7vw, 40px); line-height: 1.2; letter-spacing: -1.1px; }
  .hero h1 { font-size: clamp(36px, 6.5vw, 54px); line-height: 1.1; letter-spacing: -1.7px; }
  .hero-copy > p, .hero-copy .hero-promise, .section-head p, .lead, .benefit p, .step p,
  .split > div > p:not(.small-note):not(.fiscal-note), .ticks li, .small-features p,
  .demo-agenda p, .faq-card p, .final-inner p, .vsl .intro-heading p, .vsl .review-head p,
  .vsl .problem-copy p, .problem-flow p, .system-steps p, .result-card p,
  .vsl .section-visual .lead, .vsl .faq-item p, .vsl .final-inner p,
  .review.proof-card > p, .vsl .review.proof-card > p, .delivery-card > p,
  .delivery-list li, .setup-strip p { font-size: 16px; line-height: 1.75; }
  .small-note, .visual-caption, .direct-v2 .visual-caption, .fiscal-note, .vsl .fiscal-note,
  .hero-note, .card-label, .benefit .card-label, .eyebrow, .hero-copy .eyebrow,
  .vsl .eyebrow, .detail-note, .journey-note, .faq-category, .service-tags span,
  .fiscal-focus, .vsl .final-inner .small-note, .final-tags, .video-status,
  .vsl-hero .micro, .vsl .hero-assurance, .service-callout { font-size: 14px; line-height: 1.65; letter-spacing: 0; }
  .fiscal-focus strong { font-size: 16px; line-height: 1.5; }
  .finance-caption { font-size: 14px !important; line-height: 1.65; }
  .eyebrow { max-width: 100%; padding: 7px 12px; }
  .eyebrow i { flex: 0 0 6px; }
  .button, .vsl .button, .hero .button, .hero .actions .outline,
  .footer-contact .button, .vsl .footer-contact .button { min-height: 52px; font-size: 15px; padding: 15px 21px; line-height: 1.4; }
  .button .icon { flex-shrink: 0; width: 21px; height: 21px; }
  .text-link, .benefit .text-link { min-height: 44px; font-size: 15px; line-height: 1.5; }
  .icon-button, .menu-toggle { min-width: 44px; min-height: 44px; }

  /* Header remains usable at narrow widths without shrinking the label. */
  .site-header, .site-header.scrolled, .vsl .site-header, .vsl .site-header.scrolled { height: var(--mobile-header-height); }
  .nav-wrap, .vsl .nav-wrap { gap: 8px; }
  .site-header .brand, .vsl .site-header .brand { flex: 0 0 auto; font-size: 32px; margin-right: auto; }
  .nav-cta, .vsl .nav-cta { min-height: 44px; max-width: 230px; font-size: 14px; padding: 9px 13px; gap: 7px; white-space: normal; }
  .menu-toggle { flex: 0 0 44px; padding: 10px; }
  .site-header nav, .vsl nav { top: calc(var(--mobile-header-height) + 6px); left: 16px; right: 16px; padding: 10px; max-height: calc(100dvh - var(--mobile-header-height) - 28px); overflow-y: auto; overscroll-behavior: contain; }
  .site-header nav a, .vsl .site-header nav a { min-height: 48px; display: flex; align-items: center; font-size: 16px; line-height: 1.4; padding: 13px 15px; }
  .site-header nav a:after { display: none; }

  .hero { padding: calc(var(--mobile-header-height) + 40px) 0 64px; }
  .hero-copy { max-width: 660px; }
  .hero-copy > p, .hero-note { max-width: 620px; }
  .hero-copy .hero-promise { margin: 20px 0 26px; }
  .hero .actions { align-items: stretch; gap: 12px; }
  .hero .actions .outline { border: 1px solid #b6cae5; }
  .hero-note { margin-top: 18px; align-items: flex-start; }
  .hero-note .icon { margin-top: 3px; }
  .hero-visual { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; width: 100%; max-width: 560px; margin: 0 auto; }
  .hero-photo { grid-column: 1 / -1; height: 430px; transform: none; border-radius: 90px 24px 24px 24px; }
  .hero-photo img { transform: none; }
  .hero-visual .floating-badge { position: static; padding: 16px; gap: 11px; min-width: 0; }
  .hero-visual .badge-bottom { grid-column: 1 / -1; }
  .floating-badge b { font-size: 15px; line-height: 1.4; }
  .floating-badge small { font-size: 14px; line-height: 1.5; margin-top: 4px; }
  .floating-badge > .icon { flex-shrink: 0; width: 28px; height: 28px; }
  .visual-dot { display: none; }
  .promise-band { padding: 17px 0; }
  .band-grid { grid-template-columns: 1fr; }
  .band-grid > div { justify-content: flex-start; padding: 17px 10px; gap: 16px; border-right: 0; border-bottom: 1px solid #ffffff18; }
  .band-grid b { font-size: 16px; line-height: 1.5; }
  .band-grid small { font-size: 14px; line-height: 1.5; }
  .benefits-grid, .review-grid, .vsl .review-grid, .faq-grid { grid-template-columns: minmax(0, 1fr); max-width: none; gap: 18px; }
  .benefit { padding: 26px; }
  .benefit h3 { font-size: 25px; line-height: 1.3; }
  .benefit .text-link { margin-top: 20px; }
  .benefit .text-link .icon { flex-shrink: 0; }
  .journey-card { padding: 26px; }
  .journey-item { gap: 15px; align-items: flex-start; }
  .journey-item > .icon { flex-shrink: 0; }
  .journey-item b { font-size: 16px; line-height: 1.5; }
  .journey-item p { font-size: 14px; line-height: 1.6; }
  .journey-note { align-items: flex-start; }
  .steps { grid-template-columns: 1fr; gap: 30px; margin-top: 36px; }
  .steps:before { display: none; }
  .step { position: relative; padding-left: 68px; min-height: 0; }
  .step-number { position: absolute; left: 0; top: 0; width: 48px; height: 48px; margin: 0; box-shadow: none; }
  .step h3 { font-size: 22px; }
  .review.proof-card { padding: 26px; grid-template-columns: 42px minmax(0, 1fr); }
  .review.proof-card h3 { font-size: 23px; }
  .proof-index { font-size: 14px; }
  .ticks li { align-items: flex-start; }
  .ticks .icon { margin-top: 4px; }
  .small-features b, .demo-agenda b { font-size: 17px; }
  .demo-agenda { padding: 26px; }
  .demo-agenda > .card-label, .demo-agenda > div > span { font-size: 14px; }
  .setup-visual { display: grid; height: auto; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 16px 0; }
  .setup-visual:before, .setup-visual:after { display: none; }
  .setup-core { grid-column: 1 / -1; padding: 30px; transform: none; }
  .setup-core > b { font-size: 20px; }
  .setup-core > p, .setup-check { font-size: 14px; line-height: 1.6; }
  .setup-tile { position: static; transform: none; font-size: 14px; line-height: 1.5; padding: 16px; }
  .setup-tile:last-child { grid-column: 1 / -1; }
  .finance-visual { padding: 28px; }
  .finance-head > span { font-size: 14px; letter-spacing: .2px; }
  .finance-visual h3 { font-size: 30px; }
  .finance-path li { gap: 14px; padding: 19px 16px; }
  .finance-path li > span { font-size: 14px; }
  .finance-path b { font-size: 17px; }
  .finance-path p, .finance-foot { font-size: 14px; line-height: 1.6; }
  .finance-foot { align-items: flex-start; }
  .finance-foot .icon { margin-top: 2px; }
  .final-inner h2, .vsl .final-inner h2 { font-size: clamp(31px, 5.6vw, 40px); }
  .final-tags { gap: 12px 18px; }
  .final-tags span + span:before { margin-right: 18px; }
  .faq-card { padding: 26px; }
  .faq-card h3, .vsl .faq-item h3 { font-size: 20px; line-height: 1.4; }
  .faq-intro, .problem-copy { position: static; }

  /* Illustrations retain full, readable labels rather than scaling down. */
  .direct-visual.direct-v2 { width: 100%; max-width: 600px; margin-inline: auto; padding: 12px 0 0; }
  .direct-search { margin: 0 8px -14px; padding: 17px; }
  .direct-search > span, .direct-search small, .stay-bar span, .stay-content small,
  .stay-content p, .direct-message p, .direct-route { font-size: 14px; line-height: 1.5; }
  .direct-search small { display: block; letter-spacing: 0; }
  .stay-window, .direct-message { transform: none; }
  .stay-bar { min-height: 46px; height: auto; padding-block: 12px; }
  .stay-content b { font-size: 20px; line-height: 1.35; }
  .stay-content { gap: 14px; padding: 25px 24px 32px; }
  .stay-content small { letter-spacing: .5px; }
  .direct-message { margin: -12px 10px 0; padding: 18px; }
  .direct-message b { font-size: 16px; }
  .direct-route { flex-wrap: wrap; gap: 8px; }
  .direct-v2:before { inset-inline: 0; }
  .product-visual { margin: 0 auto; }
  div.product-visual.ops-visual { max-width: 650px; margin-inline: auto; }
  .ops-visual .ops-header { padding: 18px 20px; flex-wrap: wrap; }
  .ops-visual .ops-preview-label { font-size: 14px; max-width: none; }
  .ops-visual .ops-content { padding: 23px 20px; }
  .ops-visual .ops-heading-row { flex-wrap: wrap; align-items: flex-start; gap: 10px; }
  .ops-visual .ops-eyebrow, .ops-visual .ops-date { font-size: 14px; letter-spacing: 0; }
  .ops-visual .ops-date { padding-top: 0; }
  .ops-visual .ops-title { font-size: 26px; }
  .ops-visual .ops-step { grid-template-columns: 34px minmax(0, 1fr); gap: 5px 12px; padding: 18px 0; }
  .ops-visual .ops-step-symbol { grid-row: 1 / 3; align-self: start; }
  .ops-visual .ops-step > .ops-status { grid-column: 2; justify-self: start; margin-top: 4px; }
  .ops-visual .ops-step-title { font-size: 16px; line-height: 1.5; }
  .ops-visual .ops-step-detail, .ops-visual .ops-status, .ops-visual .ops-calendar-range,
  .ops-visual .ops-room-list-detail, .ops-visual .ops-caption { font-size: 14px; line-height: 1.5; }
  .ops-visual .ops-status { white-space: normal; text-align: left; padding: 5px 9px; }
  .ops-visual .ops-section-heading { flex-wrap: wrap; gap: 5px 12px; }
  .ops-visual .ops-section-title, .ops-visual .ops-room-name { font-size: 16px; }
  .ops-visual .ops-calendar { display: none; }
  .ops-visual .ops-room-list { display: grid; padding: 0 15px; }
  .ops-visual .ops-room-list-item { flex-wrap: wrap; gap: 9px; padding: 17px 0; }
  .ops-visual .ops-room-list-item > .ops-status { margin-left: 12px; }
  .ops-visual .ops-caption { padding: 14px 17px; align-items: center; }

  /* VSL pages: readable preview and a full route into the demo. */
  .vsl .vsl-hero { padding: calc(var(--mobile-header-height) + 35px) 0 58px; }
  .vsl-hero h1 { font-size: clamp(32px, 5.6vw, 43px); line-height: 1.17; max-width: 690px; letter-spacing: -1.25px; }
  .vsl-hero .hero-subtitle { font-size: 17px; line-height: 1.75; max-width: 680px; }
  .vsl-hero .eyebrow { font-size: 14px; max-width: 100%; }
  .vsl .hero-assurance, .service-callout { max-width: 620px; }
  .service-callout { padding: 17px 20px; }
  .vsl-player { margin-top: 30px; padding: 7px; }
  .video-placeholder.cover-v2 { gap: 24px; padding: 28px; aspect-ratio: auto; min-height: 0; }
  .cover-v2 .video-kicker, .cover-v2 .video-pending { font-size: 14px; line-height: 1.5; max-width: none; letter-spacing: .4px; }
  .cover-v2 .video-play-symbol { width: 52px; height: 52px; margin: 18px 0; }
  .vsl .cover-v2 h2 { font-size: 27px; line-height: 1.25; max-width: none; }
  .cover-v2 .cover-art { display: block; min-width: 0; padding: 0; }
  .cover-browser, .cover-console { transform: none; border-radius: 14px; }
  .cover-browser-top { height: auto; min-height: 36px; padding: 9px 12px; }
  .cover-browser-top span { display: block; font-size: 14px; line-height: 1.5; }
  .cover-browser img { height: 150px; }
  .cover-browser-bottom { padding: 18px; }
  .cover-browser-bottom b { font-size: 17px; line-height: 1.4; }
  .cover-browser-bottom small { display: block; font-size: 14px; line-height: 1.5; }
  .cover-bubble { margin: -9px 8px 0; transform: none; padding: 15px; gap: 10px; }
  .cover-bubble b { font-size: 15px; line-height: 1.5; }
  .cover-bubble small { display: block; font-size: 14px; line-height: 1.5; }
  .cover-console { padding: 18px; }
  .cover-console-header { flex-wrap: wrap; gap: 6px; padding-bottom: 15px; margin-bottom: 15px; }
  .cover-console-header > b { font-size: 24px; }
  .cover-console-header > span { display: block; font-size: 14px; }
  .cover-task { padding: 14px 11px; gap: 10px; margin: 10px 0; }
  .cover-task > .icon { width: 30px; height: 30px; }
  .cover-task b { font-size: 16px; line-height: 1.4; }
  .cover-task small { display: block; font-size: 14px; line-height: 1.5; }
  .cover-task > span { display: block; }
  .cover-console-foot { font-size: 14px; line-height: 1.5; gap: 8px; padding-top: 15px; margin-top: 15px; }
  .cover-console-foot .icon { width: 20px; height: 20px; }
  .video-status, .vsl-hero .micro { max-width: 620px; margin-top: 17px; }
  .proof-row { display: flex; flex-wrap: wrap; gap: 18px; justify-content: center; max-width: 640px; }
  .proof-row li { font-size: 14px; padding: 0; }
  .proof-row li + li { border-left: 0; }
  .vsl .review-band { padding: 65px 0; }
  .problem-copy { padding: 30px; }
  .vsl .problem-copy h2 { font-size: 33px; }
  .problem-flow li { padding: 24px; gap: 17px; }
  .problem-flow h3 { font-size: 21px; }
  .system-steps { margin-top: 35px; }
  .system-steps li { grid-template-columns: 48px minmax(0, 1fr); gap: 20px; }
  .system-steps .number { width: 48px; height: 48px; font-size: 20px; }
  .system-steps li:not(:last-child):before { left: 24px; top: 48px; }
  .system-steps h3 { font-size: 22px; }
  .results-grid, .vsl[data-vsl="gestione"] .results-grid { grid-template-columns: 1fr; }
  .result-card { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 0 17px; padding: 25px; }
  .result-card > .icon { grid-row: 1 / 3; margin: 0; }
  .result-card h3 { font-size: 21px; }
  .delivery-card, .vsl .faq-item { padding: 28px; }

  footer { padding-top: 52px; }
  .footer-top { gap: 30px; padding-bottom: 35px; }
  .footer-top > div > b { font-size: 16px; }
  .footer-top p, .footer-top > div > a:not(.brand), .footer-contact small,
  .footer-bottom, .footer-bottom button { font-size: 14px; line-height: 1.65; }
  .footer-top > div > a:not(.brand) { min-height: 44px; display: flex; align-items: center; margin-bottom: 3px; }
  .footer-contact small { max-width: none; }
  .footer-bottom { padding: 20px 0; flex-wrap: wrap; gap: 8px 20px; }
  .footer-bottom button { min-height: 44px; padding: 10px 0; }

  /* Persistent contact affordance. JS owns its visibility state and copy. */
  .mobile-contact-bar { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; position: fixed; z-index: 65; inset: auto 0 0; min-height: var(--mobile-contact-height); padding: 12px max(16px, env(safe-area-inset-right, 0px)) calc(12px + env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px)); background: #fffffffa; border-top: 1px solid #dae6f4; box-shadow: 0 -6px 30px #102e5010; visibility: hidden; opacity: 0; pointer-events: none; }
  .mobile-contact-bar.is-visible { visibility: visible; opacity: 1; pointer-events: auto; }
  .mobile-contact-copy { min-width: 0; color: #153454; font-size: 14px; line-height: 1.45; }
  .mobile-contact-copy strong, .mobile-contact-copy b { display: block; font-size: 14px; line-height: 1.45; }
  .mobile-contact-copy small, .mobile-contact-copy span { display: block; font-size: 14px; color: #5a6f88; line-height: 1.45; margin-top: 3px; }
  .mobile-contact-button, .vsl .mobile-contact-button { min-height: 50px; max-width: 210px; padding: 12px 18px; font-size: 14px; line-height: 1.35; }
  .mobile-contact-button .icon { width: 20px; height: 20px; }
  .has-mobile-contact .wa-launcher { display: none; }
  .contact-open .mobile-contact-bar, .menu-open .mobile-contact-bar { visibility: hidden; opacity: 0; pointer-events: none; }
  .wa-panel, .vsl .wa-panel { left: auto; right: max(12px, env(safe-area-inset-right, 0px)); bottom: calc(12px + env(safe-area-inset-bottom, 0px)); width: min(430px, calc(100vw - 24px)); max-width: calc(100vw - 24px); max-height: calc(100dvh - var(--mobile-header-height) - 30px - env(safe-area-inset-bottom, 0px)); overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; border-radius: 24px; }
  .wa-head { padding: 18px; gap: 12px; }
  .wa-head > div { min-width: 0; }
  .wa-head b { font-size: 18px; }
  .wa-head p { font-size: 14px; line-height: 1.5; }
  .wa-head .icon-button { flex: 0 0 44px; }
  .wa-body { padding: 20px; }
  .chat-bubble { padding: 17px; font-size: 16px; line-height: 1.7; }
  .wa-open, .vsl .wa-open { min-height: 54px; padding: 15px 17px; font-size: 16px; }
  .wa-config, .vsl .wa-config { font-size: 14px; line-height: 1.65; }
  .wa-launcher { bottom: calc(17px + env(safe-area-inset-bottom, 0px)); }
  dialog { max-height: calc(100dvh - 40px); overflow-y: auto; padding: 36px 25px 26px; }
  dialog p { font-size: 16px; }
  .dialog-close { right: 10px; top: 10px; }
}

@media (max-width: 650px) {
  .mobile-contact-copy strong { display: none; }
  .mobile-contact-copy small { margin-top: 0; color: #153454; }
  .section, .vsl .section { padding: 62px 0; }
  .hero h1 { font-size: clamp(36px, 9vw, 48px); }
  .hero-grid { gap: 32px; }
  .hero .actions, .vsl-hero .actions, .vsl .final-inner .actions { flex-direction: column; align-items: stretch; }
  .hero .actions > *, .vsl-hero .actions > *, .vsl .final-inner .actions > * { width: 100%; }
  .hero-photo { height: 360px; border-radius: 80px 22px 22px 22px; }
  .hero-visual { grid-template-columns: 1fr; }
  .hero-visual .floating-badge { grid-column: 1; }
  .hero-visual .badge-bottom { margin-bottom: 0; }
  .benefit { display: flex; padding: 25px; }
  .benefit .icon-box { margin-bottom: 21px; }
  .review.proof-card { display: flex; padding: 25px; }
  .proof-index { margin-bottom: 18px; }
  .setup-visual { grid-template-columns: 1fr; }
  .setup-tile { grid-column: 1; }
  .direct-search { flex-wrap: wrap; gap: 9px; }
  .direct-search small { margin-left: 0; border-left: 0; padding-left: 0; }
  .stay-bar span { overflow-wrap: anywhere; }
  .stay-photo { height: 210px; }
  .stay-content { padding: 23px 20px 28px; }
  .stay-contact { flex: 0 0 43px; }
  .vsl-hero h1 { font-size: clamp(31px, 8vw, 40px); }
  .vsl-hero .hero-subtitle { font-size: 16px; }
  .service-callout { flex-direction: column; text-align: left; padding: 17px; gap: 7px; }
  .video-placeholder.cover-v2 { grid-template-columns: 1fr; gap: 24px; padding: 24px; }
  .cover-v2 .cover-art { width: 100%; max-width: 380px; margin-inline: auto; }
  .cover-v2 .cover-copy { max-width: 420px; }
  .vsl .cover-v2 h2 { font-size: 27px; }
  .cover-browser img { height: 180px; }
  .cover-v2 .video-play-symbol { height: 48px; width: 48px; }
  .cover-task > div { min-width: 0; }
  .cover-console-header > span { font-size: 14px; }
  .proof-row { display: grid; justify-items: start; max-width: 100%; gap: 16px; }
  .proof-row li { align-items: flex-start; }
  .proof-row .icon { margin-top: 3px; }
  .problem-copy { padding: 26px; }
  .vsl .problem-copy h2 { font-size: 31px; }
  .problem-flow li { padding: 23px 20px; }
  .problem-flow .step-symbol { width: 36px; height: 36px; }
  .system-steps li { gap: 15px; }
  .result-card { padding: 23px 20px; gap: 0 13px; }
  .delivery-card, .vsl .faq-item { padding: 25px; }
  .finance-visual { padding: 25px 20px; }
  .finance-head { gap: 12px; }
  .finance-visual h3 { font-size: 29px; }
  .finance-path li { align-items: flex-start; padding: 17px 13px; gap: 12px; }
  .finance-path li > span { width: 30px; height: 32px; }
  .footer-top { grid-template-columns: 1fr; gap: 27px; }
  .footer-top > div:first-child, .footer-contact { grid-column: auto; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
  .footer-bottom > span:last-child { width: auto; }
  .wa-panel, .vsl .wa-panel { left: 10px; right: 10px; width: auto; max-width: none; bottom: calc(10px + env(safe-area-inset-bottom, 0px)); }
  .wa-avatar { flex: 0 0 40px; width: 40px; height: 40px; }
  .wa-head { gap: 10px; }
}

@media (max-width: 380px) {
  .container, .nav-wrap, .vsl .container, .vsl .nav-wrap { width: calc(100% - 32px); }
  .nav-cta, .vsl .nav-cta { max-width: calc(100% - 130px); min-height: 44px; padding: 8px; font-size: 14px; }
  .nav-cta .icon, .vsl .nav-cta .icon { display: none; }
  .site-header .brand, .vsl .site-header .brand { font-size: 30px; }
  .hero h1 { font-size: 36px; }
  .hero-photo { height: 310px; }
  .step { padding-left: 0; padding-top: 66px; }
  .benefit, .journey-card, .review.proof-card, .demo-agenda, .faq-card,
  .delivery-card, .vsl .faq-item, .problem-copy { padding: 22px; }
  .video-placeholder.cover-v2 { padding: 22px 18px; }
  .vsl .cover-v2 h2 { font-size: 25px; }
  .cover-console { padding: 14px; }
  .cover-task { padding: 13px 9px; gap: 9px; }
  .cover-task > span { width: 5px; height: 5px; }
  .system-steps li { grid-template-columns: 40px minmax(0, 1fr); gap: 13px; }
  .system-steps .number { height: 40px; width: 40px; }
  .system-steps li:not(:last-child):before { left: 20px; top: 40px; }
  .problem-flow li { display: grid; grid-template-columns: 1fr; gap: 14px; }
  .result-card { grid-template-columns: 1fr; gap: 12px; }
  .result-card > .icon { grid-row: auto; }
  .finance-path li { padding: 15px 11px; gap: 10px; }
  .ops-visual .ops-header, .ops-visual .ops-content { padding-inline: 16px; }
  .ops-visual .ops-workflow { padding-inline: 11px; }
  .ops-visual .ops-step { grid-template-columns: 28px minmax(0, 1fr); column-gap: 10px; }
  .ops-visual .ops-step-symbol { width: 28px; height: 32px; }
  .ops-visual .ops-room-list { padding-inline: 11px; }
  .mobile-contact-bar { gap: 9px; padding-inline: 12px; }
  .mobile-contact-button, .vsl .mobile-contact-button { max-width: 155px; padding: 12px 13px; }
  .mobile-contact-button .icon { display: none; }
  .wa-head, .wa-body { padding: 16px; }
  .chat-bubble { padding: 15px; }
}

@media print {
  .mobile-contact-bar { display: none !important; }
  body.has-mobile-contact { padding-bottom: 0; }
}
