:root{color-scheme:light;--ink:#173c51;--muted:#536c78;--accent:#3186a0;--line:#dae4e8;--paper:#f6f9fa;--surface:#fff;--soft:#eaf2f5;--highlight:#3186a0;--hero-glow:#6daec21a}
:root[data-theme="oscuro"]{color-scheme:dark;--ink:#edf5f8;--muted:#b1c7d1;--accent:#83bed0;--line:#ffffff21;--paper:#102e40;--surface:#173b4e;--soft:#20495d;--highlight:#83bed0;--hero-glow:#3186a02b}
body{background:radial-gradient(ellipse at 10% 15%,var(--hero-glow),transparent 42%),var(--paper);color:var(--ink)}
a,button{touch-action:manipulation}button:focus-visible,a:focus-visible{outline-color:var(--highlight)}
.skip-link{position:absolute;top:-80px;left:20px;padding:13px 20px;background:var(--ink);color:var(--paper);z-index:100}.skip-link:focus{top:12px}
.header{height:auto;min-height:112px;gap:25px}.brand-link{display:block;flex-shrink:0;border-radius:5px}.brand{display:block;width:175px;height:auto}.header-controls{display:flex;align-items:center;gap:26px}.header nav{gap:25px;font-size:12px}.header nav>a:hover{color:var(--highlight)}.contact-link{border-color:var(--line)}.contact-link span{margin-left:14px}
.theme-switch{display:flex;gap:3px;padding:4px;border:1px solid var(--line);background:var(--soft);border-radius:25px;flex-shrink:0}.theme-switch button{border:0;border-radius:20px;background:transparent;color:var(--muted);padding:8px 11px;font-size:10px;display:flex;align-items:center;gap:6px;min-height:34px}.theme-switch button>span{font-size:15px}.theme-switch button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 2px 7px #061c2910}
h1 em,h2 em{color:var(--highlight)}.hero-note{background:var(--soft)}.hero-note:before{border-color:var(--line)}.note-top .asterisk{color:var(--highlight)}.note-bottom{border-color:var(--line);color:var(--muted)}.note-bottom>span:first-child{font-size:14px;line-height:1.8;font-weight:500}.hero-note em{border-color:var(--highlight)}
.home-hero{grid-template-columns:1.2fr 1fr;gap:55px;padding-top:64px;padding-bottom:80px;min-height:600px}.home-hero h1{font-size:clamp(48px,5.7vw,77px);line-height:1.08;letter-spacing:-3.5px;font-weight:550}.home-hero h1 em{font-size:1em}.home-hero .eyebrow{color:var(--highlight);font-size:9px;margin-bottom:28px}.home-hero .intro{font-size:15px;line-height:1.9;margin:26px 0 30px;max-width:450px}.hero-actions{display:flex;gap:25px;align-items:center;flex-wrap:wrap}.primary-action{display:inline-flex;align-items:center;gap:25px;background:#204b65;color:white;padding:16px 21px;font-size:12px;font-weight:600;border-radius:5px}.primary-action:hover{background:#3186a0}.hero-actions .text-link{font-size:11px;gap:15px}.home-location{font-size:10px;line-height:1.9;color:var(--muted);margin:26px 0 0;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.location-divider{color:var(--highlight);margin:0 3px}
.home-art{aspect-ratio:1;position:relative;display:grid;place-items:center;background:radial-gradient(circle,var(--hero-glow),transparent 70%);margin-bottom:10px}.art-orbit{position:absolute;width:94%;height:94%;border:1px solid var(--line);border-radius:50%}.art-orbit.inner{width:74%;height:74%;border-style:dashed}.art-cross{position:absolute;font-size:22px;color:var(--highlight);font-weight:400}.cross-first{top:4%;right:10%}.cross-last{left:5%;bottom:14%}.logo-animation{position:relative;width:64%;aspect-ratio:1;display:grid;place-items:center}.logo-original{width:90%;height:auto;display:block}.logo-lottie{position:absolute;inset:0;visibility:hidden;pointer-events:none}.logo-lottie svg{display:block;width:100%;height:100%}.logo-animation.is-playing .logo-lottie{visibility:visible}.logo-animation.is-playing .logo-original{visibility:hidden}.home-art-caption{position:absolute;bottom:-17px;font-size:8px;letter-spacing:2.2px;color:var(--muted)}.art-chip{position:absolute;right:-5px;bottom:44px;background:var(--surface);color:var(--muted);padding:13px 16px;box-shadow:0 10px 30px #061c290d;border:1px solid var(--line);border-radius:5px;font-size:10px;transform:rotate(-4deg)}
.connection{display:flex;align-items:center;justify-content:space-between;gap:25px;border-top:1px solid var(--line);padding-top:24px;padding-bottom:30px}.connection>p{font-size:15px;line-height:1.6;margin:0;font-weight:400}.connection>p>strong{font-weight:600;color:var(--highlight)}.connection>span{font-size:11px;color:var(--muted);border-left:1px solid var(--line);padding-left:23px}.connection>a{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:18px}.connection>a>span{color:var(--highlight);font-size:19px}.client-strip{border-color:var(--line)}.client-strip>p{color:var(--muted)}.project-card{background:var(--surface);border-color:var(--line)}.pill{background:var(--soft);border-color:var(--line);color:var(--muted)}.featured-label{color:var(--highlight)}.tags span{background:var(--soft);color:var(--muted)}.card-bottom{border-color:var(--line)}.details{color:var(--ink)}.details:hover{color:var(--highlight)}.solutions-count,.project-count{color:var(--muted)}.filters button{color:var(--muted)}.filters button:hover{background:var(--soft)}.filters button.selected{background:var(--ink);color:var(--paper)}.cta{background:#173c51;border:1px solid #ffffff16}.cta .eyebrow{color:#a1cbd8}.cta h2 em{color:#83bed0}.cta>a{background:#83bed0;color:#173c51}.cta>a:hover{background:#a1d2e0}.footer{color:var(--muted)}.footer>p>span{color:var(--muted)}
dialog{background:var(--surface);color:var(--ink);border-color:var(--line)}.dialog-top button{background:var(--soft);color:var(--ink);border-color:var(--line)}.dialog-actions a{background:#204b65;color:#fff}.dialog-actions a:hover{background:#3186a0}.dialog-logo{background:#fff;border-radius:5px;padding:9px}.dialog-body .eyebrow{line-height:1.7}
[data-theme="oscuro"] .brand-link{background:#f6f9fa;padding:9px 12px}[data-theme="oscuro"] .brand{width:160px}[data-theme="oscuro"] .logo-animation{background:#f6f9fa;border-radius:50%;box-shadow:0 0 75px #6daec210}[data-theme="oscuro"] .primary-action{background:#83bed0;color:#173c51}[data-theme="oscuro"] .primary-action:hover{background:#a1d2e0}[data-theme="oscuro"] .logo-list img{filter:none;opacity:1;background:#fff;border-radius:5px;padding:7px}[data-theme="oscuro"] .client-title img,[data-theme="oscuro"] .info-logo{background:#fff;padding:6px;border-radius:5px;object-position:center}[data-theme="oscuro"] .footer>img{background:#f6f9fa;border-radius:3px;padding:6px}[data-theme="oscuro"] .visual-caption{color:#153c4a}[data-theme="oscuro"] .visual-sendero .visual-caption{color:#f0e6c6}[data-theme="oscuro"] .concept-note{color:#153c4a}[data-theme="oscuro"] .visual-decidor{color:#153c4a}[data-theme="oscuro"] .visual-roce{color:#153c4a}[data-theme="oscuro"] .cta{background:#0c2535}
@media(max-width:1050px){.header-controls{gap:18px}.header nav{gap:18px}.header nav>a:first-child{display:none}.home-hero{gap:30px;min-height:540px}.home-hero h1{font-size:63px}.hero-actions{gap:19px}.connection{gap:18px}.connection>span{padding-left:16px}.connection>a{max-width:160px;line-height:1.7}.art-chip{right:-5px;font-size:8px}}
@media(max-width:760px){.header{padding-top:24px;padding-bottom:20px;min-height:0;flex-wrap:wrap;gap:18px}.brand{width:148px}[data-theme="oscuro"] .brand{width:136px}[data-theme="oscuro"] .brand-link{padding:7px 9px}.header-controls{width:100%;justify-content:space-between;gap:12px}.header nav{gap:13px}.header nav>a:first-child{display:block}.header nav>a{font-size:10px}.header nav .contact-link{display:none}.theme-switch{padding:3px;gap:0}.theme-switch button{padding:6px 9px;font-size:9px;min-height:32px}.theme-switch button>span{font-size:13px}.home-hero{grid-template-columns:1fr;gap:38px;padding-top:33px;padding-bottom:45px;min-height:0}.home-hero h1{font-size:clamp(49px,11.5vw,74px);letter-spacing:-2.7px}.home-hero .eyebrow{font-size:8px;line-height:1.7;letter-spacing:1.5px;margin-bottom:22px}.home-hero .intro{font-size:14px;margin:21px 0 24px}.hero-actions{gap:19px}.primary-action{padding:14px 17px;font-size:11px;gap:17px}.hero-actions .text-link{font-size:10px;gap:10px}.home-location{font-size:9px;margin-top:22px}.home-art{width:min(330px,83%);justify-self:center;margin:0 0 19px}.home-art-caption{font-size:7px;bottom:-15px}.art-chip{bottom:22px;right:-25px;font-size:8px;padding:11px 12px}.connection{flex-wrap:wrap;padding-top:22px;padding-bottom:25px;gap:19px}.connection>p{width:100%;font-size:14px}.connection>p br{display:none}.connection>p>strong{margin-left:4px}.connection>span{font-size:9px;padding-left:11px}.connection>a{max-width:none;width:100%;font-size:10px;justify-content:space-between}.client-strip{padding-top:19px}.home-page .projects{padding-top:42px}.cta{margin:0 22px}.theme-switch button:focus-visible{outline-offset:2px}}
@media(max-width:365px){.header nav{gap:10px}.header nav>a{font-size:9px}.theme-switch button{padding:6px 7px}.header-controls{gap:8px}.hero-actions{gap:16px}.hero-actions .text-link{font-size:9px}}
@media(prefers-reduced-motion:reduce){.logo-animation.is-playing .logo-lottie{visibility:hidden}.logo-animation.is-playing .logo-original{visibility:visible}}

/* Portfolio typography: comfortable reading with a clear visual hierarchy. */
.projects .section-heading .eyebrow{font-size:11px;line-height:1.7;letter-spacing:1.6px}
.projects .section-heading>p{font-size:15px;line-height:1.8}
.projects .filter-bar{gap:20px;align-items:center}
.projects .filters{gap:7px}
.projects .filters button{font-size:14px;padding:11px 15px;min-height:44px}
.projects .project-count{font-size:12px}
.projects .project-info{padding:30px 32px}
.projects .featured .project-info{padding:32px 35px}
.projects .project-info h3{font-size:26px;line-height:1.4;margin-bottom:16px}
.projects .featured h3{font-size:30px;letter-spacing:-.8px}
.projects .project-info>p{font-size:16px;line-height:1.8;margin-bottom:24px}
.projects .info-top{flex-wrap:wrap;gap:12px}
.projects .pill{font-size:12px;line-height:1.5;padding:6px 10px}
.projects .featured-label{font-size:10px;line-height:1.6;letter-spacing:1.2px}
.projects .tags{gap:8px;margin-bottom:26px}
.projects .tags span{font-size:12px;line-height:1.5;padding:7px 10px}
.projects .card-bottom{gap:16px;padding-top:20px}
.projects .details{font-size:15px;line-height:1.6;min-height:36px;gap:25px;text-align:left}
.projects .solutions-count{font-size:12px;white-space:nowrap}
.projects .visual-caption{font-size:10px;line-height:1.6;gap:16px}
.projects .concept-note{font-size:10px}
.dialog-body p{font-size:16px;line-height:1.8}
.dialog-body h3{font-size:17px}
.dialog-actions a{font-size:14px}
@media(max-width:1000px){.projects .filter-bar{flex-wrap:wrap}.projects .project-info,.projects .featured .project-info{padding:28px}.projects .featured h3{font-size:28px}.projects .visual-caption{font-size:9px}}
@media(max-width:700px){.projects .section-heading>p{font-size:14px}.projects .section-heading .eyebrow{font-size:10px}.projects .filters{gap:5px}.projects .filters button{font-size:13px;padding:10px 12px}.projects .project-info,.projects .featured .project-info{padding:25px}.projects .project-info h3,.projects .featured h3{font-size:25px;line-height:1.4}.projects .project-info>p{font-size:15px;line-height:1.8}.projects .details{font-size:14px;gap:18px}.projects .solutions-count{font-size:11px}.projects .featured-label{font-size:9px}.projects .visual-caption{font-size:8px;gap:10px}.projects .concept-note{font-size:9px}}

/* Client identities lead the portfolio, in their original colors. */
.client-strip{display:block;padding-top:30px;padding-bottom:32px}
.client-strip>p{font-size:11px;letter-spacing:1.3px;line-height:1.7;margin:0 0 22px}
.client-strip>p br{display:none}
.client-strip .logo-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;align-items:stretch}
.client-strip .logo-list img{display:block;width:100%;height:116px;object-fit:contain;filter:none;opacity:1;background:#fff;border:1px solid #dce5e9;border-radius:8px;padding:20px 22px}
.projects .info-logo{width:210px;max-width:100%;height:112px;object-fit:contain;object-position:left;margin:25px 0 23px}
.projects .client-title{height:auto;min-height:112px;gap:20px;flex-wrap:wrap;align-items:center;margin-bottom:24px}
.projects .client-title img,.projects .client-title img.wide-logo{display:block;width:190px;max-width:100%;height:100px;object-fit:contain;object-position:left}
[data-theme="oscuro"] .client-strip .logo-list img{padding:20px 22px;border-color:#ffffff24}
[data-theme="oscuro"] .projects .client-title img,[data-theme="oscuro"] .projects .info-logo{padding:12px 16px;background:#fff;border:1px solid #dce5e9;border-radius:7px;object-position:center}
.dialog-logo{width:230px;max-width:100%;height:116px;padding:14px;object-position:center;margin-top:25px}
@media(max-width:1000px){.client-strip .logo-list{gap:12px}.client-strip .logo-list img,[data-theme="oscuro"] .client-strip .logo-list img{height:100px;padding:17px 13px}.projects .client-title img,.projects .client-title img.wide-logo{width:170px;height:96px}}
@media(max-width:700px){.client-strip{padding-top:25px;padding-bottom:25px}.client-strip>p{font-size:10px;letter-spacing:1px;margin-bottom:18px}.client-strip .logo-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.client-strip .logo-list img,[data-theme="oscuro"] .client-strip .logo-list img{height:105px;padding:16px}.client-strip .logo-list img:last-child{grid-column:1/-1;height:92px;padding:23px}.projects .info-logo{width:190px;height:105px;margin:23px 0}.projects .client-title{min-height:100px;gap:14px;margin-bottom:22px}.projects .client-title img,.projects .client-title img.wide-logo{width:170px;height:96px}.dialog-logo{width:210px;height:108px}}

/* Prominent appearance selector on the home page. */
.home-page .header-controls{flex-wrap:wrap;justify-content:flex-end}
.home-page .theme-switch{border-color:var(--highlight);padding:4px}
.home-page .theme-switch button{font-size:13px;min-height:44px;padding:10px 14px;font-weight:600}
.home-page .theme-switch button>span{font-size:18px}
@media(max-width:760px){.home-page .header-controls{justify-content:flex-start;gap:18px}.home-page .theme-switch{order:-1}.home-page .theme-switch button{font-size:12px;padding:9px 13px}.home-page .header nav{width:100%;justify-content:space-between}.home-page .header nav>a{font-size:12px}}

/* Six client logos, balanced across desktop and mobile. */
@media(min-width:1001px){.client-strip .logo-list{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.client-strip .logo-list img,[data-theme="oscuro"] .client-strip .logo-list img{padding:15px 12px}}
@media(min-width:701px) and (max-width:1000px){.client-strip .logo-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.client-strip .logo-list img:last-child{grid-column:auto;height:105px;padding:16px}}
.dialog-logo{background:#fff;border-radius:7px}

/* Floating navigation keeps the logo and links accessible while scrolling. */
.home-page{padding-top:calc(var(--home-header-height, 112px) + 28px)}
.home-page>.header{position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:40;width:calc(100% - 32px);max-width:1240px;min-height:88px;margin:0;padding:16px 28px;border:1px solid var(--line);border-radius:18px;background:var(--paper);box-shadow:0 10px 30px #061c291a}
html:has(.home-page){scroll-padding-top:calc(var(--home-header-height, 112px) + 28px)}
@media(max-width:760px){
 .home-page{padding-top:calc(var(--home-header-height, 150px) + 24px)}
 .home-page>.header{top:8px;width:calc(100% - 20px);padding:12px 16px;min-height:0;display:grid;grid-template-columns:auto 1fr;gap:12px;border-radius:14px}
 .home-page .header-controls{display:contents}
 .home-page .header .brand{width:124px}
 .home-page .header .theme-switch{order:0;grid-column:2;grid-row:1;justify-self:end}
 .home-page .header .theme-switch button{font-size:10px;min-height:36px;padding:7px 9px;gap:4px}
 .home-page .header .theme-switch button>span{font-size:15px}
 .home-page .header nav{grid-column:1/-1;gap:16px;justify-content:flex-start}
 .home-page .header nav .contact-link{display:block;margin-left:auto;padding:9px 12px}
 .home-page .header nav .contact-link span{margin-left:5px}
}
@media(max-width:380px){
 .home-page>.header{padding:12px;column-gap:8px}
 .home-page .header .brand{width:105px}
 .home-page .header .theme-switch button{font-size:9px;padding:6px 7px}
 .home-page .header nav{gap:12px}
 .home-page .header nav>a{font-size:11px}
}


/* Services share the portfolio typography and the selected page theme. */
.services{padding-top:64px;padding-bottom:64px}
.services .section-heading{gap:28px}
.services .section-heading .eyebrow{font-size:11px;line-height:1.7;letter-spacing:1.6px}
.services .section-heading h2>span{color:var(--highlight)}
.services .section-heading>p{font-size:15px;line-height:1.8;max-width:390px}
.services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.service-card{padding:28px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.service-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:12px;background:var(--soft);color:var(--highlight);margin-bottom:24px}
.service-icon svg{width:26px;height:26px}
.service-card h3{font-size:20px;line-height:1.4;letter-spacing:-.4px;margin:0 0 14px;font-weight:650}
.service-card p{font-size:15px;line-height:1.8;color:var(--muted);margin:0}
.services-contact{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}
.services-contact p{font-size:14px;line-height:1.8;color:var(--muted);margin:0}
.services-contact .text-link{flex-shrink:0;color:var(--highlight);border-color:var(--line)}
@media(max-width:1000px){.services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.services .section-heading{align-items:flex-start;flex-direction:column;gap:18px}.services-contact{align-items:flex-start;flex-direction:column;gap:16px}}
@media(max-width:760px){.home-page .header nav>a:first-child{display:none}.home-page .header nav{gap:12px}}
@media(max-width:600px){.services{padding-top:42px;padding-bottom:42px}.services .section-heading h2{font-size:30px}.services .section-heading>p{font-size:14px}.services .section-heading>p br{display:none}.services-grid{grid-template-columns:1fr;gap:14px}.service-card{padding:24px}.service-icon{margin-bottom:20px}.service-card h3{font-size:21px}.services-contact .text-link{font-size:12px;gap:16px}}

/* Slightly larger supporting text on the home page, including mobile. */
.home-page .header nav{font-size:14px;flex-wrap:wrap}
.home-page .home-hero .eyebrow{font-size:11px;line-height:1.7}
.home-page .primary-action{font-size:14px}
.home-page .hero-actions .text-link{font-size:13px}
.home-page .home-location{font-size:12px}
.home-page .home-art-caption{font-size:10px}
.home-page .art-chip{font-size:12px}
.home-page .connection>span{font-size:13px}
.home-page .connection>a{font-size:12px}
.home-page .client-strip>p{font-size:13px}
.home-page .projects .section-heading .eyebrow,
.home-page .services .section-heading .eyebrow{font-size:13px}
.home-page .projects .project-count,
.home-page .projects .pill,
.home-page .projects .tags span,
.home-page .projects .solutions-count{font-size:14px}
.home-page .projects .featured-label,
.home-page .projects .visual-caption,
.home-page .projects .concept-note{font-size:12px}
.home-page .cta .eyebrow{font-size:11px;line-height:1.7}
.home-page .cta p:last-child,
.home-page .cta>a{font-size:14px}
.home-page .footer,
.home-page .footer>p{font-size:12px}
.home-page .dialog-top{font-size:11px}
.home-page .dialog-note{font-size:12px!important}
@media(max-width:760px){
 .home-page .header nav>a{font-size:13px}
 .home-page .header .theme-switch button{font-size:12px}
 .home-page .home-hero .eyebrow{font-size:10px}
 .home-page .home-art-caption{font-size:9px}
 .home-page .art-chip{font-size:10px}
 .home-page .connection>span{font-size:11px}
 .home-page .services-contact .text-link{font-size:14px}
 .home-page .projects .visual-caption{font-size:10px}
 .home-page .projects .concept-note{font-size:11px}
 .home-page .projects .card-bottom{flex-wrap:wrap}
}
@media(max-width:380px){
 .home-page .header .theme-switch button{font-size:11px}
 .home-page .header nav{gap:10px}
 .home-page .header nav>a{font-size:12px}
}

/* Hand-drawn vector overview of the services, using the current theme palette. */
.services-intro{display:grid;grid-template-columns:1fr 1.1fr;gap:40px;align-items:center;margin-bottom:30px}
.services .services-intro .section-heading{display:flex;flex-direction:column;align-items:flex-start;gap:20px;margin:0}
.services .services-intro .section-heading>p{max-width:410px;margin:0}
.services-illustration{display:block;width:100%;height:auto;max-width:560px;justify-self:end}
@media(max-width:760px){.services-intro{grid-template-columns:1fr;gap:20px;margin-bottom:24px}.services-illustration{width:min(100%,480px);justify-self:center}.services .services-intro .section-heading{gap:16px}}
