/* Shared visual roles. Component exceptions and selector map: docs/design-system-implementation.md. */
:root{
 --type-display-size:82px;--type-display-leading:88px;--type-display-weight:700;
 --type-statement-size:32px;--type-statement-leading:42px;--type-statement-weight:300;
 --type-h1-size:60px;--type-h1-leading:68px;--type-h1-weight:700;
 --type-h2-size:36px;--type-h2-leading:44px;--type-h2-weight:700;
 --type-h3-size:26px;--type-h3-leading:34px;--type-h3-weight:600;
 --type-h4-size:20px;--type-h4-leading:28px;--type-h4-weight:600;
 --type-lead-size:22px;--type-lead-leading:32px;--type-lead-weight:400;
 --type-body-size:18px;--type-body-leading:28px;--type-body-weight:400;
 --type-small-size:14px;--type-small-leading:22px;--type-small-weight:400;
 --type-label-size:12px;--type-label-leading:18px;--type-label-weight:600;
 --type-link-size:18px;--type-link-leading:28px;--type-link-weight:700;
 --type-button-size:14px;--type-button-leading:20px;--type-button-weight:600;
 --radius-composition:6px;
 --space-text:20px;--space-action:40px;--space-section:60px;--space-group:16px;
}
@media(min-width:768px) and (max-width:991px){
 :root{--type-display-size:64px;--type-display-leading:72px;--type-statement-size:28px;--type-statement-leading:38px;--type-h1-size:48px;--type-h1-leading:56px;--type-h2-size:32px;--type-h2-leading:40px;--type-h3-size:24px;--type-h3-leading:32px}
}
@media(max-width:767px){
 :root{--type-display-size:48px;--type-display-leading:52px;--type-statement-size:24px;--type-statement-leading:34px;--type-h1-size:36px;--type-h1-leading:40px;--type-h2-size:28px;--type-h2-leading:36px;--type-h3-size:22px;--type-h3-leading:30px;--type-h4-size:18px;--type-h4-leading:26px;--type-lead-size:20px;--type-lead-leading:30px;--type-link-size:16px;--type-link-leading:24px}
}
html[data-page] body main [data-text-style][data-text-style="display"]{font-family:"Open Sans",sans-serif;font-size:var(--type-display-size);line-height:var(--type-display-leading);font-weight:var(--type-display-weight);letter-spacing:normal;text-transform:none}
html[data-page] body main [data-text-style][data-text-style="statement"]{font-family:"Open Sans",sans-serif;font-size:var(--type-statement-size);line-height:var(--type-statement-leading);font-weight:var(--type-statement-weight);letter-spacing:normal;text-transform:none}
html[data-page] body main [data-text-style][data-text-style="h1"]{font-family:"Open Sans",sans-serif;font-size:var(--type-h1-size);line-height:var(--type-h1-leading);font-weight:var(--type-h1-weight);letter-spacing:normal;text-transform:none}
html[data-page] body main [data-text-style][data-text-style="h2"]{font-family:"Open Sans",sans-serif;font-size:var(--type-h2-size);line-height:var(--type-h2-leading);font-weight:var(--type-h2-weight);letter-spacing:normal;text-transform:none}
html[data-page] body main [data-text-style][data-text-style="h3"]{font-family:"Open Sans",sans-serif;font-size:var(--type-h3-size);line-height:var(--type-h3-leading);font-weight:var(--type-h3-weight);letter-spacing:normal;text-transform:none}
html[data-page] body main [data-text-style][data-text-style="h4"]{font-family:"Open Sans",sans-serif;font-size:var(--type-h4-size);line-height:var(--type-h4-leading);font-weight:var(--type-h4-weight);letter-spacing:normal;text-transform:none}
html[data-page] body main [data-text-style][data-text-style="lead"]{font-family:"Open Sans",sans-serif;font-size:var(--type-lead-size);line-height:var(--type-lead-leading);font-weight:var(--type-lead-weight);letter-spacing:normal;text-transform:none}
html[data-page] body main [data-text-style][data-text-style="body"]{font-family:"Open Sans",sans-serif;font-size:var(--type-body-size);line-height:var(--type-body-leading);font-weight:var(--type-body-weight);letter-spacing:normal;text-transform:none}
html[data-page] body main [data-text-style][data-text-style="small"]{font-family:"Open Sans",sans-serif;font-size:var(--type-small-size);line-height:var(--type-small-leading);font-weight:var(--type-small-weight);letter-spacing:normal;text-transform:none}
html[data-page] body main [data-text-style][data-text-style="label"]{font-family:"Open Sans",sans-serif;font-size:var(--type-label-size);line-height:var(--type-label-leading);font-weight:var(--type-label-weight);letter-spacing:normal;text-transform:none}
html[data-page] body main [data-text-style][data-text-style="link"]{font-family:"Open Sans",sans-serif;font-size:var(--type-link-size);line-height:var(--type-link-leading);font-weight:var(--type-link-weight);letter-spacing:normal;text-transform:none}
html[data-page] body main [data-text-style][data-text-style="button"]{font-family:"Open Sans",sans-serif;font-size:var(--type-button-size);line-height:var(--type-button-leading);font-weight:var(--type-button-weight);letter-spacing:normal;text-transform:none}
html[data-page] body main :is(h1,h2,h3,h4,h5,h6) :is(strong,span),html[data-page] body main .text-link-arrow *{font:inherit;letter-spacing:inherit;text-transform:inherit}
html[data-page] body main :is(.case-accordion-heading,.case-accordion-trigger){font-family:inherit;font-size:inherit;line-height:inherit;font-weight:inherit}
html[data-page] body main .case-accordion-title{display:block}
html[data-page] body main .case-accordion-summary{display:block;font:400 var(--type-small-size)/var(--type-small-leading) 'Open Sans',sans-serif;margin-top:12px}
html[data-page] body main .case-fact :is(dt,dd){font-family:inherit}
html[data-page] body main :is(figcaption,.case-caption) p{font:inherit}

/* One page gutter, with separate readable text widths; nested wrappers add none. */
html[data-page] body .container-1440{box-sizing:border-box;width:100%;max-width:1440px;margin-left:auto;margin-right:auto;padding-left:100px;padding-right:100px}
html[data-page] body main :is(.header-section,.dev-section,.about-section,.hero-home,.service-intro,.div-section,.talent-content,.legal-content,.application-page){width:100%;max-width:100%;margin-left:0;margin-right:0;padding-left:0;padding-right:0;padding-bottom:0}
html[data-page] body main :is(.hero-home,.header-section,.dev-section,.about-section){margin-bottom:0}
html[data-page] body main :is([data-text-style=display],[data-text-style=h1]){max-width:1080px}
html[data-page] body main :is([data-text-style=lead],[data-text-style=statement]){width:100%;max-width:1000px;padding:0}
html[data-page] body main :is(.case-narrative,.case-accordion-content,.legal-content) :is(p,ul,ol){max-width:900px}
html[data-page] body main .editorial-row{padding:40px 0;margin:0;width:100%;max-width:none}
html[data-page] body main .editorial-row>.column-about{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,3fr);gap:32px;width:100%;max-width:none;margin:0;padding:0;align-items:start}
html[data-page] body main .editorial-row>.column-about::before,html[data-page] body main .editorial-row>.column-about::after{display:none}
html[data-page] body main .editorial-row .w-col{float:none;width:auto;min-width:0;margin:0;padding:0}
html[data-page] body main .editorial-row .column-about-title>:is(h2,h3){margin:0}
html[data-page] body main .editorial-row .column-about-description>.paragraph-light{margin:0;padding:0;width:100%;max-width:none}
html[data-page] body main .editorial-row .column-about-description>.paragraph-light p{margin:0 0 20px;padding:0}
html[data-page] body main .editorial-row .column-about-description>.paragraph-light p:last-child{margin-bottom:0}
html[data-page] body main .editorial-row .paragraph-3{margin:20px 0 0;padding:0}
@media(max-width:991px){
 html[data-page] body .container-1440{padding-left:28px;padding-right:24px}
 html[data-page] body main .editorial-row>.column-about{grid-template-columns:minmax(0,1fr);gap:20px}
 html[data-page] body main .editorial-row .column-about-title>:is(h2,h3){margin:0}
 html[data-page] body main .case-pilot .case-facts{padding:24px}
 html[data-page] body main.footer-gap-tail{padding-bottom:40px}
}
/* Main remains the only owner of final-page spacing; no descendant control reset. */
html[data-page] body main{padding-top:140px}
html[data-page] body main.section-project-item-2nd-row{padding-left:0;padding-right:0}
html[data-page] body main :is(.hero-home,.header-section,.dev-section,.about-section){padding-top:0;margin-top:0}
html[data-page] body main .case-pilot{margin-top:20px}
@media(max-width:991px){html[data-page] body main{padding-top:100px}}
html[data-page] body main .hero-home>h1{margin-bottom:40px}
html[data-page] body main .hero-home>.paragraph-big{margin-top:0}
html[data-page] body main :is(h2,h3,h4)+:is(p,.paragraph-light,.paragraph-big){margin-top:0}
html[data-page] body main .services-heading{margin-bottom:20px}
html[data-page] body main .project-grid{margin-top:0;margin-bottom:40px}
html[data-page] body main :is(h2,h3)+.project-grid{margin-top:0}
html[data-page] body main .case-pilot :is(.case-services,.case-process)>.heading-2{margin:0 0 20px}
html[data-page] body main .action-group{display:flex;flex-wrap:wrap;align-items:flex-start;gap:16px;margin:40px 0 0;padding:0;width:100%}
html[data-page] body main .project-grid+.action-group{margin-top:0}
html[data-page] body main .action-group>.learn-more-wrap{margin:0;align-self:flex-start;text-align:left}
html[data-page] body main :is(.learn-more-wrap,.link-wrap){max-width:100%;width:fit-content;text-align:left;margin-left:0;margin-right:0}
html[data-page] body main .learn-more-wrap{align-self:flex-start}
html[data-page] body main .link-block-4{display:inline-flex;align-items:flex-start;gap:8px;box-sizing:border-box;max-width:100%;width:auto;padding:0 12px 0 0;text-decoration:none;color:inherit}
html[data-page] body main .link-block-4 .text-link-arrow{display:block;min-width:0;white-space:normal;overflow-wrap:anywhere;margin:0;padding:0;border:0;max-width:none}
html[data-page] body main .link-block-4 .image-20{display:block;flex:0 0 12px;width:12px;height:12px;margin:calc((var(--type-link-leading) - 12px)/2) 0 0;overflow:visible}
html[data-page] body main .link-block-4:is(:hover,:focus-visible,:active) .text-link-arrow{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px}
html[data-page] body main .link-next-proyect{display:flex;align-items:flex-start;gap:16px;max-width:100%;width:fit-content;padding:0 16px 0 0;margin:0;text-decoration:none}
html[data-page] body main .link-next-proyect>.heading-2-copy{margin:0;min-width:0}
html[data-page] body main .link-next-proyect .html-embed{margin-left:0;margin-top:calc((var(--type-h3-leading) - 22px)/2);width:27px;flex:0 0 27px}
html[data-page] body main .link-next-proyect svg{display:block;width:27px;height:22px;transform:translateX(0) scale(1);transform-origin:left center;transition:transform 300ms ease}
html[data-page] body main .link-next-proyect:is(:hover,:focus-visible,:active) svg{transform:translateX(10px) scale(1.15)}
html[data-page] body main .link-next-proyect:is(:hover,:focus-visible,:active) .heading-2-copy{text-decoration:underline;text-underline-offset:6px}

/* Page-relative roles, checked against every existing solid theme. */
body{--color-secondary:color-mix(in srgb,var(--page-fg,#000) 80%,var(--page-bg,#fff));--color-border:color-mix(in srgb,var(--page-fg,#000) 60%,var(--page-bg,#fff));--color-divider:color-mix(in srgb,var(--page-fg,#000) 25%,var(--page-bg,#fff));--color-focus:var(--page-fg,#000)}
body :is(a,button,[role=button],[role=tab],input,select,textarea):focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}
body :is(.integrated-footer,.mobile-menu-footer) .footer-wrap :is(.paragraph-tiny,.paragraph-tiny-white){color:var(--color-secondary);opacity:1}
html[data-page] body main .case-fact dt{color:var(--color-secondary)}
html[data-page] body main .case-tags a{border-color:var(--color-border)}
html[data-page] body main .editorial-row:has(+.editorial-row),html[data-page] body main .accordeon-item+.accordeon-item,html[data-page] body main .accordeon-wapper+.accordeon-wapper{border-color:var(--color-divider)}
html[data-page] body main .case-facts{border-color:var(--color-divider)}
html[data-page] body main .project-grid .collection-item-2{overflow:visible}
html[data-page] body main .project-grid .collection-item-2::before{clip-path:inset(2px)}
html[data-page] body main .project-grid .link-portfolio-block:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px;z-index:1}
html[data-page] body main .project-grid .div-block-portfolio{padding:24px;color:#fff;background:#171717}
html[data-page] body main .project-grid .div-block-portfolio .button{background:var(--project-action-bg,#fff);color:var(--project-action-fg,#171717);border-radius:50%;width:50px;height:50px}
/* Cards start with their cover, including touch and narrow-screen layouts. */
html[data-page] body main .project-grid .div-block-portfolio{opacity:0;display:block}
@media(min-width:992px) and (hover:hover) and (pointer:fine){html[data-page] body main .project-grid .link-portfolio-block:hover .div-block-portfolio{opacity:1}}
html[data-page] body main .project-grid .link-portfolio-block:focus-visible .div-block-portfolio{opacity:1}

/* Controls have a complete local light surface, including labels and feedback. */
body .ds-form,body .consent-panel{--color-focus:#1a1b1f;--form-error:#b54708;background:#fff;color:#1a1b1f}
html[data-page] body main .ds-form{--field-focus-width:2px;--field-focus-color:#000;box-sizing:border-box;display:flex;flex-direction:column;gap:24px;width:100%;max-width:800px;min-width:0;margin:40px 0 0;padding:0;border:0}
html[data-page] body main .ds-form .application-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:24px}
html[data-page] body main .ds-form .form-field{display:flex;flex-direction:column;gap:8px;min-width:0}
html[data-page] body main .ds-form .field-label{margin:0;padding:0;font:600 12px/18px 'Open Sans',sans-serif;letter-spacing:.06em;text-transform:uppercase}
html[data-page] body main .ds-form :is(input:where(:not([type=submit]):not([type=file])),select,textarea){box-sizing:border-box;width:100%;max-width:none;height:auto;min-height:var(--field-min-height,50px);margin:0;padding:10px 16px;border:1px solid #666;border-radius:4px;background:#fff;color:#1a1b1f;font:400 18px/28px 'Open Sans',sans-serif}
html[data-page] body main .ds-form :is(input,textarea)::placeholder{color:#666;opacity:1}
html[data-page] body main .ds-form select{padding-right:44px;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m3 6 5 5 5-5' fill='none' stroke='%231a1b1f' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:16px}
html[data-page] body main .ds-form select:has(option:checked[value=""]){color:#666}
html[data-page] body main .ds-form textarea{--field-min-height:200px;resize:vertical}
html[data-page] body main .ds-form :is(input,select,textarea):hover{border-color:#1a1b1f}
html[data-page] body main .ds-form :is(input,select,textarea)[aria-invalid=true]{border-color:var(--form-error)}
/* A single stronger field border, with padding compensation instead of an outer ring. */
html[data-page] body main .ds-form :is(input:where(:not([type=submit]):not([type=file])),select,textarea):focus{border:var(--field-focus-width) solid var(--field-focus-color);padding:9px 15px;outline:none;outline-offset:0;box-shadow:none}
html[data-page] body main .ds-form select:focus{padding-right:43px;background-position:right 15px center}

html[data-page] body main .ds-form .application-cv{display:flex;flex-direction:column;gap:24px;min-width:0;margin:0;padding:0;border:0}
html[data-page] body main .ds-form .application-cv legend{margin-bottom:8px}
html[data-page] body main .ds-form .application-cv-intro{margin:0}
html[data-page] body main .ds-form :is(.application-help,.application-error,.field-error,.application-privacy,.privacy-form,.form-status,.form-required-note){margin:0;padding:0;font:400 14px/22px 'Open Sans',sans-serif}
html[data-page] body main .ds-form :is(.application-help,.application-privacy,.privacy-form){color:#515151}
html[data-page] body main .ds-form :is(.application-error,.field-error,.is-error){color:var(--form-error)}
html[data-page] body main .ds-form [aria-live=polite]:is(.application-error,.field-error){margin:0}
html[data-page] body main .ds-form :is(.form-status:empty,[data-turnstile]:empty,[hidden]){display:none}
html[data-page] body main .ds-form .application-file-field{box-sizing:border-box;min-height:50px;margin:0;border:1px solid #666;border-radius:4px;background:#fff}
html[data-page] body main .ds-form .application-file-display{box-sizing:border-box;min-height:48px;padding:10px 16px;gap:12px;color:#666;font:400 18px/28px 'Open Sans',sans-serif}
html[data-page] body main .ds-form .application-file-display .has-file{color:#1a1b1f}
html[data-page] body main .ds-form .application-file-field:has([aria-invalid=true]){border-color:var(--form-error)}
html[data-page] body main .ds-form .application-file-field:focus-within{border:var(--field-focus-width) solid var(--field-focus-color);outline:none;outline-offset:0;box-shadow:none}
html[data-page] body main .ds-form .application-file-field:focus-within .application-file-display{min-height:46px;padding:9px 15px}
html[data-page] body main .ds-form .application-file-field input[type=file]:focus{outline:none;box-shadow:none}

html[data-page] body main .ds-form .application-upload-icon{width:18px;height:18px;flex:0 0 18px;color:#1a1b1f}
body :is(.legal-preferences,.ds-form [type=submit],.consent-actions button){box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;width:fit-content;max-width:100%;min-height:50px;height:auto;padding:12px 24px;border:1px solid #1a1b1f;border-radius:4px;background:#1a1b1f;color:#fff;font:600 14px/20px 'Open Sans',sans-serif;letter-spacing:normal;text-transform:none;white-space:normal;cursor:pointer;transition:background-color 200ms ease,color 200ms ease,border-color 200ms ease}
body :is(.legal-preferences,.ds-form [type=submit],.consent-actions button):hover{background:#32343a;color:#fff}
body :is(.legal-preferences,.ds-form [type=submit],.consent-actions button):active{background:#43464d;color:#fff}
body .legal-preferences{background:transparent;color:var(--page-fg);border-color:var(--color-border)}
body .legal-preferences:hover{background:color-mix(in srgb,var(--page-fg) 8%,var(--page-bg));color:var(--page-fg)}
body .ds-form [type=submit]:disabled{opacity:.6;cursor:wait}
body .consent-panel{box-sizing:border-box;max-height:calc(100dvh - 40px);overflow:auto;border:1px solid #666;border-radius:6px;box-shadow:0 8px 40px #0002}
body .consent-actions{display:flex;flex-wrap:wrap;gap:16px}
body .consent-panel .consent-actions button{flex:1 1 140px;width:auto;background:#1a1b1f;color:#fff}
body .consent-panel .consent-actions button:hover{background:#32343a}

/* Office tabs work by mouse and keyboard. Without JS every address stays available. */
html[data-page] body main [data-office-tabs] .w-tab-menu{display:flex;gap:16px;flex-wrap:wrap}
html[data-page] body main [data-office-tabs] [role=tab]{appearance:none;min-height:44px;padding:10px 16px;border:1px solid var(--color-border);border-radius:4px;background:transparent;color:inherit;font:600 14px/20px 'Open Sans',sans-serif;cursor:pointer}
html[data-page] body main [data-office-tabs] [role=tab] *{font:inherit}
html[data-page] body main [data-office-tabs] [role=tab][aria-selected=true]{background:var(--page-fg);color:var(--page-bg);border-color:var(--page-fg)}
html[data-page] body main [data-office-tabs] .w-tab-pane{display:block}
html[data-page] body main [data-office-tabs] .w-tab-pane[hidden]{display:none}
html[data-page] body main [data-office-tabs] .w-tab-pane:not([hidden]){margin-top:24px}
html[data-page] body main [data-office-tabs] iframe{max-width:100%;border:0}
@media(prefers-reduced-motion:reduce){
 html[data-page] body main .link-next-proyect svg,html[data-page] body main .link-next-proyect:is(:hover,:focus-visible,:active) svg{transform:none;transition:none}
 html[data-page] body main .link-block-4:is(:hover,:focus-visible) .image-20,html[data-page] body main .link-block-4 .image-20,html[data-page] body main .div-block-portfolio .button:is(:hover,:focus-visible),html[data-page] body main .link-portfolio-block:focus-visible .button{transform:none;transition:none}
 html{scroll-behavior:auto}
}
html[data-page] body main :is(.service-intro,.div-section)>p[data-text-style=label]{margin:0 0 20px}
html[data-page] body main .ds-form :is(input,select,textarea){scroll-margin-top:90px}
html[data-page] body main .editorial-row .column-about-description>:is(.paragraph-light,.paragraph-3):has(+.learn-more-wrap){margin-bottom:40px}
html[data-page] body main .link-block-4{min-height:44px;padding-top:calc((44px - var(--type-link-leading))/2);padding-bottom:calc((44px - var(--type-link-leading))/2)}
html[data-page] body main .ds-form .form-actions{display:flex;flex-direction:column;align-items:flex-start;gap:16px}
html[data-page] body main .ds-form [data-cv-pdf]{display:flex;flex-direction:column;gap:8px}
body .ds-form [type=submit]:disabled,body .ds-form [type=submit]:disabled:is(:hover,:active){background:#1a1b1f;color:#fff;transition:none}
html[data-page] body main .editorial-row .column-about-title>:is(h2,h3){overflow-wrap:anywhere}
body{color:var(--page-fg,#000)}
html[data-page] body main [data-text-style]{color:inherit}
.integrated-header .w-nav-menu>.w-nav-link{opacity:.8}
.integrated-header .w-nav-menu>.w-nav-link[aria-current=page]{opacity:1}
html[data-page] body main .ds-form [data-turnstile].has-error{display:block;min-height:1px;outline:3px solid #1a1b1f;outline-offset:4px}

html[data-page] body main .ds-form .form-actions>[type=submit]{order:0;margin:0}
html[data-page] body main .ds-form .form-actions>.form-status{order:1;margin:0}
/* Closing Home's outer section contributes no second content-to-footer gap. */
html[data-page] body main>.section-3:last-child>.div-services{padding-bottom:0;margin-bottom:0}
/* Opening wrappers never reserve the header a second time. */
html[data-page] body main{margin-top:0}
html[data-page] body main :is(.div-section,.service-intro,.div-block-30){margin-top:0;padding-top:0}
html[data-page] body main :is([data-text-style=display],[data-text-style=h1],[data-text-style=lead],[data-text-style=statement]){margin-left:0;margin-right:0}
html[data-page] body main .case-breadcrumbs{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;font:600 12px/18px 'Open Sans',sans-serif}
html[data-page] body main .case-breadcrumbs :is(.breadcumb-links,.breadcumb){margin:0;padding:0;vertical-align:baseline}
/* Small breadcrumb text uses the full page foreground, including preserved cases. */
html[data-page] body main :is(.breadcumb-links,.breadcumb){color:var(--page-fg);opacity:1}
html[data-page] body main :is(.background-offices,.content-offices){margin-bottom:0;padding-bottom:0}
html[data-page] body main .talent-content>.editorial-row:last-child{padding-bottom:0}
html[data-page] body main .legal-content>.paragraph-light:last-child{margin-bottom:0}
html[data-page] body main.footer-gap-tail{padding-top:140px}
@media(max-width:991px){html[data-page] body main.footer-gap-tail{padding-top:100px}}
html[data-page] body main .header-section{align-items:flex-start;text-align:left}
html[data-page] body main .header-section>.div-block-23{width:100%;max-width:none;margin:0;padding:0}
html[data-page] body main .case-accordion-content>:last-child{margin-bottom:0}
html:is([data-page="/clients"],[data-page="/es/clientes"]) body main .accordeon-item-content{margin-top:0;padding:12px 0 24px}
html:is([data-page="/clients"],[data-page="/es/clientes"]) body main .paragraph-client-item{margin:0;grid-template-rows:none;grid-auto-rows:auto;row-gap:24px}
html:is([data-page="/clients"],[data-page="/es/clientes"]) body main .paragraph-client-item>*{margin:0;min-width:0}
html[data-page] body main .ds-form{align-items:stretch}
html[data-page] body main .ds-form :is(.form-field,.application-fields,.application-cv,[data-cv-pdf],[data-cv-link]){box-sizing:border-box;width:100%;max-width:100%}
html[data-page] body main [data-office-tabs] [role=tab] *{color:inherit}

/* Published case templates also keep the shared eyebrow-to-title gap. */
html[data-page] body main .case-breadcrumbs+h1{margin-top:20px}

/* Legacy Home wrappers must inherit the page foreground, never transparent text. */
html[data-page] body main .div-services{color:inherit}

/* Essentials remain readable without opening process panels. */
html[data-page] body main .case-pilot .case-result{margin:var(--case-section-gap) 0}
html[data-page] body main .case-pilot .case-result>.heading-2{margin:0 0 20px}
html[data-page] body main .case-pilot .case-result>p{max-width:900px;margin:0 0 20px}
html[data-page] body main .case-pilot .case-result>:last-child{margin-bottom:0}
html[data-page] body main .case-pilot .case-service{margin:0;padding:24px 0}
html[data-page] body main .case-pilot .case-service+.case-service{border-top:1px solid var(--color-divider)}
html[data-page] body main .case-pilot .case-service>h3{margin:0 0 20px}
html[data-page] body main .case-pilot .case-service>p{margin:0}
@media(max-width:767px){html[data-page] body main .case-pilot .case-service{padding:20px 0}}

/* Composition surfaces and captions follow the local case theme. */
html[data-page] body main .case-pilot :is(.case-media-block,.case-hero-gallery){color:var(--case-media-fg)}
html[data-page] body main .case-pilot :is(.case-media-block,.case-hero-gallery) figcaption,html[data-page] body main .case-pilot :is(.case-media-block,.case-hero-gallery) figcaption *{color:inherit;opacity:1}

/* Photos are full-width editorial images; panels belong to design/document compositions. */
html[data-page] body main .case-pilot .case-photo{display:block;width:100%;max-width:none;margin:32px 0;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible}
html[data-page] body main .case-pilot .case-opening-visual.case-photo{margin:0 0 var(--case-section-gap)}
html[data-page] body main .case-pilot .case-photo-image{display:block;width:100%;max-width:none;height:auto;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;transform:none}
html[data-page] body main .case-pilot .case-photo figcaption{margin:12px 0 0;padding:0;color:inherit;text-align:left}

/* Interactive hover contours follow the label in every local theme.
   Keep keyboard focus colors independent so nested surfaces retain contrast. */
html[data-page] body :is(a,button,input[type=submit],input[type=button],input[type=reset],[role=button],[role=tab]):not(:disabled):not([aria-disabled=true]):hover{border-color:currentColor}
html[data-page] body :is(a,button,input[type=submit],input[type=button],input[type=reset],[role=button],[role=tab]):not(:disabled):not([aria-disabled=true]):hover:not(:focus-visible){outline-color:currentColor}

/* Editorial video: inline playback with native controls, without a composition frame. */
html[data-page] body main .case-pilot .case-video{display:block;width:100%;margin:32px 0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
html[data-page] body main .case-pilot .case-video iframe{display:block;width:100%;height:auto;min-height:200px;aspect-ratio:16/9;border:0;border-radius:0;background:#000}
html[data-page] body main .case-pilot .case-video figcaption{margin:12px 0 0;padding:0;color:inherit;text-align:left}
html[data-page] body main .case-pilot .case-video figcaption p{margin:0}
html[data-page] body main .case-pilot .case-video figcaption,html[data-page] body main .case-pilot .case-video figcaption *{color:inherit;opacity:1}

/* Video poster: local frame until explicit activation, same dimensions as the player. */
html[data-page] body main .case-pilot .case-video-poster{box-sizing:border-box;position:relative;display:grid;place-items:center;width:100%;height:auto;min-height:200px;aspect-ratio:16/9;margin:0;padding:0;border:0;border-radius:0;background:#000;cursor:pointer}
html[data-page] body main .case-pilot .case-video-poster>img{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;object-fit:contain;border:0;border-radius:0}
html[data-page] body main .case-pilot .case-video-play{position:relative;display:grid;place-items:center;width:64px;height:64px;background:#fff;color:#000;border:0;border-radius:50%;transition:transform 250ms ease}
html[data-page] body main .case-pilot .case-video-poster:is(:hover,:focus-visible,:active) .case-video-play{transform:scale(1.1)}
@media(prefers-reduced-motion:reduce){html[data-page] body main .case-pilot .case-video-play,html[data-page] body main .case-pilot .case-video-poster:is(:hover,:focus-visible,:active) .case-video-play{transition:none;transform:none}}

/* Benidorm: retain brand orange, with secondary roles adjusted for contrast. */
html[data-page$="/portfolio/chatbot-visit-benidorm"] body{--color-secondary:color-mix(in srgb,var(--page-fg) 85%,var(--page-bg));--color-border:color-mix(in srgb,var(--page-fg) 75%,var(--page-bg))}
html[data-page$="/portfolio/chatbot-visit-benidorm"] .integrated-header .w-nav-menu>.w-nav-link{opacity:1}

/* Group actions and shared plus/minus interaction, cases and Clients. */
html[data-page] body main .accordion-group-heading{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:8px 24px;margin-bottom:16px}
html[data-page] body main .accordion-group-heading>.heading-2{margin:0}
html[data-page] body main .accordion-all{align-items:center;min-height:44px;flex:0 0 auto;padding:6px 4px 6px 0;border:0;border-radius:0;background:transparent;cursor:pointer}
body .link-with-icon .link-icon{display:block;flex:0 0 1em;width:1em;height:1em;margin:0}
html[data-page] body .link-with-icon .link-icon svg{width:100%;height:100%}
html[data-page] body main .accordion-all[hidden]{display:none}
html[data-page] body main .clients-intro-lead{margin-bottom:0;padding-bottom:0}
html[data-page] body main .clients-accordion-tools{display:flex;justify-content:flex-end;margin-top:40px;margin-bottom:16px}
html[data-page] body main .clients-accordion-tools+.accordeon-wapper{margin-top:0}
html[data-page] body main .accordeon-item-trigger .accordion-icon{display:block;flex:0 0 21px;width:21px;height:21px;margin:0;transform:none!important}
html[data-page] body main .accordion-icon svg{display:block;width:21px;height:21px;overflow:visible;transform:scale(1);transform-origin:center;transition:transform 300ms ease}
html[data-page] body main .accordion-icon path{stroke-width:1.7;transition:stroke-width 300ms ease}
html[data-page] body main .accordion-icon .accordion-icon-vertical{transform-box:view-box;transform-origin:10.5px 10.5px;transform:rotate(0deg);transition:transform 300ms cubic-bezier(.4,0,.2,1),stroke-width 300ms ease}
html[data-page] body main :is(.accordeon-item-trigger,.accordion-all)[aria-expanded=true] .accordion-icon-vertical{transform:rotate(90deg)}
html[data-page] body main :is(.accordeon-item-trigger,.accordion-all):is(:hover,:focus-visible,:active) .accordion-icon svg{transform:scale(1.15)}
html[data-page] body main :is(.accordeon-item-trigger,.accordion-all):is(:hover,:focus-visible,:active) .accordion-icon path{stroke-width:2.2}
@media(max-width:767px){html[data-page] body main .accordion-group-heading{align-items:flex-start}html[data-page] body main .clients-accordion-tools{justify-content:flex-start}}
@media(prefers-reduced-motion:reduce){html[data-page] body main .accordion-icon svg,html[data-page] body main .accordion-icon path,html[data-page] body main .accordion-icon .accordion-icon-vertical{transition:none}html[data-page] body main :is(.accordeon-item-trigger,.accordion-all):is(:hover,:focus-visible,:active) .accordion-icon svg{transform:none}}

html[data-page] body main .case-accordion-trigger .accordion-icon{margin-top:calc((var(--type-h3-leading) - 21px)/2)}

html[data-page] body main .accordeon-item-content[data-accordion-animating]{overflow:hidden;box-sizing:border-box;min-height:0}

/* Secondary links: the footer family and group actions, never featured CTAs. */
html[data-page] body:not(.case-page):not(.body-black){--color-link-secondary:#555555}
html[data-page] body :is(.link-footer,.link-footer-white,.link-footer-menu-mobile,.footer-language-switch a,.menu-language-switch a,.integrated-footer .legal-links a,.mobile-menu-footer .legal-links a){color:var(--color-link-secondary,var(--color-secondary));opacity:1;transition:color 200ms ease}
html[data-page] body :is(.link-footer,.link-footer-white,.link-footer-menu-mobile,.footer-language-switch a,.menu-language-switch a,.integrated-footer .legal-links a,.mobile-menu-footer .legal-links a):is(:hover,:active,:focus-visible,[aria-current="page"],[aria-current="true"]){color:var(--page-fg)}

html[data-page] body :is(.integrated-footer,.mobile-menu-footer) .legal-links{opacity:1}

/* Home Statement retains the original editorial grey, independently of link states. */
html:is([data-page="/"],[data-page="/es/"]) body main [data-text-style="statement"]{--color-statement:#7e7d7d;color:var(--color-statement)}

/* Home opening: add to the first section's existing 60px top padding. */
html:is([data-page="/"],[data-page="/es/"]) body main .hero-home{margin-bottom:60px}
@media(max-width:991px){html:is([data-page="/"],[data-page="/es/"]) body main .hero-home{margin-bottom:20px}}
