:root{--surface:#fff;--glow:rgba(255,0,0,.055)}
:root[data-theme=dark]{color-scheme:dark;--ink:#f5f2f2;--muted:#bcb6b8;--line:#40383b;--paper:#211c1e;--surface:#131112;--glow:rgba(255,0,0,.105)}
:root[data-theme=light]{color-scheme:light}
body{background:var(--surface);color:var(--ink)}
main{background:linear-gradient(180deg,var(--glow) 0,transparent 540px);background-repeat:no-repeat}
.header{background:var(--surface)}
.header-tools{display:flex;align-items:center;gap:8px;order:3}
.nav-wrap{gap:22px}.header nav{gap:22px;margin-left:auto}
.language-toggle,.theme-toggle{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:7px;background:transparent;color:var(--ink);border:1px solid var(--line);border-radius:4px;padding:8px 10px;font:700 12px Arial,sans-serif;cursor:pointer;white-space:nowrap}
.theme-toggle svg{width:19px;height:19px;flex-shrink:0}.language-short{display:none}
.theme-toggle{display:none}.js .theme-toggle{display:inline-flex}
.menu-toggle{color:var(--ink);background:var(--surface)}
.button:hover{background:var(--surface);color:var(--ink)}
a:focus-visible,button:focus-visible{outline-color:var(--ink)}
.skip{background:var(--surface)}
.inquiry-shell{background:transparent}
.field-hint{color:var(--muted)}.form-errors{background:var(--paper)}
:root[data-theme=dark] .hero-art{border-color:var(--line)}
:root[data-theme=dark] .principles article{border-color:var(--line)}
:root[data-theme=dark] .red-word{color:var(--red)}
:root[data-theme=dark] .field-error,:root[data-theme=dark] .form-status.error{color:#ff889b}
:root[data-theme=dark] .header #navigation>a[aria-current=page]{color:#ff7777}
:root[data-theme=dark] .art-one,:root[data-theme=dark] .art-two{color:#171717}

@media(max-width:1000px){
.nav-wrap{min-height:82px;padding-block:16px;flex-wrap:wrap;gap:0;justify-content:space-between}
.header-tools{order:0;gap:6px;margin-left:auto}.header .brand{margin-right:12px}
.js .menu-toggle{display:flex;min-width:44px;justify-content:center;padding:10px}.menu-label{display:none}
.js .header #navigation{order:4;display:flex;width:100%;margin:0;flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:0;max-height:0;overflow:hidden;padding:0;opacity:0;visibility:hidden;transition:max-height .32s ease,padding .32s ease,opacity .2s ease,visibility 0s .32s}
.js .header #navigation.is-open{max-height:min(480px,70vh);overflow-y:auto;padding:12px 0 24px;opacity:1;visibility:visible;transition:max-height .32s ease,padding .32s ease,opacity .2s ease,visibility 0s}
.header #navigation>a:not(.button){padding:12px 4px;border-bottom:1px solid var(--line);font-size:16px;min-height:49px}
.header #navigation>a[aria-current=page]{box-shadow:none;color:#b50000}
.header #navigation .nav-cta{margin-top:16px;align-self:stretch}
}
@media(max-width:480px){.brand img{width:34px;height:34px}.brand{gap:7px}.brand>span{font-size:12px}.brand>span>span{font-size:6px}.header .brand{margin-right:4px}.header-tools{gap:4px}.language-long,.theme-label{display:none}.language-short{display:inline}.language-toggle,.theme-toggle{width:40px;padding:8px 5px}.js .menu-toggle{padding:8px;min-width:40px}.header-tools .menu-icon,.header-tools .menu-icon i{width:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
/* Let translated copy wrap naturally on smaller screens. */
.offer-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.offer,.work-card{min-width:0}.offer p,.offer h3{overflow-wrap:anywhere;hyphens:auto}
@media(max-width:760px){.offer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.work-grid{grid-template-columns:minmax(0,1fr)}.offer strong{font-size:clamp(22px,6.6vw,29px)}.art-type{font-size:clamp(60px,16vw,82px)}html[lang=es] .page-intro h1{font-size:clamp(36px,calc(14.285vw - 9.71px),46px)}h1,h2,h3{overflow-wrap:anywhere}}

/* Scroll-triggered reveals: only offscreen content is prepared for animation. */
.scroll-reveal{transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.scroll-pending{opacity:0;transform:translateY(24px)}
.scroll-shown{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.scroll-reveal,.scroll-pending{opacity:1;transform:none;transition:none!important}}
@media print{.scroll-pending{opacity:1;transform:none}}
