/* Shared visual system for the home and restaurant pages. */
:root {
    --surface: #ffffff;
    --surface-muted: #f6f8fc;
    --ink: #202636;
    --muted: #596477;
    --line: #dfe5ef;
    --ease-natural: cubic-bezier(0.22, 0.61, 0.36, 1);
    --shadow-rest: 0 3px 12px rgba(25, 39, 72, 0.035);
    --shadow-hover: 0 12px 28px rgba(25, 39, 72, 0.09);
    --sticky-header-offset: 0px;
    --fixed-header-space: 112px;
}

html[data-theme="dark"] {
    --surface: #171c27;
    --surface-muted: #11151e;
    --ink: #f1f3f9;
    --muted: #b6c0d2;
    --line: #303848;
    --shadow-rest: 0 3px 12px rgba(0, 0, 0, 0.08);
    --shadow-hover: 0 12px 28px rgba(0, 0, 0, 0.2);
}

body, html[data-theme="dark"] body, html[data-theme="dark"] .restaurant-page {
    background: var(--surface);
    -webkit-font-smoothing: antialiased;
}
body::before, .hero::before, .hero::after, .section-light::before,
.section-light::after, .section-heading::after, .feature-card::after,
.price-card::after, .benefit-list article::after, .comparison-block::before,
.comparison-block::after, .contact-card::before, .restaurant-hero::after,
.restaurant-pricing article::after, .restaurant-requirements article::after {
    content: none;
}

h1, h2, h3 { letter-spacing: 0; text-wrap: balance; }
h2 { color: var(--ink); font-size: 2.5rem; line-height: 1.18; font-weight: 700; }
h3 { font-size: 1.15rem; line-height: 1.35; font-weight: 700; }
p { text-wrap: pretty; }
.eyebrow { color: var(--factuyala-blue); font-size: 0.72rem; font-weight: 700; }
.eyebrow::before { width: 22px; background: var(--factuyala-orange); }
.section-heading { max-width: 740px; }
.section-heading p, .split-copy p { line-height: 1.75; }
.site-faq-inner { width: min(1180px, 100%); margin-inline: auto; }
.site-faq-list { margin-top: 32px; border-top: 1px solid var(--line); }
.site-faq details { border-bottom: 1px solid var(--line); padding-block: 6px 12px; }
.site-faq summary { padding-block: 16px; min-height: 48px; color: var(--ink); font-weight: 700; line-height: 1.5; cursor: pointer; }
.site-faq summary::marker { color: var(--factuyala-orange); }
.site-faq details p { max-width: 820px; margin: 0 0 12px; color: var(--muted); line-height: 1.75; }
.site-faq details a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--factuyala-blue); font-weight: 700; }
.site-faq :focus-visible { outline: 3px solid var(--factuyala-orange); outline-offset: 4px; }

.site-header, .restaurant-header {
    top: 16px;
    width: min(1440px, calc(100% - 48px));
    min-height: 80px;
    padding: 14px 24px;
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: 0 2px 12px rgba(25, 39, 72, 0.025);
    background: rgba(255, 255, 255, 0.96);
    animation: none;
}
.site-header::after { content: none; }
html[data-theme="dark"] .site-header, html[data-theme="dark"] .restaurant-header {
    background: rgba(17, 21, 30, 0.96);
    border-color: var(--line);
    box-shadow: none;
}
.brand img { width: 170px; }
.nav-links a, .restaurant-nav a { font-size: 0.82rem; font-weight: 600; }
.nav-links { gap: 24px; }
.nav-links a[aria-current="location"] { color: var(--factuyala-blue); text-decoration: underline; text-decoration-color: var(--factuyala-orange); text-underline-offset: 9px; }
.header-cta, .button { border-radius: 6px; min-height: 46px; font-weight: 700; }
.button, .header-cta, .theme-toggle, .mobile-menu-toggle, .social-button, .back-to-top {
    transition: transform 260ms var(--ease-natural), background-color 220ms ease,
        border-color 220ms ease, box-shadow 260ms ease, color 220ms ease;
}
.button-primary, .header-cta, html[data-theme="dark"] .pricing-notice .button-primary {
    color: #fff;
    background: #173eaf;
    border-color: #173eaf;
    box-shadow: none;
}
.button::before { content: none; }
.button-secondary, html[data-theme="dark"] .button-secondary {
    color: var(--factuyala-blue);
    background: var(--surface);
    border-color: var(--line);
    box-shadow: none;
}

#inicio { padding-top: 0; }
.hero {
    padding: calc(var(--fixed-header-space) + 60px) max(24px, calc((100% - 1180px) / 2)) 0;
    min-height: calc(max(540px, 35vw) + var(--fixed-header-space) + 64px);
    align-items: flex-start;
    overflow: visible;
    z-index: 1;
    background: #edf2f8;
}
html[data-theme="dark"] .hero { background: var(--surface-muted); }
.hero-copy { position: static; display: flex; flex-direction: column; align-self: stretch; max-width: 1180px; width: 100%; }
.hero-copy > .eyebrow { max-width: min(560px, calc(50vw - 48px)); }
.hero-title { width: min(520px, calc(50vw - 48px)); margin-top: 24px; }
.hero-copy p.hero-lead { max-width: min(565px, calc(50vw - 48px)); font-size: 1.15rem; line-height: 1.7; color: #303c50; }
.hero-system-visual {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    pointer-events: none;
    z-index: -1;
}
.hero-system-visual [data-hero-slide] {
    position: absolute;
    inset: 0;
    width: 100%;
    max-width: none;
    height: 100%;
    object-fit: cover;
    object-position: center;
    opacity: 0;
    transition: opacity 1100ms ease-in-out;
}
.hero-system-visual [data-hero-slide].is-active { opacity: 1; }
/* A short fade through the dark surface avoids overlapping device screens. */
html[data-theme="dark"] .hero-system-visual [data-hero-slide] {
    transition: opacity 220ms ease-in;
}
html[data-theme="dark"] .hero-system-visual [data-hero-slide].is-active {
    transition: opacity 360ms ease-out 220ms;
}
@keyframes hero-image-zoom {
    from { transform: scale(1); }
    to { transform: scale(1.06); }
}
@media (prefers-reduced-motion: no-preference) {
    .hero-system-visual [data-hero-slide] {
        transform-origin: 75% 50%;
        animation: hero-image-zoom 9s ease-in-out infinite alternate paused;
    }
    .hero-system-visual [data-hero-slide].is-active { animation-play-state: running; }
}
@media (min-width: 981px) {
    .hero-system-visual .hero-slide-finance { object-position: center top; transform-origin: 75% 0; }
}
@media (min-width: 981px) and (max-width: 1519px) {
    .hero-system-visual .hero-slide-finance { box-sizing: border-box; padding-top: 36px; }
}
.hero-slider-controls {
    display: flex;
    align-items: center;
    gap: 2px;
    width: max-content;
    max-width: 100%;
    margin: 20px 0 12px;
    padding: 0;
}
.hero-slider-controls[hidden] { display: none; }
.hero-slider-controls button {
    display: grid;
    place-items: center;
    width: 32px;
    height: 44px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--factuyala-blue);
    cursor: pointer;
}
.hero-slider-controls .hero-slider-arrow { width: 44px; flex: 0 0 44px; border: 1px solid var(--line); background: var(--surface); transition: background-color 220ms ease, border-color 220ms ease, color 220ms ease; }
.hero-slider-dot { min-width: 24px; }
.hero-slider-arrow:first-child { margin-right: 8px; }
.hero-slider-arrow:last-child { margin-left: 8px; }
.hero-slider-controls .hero-slider-arrow:hover { background: var(--factuyala-blue); border-color: var(--factuyala-blue); color: #fff; }
.hero-slider-controls button:focus-visible { outline: 2px solid var(--factuyala-blue); outline-offset: 2px; }
.hero-slider-dot::before { content: ""; width: 7px; height: 7px; border-radius: 8px; background: var(--muted); transition: background-color 250ms ease, width 250ms ease; }
.hero-slider-dot:hover::before { background: var(--factuyala-blue); }
.hero-slider-dot[aria-pressed="true"]::before { background: var(--factuyala-orange); width: 22px; }
@media (max-width: 380px) {
    .hero-slider-controls { gap: 0; }
    .hero-slider-arrow:first-child { margin-right: 0; }
    .hero-slider-arrow:last-child { margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .hero-system-visual [data-hero-slide], .hero-slider-dot::before, .hero-slider-controls .hero-slider-arrow { transition: none; }
    html[data-theme="dark"] .hero-system-visual [data-hero-slide] { transition: none; }
}
.hero-system-visual::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(237, 242, 248, .98), rgba(237, 242, 248, .95) 22%, rgba(237, 242, 248, .88) 40%, rgba(237, 242, 248, .48) 56%, rgba(237, 242, 248, .08) 75%, transparent);
}
html[data-theme="dark"] .hero-system-visual::after {
    background:
        linear-gradient(0deg, #11151e 0%, rgba(17, 21, 30, 0.7) 8%, transparent 30%),
        linear-gradient(90deg, rgba(17, 21, 30, .98) 0%, rgba(17, 21, 30, .95) 22%, rgba(17, 21, 30, .89) 40%, rgba(17, 21, 30, .66) 56%, rgba(17, 21, 30, .32) 75%, rgba(17, 21, 30, .2) 100%);
}
html[data-theme="dark"] .hero-copy p.hero-lead { color: #e0e5ef; }
html[data-theme="dark"] .hero .button-secondary { color: #f1f3f9; border-color: #637087; background: #202735; }
/* Center the typing line without a text baseline that changes when it is empty. */
.hero-lead-main { display: flex; align-items: center; gap: 0.3em; min-height: 2.3rem; }
.hero-lead-rest { display: grid; }
.hero-lead-rest > span { grid-area: 1 / 1; }
.hero-copy-reserve { visibility: hidden; pointer-events: none; }
.typing-word { font-size: 1.35rem; align-items: center; height: 1.7em; line-height: 1.7; white-space: nowrap; }
.typing-word::after {
    content: "";
    flex: 0 0 2px;
    height: 1.05em;
    margin-left: 3px;
    background: var(--factuyala-orange);
    animation: typingCaret 850ms steps(1) infinite;
}
.typing-word.is-paused::after { animation: none; }
.hero-feature-strip {
    width: 100%;
    margin-top: auto;
    gap: 12px;
    overflow: visible;
    transform: translateY(50%);
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
html[data-theme="dark"] .hero-feature-strip { background: transparent; }
.hero-feature-strip::after { content: none; }
.hero-feature-item {
    padding: 24px 18px;
    background: var(--surface);
    min-height: 104px;
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: var(--shadow-rest);
    transition: transform 380ms var(--ease-natural), border-color 280ms ease, box-shadow 380ms ease;
}
.hero-feature-item strong { color: var(--ink); font-size: 0.93rem; font-weight: 700; }
.hero-feature-item > div { min-width: 0; }
.hero-feature-item span:not(.hero-feature-icon) { color: var(--muted); font-size: 0.8rem; line-height: 1.5; }
.hero-feature-item:not(:last-child)::after { content: none; }
.hero-feature-icon { width: 48px; height: 48px; border: 0; background: transparent; box-shadow: none; }
.hero-feature-icon img { width: 100%; height: 100%; object-fit: contain; transform: none; }
html[data-theme="dark"] .hero-feature-icon .hero-icon-night-white { filter: brightness(0) invert(1); }

.section { padding-top: 88px; padding-bottom: 88px; }
#modulos { padding-top: 132px; }
.section-light, html[data-theme="dark"] .section-light { background: var(--surface-muted); }
.module-grid { gap: 16px; margin-top: 40px; }
.feature-card, html[data-theme="dark"] .feature-card {
    min-height: 236px;
    padding: 26px;
    background: var(--surface);
    border-color: var(--line);
    box-shadow: var(--shadow-rest);
}
.feature-icon-frame, html[data-theme="dark"] .feature-icon-frame {
    width: 58px;
    height: 58px;
    margin-bottom: 22px;
    background: #f2f4fa;
}
.feature-icon-image { width: 58px; height: 58px; }
.feature-icon-image--pos { width: 100%; height: 100%; object-fit: contain; transform: none; }
.feature-card h3 { color: var(--ink); }
.feature-card p { font-size: 0.9rem; line-height: 1.7; }
.split-section { gap: 80px; }
.benefit-list { gap: 0; counter-reset: benefit; }
.benefit-list article, html[data-theme="dark"] .benefit-list article {
    padding: 24px 0 24px 52px;
    border: 0;
    border-bottom: 1px solid var(--line);
    border-radius: 0;
    box-shadow: none;
    background: none;
    counter-increment: benefit;
}
.benefit-list article::before {
    content: "0" counter(benefit);
    position: absolute;
    left: 0;
    top: 27px;
    color: var(--support-purple);
    font: 600 0.85rem "Inter", sans-serif;
}
.benefit-list article:last-child { border-bottom: 0; }
.benefit-list strong { font-size: 1rem; }
.benefit-list span { font-size: 0.94rem; line-height: 1.75; }

.section.home-app-section { display: grid; width: 100%; max-width: none; margin-inline: 0; padding-inline: max(24px, calc((100% - 1180px) / 2)); grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); align-items: center; gap: 56px; background: var(--surface-muted); }
.home-app-copy h2 { margin: 16px 0 20px; }
.home-app-copy > p { color: var(--muted); line-height: 1.75; }
.home-app-copy .home-app-offer { display: flex; flex-direction: column; gap: 4px; margin: 26px 0; padding: 16px 20px; border-left: 4px solid var(--factuyala-orange); background: #fff0dc; color: #653300; }
.home-app-offer strong { font-size: 24px; line-height: 1.3; }
.home-app-offer span { font-size: 14px; }
.home-app-visual { display: block; min-width: 0; width: min(100%, 330px); justify-self: center; background: transparent; }
.home-app-visual img { display: block; width: 100%; height: auto; aspect-ratio: 967 / 1626; object-fit: contain; }
.home-app-section a:focus-visible { outline: 3px solid var(--factuyala-orange); outline-offset: 5px; }
html[data-theme="dark"] .home-app-offer { background: #30251b; color: #ffca8a; }
@media (max-width: 1000px) {
    .section.home-app-section { gap: 28px; }
    .home-app-copy h2 { font-size: 32px; }
}
@media (max-width: 760px) {
    .section.home-app-section { grid-template-columns: 1fr; gap: 32px; }
    .home-app-copy h2 { font-size: 28px; }
    .home-app-copy .home-app-offer { padding: 14px 16px; }
    .home-app-visual { width: min(100%, 280px); }
}
.section.home-service-section { width: 100%; max-width: none; margin-inline: 0; padding: 80px 24px; background: var(--surface); }
.home-service-inner { width: min(1180px, 100%); margin-inline: auto; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 64px; }
.home-service-copy { min-width: 0; }
.home-service-copy h2 { font-size: 36px; margin: 16px 0 20px; }
.home-service-copy > p { color: var(--muted); line-height: 1.75; }
.home-service-list { list-style: none; padding: 0; margin: 24px 0; }
.home-service-list li { display: flex; flex-direction: column; gap: 6px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.home-service-list li:first-child { border-top: 1px solid var(--line); }
.home-service-list strong { color: var(--ink); font-size: 16px; }
.home-service-list span { color: var(--muted); font-size: 14px; line-height: 1.65; }
.home-service-copy .home-service-included { border-left: 3px solid var(--factuyala-orange); padding-left: 14px; font-size: 15px; color: var(--ink); font-weight: 600; margin: 24px 0; }
.home-service-image, .home-accounting-image { margin: 0; min-width: 0; }
.home-service-image img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; object-position: right center; }
.section.home-accounting-section { background: var(--surface-muted); }
.home-accounting-image { width: min(100%, 440px); justify-self: start; }
.home-accounting-image img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; }
.home-accounting-image figcaption { display: flex; flex-direction: column; gap: 5px; border-left: 3px solid var(--factuyala-orange); padding-left: 16px; margin-top: 20px; }
.home-accounting-image figcaption strong { color: var(--ink); font-size: 20px; }
.home-accounting-image figcaption span { color: var(--muted); font-size: 14px; }
.home-accounting-brand img { aspect-ratio: 3.1; object-fit: cover; object-position: center 49%; mix-blend-mode: multiply; }
html[data-theme="dark"] .home-accounting-brand img { filter: invert(1); mix-blend-mode: screen; }
.home-service-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; margin-top: 28px; }
.home-service-contact { display: inline-flex; flex-direction: column; justify-content: center; gap: 4px; min-height: 46px; color: var(--ink); }
.home-service-contact > span { font-size: 12px; color: var(--muted); }
.home-service-contact strong { font-size: 15px; }
.home-service-contact:hover strong { text-decoration: underline; }
.home-service-section a:focus-visible { outline: 3px solid var(--factuyala-orange); outline-offset: 5px; }
@media (max-width: 1000px) {
    .home-service-inner { gap: 32px; }
    .home-service-copy h2 { font-size: 30px; }
}
@media (max-width: 760px) {
    .section.home-service-section { padding: 52px 24px; }
    .home-service-inner { grid-template-columns: minmax(0, 1fr); gap: 32px; }
    .home-service-copy h2 { font-size: 28px; }
    .home-accounting-image { width: min(100%, 360px); justify-self: center; }
    .home-accounting-section .home-service-copy { order: -1; }
}
.pricing-section { border-top: 1px solid var(--line); }
.pricing-notice, html[data-theme="dark"] .pricing-notice {
    padding: 22px 24px;
    border: 1px solid var(--line);
    border-left: 3px solid var(--factuyala-orange);
    background: var(--surface-muted);
    box-shadow: none;
}
.pricing-notice p { font-size: 0.88rem; }
.pricing-notice .button { font-size: 0.8rem; }
.billing-panel, html[data-theme="dark"] .billing-panel {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 16px;
    margin: 36px auto 0;
    padding: 0;
    border: 0;
    background: none;
    box-shadow: none;
}
.billing-options { display: flex; padding: 4px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface-muted); }
.billing-options button {
    min-width: 108px;
    min-height: 42px;
    border: 0;
    border-radius: 5px;
    background: none;
    color: var(--muted);
    font: 600 0.9rem "Inter", sans-serif;
    cursor: pointer;
    transition: color 220ms ease, background-color 220ms ease, box-shadow 220ms ease;
}
.billing-options button[aria-pressed="true"] { color: #fff; background: #173eaf; box-shadow: 0 2px 5px #173eaf26; }
.billing-panel strong, html[data-theme="dark"] .billing-panel strong { padding: 0; background: none; color: var(--muted); font-size: 0.8rem; font-weight: 500; }
.pricing-grid { gap: 22px; margin-top: 40px; }
.price-card, html[data-theme="dark"] .price-card {
    min-height: 570px;
    padding: 32px 28px 28px;
    background: var(--surface);
    border-color: var(--line);
    box-shadow: var(--shadow-rest);
}
.price-card.featured, html[data-theme="dark"] .price-card.featured {
    background: #173eaf;
    border-color: #173eaf;
    box-shadow: 0 10px 28px #173eaf20;
}
.price-card.featured p, .price-card.featured li, html[data-theme="dark"] .price-card.featured p,
html[data-theme="dark"] .price-card.featured li, html[data-theme="dark"] .price-card.featured .price { color: #f3f6ff; }
.price-card p { font-size: 0.9rem; min-height: 52px; }
.price { margin-top: 30px; }
.price strong { font-size: 3.15rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.price-card ul { padding-top: 20px; border-top: 1px solid var(--line); margin-top: 24px; }
.price-card.featured ul { border-color: #ffffff35; }
.price-card li { font-size: 0.88rem; }
.plan-badge { left: auto; right: 22px; top: -14px; padding: 6px 12px; border-radius: 4px; background: #6e4ef5; box-shadow: none; }
.comparison-block, html[data-theme="dark"] .comparison-block {
    margin-top: 64px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: none;
    box-shadow: none;
}
.comparison-heading h3 { font-size: 1.3rem; }
.comparison-table { box-shadow: none; }
.comparison-table th, .comparison-table td { font-size: 0.9rem; }

.section-dark, html[data-theme="dark"] .section-dark {
    color: #fff;
    background: #173eaf;
}
html[data-theme="dark"] .section-dark { background: #121f45; }
.section-dark .eyebrow { color: #ffb467; }
.section-dark .section-heading p { color: #dce5ff; }
.process-grid { gap: 0; margin-top: 52px; }
.process-grid article, .process-grid article:nth-child(even),
html[data-theme="dark"] .process-grid article, html[data-theme="dark"] .process-grid article:nth-child(even) {
    min-height: 0;
    padding: 28px 24px 0 0;
    border: 0;
    border-top: 1px solid #ffffff40;
    border-radius: 0;
    background: none;
    box-shadow: none;
    animation: none;
    overflow: visible;
}
.process-grid article::before, .process-grid article::after { content: none; }
.process-grid span, html[data-theme="dark"] .process-grid span {
    padding: 0;
    border: 0;
    background: none;
    color: #ffb467;
    font: 500 2rem "Inter", sans-serif;
}
.process-grid h3 { margin-top: 24px; }
.process-grid p, html[data-theme="dark"] .process-grid p { color: #dce5ff; font-size: 0.9rem; line-height: 1.75; }
.contact-section { width: 100%; max-width: none; padding: 0; }
.contact-card, html[data-theme="dark"] .contact-card {
    padding: 80px max(24px, calc((100% - 1180px) / 2));
    border-radius: 0;
    background: #202636;
}
.contact-card::after { right: max(24px, calc((100% - 1180px) / 2)); bottom: 40px; width: 240px; height: 240px; opacity: 0.08; }
.contact-card h2 { max-width: 790px; }
.contact-card img { width: 180px; }
.contact-card p, html[data-theme="dark"] .contact-card p { color: #c8d1e0; }
.site-footer { padding-top: 24px; padding-bottom: 28px; border-top: 0; }
.footer-brand-group { padding-top: 12px; border-top: 2px solid var(--support-purple); }
.footer-brand-group::before { content: none; }
@media (min-width: 981px) and (max-width: 1599px) {
    .site-footer { display: grid; grid-template-columns: max-content minmax(0, 1fr); padding-right: 340px; }
}
@media (min-width: 761px) and (max-width: 980px) {
    .site-footer { padding-bottom: 110px; }
}

.restaurant-page { background: var(--surface); }
.restaurant-hero {
    padding-top: 156px;
    padding-bottom: 64px;
    min-height: 680px;
    background: linear-gradient(90deg, rgba(15, 24, 48, 0.96), rgba(15, 24, 48, 0.8) 43%, rgba(15, 24, 48, 0.15)), url("../brand/restaurants/restaurant-system-hero.png") center / cover no-repeat;
    animation: none;
}
.restaurant-hero h1 { font-size: 3.35rem; line-height: 1.12; max-width: 650px; font-weight: 700; }
.restaurant-hero p { font-size: 1rem; max-width: 560px; }
.restaurant-visual { bottom: 64px; width: 220px; }
.restaurant-visual-card { animation: none; box-shadow: 0 10px 24px #00000020; }
.restaurant-band, .restaurant-section { padding-top: 80px; padding-bottom: 80px; }
.restaurant-band { border-bottom: 1px solid var(--line); }
.restaurant-requirements article, .restaurant-pricing article, .restaurant-feature-grid article,
html[data-theme="dark"] .restaurant-requirements article, html[data-theme="dark"] .restaurant-pricing article:not(.featured),
html[data-theme="dark"] .restaurant-feature-grid article {
    border-color: var(--line);
    background: var(--surface);
    box-shadow: var(--shadow-rest);
    animation: none;
}
.restaurant-pricing article { border-top: 3px solid var(--support-purple); padding: 32px; }
.restaurant-pricing article.featured, html[data-theme="dark"] .restaurant-pricing article.featured { background: #173eaf; border-color: #173eaf; }
.restaurant-pricing article.featured::after, .restaurant-pricing article:not(.featured)::before,
.restaurant-feature-grid article::after, .restaurant-support::before { content: none; }
.restaurant-support .eyebrow { color: #ffb467; }
.restaurant-pricing article.featured p, html[data-theme="dark"] .restaurant-pricing article.featured p,
html[data-theme="dark"] .restaurant-pricing article.featured div { color: #fff; }
.restaurant-pricing strong:not(.restaurant-savings) { font-size: 3.5rem; }
.restaurant-pricing p { margin-bottom: 24px; }
.restaurant-support, html[data-theme="dark"] .restaurant-support {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 64px max(24px, calc((100% - 1180px) / 2));
    border-radius: 0;
    border: 0;
    background: #173eaf;
    box-shadow: none;
}

/* Reveal uses translate, leaving transform available for uninterrupted hover. */
.hero-copy > *, .hero-copy > .eyebrow, .hero-title, .hero-lead, .hero-actions,
.hero-feature-strip, .hero-feature-item, .restaurant-hero-copy > * { animation: none; opacity: 1; filter: none; }
.has-home-reveal .home-reveal, .has-restaurant-reveal .restaurant-reveal {
    opacity: 0;
    translate: 0 12px;
    transform: none;
    filter: none;
    transition: opacity 500ms var(--ease-natural), translate 500ms var(--ease-natural),
        transform 360ms var(--ease-natural), border-color 240ms ease, box-shadow 360ms ease;
    transition-delay: var(--home-reveal-delay, var(--reveal-delay, 0ms));
}
.has-home-reveal .home-reveal.is-visible, .has-restaurant-reveal .restaurant-reveal.is-visible {
    opacity: 1;
    translate: 0 0;
    filter: none;
    transition-delay: 0ms;
}
.feature-card, .price-card, .benefit-list article, .process-grid article,
.restaurant-pricing article, .restaurant-requirements article, .restaurant-feature-grid article {
    will-change: auto;
    transition: transform 360ms var(--ease-natural), border-color 240ms ease, box-shadow 360ms ease;
}
.whatsapp-float, .whatsapp-icon, .whatsapp-nudge { animation: none; }
.whatsapp-float::before, .whatsapp-float::after { content: none; animation: none; }
.whatsapp-float::before {
    content: "";
    inset: -4px;
    border: 2px solid #25d366;
    background: rgba(37, 211, 102, 0.06);
    opacity: 0;
    pointer-events: none;
}
.whatsapp-float::after {
    content: "1";
    top: -18px;
    right: -6px;
    z-index: 1;
    width: 28px;
    height: 28px;
    font-size: 0.85rem;
    pointer-events: none;
}
.whatsapp-float.is-open::before, .whatsapp-float.is-open::after { content: none; }
.whatsapp-float { background: #128c4b; box-shadow: 0 6px 20px #128c4b26; border: 0; min-height: 58px; }
.whatsapp-float { transition: transform 380ms var(--ease-natural), filter 220ms ease; }
.whatsapp-nudge { box-shadow: var(--shadow-rest); font-size: 0.75rem; }
.social-rail { right: 16px; gap: 8px; }
.social-button { width: 40px; height: 40px; box-shadow: var(--shadow-rest); }
.back-to-top { bottom: 150px; width: 42px; height: 42px; box-shadow: var(--shadow-rest); }

@media (hover: hover) and (pointer: fine) {
    .feature-card:hover, .price-card:hover, .restaurant-requirements article:hover,
    .restaurant-pricing article:hover, .restaurant-feature-grid article:hover,
    .has-restaurant-reveal .restaurant-requirements article.restaurant-reveal.is-visible:hover,
    .has-restaurant-reveal .restaurant-pricing article.restaurant-reveal.is-visible:hover,
    .has-restaurant-reveal .restaurant-feature-grid article.restaurant-reveal.is-visible:hover {
        transform: translateY(-3px);
        border-color: var(--support-purple);
        box-shadow: var(--shadow-hover);
    }
    html[data-theme="dark"] .feature-card:hover, html[data-theme="dark"] .price-card:hover { box-shadow: var(--shadow-hover); }
    .benefit-list article:hover, html[data-theme="dark"] .benefit-list article:hover { transform: translateX(3px); box-shadow: none; background: none; }
    .process-grid article:hover, html[data-theme="dark"] .process-grid article:hover { transform: none; background: none; box-shadow: none; border-color: #ffb467; }
    .process-grid article:hover span, html[data-theme="dark"] .process-grid article:hover span { background: none; color: #fff; }
    .hero-feature-item:hover {
        transform: translateY(-4px);
        background: var(--surface);
        border-color: var(--support-purple);
        box-shadow: var(--shadow-hover);
    }
    .hero-feature-item:hover .hero-feature-icon { background: transparent; transform: none; }
    .hero-feature-item:hover .hero-feature-icon img { transform: scale(1.04); }
    .button-primary:hover, .header-cta:hover { background: #254fc3; box-shadow: 0 5px 14px #173eaf1a; }
}

@media (min-width: 981px) and (max-height: 800px) {
    .hero { min-height: calc(max(510px, 33vw) + var(--fixed-header-space) + 48px); padding-top: calc(var(--fixed-header-space) + 32px); }
    .section-light { padding-top: 48px; }
    .restaurant-hero { min-height: 0; padding-top: 120px; padding-bottom: 40px; }
    .restaurant-hero h1 { font-size: 2.75rem; }
    .restaurant-band { padding-top: 48px; }
}
@media (min-width: 1101px) and (max-width: 1240px) {
    .site-header .nav-links { display: none; }
    .site-header .mobile-menu-toggle { display: inline-flex; }
}
@media (max-width: 1100px) {
    .site-header, .restaurant-header { gap: 16px; padding-inline: 24px; }
    .brand img { width: 145px; }
    .nav-links, .restaurant-nav { gap: 14px; }
    .nav-links, .restaurant-nav { display: none; }
    .mobile-menu-toggle { display: inline-flex; }
    .mobile-nav { max-height: calc(100dvh - 110px); overflow-y: auto; overscroll-behavior: contain; }
    .restaurant-hero-copy { max-width: 60%; }
    .restaurant-hero h1 { font-size: 2.75rem; }
    .split-section { gap: 36px; }
}
@media (max-width: 980px) {
    .hero { min-height: 0; }
    .hero-copy > .eyebrow, .hero-copy p.hero-lead { max-width: 565px; }
    .hero-title { width: min(520px, 100%); }
    .hero-system-visual {
        position: relative;
        inset: auto;
        z-index: auto;
        width: calc(100% + 48px);
        height: auto;
        aspect-ratio: 1.6;
        margin: 24px -24px 0;
    }
    .hero-system-visual::after { content: none; }
    html[data-theme="dark"] .hero-system-visual::after {
        content: "";
        background: linear-gradient(180deg, #11151e 0%, rgba(17, 21, 30, 0.06) 18%, rgba(17, 21, 30, 0.06) 75%, #11151e 100%);
    }
    .hero-slider-controls { margin: 20px 0 0; }
    .hero-feature-strip { margin-top: 20px; transform: none; }
}
@media (min-width: 761px) and (max-width: 980px) {
    .hero { padding-top: calc(var(--fixed-header-space) + 28px); padding-bottom: 28px; }
    .hero-title { width: min(420px, 100%); }
    .hero-system-visual { aspect-ratio: 2; }
    .hero-feature-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #modulos { padding-top: 64px; }
}
@media (max-width: 760px) {
    :root { --fixed-header-space: 92px; }
    h2 { font-size: 1.85rem; line-height: 1.22; }
    h3 { font-size: 1.08rem; }
    .site-header, .restaurant-header { top: 10px; width: calc(100% - 24px); min-height: 68px; padding: 10px 12px; align-items: center; gap: 8px; }
    .brand img { width: 136px; }
    .header-actions { gap: 8px; }
    .theme-toggle, .mobile-menu-toggle { flex: 0 0 44px; width: 44px; height: 44px; }
    .hero { width: 100%; padding: calc(var(--fixed-header-space) + 16px) 20px 24px; min-height: 0; }
    .hero-system-visual { width: calc(100% + 40px); aspect-ratio: 1.6; margin: 20px -20px 0; }
    .hero-system-visual [data-hero-slide] { object-position: right center; }
    .hero-title { width: min(320px, 100%); margin-top: 16px; margin-bottom: 20px; }
    .hero-copy > .eyebrow { max-width: 320px; line-height: 1.6; font-size: 0.65rem; }
    .hero-copy p.hero-lead { max-width: 520px; font-size: 1rem; line-height: 1.6; margin: 0; }
    .hero-lead-main { display: grid; grid-template-rows: 26px 30px; align-content: start; gap: 0; min-height: 56px; }
    .typing-word { font-size: 1.05rem; line-height: 1.7; }
    .hero-actions { flex-direction: row; gap: 10px; margin-top: 20px; }
    .hero-actions .button { flex: 1; padding: 0 12px; }
    .hero-feature-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .hero-feature-item, .hero-feature-item:first-child { padding: 14px 10px; min-height: 94px; gap: 8px; }
    .hero-feature-item:nth-child(2)::after { content: none; }
    .hero-feature-item:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
    .hero-feature-item strong { font-size: 0.8rem; }
    .hero-feature-item span:not(.hero-feature-icon) { font-size: 0.72rem; }
    .hero-feature-icon { width: 38px; height: 38px; }
    .section { padding-top: 56px; padding-bottom: 56px; }
    #modulos { padding-top: 48px; }
    .section-light, .section-dark { padding-inline: 20px; }
    .module-grid { gap: 12px; margin-top: 28px; }
    .feature-card { min-height: 0; padding: 22px; }
    .feature-icon-frame { margin-bottom: 16px; }
    .split-section { grid-template-columns: 1fr; gap: 22px; }
    .pricing-notice { padding: 20px; }
    .billing-panel { display: flex; flex-direction: column; gap: 10px; }
    .billing-panel strong { min-height: 24px; line-height: 1.5; text-align: center; }
    .pricing-grid { margin-top: 32px; gap: 28px; }
    .price-card, html[data-theme="dark"] .price-card { min-height: 0; padding: 28px 24px; }
    .price-card ul { margin-bottom: 28px; }
    .price-card p { min-height: 0; }
    .price strong { font-size: 3rem; }
    .comparison-heading h3 { font-size: 1.18rem; }
    .comparison-table tbody td { overflow-wrap: anywhere; }
    .comparison-table tbody td::before { font-size: 0.58rem; }
    .process-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; }
    .process-grid article { padding-right: 20px; }
    .process-grid h3 { margin-top: 14px; }
    .section.contact-section:not(.section-light):not(.section-dark) { width: 100%; padding: 0; }
    .contact-card, html[data-theme="dark"] .contact-card { padding: 56px 20px; }
    .contact-card::after { content: none; }
    .restaurant-hero { min-height: 0; padding: 112px 20px 32px; background-image: linear-gradient(90deg, rgba(15, 24, 48, .96), rgba(15, 24, 48, .82)), url("../brand/restaurants/restaurant-system-hero.png"); background-position: 65% center; }
    .restaurant-hero-copy { max-width: 100%; }
    .restaurant-hero h1 { font-size: 2rem; max-width: 520px; }
    .restaurant-hero p { font-size: 0.98rem; }
    .restaurant-visual { position: relative; right: auto; bottom: auto; width: 220px; margin: 32px 0 0; }
    .restaurant-band, .restaurant-section { padding: 56px 0; }
    .restaurant-pricing article { padding: 26px; }
    .restaurant-pricing strong:not(.restaurant-savings) { font-size: 3rem; }
    .restaurant-support, html[data-theme="dark"] .restaurant-support { padding: 48px 20px; }
    .social-rail { position: static; transform: none; flex-direction: row; justify-content: center; gap: 12px; padding: 20px; background: var(--surface); }
    .social-button { width: 44px; height: 44px; border-radius: 6px; }
    .social-button svg { width: 17px; height: 17px; }
    .whatsapp-widget { left: auto; right: 16px; bottom: calc(14px + env(safe-area-inset-bottom)); max-width: calc(100% - 32px); align-items: flex-end; }
    .whatsapp-float { width: 56px; height: 56px; min-width: 56px; min-height: 56px; padding: 0; justify-content: center; border-radius: 50%; }
    .whatsapp-label, .whatsapp-nudge { display: none; }
    .whatsapp-widget .whatsapp-float, .whatsapp-widget .whatsapp-float::before, .whatsapp-widget .whatsapp-float::after, .whatsapp-widget .whatsapp-icon svg { animation: none; }
    .whatsapp-chat { width: min(350px, calc(100vw - 40px)); }
    .whatsapp-icon { width: 36px; height: 36px; }
    .whatsapp-label strong { font-size: 0.76rem; }
    .whatsapp-label small { font-size: 0.68rem; }
    .back-to-top { right: 22px; bottom: calc(84px + env(safe-area-inset-bottom)); }
    .site-footer { padding-bottom: 104px; }
}
@media (max-width: 420px) {
    .brand img { width: 120px; }
    .module-grid { grid-template-columns: 1fr; }
    .feature-card { display: grid; grid-template-columns: 50px minmax(0, 1fr); column-gap: 18px; padding: 22px 18px; }
    .feature-icon-frame { grid-row: 1 / 3; width: 50px; height: 50px; margin: 0; }
    .feature-card p { grid-column: 2; margin-top: 8px; }
    .process-grid { grid-template-columns: 1fr; }
    .process-grid article { padding: 24px 0 0 54px; }
    .process-grid span { position: absolute; left: 0; top: 22px; }
    .process-grid h3 { margin-top: 0; }
}
@media (max-width: 360px) {
    .brand img { width: 100px; }
    .site-header, .restaurant-header { gap: 6px; padding-inline: 12px; }
    .header-actions { gap: 6px; }
    .hero-actions .button { font-size: 0.74rem; padding-inline: 6px; }
    .hero-feature-icon { width: 32px; height: 36px; }
    .hero-feature-item { gap: 6px; padding-inline: 4px; }
    .hero-feature-item strong { font-size: 0.72rem; }
    .typing-word { font-size: 0.94rem; }
}
/* Keep every theme and interaction state free of decorative shadows. */
*, *::before, *::after {
    box-shadow: none !important;
    text-shadow: none !important;
}
.theme-toggle-icon {
    mask-image: radial-gradient(circle at 75% 25%, transparent 46%, #000 49%);
}
html[data-theme="dark"] .theme-toggle-icon { mask-image: none; }
html[data-theme="dark"] .theme-toggle-icon::before {
    inset: -6px;
    width: auto;
    height: auto;
    border: 2px dashed currentColor;
    background: transparent;
    transform: none;
}
html[data-theme="dark"] .theme-toggle-icon::after { content: none; }
.demo-form :is(input, select, textarea):focus-visible,
.whatsapp-form input:focus-visible {
    outline: 2px solid var(--support-purple);
    outline-offset: 3px;
}
@keyframes whatsappAttention {
    0%, 16%, 100% { translate: 0 0; }
    5%, 11% { translate: 0 -3px; }
    8% { translate: 0 -1px; }
}
@keyframes whatsappAttentionRing {
    0%, 16%, 100% { rotate: 0deg; }
    4%, 10% { rotate: -12deg; }
    7%, 13% { rotate: 10deg; }
}
@keyframes whatsappAttentionWave {
    0% { transform: scale(1); opacity: 0.65; }
    75%, 100% { transform: scale(1.04, 1.18); opacity: 0; }
}
.site-header .nav-links, .restaurant-header .restaurant-nav { gap: 16px; }
@media (min-width: 1101px) and (max-width: 1399px) {
    .site-header .nav-links, .restaurant-header .restaurant-nav { display: none; }
    .site-header .mobile-menu-toggle, .restaurant-header .mobile-menu-toggle { display: inline-flex; }
}
@keyframes whatsappAttentionBadge {
    0%, 24%, 100% { transform: scale(1); }
    8%, 18% { transform: scale(1.15); }
    13% { transform: scale(1); }
}
@media (prefers-reduced-motion: no-preference) {
    .whatsapp-float { animation: whatsappAttention 4.8s ease-in-out 1.2s infinite; }
    .whatsapp-icon svg { animation: whatsappAttentionRing 4.8s ease-in-out 1.2s infinite; }
    .whatsapp-float::before { animation: whatsappAttentionWave 2.4s ease-out infinite; }
    .whatsapp-float::after { animation: whatsappAttentionBadge 4.8s ease-in-out 1.2s infinite; }
    .whatsapp-float:is(:hover, :focus-visible, .is-open),
    .whatsapp-float:is(:hover, :focus-visible, .is-open) .whatsapp-icon svg,
    .whatsapp-float:is(:hover, :focus-visible, .is-open)::before,
    .whatsapp-float:is(:hover, :focus-visible, .is-open)::after { animation: none; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation: none !important; transition: none !important; }
    .has-home-reveal .home-reveal, .has-restaurant-reveal .restaurant-reveal { opacity: 1; translate: none; transform: none; filter: none; }
    .typing-word::after { display: none; }
    .hero-feature-item:hover { transform: none; }
}
