:root {
    color-scheme: light;
    --ink: #171b18;
    --ink-soft: #26302a;
    --forest: #3f5849;
    --forest-deep: #263b30;
    --clay: #b85c38;
    --clay-dark: #93452a;
    --sand: #eee6da;
    --paper: #fcfbf8;
    --white: #ffffff;
    --muted: #686b67;
    --line: #dedbd4;
    --shadow-sm: 0 14px 35px rgba(23, 27, 24, .08);
    --shadow-lg: 0 32px 80px rgba(23, 27, 24, .15);
    --radius-lg: 2rem;
    --radius-md: 1.25rem;
}

* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html { scroll-padding-top: 6rem; }
body { min-height: 100vh; margin: 0; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: var(--paper); color: var(--ink); }
body.menu-open { overflow: hidden; }
img { max-width: 100%; }
a, button, input, textarea, select, summary { outline-offset: 3px; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible { outline: 3px solid rgba(184, 92, 56, .48); }
::selection { background: rgba(184, 92, 56, .22); }

.landing-shell { width: min(100% - 2rem, 76rem); margin-inline: auto; }
.text-balance { text-wrap: balance; }
.prose-copy p + p { margin-top: 1rem; }
.project-image { aspect-ratio: 4 / 3; object-fit: cover; background: #f5f0e8; }
.arch-grid {
    background-image: linear-gradient(rgba(28, 25, 23, .055) 1px, transparent 1px), linear-gradient(90deg, rgba(28, 25, 23, .055) 1px, transparent 1px);
    background-size: 28px 28px;
}

/* Header */
.site-header { position: sticky; top: 0; z-index: 60; border-bottom: 1px solid rgba(222, 219, 212, .8); background: rgba(252, 251, 248, .92); backdrop-filter: blur(18px); transition: box-shadow .25s ease, background .25s ease; }
.site-header.is-scrolled { background: rgba(255, 255, 255, .96); box-shadow: 0 12px 40px rgba(23, 27, 24, .08); }
.site-header__inner { min-height: 5rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.site-brand { display: inline-flex; align-items: center; gap: .75rem; min-width: 0; color: inherit; text-decoration: none; }
.site-brand__mark { width: 2.65rem; height: 2.65rem; display: grid; place-items: center; flex: 0 0 auto; border-radius: .85rem; background: var(--ink); color: var(--white); font-size: .78rem; font-weight: 900; letter-spacing: .07em; box-shadow: inset 0 -3px 0 rgba(184, 92, 56, .95); }
.site-brand__text { min-width: 0; line-height: 1.05; }
.site-brand__text strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 1rem; letter-spacing: -.02em; }
.site-brand__text small { display: block; margin-top: .3rem; color: var(--clay); font-size: .57rem; font-weight: 900; letter-spacing: .17em; text-transform: uppercase; }
.site-nav { display: none; align-items: center; gap: .15rem; }
.site-nav a { position: relative; padding: .75rem .8rem; border-radius: 999px; color: #555a56; font-size: .83rem; font-weight: 750; text-decoration: none; transition: color .2s ease, background .2s ease; }
.site-nav a:hover, .site-nav a.is-active { color: var(--ink); background: var(--sand); }
.site-header__actions { display: flex; align-items: center; gap: .6rem; }
.site-header__cta { display: none; align-items: center; gap: .55rem; min-height: 2.8rem; padding: 0 1rem; border-radius: 999px; background: #188d47; color: #fff; font-size: .82rem; font-weight: 850; text-decoration: none; box-shadow: 0 10px 25px rgba(24, 141, 71, .18); transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.site-header__cta:hover { transform: translateY(-1px); background: #137b3c; box-shadow: 0 15px 30px rgba(24, 141, 71, .25); }
.site-menu-button { width: 2.85rem; height: 2.85rem; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--ink); font-size: 1rem; cursor: pointer; }
.site-mobile-menu { position: fixed; inset: 5rem 0 auto 0; max-height: calc(100vh - 5rem); overflow: auto; border-top: 1px solid var(--line); background: rgba(255, 255, 255, .99); box-shadow: 0 32px 70px rgba(23, 27, 24, .16); }
.site-mobile-menu[hidden] { display: none; }
.site-mobile-menu__inner { display: grid; gap: .35rem; padding-block: 1rem 1.5rem; }
.site-mobile-menu a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .95rem 1rem; border-radius: 1rem; color: var(--ink); font-size: .95rem; font-weight: 800; text-decoration: none; }
.site-mobile-menu a:hover { background: var(--sand); }
.site-mobile-menu a i { color: var(--clay); }

/* Shared landing components */
.landing-section { padding: 5rem 0; }
.landing-section--soft { background: #f2eee7; border-block: 1px solid rgba(222, 219, 212, .8); }
.landing-section--ink { overflow: hidden; background: var(--ink); color: #fff; }
.landing-section--about { background: #ebe4d9; }
.landing-kicker, .landing-eyebrow { margin: 0; color: var(--clay); font-size: .72rem; font-weight: 900; letter-spacing: .18em; text-transform: uppercase; }
.landing-kicker { display: inline-flex; align-items: center; gap: .65rem; padding: .6rem .8rem; border: 1px solid rgba(184, 92, 56, .25); border-radius: 999px; background: rgba(255, 255, 255, .75); }
.landing-kicker span { width: .48rem; height: .48rem; border-radius: 999px; background: var(--clay); box-shadow: 0 0 0 5px rgba(184, 92, 56, .12); }
.landing-section-heading { max-width: 46rem; margin-bottom: 2.2rem; }
.landing-section-heading h2, .landing-process-intro h2, .landing-about-content h2, .landing-faq-intro h2, .landing-contact__content h2 { margin: .7rem 0 0; font-size: clamp(2rem, 5vw, 3.75rem); line-height: 1.05; letter-spacing: -.045em; text-wrap: balance; }
.landing-section-heading > p:last-child, .landing-process-intro > p, .landing-about-content > p, .landing-faq-intro > p, .landing-contact__content > p { margin: 1.1rem 0 0; color: var(--muted); font-size: 1rem; line-height: 1.75; }
.landing-section-heading--split { max-width: none; display: grid; gap: 1.25rem; }
.landing-section-heading--split > p { max-width: 36rem; align-self: end; }
.landing-section-heading--light { color: #fff; }
.landing-section-heading--light .landing-eyebrow { color: #e9a486; }
.landing-section-heading--light h2 { max-width: 55rem; }
.landing-eyebrow--light { color: #f0ad8e; }
.landing-icon { width: 3rem; height: 3rem; display: grid; place-items: center; flex: 0 0 auto; border-radius: 1rem; background: var(--sand); color: var(--clay); font-size: 1.1rem; }
.landing-icon--light { background: #fff; }
.landing-button { min-height: 3.6rem; display: inline-flex; align-items: center; justify-content: center; gap: .7rem; padding: .85rem 1.25rem; border: 0; border-radius: 1rem; font: inherit; font-size: .92rem; font-weight: 900; text-align: center; text-decoration: none; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.landing-button:hover { transform: translateY(-2px); }
.landing-button--whatsapp { background: #188d47; color: #fff; box-shadow: 0 16px 34px rgba(24, 141, 71, .24); }
.landing-button--whatsapp:hover { background: #137b3c; box-shadow: 0 20px 42px rgba(24, 141, 71, .3); }
.landing-button--secondary { border: 1px solid var(--line); background: #fff; color: var(--ink); box-shadow: var(--shadow-sm); }
.landing-button--full { width: 100%; }
.landing-text-link { display: inline-flex; align-items: center; gap: .55rem; color: var(--clay-dark); font-size: .88rem; font-weight: 900; text-decoration: none; }
.landing-text-link i { transition: transform .2s ease; }
.landing-text-link:hover i { transform: translateX(4px); }
.landing-text-link--light { color: #f0ad8e; }

/* Hero */
.landing-hero { position: relative; overflow: hidden; border-bottom: 1px solid var(--line); background: radial-gradient(circle at 88% 15%, rgba(184, 92, 56, .14), transparent 24rem), radial-gradient(circle at 5% 80%, rgba(63, 88, 73, .13), transparent 25rem), var(--paper); }
.landing-hero::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .5; background-image: linear-gradient(rgba(23, 27, 24, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(23, 27, 24, .045) 1px, transparent 1px); background-size: 34px 34px; mask-image: linear-gradient(to bottom, black, transparent 90%); }
.landing-hero__grid { position: relative; display: grid; gap: 3rem; padding-block: 4rem 4.5rem; }
.landing-hero__content { align-self: center; }
.landing-hero h1 { max-width: 48rem; margin: 1.25rem 0 0; font-size: clamp(2.6rem, 7.2vw, 5.7rem); line-height: .98; letter-spacing: -.06em; text-wrap: balance; }
.landing-hero__lead { max-width: 42rem; margin: 1.35rem 0 0; color: #555a56; font-size: clamp(1rem, 2vw, 1.2rem); line-height: 1.75; }
.landing-hero__actions { display: grid; gap: .75rem; margin-top: 1.7rem; }
.landing-proof-list { display: grid; gap: .7rem; margin: 1.7rem 0 0; padding: 0; list-style: none; color: #535753; font-size: .85rem; font-weight: 750; }
.landing-proof-list li { display: flex; align-items: center; gap: .55rem; }
.landing-proof-list i { color: var(--clay); }
.landing-hero__visual { position: relative; align-self: center; }
.landing-hero__image-frame { position: relative; padding: .65rem; border: 1px solid rgba(255, 255, 255, .9); border-radius: 2.2rem; background: rgba(255, 255, 255, .5); box-shadow: var(--shadow-lg); }
.landing-hero__image { display: block; width: 100%; height: auto; border-radius: 1.75rem; }
.landing-hero__stamp { position: absolute; left: 1.4rem; bottom: 1.4rem; max-width: 15rem; padding: .85rem 1rem; border: 1px solid rgba(255, 255, 255, .8); border-radius: 1rem; background: rgba(23, 27, 24, .92); color: #fff; box-shadow: var(--shadow-sm); backdrop-filter: blur(12px); }
.landing-hero__stamp span { display: block; color: #f0ad8e; font-size: .6rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.landing-hero__stamp strong { display: block; margin-top: .25rem; font-size: .82rem; line-height: 1.35; }
.landing-hero__location-card { position: relative; z-index: 2; width: calc(100% - 2rem); display: flex; align-items: flex-start; gap: .75rem; margin: -1.35rem auto 0; padding: 1rem; border: 1px solid rgba(222, 219, 212, .9); border-radius: 1.25rem; background: rgba(255, 255, 255, .96); box-shadow: var(--shadow-sm); }
.landing-hero__location-card > i { width: 2.5rem; height: 2.5rem; display: grid; place-items: center; flex: 0 0 auto; border-radius: .85rem; background: var(--sand); color: var(--clay); }
.landing-hero__location-card span, .landing-hero__location-card strong, .landing-hero__location-card small { display: block; }
.landing-hero__location-card span { color: var(--muted); font-size: .65rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.landing-hero__location-card strong { margin-top: .18rem; font-size: .92rem; }
.landing-hero__location-card small { margin-top: .22rem; color: var(--muted); font-size: .72rem; line-height: 1.4; }

.landing-service-strip { border-bottom: 1px solid var(--line); background: #fff; }
.landing-service-strip__inner { display: flex; align-items: center; gap: .75rem; overflow-x: auto; padding-block: 1rem; scrollbar-width: none; }
.landing-service-strip__inner::-webkit-scrollbar { display: none; }
.landing-service-strip span { flex: 0 0 auto; display: inline-flex; align-items: center; gap: .75rem; color: #60635f; font-size: .68rem; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.landing-service-strip span:not(:last-child)::after { content: ""; width: .35rem; height: .35rem; border-radius: 50%; background: var(--clay); }

/* Solution cards */
.landing-problem-grid { display: grid; gap: 1rem; }
.landing-problem-card { padding: 1.4rem; border: 1px solid var(--line); border-radius: 1.45rem; background: #fff; box-shadow: 0 10px 30px rgba(23, 27, 24, .045); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.landing-problem-card:hover { transform: translateY(-4px); border-color: rgba(184, 92, 56, .32); box-shadow: var(--shadow-sm); }
.landing-problem-card h3 { margin: 1rem 0 0; font-size: 1.18rem; letter-spacing: -.025em; }
.landing-problem-card p { margin: .65rem 0 0; color: var(--muted); font-size: .9rem; line-height: 1.7; }

/* Services */
.landing-service-columns { display: grid; gap: 1rem; }
.landing-service-group { padding: 1.35rem; border: 1px solid var(--line); border-radius: 1.7rem; background: #fff; box-shadow: var(--shadow-sm); }
.landing-service-group--dark { border-color: transparent; background: var(--ink); color: #fff; }
.landing-service-group__header { display: flex; align-items: center; gap: .9rem; }
.landing-service-group__header p { margin: 0 0 .25rem; color: var(--clay); font-size: .62rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.landing-service-group--dark .landing-service-group__header p { color: #f0ad8e; }
.landing-service-group__header h3 { margin: 0; font-size: 1.35rem; letter-spacing: -.03em; }
.landing-service-group__intro { margin: 1rem 0 0; color: var(--muted); font-size: .86rem; line-height: 1.65; }
.landing-service-group--dark .landing-service-group__intro { color: #c5cac6; }
.landing-service-list { display: grid; gap: .4rem; margin-top: 1.15rem; }
.landing-service-list a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem .9rem; border: 1px solid var(--line); border-radius: .95rem; color: var(--ink); font-size: .82rem; font-weight: 800; text-decoration: none; transition: border-color .2s ease, background .2s ease, transform .2s ease; }
.landing-service-list a:hover { transform: translateX(3px); border-color: rgba(184, 92, 56, .38); background: #f9f5ef; }
.landing-service-list a span { display: flex; align-items: center; gap: .7rem; }
.landing-service-list a span i { width: 1.2rem; color: var(--clay); text-align: center; }
.landing-service-list > a > i { color: var(--clay); font-size: .72rem; }
.landing-service-group--dark .landing-service-list a { border-color: rgba(255, 255, 255, .11); background: rgba(255, 255, 255, .04); color: #fff; }
.landing-service-group--dark .landing-service-list a:hover { border-color: rgba(240, 173, 142, .45); background: rgba(255, 255, 255, .08); }
.landing-service-group .landing-text-link { margin-top: 1.2rem; }

/* Process */
.landing-process-layout { display: grid; gap: 2.5rem; }
.landing-process-intro { align-self: start; }
.landing-process-note { display: flex; gap: .85rem; margin-top: 1.35rem; padding: 1rem; border: 1px solid var(--line); border-radius: 1.15rem; background: #fff; }
.landing-process-note i { color: var(--clay); margin-top: .2rem; }
.landing-process-note p { margin: 0; color: var(--muted); font-size: .84rem; line-height: 1.6; }
.landing-timeline { position: relative; display: grid; gap: .8rem; margin: 0; padding: 0; list-style: none; }
.landing-timeline::before { content: ""; position: absolute; top: 1.5rem; bottom: 1.5rem; left: 1.5rem; width: 1px; background: var(--line); }
.landing-timeline li { position: relative; display: grid; grid-template-columns: 3rem 1fr; gap: 1rem; padding: 1rem; border: 1px solid var(--line); border-radius: 1.25rem; background: #fff; box-shadow: 0 10px 28px rgba(23, 27, 24, .04); }
.landing-timeline li > span { position: relative; z-index: 1; width: 3rem; height: 3rem; display: grid; place-items: center; border-radius: 1rem; background: var(--ink); color: #fff; font-size: .72rem; font-weight: 900; }
.landing-timeline h3 { margin: .1rem 0 0; font-size: 1rem; letter-spacing: -.02em; }
.landing-timeline p { margin: .4rem 0 0; color: var(--muted); font-size: .82rem; line-height: 1.6; }

/* Values */
.landing-values-grid { display: grid; gap: .8rem; }
.landing-values-grid article { padding: 1.25rem; border: 1px solid rgba(255, 255, 255, .11); border-radius: 1.35rem; background: rgba(255, 255, 255, .045); }
.landing-values-grid article > i { width: 2.5rem; height: 2.5rem; display: grid; place-items: center; border-radius: .85rem; background: #fff; color: var(--clay); }
.landing-values-grid h3 { margin: 1rem 0 0; font-size: 1.08rem; }
.landing-values-grid p { margin: .55rem 0 0; color: #bfc5c0; font-size: .84rem; line-height: 1.65; }

/* Projects */
.landing-project-grid { display: grid; gap: 1rem; }
.landing-project-card { overflow: hidden; border-radius: 1.5rem; background: #fff; color: var(--ink); text-decoration: none; box-shadow: var(--shadow-sm); }
.landing-project-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.landing-project-card div { padding: 1.1rem; }
.landing-project-card span { color: var(--clay); font-size: .64rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.landing-project-card h3 { margin: .35rem 0 0; font-size: 1.1rem; }

/* About */
.landing-about-layout { display: grid; gap: 2.3rem; }
.landing-about-visual { position: relative; min-height: 22rem; display: grid; align-content: center; justify-items: center; overflow: hidden; border-radius: 1.8rem; background: var(--forest-deep); color: #fff; box-shadow: var(--shadow-lg); }
.landing-about-visual::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255, 255, 255, .06) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .06) 1px, transparent 1px); background-size: 30px 30px; }
.landing-about-monogram { position: relative; font-size: clamp(5rem, 20vw, 9rem); font-weight: 950; letter-spacing: -.09em; opacity: .92; }
.landing-about-quote { position: absolute; left: 1rem; right: 1rem; bottom: 1rem; padding: 1rem; border: 1px solid rgba(255, 255, 255, .15); border-radius: 1.1rem; background: rgba(23, 27, 24, .75); backdrop-filter: blur(12px); }
.landing-about-quote i { color: #f0ad8e; }
.landing-about-quote p { margin: .5rem 0 0; font-size: .85rem; font-weight: 750; line-height: 1.55; }
.landing-about-intro { font-size: 1.08rem !important; font-weight: 700; color: var(--ink) !important; }
.landing-about-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-top: 1.4rem; }
.landing-about-actions > span { color: var(--muted); font-size: .78rem; font-weight: 800; }

/* FAQ */
.landing-faq-layout { display: grid; gap: 2rem; }
.landing-faq-intro .landing-text-link { margin-top: 1.2rem; }
.landing-faq-list { display: grid; gap: .65rem; }
.faq-item[open] { border-color: rgba(184, 92, 56, .35); }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: '+'; margin-left: auto; color: var(--clay); font-size: 1.35rem; font-weight: 900; }
.faq-item[open] summary::after { content: '−'; }
.landing-faq-item { overflow: hidden; border: 1px solid var(--line); border-radius: 1.15rem; background: #fff; box-shadow: 0 8px 24px rgba(23, 27, 24, .035); }
.landing-faq-item summary { display: flex; align-items: center; gap: 1rem; padding: 1.05rem; font-size: .9rem; font-weight: 850; cursor: pointer; list-style: none; }
.landing-faq-item > div { padding: 0 1.05rem 1.05rem; }
.landing-faq-item p { margin: 0; color: var(--muted); font-size: .84rem; line-height: 1.7; }

/* Contact */
.landing-contact { padding: 5rem 0; background: radial-gradient(circle at 10% 0, rgba(184, 92, 56, .25), transparent 25rem), var(--ink); color: #fff; }
.landing-contact__grid { display: grid; gap: 2rem; }
.landing-contact__content { align-self: center; }
.landing-contact__content > p { color: #c1c7c2; }
.landing-contact__details { display: grid; gap: .65rem; margin-top: 1.5rem; }
.landing-contact__details a { display: flex; align-items: center; gap: .8rem; padding: .85rem; border: 1px solid rgba(255, 255, 255, .12); border-radius: 1rem; color: #fff; text-decoration: none; }
.landing-contact__details a > i { width: 2.5rem; height: 2.5rem; display: grid; place-items: center; border-radius: .8rem; background: rgba(255, 255, 255, .09); color: #f0ad8e; }
.landing-contact__details span, .landing-contact__details strong { display: block; }
.landing-contact__details span { color: #aeb6b0; font-size: .68rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.landing-contact__details strong { margin-top: .15rem; color: #fff; font-size: .86rem; letter-spacing: 0; text-transform: none; overflow-wrap: anywhere; }
.landing-lead-form { display: grid; gap: .9rem; padding: 1.25rem; border-radius: 1.5rem; background: #fff; color: var(--ink); box-shadow: var(--shadow-lg); }
.landing-lead-form__heading span { display: inline-flex; padding: .35rem .55rem; border-radius: 999px; background: var(--sand); color: var(--clay-dark); font-size: .62rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.landing-lead-form__heading h3 { margin: .75rem 0 0; font-size: 1.35rem; letter-spacing: -.035em; }
.landing-lead-form__heading p { margin: .45rem 0 0; color: var(--muted); font-size: .76rem; line-height: 1.5; }
.landing-lead-form label { display: grid; gap: .38rem; }
.landing-lead-form label > span { font-size: .72rem; font-weight: 850; }
.landing-lead-form input, .landing-lead-form select, .landing-lead-form textarea { width: 100%; border: 1px solid var(--line); border-radius: .85rem; background: #fbfaf7; color: var(--ink); font: inherit; font-size: .86rem; padding: .85rem .9rem; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; }
.landing-lead-form textarea { resize: vertical; min-height: 6.5rem; }
.landing-lead-form input:focus, .landing-lead-form select:focus, .landing-lead-form textarea:focus { border-color: rgba(184, 92, 56, .7); background: #fff; box-shadow: 0 0 0 4px rgba(184, 92, 56, .11); outline: none; }
.landing-lead-form small { color: var(--muted); font-size: .65rem; line-height: 1.45; text-align: center; }

/* Cookie banner */
.cookie-banner { position: fixed; z-index: 70; left: 1rem; right: 1rem; bottom: 5.75rem; }
.cookie-banner__content { max-width: 62rem; margin: 0 auto; display: grid; gap: 1rem; padding: 1rem; border: 1px solid #d6d3d1; border-radius: 1.25rem; background: rgba(255,255,255,.98); box-shadow: 0 24px 70px rgba(28,25,23,.2); }
.cookie-banner__actions { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }

/* Progressive reveal */
[data-reveal] { opacity: 1; transform: none; }
.js [data-reveal] { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s cubic-bezier(.2, .7, .2, 1); }
.js [data-reveal].is-visible { opacity: 1; transform: translateY(0); }

@media (min-width: 640px) {
    .landing-shell { width: min(100% - 3rem, 76rem); }
    .site-header__cta { display: inline-flex; }
    .landing-hero__actions { display: flex; flex-wrap: wrap; }
    .landing-proof-list { grid-template-columns: repeat(2, max-content); gap: .75rem 1.35rem; }
    .landing-problem-grid, .landing-values-grid { grid-template-columns: repeat(2, 1fr); }
    .landing-service-group, .landing-lead-form { padding: 1.7rem; }
    .landing-contact__details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cookie-banner { bottom: 1rem; }
    .cookie-banner__content { grid-template-columns: 1fr auto; align-items: center; padding: 1.25rem; }
    .cookie-banner__actions { display: flex; }
}

@media (min-width: 768px) {
    .landing-section { padding: 6.5rem 0; }
    .landing-section-heading--split { grid-template-columns: minmax(0, 1.2fr) minmax(18rem, .8fr); align-items: end; }
    .landing-hero__grid { grid-template-columns: minmax(0, 1.05fr) minmax(22rem, .95fr); gap: 3.5rem; padding-block: 5rem 5.5rem; }
    .landing-hero h1 { font-size: clamp(3.6rem, 6.4vw, 5.7rem); }
    .landing-proof-list { grid-template-columns: none; }
    .landing-problem-grid { grid-template-columns: repeat(3, 1fr); }
    .landing-service-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem; }
    .landing-service-group { padding: 1.8rem; }
    .landing-values-grid { grid-template-columns: repeat(4, 1fr); }
    .landing-project-grid { grid-template-columns: repeat(3, 1fr); }
    .landing-about-layout { grid-template-columns: minmax(18rem, .85fr) minmax(0, 1.15fr); align-items: center; gap: 4rem; }
    .landing-faq-layout { grid-template-columns: minmax(16rem, .7fr) minmax(0, 1.3fr); gap: 4rem; }
    .landing-faq-intro { position: sticky; top: 7rem; align-self: start; }
    .landing-contact__grid { grid-template-columns: minmax(0, .9fr) minmax(24rem, 1.1fr); gap: 4rem; }
}

@media (min-width: 1024px) {
    .site-nav { display: flex; }
    .site-menu-button { display: none; }
    .landing-hero__grid { min-height: calc(100vh - 5rem); align-items: center; }
    .landing-hero__location-card { position: absolute; right: -1.25rem; bottom: 2.5rem; width: 17.5rem; margin: 0; }
    .landing-process-layout { grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: 5rem; }
    .landing-process-intro { position: sticky; top: 7rem; }
    .landing-timeline li { padding: 1.2rem; }
}

@media (min-width: 1180px) {
    .landing-shell { width: min(100% - 4rem, 76rem); }
    .site-nav a { padding-inline: .9rem; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto !important; }
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
    .js [data-reveal] { opacity: 1; transform: none; }
}

/* Footer */
.site-footer { background: #111512; color: #fff; }
.site-footer__grid { display: grid; gap: 2.2rem; padding-block: 4rem; }
.site-brand--footer { color: #fff; }
.site-brand--footer .site-brand__mark { background: #fff; color: var(--ink); }
.site-footer__brand > p { max-width: 27rem; margin: 1.2rem 0 0; color: #aeb5af; font-size: .84rem; line-height: 1.75; }
.site-footer__registration { display: block; margin-top: .8rem; color: #858d87; font-size: .72rem; }
.site-footer__social { display: flex; gap: .5rem; margin-top: 1.2rem; }
.site-footer__social a { width: 2.55rem; height: 2.55rem; display: grid; place-items: center; border: 1px solid rgba(255, 255, 255, .12); border-radius: 999px; color: #b8c0ba; text-decoration: none; transition: border-color .2s ease, color .2s ease, background .2s ease; }
.site-footer__social a:hover { border-color: rgba(240, 173, 142, .5); background: rgba(255, 255, 255, .06); color: #fff; }
.site-footer__column { display: grid; align-content: start; justify-items: start; gap: .72rem; }
.site-footer__column h2 { margin: 0 0 .35rem; color: #f0ad8e; font-size: .7rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.site-footer__column > a { color: #b8c0ba; font-size: .82rem; line-height: 1.45; text-decoration: none; }
.site-footer__column > a:hover { color: #fff; }
.site-footer__all-link { display: inline-flex; align-items: center; gap: .45rem; margin-top: .3rem; color: #f0ad8e !important; font-weight: 850; }
.site-footer__contact .site-footer__whatsapp { display: inline-flex; align-items: center; gap: .55rem; padding: .75rem .9rem; border-radius: .85rem; background: #188d47; color: #fff; font-weight: 850; }
.site-footer__contact > a:not(.site-footer__whatsapp), .site-footer__contact > p { display: flex; align-items: flex-start; gap: .55rem; margin: 0; color: #b8c0ba; font-size: .8rem; overflow-wrap: anywhere; }
.site-footer__contact > a i, .site-footer__contact > p i { margin-top: .15rem; color: #f0ad8e; }
.site-footer__contact small { color: #858d87; font-size: .72rem; line-height: 1.55; }
.site-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .09); }
.site-footer__bottom > div { display: flex; flex-direction: column; align-items: center; justify-content: space-between; gap: .8rem; padding-block: 1.25rem; color: #7e8780; font-size: .68rem; text-align: center; }
.site-footer__bottom p { margin: 0; }
.site-footer__bottom div div { display: flex; flex-wrap: wrap; justify-content: center; gap: .8rem 1rem; }
.site-footer__bottom a { color: #929b94; text-decoration: none; }
.site-footer__bottom a:hover { color: #fff; }
.floating-whatsapp { position: fixed; right: 1rem; bottom: 1rem; z-index: 45; width: 3.65rem; height: 3.65rem; display: none; place-items: center; border-radius: 50%; background: #188d47; color: #fff; font-size: 1.55rem; text-decoration: none; box-shadow: 0 18px 40px rgba(24, 141, 71, .32); transition: transform .2s ease, background .2s ease; }
.floating-whatsapp:hover { transform: translateY(-3px) scale(1.03); background: #137b3c; }
.mobile-whatsapp-bar { position: fixed; inset: auto 0 0 0; z-index: 45; padding: .7rem; padding-bottom: max(.7rem, env(safe-area-inset-bottom)); border-top: 1px solid rgba(24, 141, 71, .2); background: rgba(255, 255, 255, .96); backdrop-filter: blur(12px); }
.mobile-whatsapp-bar a { min-height: 3.2rem; display: flex; align-items: center; justify-content: center; gap: .65rem; border-radius: .9rem; background: #188d47; color: #fff; font-size: .82rem; font-weight: 900; text-decoration: none; box-shadow: 0 10px 24px rgba(24, 141, 71, .2); }

@media (min-width: 640px) {
    .site-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .floating-whatsapp { display: grid; }
    .mobile-whatsapp-bar { display: none; }
}

@media (min-width: 768px) {
    .site-footer__bottom > div { flex-direction: row; text-align: left; }
}

@media (min-width: 1024px) {
    .site-footer__grid { grid-template-columns: 1.35fr .72fr 1fr 1fr; gap: 3rem; }
}
