/* Impeccable refinement of the incumbent system. Editorial data and the
   owner's design-runtime overrides remain authoritative. No new font/runtime. */
body { caret-color: var(--brand-pink-text); }
::selection { color: var(--ink); background: var(--brand-violet-text); }
p { text-wrap: pretty; }
.site-header { border-color: #ffffff28; border-radius: 16px; box-shadow: none; }
.site-header.scrolled { border-color: var(--brand-border); }
.brand strong { font-size: .82rem; }
.brand small { font-size: .72rem; letter-spacing: .08em; }
.main-nav a > span { display: none; }
.main-nav .nav-cta, .hero-actions .button-primary { box-shadow: none; }
.main-nav .nav-cta:hover, .hero-actions .button-primary:hover { box-shadow: none; }
.hero { min-height: 0; padding-top: 160px; padding-bottom: 68px; align-items: center; }
.hero-copy { display: flex; flex-direction: column; }
.hero [data-site-headline] { font-size: clamp(2.85rem,4.7vw,4.65rem); letter-spacing: -.04em; line-height: 1.07; text-wrap: balance; }
.hero .kicker { display: flex; margin-bottom: 18px; color: var(--cyan); font-family: inherit; font-size: .78rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.hero .kicker::before { width: 22px; }
.hero-lead { margin-top: 24px; line-height: 1.65; }
.hero-actions { order: 1; margin-top: 28px; }
.hero-entry-links { order: 2; margin-top: 20px; gap: 2px 20px; }
.hero-entry-links a { font-family: inherit; font-size: .83rem; text-decoration-thickness: 1px; }
.hero-entry-links a span:not([aria-hidden]) { color: var(--white); }
.availability { order: 3; margin-top: 18px; font-family: inherit; text-transform: none; letter-spacing: .015em; font-size: .78rem; }
.hero-index { display: none; }
.hero-lab { padding: 0; background: transparent; border: 0; border-radius: 16px; box-shadow: none; }
.hero-lab::before, .lab-topline::after, .hero-lab .orbit, .hero-lab .axis { display: none; }
.lab-topline { padding: 0 0 14px; font-size: .72rem; }
.lab-orbit { min-height: 0; padding: 0; border: 0; border-radius: 12px; background: transparent; }
.hero-specimen { width: 100%; }
.hero-specimen img { width: auto; max-width: 100%; height: auto; max-height: 400px; margin-inline: auto; border-radius: 12px; }
.hero-specimen figcaption { width: 100%; padding: 18px 0; margin: 0; border: 0; border-radius: 0; background: transparent; }
.hero-specimen figcaption small { font-family: inherit; font-size: .8rem; line-height: 1.5; font-weight: 500; letter-spacing: 0; }
.hero-specimen figcaption strong { font-size: 1.1rem; }
.lab-console { padding: 0; }
.hero-path { gap: 6px; }
.hero-path button { border-color: #ffffff35; border-radius: 8px; font-family: inherit; font-size: .74rem; }
.hero-path button span, .hero-path button b { font-size: .72rem; }

/* Give the commercial choices space without repeating three heavy frames. */
.commercial-heading { margin-bottom: 40px; }
.commercial-heading > .section-code { display: none; }
.commercial-heading h2, .section-heading h2, .studio-copy h2, .contact-section h2 { letter-spacing: -.035em; text-wrap: balance; }
.entry-grid { gap: 32px; }
.entry-grid .entry-card { padding: 26px 0 0; border: 0; border-top: 1px solid var(--brand-border); border-radius: 0; background: transparent; }
.entry-card::before { display: none; }
.entry-card .section-code { margin-bottom: 18px; font: 600 .78rem/1.6 Inter, sans-serif; letter-spacing: .015em; }
.entry-card h3 { font-size: clamp(1.65rem,2.15vw,2.15rem); line-height: 1.18; letter-spacing: -.03em; text-wrap: balance; }
.entry-card > p { font-size: .97rem; }
.entry-delivery { padding-top: 18px; border-top-color: #ffffff24; margin-top: 0; }
.entry-delivery span { font-family: inherit; font-size: .75rem; letter-spacing: .03em; }
.entry-delivery p { font-size: .95rem; }
.entry-card .entry-limit { font-size: .85rem; line-height: 1.65; }
.entry-actions { display: grid; gap: 12px; margin-top: auto; padding-top: 8px; }
.entry-action { margin-top: 0; }
.entry-service-link { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; color: var(--cyan); font-size: .84rem; font-weight: 500; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: #28d9f766; transition: color .2s, text-decoration-color .2s; }
.entry-service-link:hover, .entry-service-link:focus-visible { color: var(--white); text-decoration-color: var(--white); }
.scope-note { border-left-width: 1px; margin-bottom: 68px; max-width: 68ch; }

/* Complementary capabilities read as a list, not five narrow cards. */
.solutions-section > .section-heading { padding-top: 36px; border-top: 1px solid #ffffff24; }
.solutions-section > .section-heading .section-code { display: none; }
.solution-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 48px; }
.solution-grid .solution-card { display: grid; grid-template-columns: 1fr; align-content: start; padding: 28px 0; background: transparent; border: 0; border-bottom: 1px solid #ffffff24; border-radius: 0; transform: none; }
.solution-card-top { display: none; }
.solution-card h3 { font-size: 1.4rem; margin: 0 0 14px; letter-spacing: -.025em; }
.solution-card > p { max-width: 65ch; }
.solution-card ul { grid-template-columns: repeat(2,minmax(0,1fr)); border: 0; margin-top: 16px; gap: 0 20px; }
.solution-card li { border: 0; padding-block: 7px; font-size: .8rem; }
.solution-card li::after { display: none; }
.solution-card:last-child:nth-child(odd) { grid-column: 1 / -1; }
.solution-card:last-child:nth-child(odd) ul { grid-template-columns: repeat(4,minmax(0,1fr)); }

/* Manifesto, proof, and portfolio rhythm and legibility floors. */
.signal-strip span { font-size: .72rem; }
.manifesto-foot p { max-width: 64ch; }
.manifesto-foot span { font-size: .72rem; letter-spacing: .08em; }
.proof-intro { font-size: .76rem; }
.proof-item::before { display: none; }
.proof-item strong { letter-spacing: -.035em; }
.proof-item span { font-size: .72rem; }
.portfolio-note { border-left-width: 1px; max-width: 66ch; }
.project-toolbar { position: static; }
.filters { gap: 6px; padding-bottom: 8px; }
.filter-button { font-family: inherit; letter-spacing: .01em; text-transform: none; font-size: .78rem; }
.project-grid { gap: 28px; }
.project-card { box-shadow: none; border-color: #0b0d1230; }
.project-card:hover { box-shadow: 0 12px 28px #0b0d1220; }
.project-card-media::before, .case-media-frame::before { display: none; }
.project-preview-status { font-size: .72rem; }
.project-card-body { padding: 24px; }
.project-card h3 { font-size: clamp(1.4rem,1.8vw,1.9rem); line-height: 1.2; }
.project-card-meta { margin-bottom: 14px; font-size: .74rem; letter-spacing: .06em; }
.project-card p { margin-top: 14px; line-height: 1.6; }
.project-state { margin-top: 18px; font-family: inherit; font-size: .74rem; }

/* Process, capabilities, studio accompaniment, FAQ, and contact. */
.process-grid { gap: 32px; }
.process-step { min-height: 0; justify-content: flex-start; border: 0; border-top: 1px solid var(--brand-border); padding: 24px 0 8px; border-radius: 0; background: transparent; }
.process-step:hover { background: transparent; transform: none; }
.process-step::before { display: none; }
.process-step .number { position: static; margin-bottom: 14px; font-size: .74rem; }
.process-step h3 { margin: 0 0 12px; }
.process-step p { line-height: 1.65; }
.capability::before { display: none; }
.capability, .capability:hover { color: var(--ink); padding: 28px 24px; }
.capability:hover p { color: #51565e; }
.capability .index, .capability:hover .index { color: var(--brand-ink-accent); font-size: .74rem; }
.capability:last-child:nth-child(odd) { grid-column: 1 / -1; border-right: 0; }
.studio-section { width: 100%; }
.studio-media { padding: 16px 16px 20px; width: fit-content; max-width: 100%; margin-inline: auto; border-radius: 22px; }
.studio-frame { border-radius: 14px; background: var(--night); }
.studio-media img { display: block; width: auto; max-width: 100%; max-height: 520px; margin-inline: auto; aspect-ratio: auto; filter: none; border-radius: 10px; }
.studio-media:hover img { transform: none; filter: none; }
.media-label { font-size: .72rem; letter-spacing: .08em; }
.source-links a { font-size: .76rem; min-height: 44px; display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; }
.faq-item summary { grid-template-columns: minmax(0,1fr) auto; gap: 20px; padding-inline: 0; }
.faq-item summary > span { display: none; }
.faq-item > p { margin-left: 0; padding-right: 48px; max-width: 68ch; }
.contact-guide .contact-safety { border-left-width: 1px; }
.contact-data-notice p { max-width: 64ch; }
.contact-link small { font-size: .74rem; letter-spacing: .08em; }
.site-footer { font-size: .76rem; }
.footer-brand strong { font-size: .82rem; }
.site-footer p { font-size: .76rem; }
.project-detail-toolbar p, .dialog-close, .dialog-meta span, .dialog-disciplines span, .dialog-sources a,
.media-viewer-toolbar small, .media-viewer button, .media-viewer-footer span { font-size: .74rem; }
.tia-cookie-reopen { min-height: 38px !important; padding: 6px 12px !important; font-size: 12px !important; opacity: .84; }
.tia-cookie-reopen:hover, .tia-cookie-reopen:focus-visible { opacity: 1; }

/* Keep every element visible and selectable inside Studio Control builder. */
.builder-mode .hero .kicker { display: flex; }
.builder-mode .commercial-heading > .section-code,
.builder-mode .solutions-section > .section-heading .section-code { display: block; }
.builder-mode .solution-card-top { display: flex; }
.builder-mode .faq-item summary { grid-template-columns: 48px minmax(0,1fr) auto; }
.builder-mode .faq-item summary > span { display: inline; font-size: .74rem; }

/* Subpages, 3dcastellon.es and automatizacastellon.es local experiences. */
.subpage-site-header { border-color: #ffffff28; border-radius: 16px; box-shadow: none; }
.subpage-site-header::after { display: none; }
.subpage-brand, .subpage-site-header nav a, .subpage-site-footer a,
.seo-case .subpage-breadcrumb a, .seo-case .subpage-button, .seo-case .subpage-related-card,
.seo-case .local-path, .seo-case .local-case, .seo-case .local-jump a, .seo-case .local-hero-media > a { text-decoration: none; }
.subpage-brand strong { font-size: .82rem; }
.subpage-brand small { font-family: inherit; font-size: .72rem; letter-spacing: .08em; }
.subpage-site-header .subpage-header-cta { box-shadow: none; font-size: .78rem; }
.subpage-breadcrumb, .local-experience .subpage-breadcrumb { font-family: inherit; font-size: .74rem; letter-spacing: .04em; }
.subpage-button-primary { box-shadow: none; }
.subpage-hero-visual::before, .subpage-main .subpage-hero h1::after { display: none; }
.subpage-hero-visual { border-radius: 16px; box-shadow: none; background: #11141b; border-color: #ffffff24; }
.subpage-hero-visual figcaption { font-family: inherit; font-size: .74rem; letter-spacing: .04em; }
.subpage-kicker, .subpage-tags { font-family: inherit; font-size: .74rem; letter-spacing: .05em; }
.subpage-section-number { font-family: inherit; font-size: .76rem; letter-spacing: .06em; }
.seo-project .subpage-notice, .seo-guide .subpage-guide-story > p:first-child { border-left-width: 1px; }
.subpage-site-footer p { font-family: inherit; font-size: .75rem; letter-spacing: .04em; }
.subpage-site-footer nav a { font-size: .76rem; }

.local-experience .local-overline { display: none; text-transform: none; letter-spacing: 0; }
.local-hero { padding: 36px 0 56px; }
.local-hero h1 { letter-spacing: -.04em; line-height: 1.06; }
.local-promise { margin-top: 22px; }
.seo-case .local-intro { max-width: 58ch; line-height: 1.7; }
.local-location { font-family: inherit; font-size: .78rem; letter-spacing: .015em; }
.local-hero-media { border-radius: 16px; border-color: #ffffff24; box-shadow: none; }
.local-hero-media::before { display: none; }
.local-digital .local-hero-media img { height: auto; max-height: 430px; }
.local-hero-media figcaption { padding: 20px 24px; }
.local-hero-media figcaption span { font-family: inherit; font-size: .74rem; letter-spacing: .04em; }
.local-hero-media figcaption a { font-size: .78rem; }
.local-jump { padding: 16px 0; border-block-color: #ffffff22; }
.local-jump a { font-size: .8rem; min-height: 36px; }
.seo-service.local-experience article > section.local-section { padding: 72px 0 0; border-top: 0; margin: 0; }
.seo-service.local-experience article > section.local-brief, .local-experience .local-brief { padding: 72px 0 0; border: 0; background: none; }
.seo-service.local-experience article > section > h2, .seo-service.local-experience .local-section-heading h2,
.local-experience .local-brief h2, .local-experience .local-next h2, .local-experience .subpage-faq h2 { font-size: clamp(2rem,3.3vw,3.1rem); line-height: 1.1; letter-spacing: -.035em; text-wrap: balance; }
.local-path > span, .local-case-copy > span { font-family: inherit; font-size: .74rem; letter-spacing: .04em; }
.local-path h3 { margin: 18px 0 10px; }
.local-case { border-radius: 16px; border-color: #ffffff22; }
.local-case:hover { transform: translateY(-2px); }
.local-case-image { background: #0d1017; }
.local-case strong { font-size: .78rem; text-decoration: underline; text-underline-offset: 4px; }
.local-process li > span { font-family: inherit; font-size: .74rem; font-weight: 600; }
.local-process h3 { margin: 14px 0 10px; }
.local-choices label { border-radius: 10px; font-size: .8rem; }
.local-brief textarea { border-radius: 12px; }
.local-brief-workspace .contact-data-notice p { max-width: 64ch; }
.local-enhanced-only > p { font-size: .78rem; }
.local-details .subpage-story-section p, .local-details .subpage-story-section ul { max-width: 66ch; }
.seo-service aside.local-next { margin: 72px 0 0; padding: 48px 0 0; background: transparent; border: 0; border-top: 1px solid #ffffff29; border-radius: 0; }

@media (min-width:1200px) {
  .project-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .project-card-body { padding: 22px; }
}
@media (max-width:980px) {
  .hero { padding-top: 140px; gap: 36px; }
  .hero [data-site-headline] { max-width: 850px; font-size: clamp(2.65rem,7vw,4.5rem); }
  .hero-lab { max-width: 680px; }
  .entry-grid { gap: 32px 24px; }
}
@media (max-width:760px) {
  .brand strong, .subpage-brand strong { font-size: .74rem; }
  .subpage-brand small { font-size: .72rem; letter-spacing: .06em; }
  .subpage-site-header .subpage-header-cta { font-size: .74rem; min-height: 40px; padding: 0 12px; }
  .hero { padding-top: 116px; padding-bottom: 48px; gap: 32px; }
  .hero [data-site-headline] { font-size: clamp(2.3rem,9.7vw,4rem); line-height: 1.12; letter-spacing: -.035em; }
  .hero-lead { margin-top: 20px; line-height: 1.65; }
  .hero-actions { margin-top: 22px; }
  .hero-entry-links { gap: 0 18px; margin-top: 16px; }
  .hero-entry-links a { gap: 7px; font-size: .78rem; }
  .availability { margin-top: 14px; font-size: .76rem; }
  .lab-topline { font-size: .72rem; }
  .hero-specimen img { max-height: 300px; }
  .hero-specimen figcaption { padding-block: 14px; }
  .hero-path button { min-height: 48px; font-size: .72rem; }
  .hero-path button span, .hero-path button b { font-size: .72rem; }
  .entry-grid { grid-template-columns: 1fr; gap: 36px; }
  .entry-grid .entry-card { padding: 24px 0 0; }
  .entry-card h3 { font-size: 1.85rem; }
  .entry-card .section-code { margin-bottom: 14px; }
  .scope-note { margin-bottom: 44px; }
  .solution-grid { grid-template-columns: 1fr; gap: 0; }
  .solution-card:last-child:nth-child(odd) ul { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .project-grid { grid-template-columns: 1fr; gap: 24px; }
  .project-card h3 { font-size: 1.65rem; }
  .filters { flex-wrap: nowrap; overflow-x: auto; max-width: 100%; padding: 8px 4px 14px; scrollbar-width: thin; scrollbar-color: var(--brand-ink-accent) transparent; }
  .filter-button { flex: 0 0 auto; white-space: nowrap; }
  .filters:focus-within { outline: 1px solid var(--brand-ink-accent); outline-offset: 3px; }
  .process-grid { gap: 8px; }
  .process-step { padding-block: 24px 12px; }
  .capability, .capability:hover { grid-template-columns: 38px 1fr; gap: 10px 14px; padding: 22px 0; }
  .faq-section { padding-inline: 20px; }
  .faq-item summary { grid-template-columns: minmax(0,1fr) 32px; gap: 14px; }
  .faq-item > p { margin-left: 0; padding-right: 12px; }
  .seo-service.local-experience article > section.local-section,
  .seo-service.local-experience article > section.local-brief,
  .local-experience .local-brief { padding-top: 60px; }
  .local-hero-media { box-shadow: none; }
  .local-case { grid-template-columns: 1fr; }
  .local-case-image { height: 220px; min-height: 0; }
  .seo-service aside.local-next { margin-top: 56px; padding-top: 40px; }
}
@media (max-width:420px) {
  .subpage-brand > span { display: grid; }
  .subpage-brand small { display: none; }
  .subpage-brand strong { font-size: .72rem; }
  .subpage-site-header .subpage-header-cta { font-size: .72rem; }
  .local-experience .subpage-breadcrumb { font-size: .72rem; }
  .local-jump a { font-size: .76rem; }
  .local-brief .subpage-button { font-size: .82rem; }
}
@media (max-width:360px) {
  .brand strong { font-size: .72rem; }
}
@media (forced-colors:active) {
  ::selection { color: HighlightText; background: Highlight; }
  .entry-grid .entry-card, .solution-grid .solution-card, .process-step, .seo-service aside.local-next { border-color: CanvasText; }
  .hero-path button { border-color: ButtonText; }
}
