/* TEXVIA reading scale. Loaded after the component styles so content stays
   readable at every breakpoint without changing the display headlines. */
:root {
  --read-body: 1.125rem;
  --read-list: 1.0625rem;
  --read-secondary: 1rem;
  --read-label: .875rem;
  --read-control: 1rem;
  --muted: #514759;
  --read-on-dark: #d5c8dd;
}

body { font-size: var(--read-body); line-height: 1.75; }
main p, main li { line-height: 1.75; }

/* Small headings and controls must remain useful, including on a phone. */
:is(.site-header, main, .closing-cta, .site-footer) :is(.eyebrow, .editorial-eyebrow) {
  font-size: var(--read-label);
  font-weight: 600;
  letter-spacing: .065em;
  line-height: 1.6;
}
:is(.site-header, main, .closing-cta, .site-footer) :is(.text-link, .editorial-link, .button),
.filter-button, .featured-tab, .article-share button,
.career-job-link, .career-role-back, .career-role-apply,
.careers-search-button, .careers-reset, .careers-portal-link a,
.contact-detail-link, .contact-inline-button, .contact-primary-button,
.contact-availability .contact-inline-button,
.contact-draft-actions > .contact-primary-button,
.contact-draft-actions > .contact-inline-button,
.contact-draft-webmail > .contact-inline-button,
.contact-success .contact-primary-button {
  font-size: var(--read-control);
  line-height: 1.5;
  min-height: 2.75rem;
  max-width: 100%;
}
.button, .editorial-link, .text-link, .contact-primary-button {
  overflow-wrap: anywhere;
}
.motion-toggle, .film-toggle, .footer-bottom .motion-toggle--footer {
  font-size: var(--read-label);
  line-height: 1.5;
}

/* The consulting workstreams in particular previously used 13 px paragraphs
   and 11 px lists. This scale is also shared by the other service pages. */
.intro-copy p:last-of-type, .section-heading .heading-copy,
.capabilities-intro > p, .capability-content p, .roadmap-copy p,
.global-section p, .overview-copy p, .service-block p, .application p,
.process-step p, .capability-detail .lead, .value-item p, .mission-block p,
.article-body p, .privacy-content p,
.consulting-feature-copy > p, .consulting-feature-steps p,
.consulting-section-intro > p, .consulting-output-grid p,
.consulting-industry > p, .consulting-bridge p,
.featured-copy > p, .people-copy > p, .capability-subhead {
  font-size: var(--read-body);
  line-height: 1.8;
}
.service-block ul, .deliverables ul, .article-body li, .privacy-content li {
  font-size: var(--read-list);
  line-height: 1.8;
}
.service-block li, .deliverables li { margin-bottom: .65rem; }
.service-block p, .service-block ul, .consulting-section-intro > p,
.consulting-output-grid p, .consulting-industry > p,
.consulting-feature-copy > p, .consulting-feature-steps p,
.overview-copy p, .application p, .mission-block p { max-width: 60ch; }
.service-block ul { padding-left: 1.35em; }
.consulting-service-grid .service-block ul { margin-top: .35rem; padding-top: .35rem; }
.service-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3rem; }
.consulting-service-grid { row-gap: 3.5rem; }
.service-block, .process-step, .value-item { min-width: 0; }
.service-block h3, .consulting-output-grid h3, .consulting-industry h3 {
  font-size: clamp(1.5rem, 2vw, 1.875rem);
  line-height: 1.3;
  letter-spacing: -.025em;
  max-width: 28ch;
}
.process-step h3, .value-item h3 { font-size: 1.5rem; line-height: 1.3; }
.capability-item summary h3 { font-size: 1.5rem; line-height: 1.4; }
.article-body, .career-role-copy { max-width: 70ch; }
.article-body .article-intro { font-size: 1.375rem; line-height: 1.7; }
.lead, .intro-copy .lead, .overview-copy .lead, .page-hero .lead {
  font-size: 1.25rem;
  line-height: 1.75;
}
.page-hero .lead, .page-hero.with-image .lead { max-width: 62ch; }
.service-block .service-number, .capability-item summary .num,
.consulting-step-number, .consulting-output-grid > li > span,
.deliverables h3, .focus-tags span, .insight-meta, .stack-label,
.stack-layer span, .discipline-list a span, .shortcut-number,
.industry-card .card-number, .article-hero .article-meta,
.article-aside .eyebrow, .contact-method h3, .article-share span {
  font-size: var(--read-label);
  line-height: 1.6;
}
.stack-layer, .discipline-list a, .card-bottom,
.industry-note, .application .application-outcome,
.article-aside a, .anchor-nav a, .breadcrumb { font-size: var(--read-secondary); line-height: 1.6; }
.breadcrumb { font-size: var(--read-label); }
.stack-layer { min-height: 3.25rem; }
.stack-layer span { flex-shrink: 0; }
.capability-content .capability-tags {
  /* The original component marks this one font size as important. */
  font-size: var(--read-label) !important;
  line-height: 1.8;
}
.application .application-outcome { color: #f0e3f7; }
.industry-card p, .insight-card p { font-size: var(--read-body); line-height: 1.75; }
.industry-card p { color: #f0e5f6; max-width: 34ch; }
.insight-card h3 { font-size: 1.75rem; line-height: 1.3; }
.country span, .country p { font-size: var(--read-label); line-height: 1.8; }

/* Preserve the black / purple editorial identity with clearer secondary copy. */
.editorial-hero-copy { max-width: 27rem; padding-left: 1rem; }
.editorial-hero-copy > p, .careers-hero-copy > p {
  font-size: 1.25rem;
  line-height: 1.7;
}
.editorial-hero-copy > p.hero-secondary,
.careers-hero-copy > p.careers-hero-secondary,
.contact-hero-copy > p.contact-hero-secondary {
  font-size: var(--read-secondary);
  line-height: 1.8;
  color: var(--read-on-dark);
}
.featured-copy > p, .people-copy > p, .consulting-feature-copy > p,
.consulting-feature-steps p, .consulting-output-grid p,
.capability-subhead, .section-heading .heading-copy,
.global-section p, .value-item p { color: var(--read-on-dark); }
.featured-copy > p.featured-tags {
  font-size: var(--read-label);
  line-height: 1.8;
  color: #dbbceb;
}
.people-locations span, .thinking-category, .pillar-kicker,
.featured-image-label, .industry-film--feature .featured-image-label,
.search-result-category, .search-count, .film-status,
.industry-footage-note, .film-caption > span {
  font-size: var(--read-label);
  line-height: 1.65;
}
.people-locations span, .thinking-category, .search-count,
.industry-footage-note { color: var(--read-on-dark); }
.thinking-row { grid-template-columns: 13rem minmax(0, 1fr) 2.5rem; }
.thinking-row h3 { font-size: 1.625rem; line-height: 1.4; }
.capability-pillar > p { font-size: var(--read-body); line-height: 1.75; opacity: 1; }
.capability-pillar { min-height: 24rem; padding-bottom: 4.5rem; }
.film-caption { font-size: var(--read-secondary); line-height: 1.6; right: 14rem; }
.film-caption > span { letter-spacing: .04em; }
.industry-film--feature .featured-image-label { right: 1.5rem; bottom: 5.5rem; }
.search-result-summary { font-size: var(--read-secondary); line-height: 1.75; color: var(--read-on-dark); }
.search-result-title { font-size: 1.375rem; line-height: 1.4; }
.search-empty { font-size: var(--read-body); }
.search-input-wrap > input, .search-input-wrap > input::placeholder { font-size: 1.125rem; }

/* Open stories can grow to fit readable copy instead of clipping it inside
   a fixed-height tile. The existing reveal / pause interactions are retained. */
.editorial-grid { gap: clamp(1.25rem, 2.5vw, 3rem); }
.story-card { height: auto; min-height: 35rem; }
.story-front-copy { padding: 2rem 1.5rem 0; }
.story-front h2 { font-size: clamp(1.5rem, 1.8vw, 1.875rem); line-height: 1.25; }
.story-category, .story-front-action, .story-fineprint,
.story-rail-controls > span { font-size: var(--read-label); line-height: 1.6; }
.story-category { letter-spacing: .035em; }
.story-front-action { right: 5.5rem; }
.story-reveal {
  position: relative;
  inset: auto;
  min-height: inherit;
  padding: 2rem 1.5rem 5.5rem;
  overflow: visible;
}
.story-reveal h3 { font-size: 1.625rem; line-height: 1.3; }
.story-reveal p { font-size: var(--read-body); line-height: 1.75; opacity: 1; }
.story-reveal .editorial-link { margin-top: auto; padding-top: .5rem; }
.story-toggle { width: 2.75rem; height: 2.75rem; }
.story-half-photo .story-image { height: 46%; }
.story-rail-controls button { width: 2.75rem; height: 2.75rem; }

/* Header and footer use the same readable scale. Keep the existing 961 px
   navigation breakpoint in sync with site.js. */
.header-inner { gap: clamp(1rem, 2vw, 2.5rem); }
.desktop-nav { gap: clamp(.875rem, 1.75vw, 1.8125rem); }
.site-header .nav-item { font-size: 1rem; font-weight: 500; }
.site-header .global-link { font-size: var(--read-label); }
.search-toggle, .mobile-toggle { min-width: 2.75rem; min-height: 2.75rem; }
.mega-menu { max-height: calc(100dvh - 5.5rem); overflow-y: auto; }
.mega-intro p, .mega-links a span { font-size: var(--read-secondary); line-height: 1.75; color: var(--read-on-dark); }
.mega-intro p { max-width: 30ch; }
.mega-links a, .mega-links.capability-links a { font-size: 1.25rem; line-height: 1.4; }
.mobile-nav details a { font-size: 1.125rem; line-height: 1.6; padding-block: .75rem; }
.footer-brand p { font-size: var(--read-secondary); color: var(--read-on-dark); line-height: 1.8; max-width: 30ch; }
.footer-column h3 { font-size: var(--read-label); line-height: 1.6; color: #dac9e4; }
.footer-column a { font-size: var(--read-secondary); line-height: 1.7; margin-bottom: .875rem; max-width: 30ch; }
.footer-grid > *, .footer-bottom > * { min-width: 0; }
.footer-bottom { font-size: var(--read-label); line-height: 1.75; color: #c4b5cd; padding-block: 1.25rem; }
.footer-bottom div { flex-wrap: wrap; gap: .75rem 1.5rem; }
.closing-link { font-size: var(--read-control); line-height: 1.5; max-width: 12rem; }

/* Odoo-connected content stays native and legible within the TEXVIA shell. */
.careers-section-heading > p, .career-job-summary, .careers-empty p,
.careers-no-script p, .careers-outlook p,
.career-role-hero > .wrap > p:not(.career-job-meta),
.career-role-section p, .career-role-section li,
.contact-connect > p, .contact-form-intro > p, .contact-success > p,
.contact-intro p, .contact-no-script p {
  font-size: var(--read-body);
  line-height: 1.8;
}
.careers-section-heading > p, .career-job-summary, .careers-empty p,
.career-role-section p, .career-role-section li,
.contact-connect > p, .contact-connect-item > p,
.contact-form-intro > p, .contact-success > p,
.contact-send-help, .contact-privacy-note { color: var(--muted); }
.careers-outlook p, .career-role-hero > .wrap > p:not(.career-job-meta) { color: var(--read-on-dark); }
.careers-status, .careers-empty .careers-portal-link,
.contact-connect-item > p, .contact-availability > p,
.contact-context > p, .contact-feedback, .contact-copy-status,
.contact-draft-status, .enquiry-preview p {
  font-size: var(--read-secondary);
  line-height: 1.75;
}
.careers-filter-field > label, .career-job-meta,
.career-role-hero .career-job-meta, .career-role-facts dt,
.career-role-sidebar > p, .careers-hero-visual figcaption > span,
.careers-help a, .careers-application-bar .career-role-back,
.careers-application-heading > .editorial-eyebrow,
.contact-hero-bottom, .contact-connect-item h3,
.contact-form-intro > p.contact-required-note, .contact-optional,
.contact-context > span, .contact-privacy-note,
.contact-email-option > span, .contact-send-help,
.contact-draft-webmail > span, .contact-draft-guidance,
.form-note, .form-submit p, .contact-method p, .copy-status {
  font-size: var(--read-label);
  line-height: 1.75;
}
.contact-field > label, .contact-draft-field > label, .form-field label {
  font-size: 1rem;
  line-height: 1.6;
}
.careers-input-wrap > input, .careers-filter-field > select,
.contact-field > input, .contact-field > textarea,
.contact-draft-field > input, .contact-draft-field > textarea,
.form-field input, .form-field select, .form-field textarea {
  font-size: 1rem;
  line-height: 1.6;
  min-height: 3.375rem;
}
.contact-field > input::placeholder, .contact-field > textarea::placeholder,
.careers-input-wrap > input::placeholder,
.form-field input::placeholder, .form-field textarea::placeholder {
  font-size: 1rem;
  color: #6d6076;
  opacity: 1;
}
.career-role-facts dd { font-size: var(--read-secondary); }
.career-role-sidebar .career-role-apply { font-size: var(--read-control); }
.careers-filter-field > select, .careers-search-button { height: auto; min-height: 3.375rem; }
.careers-search-button { flex-wrap: wrap; }
.careers-application-bar .career-role-back { max-width: 10rem; }
.careers-application-heading h1 { font-size: 1.125rem; line-height: 1.4; }
.contact-primary-button { flex-shrink: 1; }
.enquiry-preview pre { font-size: 1rem; line-height: 1.75; }

@media (max-width: 1500px) and (min-width: 1051px) {
  .editorial-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1240px) and (min-width: 961px) {
  .site-header .global-link { display: none; }
  .header-actions { gap: .875rem; }
}
@media (max-width: 1100px) {
  .service-grid, .consulting-industry-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.5rem; }
  .process-grid, .values-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.5rem; }
  .pillar-grid { grid-template-columns: 1fr; max-width: 42rem; gap: 1.5rem; }
  .capability-pillar { min-height: 0; padding: 2rem 2rem 4rem; }
  .capability-pillar > p { max-width: 52ch; }
  .capability-pillar:nth-child(2), .capability-pillar:nth-child(2):hover { transform: none; }
  .pillar-footer { margin-top: 2.5rem; }
}
@media (max-width: 1050px) and (min-width: 601px) {
  .editorial-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
  .editorial-hero-copy { max-width: 30rem; padding-left: 0; }
  .mega-menu { max-height: calc(100dvh - 4rem); }
  .thinking-row { grid-template-columns: 11rem minmax(0, 1fr) 2rem; gap: 1.5rem; }
  .film-caption { left: 1.375rem; right: 1.375rem; bottom: 5.5rem; }
  .careers-outlook-grid { grid-template-columns: 1fr; gap: 1.5rem; }
}
@media (max-width: 900px) {
  .featured-panel, .people-grid, .contact-enquiry-grid, .career-role-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 2.5rem;
  }
  .featured-copy, .people-copy { max-width: 65ch; }
  .featured-visual { height: clamp(20rem, 50vw, 32rem); }
  .contact-connect > p, .contact-connect-item > p { max-width: 60ch; }
  .career-role-sidebar { position: static; max-width: 36rem; }
  .consulting-section-intro { grid-template-columns: 1fr; gap: 1.5rem; }
}
@media (max-width: 760px) {
  .service-grid, .consulting-industry-grid, .consulting-output-grid { grid-template-columns: minmax(0, 1fr); }
  .service-grid { gap: 2.5rem; }
  .consulting-feature-grid, .consulting-bridge-grid { gap: 2rem; }
  .consulting-feature-steps > li, .consulting-output-grid > li { gap: 1rem; }
}
@media (max-width: 700px) {
  :root { --read-body: 1rem; --read-list: 1rem; }
  .lead, .intro-copy .lead, .overview-copy .lead, .page-hero .lead,
  .editorial-hero-copy > p, .careers-hero-copy > p { font-size: 1.125rem; }
  .editorial-hero-copy { width: 88%; max-width: 31rem; }
  .contact-hero-copy > p.contact-hero-secondary { max-width: 45ch; }
  .service-block h3, .consulting-output-grid h3, .consulting-industry h3 { font-size: 1.5rem; }
  .article-body .article-intro { font-size: 1.25rem; }
  .article-aside a { font-size: 1rem; line-height: 1.6; }
  .thinking-row { grid-template-columns: minmax(0, 1fr) 2rem; gap: .75rem 1rem; }
  .thinking-row h3 { font-size: 1.5rem; }
  .film-caption { font-size: 1rem; }
  .film-status { max-width: calc(100% - 2.25rem); }
  .closing-grid { flex-wrap: wrap; align-items: flex-start; gap: 1.75rem; }
  .closing-link { flex-direction: row; align-items: center; gap: 1rem; max-width: none; text-align: left; }
  .footer-bottom { font-size: var(--read-label); }
  .contact-hero-copy { grid-template-columns: minmax(0, 1fr); }
  .contact-hero-copy > p, .contact-hero-copy > p.contact-hero-secondary,
  .contact-hero-copy .editorial-link { grid-column: 1; grid-row: auto; }
  .contact-hero-copy { max-width: 35rem; margin-left: 10%; }
  .contact-native-form, .contact-form { grid-template-columns: minmax(0, 1fr); }
  .contact-field, .form-field { grid-column: 1 / -1; }
  .careers-hero-copy { margin-left: 12%; max-width: 28rem; }
  .careers-hero-visual figcaption { left: 1.5rem; right: 1.5rem; }
  .careers-hero-visual figcaption > span { max-width: none; }
  .contact-next-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .story-card { flex: 0 0 min(21.5rem, calc(100vw - 3.5rem)); width: min(21.5rem, calc(100vw - 3.5rem)); min-height: 35rem; }
  .story-front h2, .story-reveal h3 { font-size: 1.5rem; }
  .story-front-copy, .story-reveal { padding-left: 1.375rem; padding-right: 1.375rem; }
  .story-rail-controls { flex-wrap: wrap; gap: .75rem; }
  .process-grid { grid-template-columns: 1fr; gap: 2rem; }
  .careers-application-bar > .wrap { flex-wrap: wrap; gap: .375rem 1rem; }
  .careers-application-bar .career-role-back { max-width: none; }
  .careers-application-heading { flex-basis: 100%; }
}
@media (max-width: 500px) {
  .careers-filters { grid-template-columns: minmax(0, 1fr); }
  .careers-search-button { justify-self: stretch; }
  .careers-reset { justify-self: start; }
  .footer-grid, .values-grid { grid-template-columns: minmax(0, 1fr); }
  .footer-column:last-child { grid-column: auto; }
  .contact-connect { grid-template-columns: minmax(0, 1fr); }
  .contact-connect > *, .contact-connect-item { min-width: 0; }
  .contact-hero-copy { margin-left: 8%; }
  .contact-primary-button { padding-inline: 1rem; gap: 1rem; }
  .contact-commercial-email { font-size: 1.125rem; }
  .search-dialog-inner { padding: 1.5rem 1.25rem; }
}
