/* Shared type scale, loaded after the component styles. Keep the original font. */
:root{
  --lm-type-body:16px;
  --lm-type-small:14px;
  --lm-type-label:13px;
  --lm-type-h1:clamp(30px,calc(12px + 2.1vw),44px);
  --lm-type-h2:clamp(26px,calc(18px + 1vw),32px);
  --lm-type-h3:clamp(21px,calc(17px + .6vw),25px);
}
body{font-size:17px;line-height:1.6}
h1,h2,h3,h4,h5,h6{font-weight:400}
h1{font-size:var(--lm-type-h1);line-height:1.16}
h2{font-size:var(--lm-type-h2);line-height:1.24}
h3{font-size:var(--lm-type-h3);line-height:1.3}

/* Keep headlines distinct without the previous oversized extremes. */
.lm-case-intro h1,.lm-detail-hero h1,.lm-career-hero h1,
.lm-legal-hero h1,.lm-post header h1,.lm-empty h1{font-size:var(--lm-type-h1);line-height:1.16}
.lm-team-intro h1{font-size:clamp(28px,2.25vw,36px);line-height:1.2}
.lm-services-intro h1,.lm-services-intro h2,.lm-service-copy h2,
.lm-home-split .lm-service-copy h2,.lm-service-location h2,
.lm-stories-intro h2,.lm-clients-heading h2,.lm-column>h2,
.lm-case h2,.lm-detail-section>h2,.lm-detail-connection h2,
.lm-career-intro h2,.lm-application-intro h2,.lm-team-outro h2{font-size:var(--lm-type-h2);line-height:1.24}
.lm-display-title{font-size:var(--lm-type-h2)!important;line-height:1.24}
.lm-hero h2{font-size:clamp(28px,2.3vw,38px);line-height:1.25}
.lm-hero--home h1,.lm-hero--inner h2{font-size:clamp(22px,2vw,28px);line-height:1.4}
.lm-footer-cta h2{font-size:clamp(32px,4.2vw,60px);line-height:1.08;letter-spacing:-.04em}
.lm-overlay-nav a{font-size:clamp(30px,4.5svh,44px);line-height:1.16}
.home .lm-layout-282-38 .lm-iconbox h3,.lm-iconbox h3,
.lm-detail-offer h3,.lm-detail-step h3,.lm-detail-case-copy h3,
.lm-detail-person-copy h3{font-size:var(--lm-type-h3);line-height:1.3}
.lm-person-copy h2{font-size:24px;line-height:1.3}
.lm-person--lead .lm-person-copy h2{font-size:27px;line-height:1.3}
.lm-project-grid>.lm-project-card .lm-project-caption h2{font-size:clamp(20px,calc(2px + 1.25vw),22px);line-height:1.35}

/* Reading copy retains a comfortable size across every breakpoint. */
.lm-home-split .lm-service-copy>p:not(.lm-eyebrow):not(.lm-service-region),.lm-home-split .lm-service-list li,
.lm-service-copy>p:not(.lm-eyebrow):not(.lm-service-region),.lm-service-list li,.lm-service-location>p:not(.lm-eyebrow),
.lm-case-story-grid p,.lm-person-description,.lm-person--lead .lm-person-description,
.lm-detail-offer p,.lm-detail-step p,.lm-detail-person-copy p,
.lm-career-intro p,.lm-career-area p,.lm-application-intro>p,
.lm-application-form [data-step]>p,.lm-application-roles>p,
.lm-legal-section p,.lm-legal-section li,.lm-blog-grid p{font-size:var(--lm-type-body);line-height:1.7}
.lm-case-lead,.lm-detail-lead,.lm-detail-section-intro,
.lm-service-intro-copy,.lm-team-intro-copy,.lm-career-lead{font-size:17px;line-height:1.65}
.lm-legal-section .lm-legal-company{font-size:18px}

/* Categories, captions, locations and secondary navigation stay readable. */
.lm-eyebrow,.lm-service .lm-eyebrow,.lm-services-intro .lm-eyebrow,
.lm-service-location .lm-eyebrow,.lm-team-intro .lm-eyebrow,
.lm-detail-eyebrow,.lm-detail-person-copy .lm-detail-eyebrow,.lm-detail-number,.lm-career-hero .lm-eyebrow,
.lm-application-intro>.lm-eyebrow,.lm-career-area .lm-career-number,
.lm-blog-grid .lm-eyebrow,.lm-legal-section>.lm-eyebrow{font-size:var(--lm-type-label);line-height:1.5;letter-spacing:.06em}
.lm-case-eyebrow{font-size:var(--lm-type-label)!important;line-height:1.5!important;letter-spacing:.06em}
.lm-case-breadcrumb,.lm-case-tags,.lm-case-story h3,
.lm-case-media figcaption,.lm-web-device figcaption,
.lm-case .lm-project-nav,.lm-person-role,.lm-person--lead .lm-person-role,
.lm-detail-region,.lm-detail-media-label,.lm-detail-media-caption,
.lm-detail-media-caption a,.lm-service-detail--social-performance .lm-detail-media-caption a,.lm-detail-person-copy .lm-detail-person-role,
.lm-career-region,.lm-career-caption,.lm-application-intro .lm-application-location,
.lm-legal-section .lm-legal-note,.lm-legal-nav a span{font-size:var(--lm-type-label);line-height:1.6}
.lm-case-tags{letter-spacing:.01em}
.lm-case-facts,.lm-case-link,.lm-case-contact-links,
.lm-case-contact p:not(.lm-case-eyebrow),.lm-service-copy .lm-service-region{font-size:var(--lm-type-small);line-height:1.65}
.lm-case-contact-main{font-size:24px!important}
.lm-case .lm-project-nav .lm-project-nav-copy{font-size:13px;letter-spacing:0}
.lm-case .lm-project-nav .lm-all-projects{font-size:14px}
.lm-case .lm-project-nav .lm-project-nav-copy>span{font-size:13px;letter-spacing:0}
.lm-case .lm-project-nav strong{font-size:18px}

/* Taller caption rows allow a second line instead of hiding the text. */
.lm-home-split .lm-service-media,.lm-services-overview .lm-service-media{grid-template-rows:auto minmax(0,1fr) auto}
.lm-service-media .lm-service-media-label,.lm-service-media .lm-service-caption,
.lm-home-split .lm-service-media .lm-service-media-label,.lm-home-split .lm-service-media .lm-service-caption,
.lm-services-overview .lm-service-media .lm-service-media-label,.lm-services-overview .lm-service-media .lm-service-caption{
  font-size:var(--lm-type-label);line-height:1.5;letter-spacing:.025em;
  white-space:normal;overflow:visible;text-overflow:clip;
}
.lm-project-grid>.lm-project-card .lm-project-caption p{font-size:var(--lm-type-label);line-height:1.55;letter-spacing:.025em}
.lm-video-label,.lm-service-media--film .lm-video-label,.lm-detail-hero-media .lm-video-label{font-size:var(--lm-type-small);line-height:1.5}

/* Buttons and form labels should never inherit tiny caption sizes. */
.lm-button,.lm-text-link,.lm-service-links a,.lm-home-split .lm-service-links a,
.lm-service-index a,.lm-service-work-heading a,.lm-detail-index a,
.lm-detail-actions .lm-button,.lm-detail-actions .lm-text-link,
.lm-detail-back,.lm-detail-back .lm-text-link,.lm-detail-case-copy a,
.lm-detail-person-copy .lm-text-link,.lm-detail-connection a,
.lm-team-outro .lm-text-link,.lm-career-intro .lm-career-links,
.home .lm-layout-282-38 .lm-text-link,.lm-menu-utility{font-size:var(--lm-type-small);line-height:1.5}
.lm-filters button{font-size:14px;line-height:1.4;min-height:44px}
.lm-form label,.lm-form legend,.lm-application-panel .lm-form label{font-size:15px;line-height:1.5}
.lm-form .lm-choice{font-size:14px!important;line-height:1.5}
.lm-form .lm-consent,.lm-application-panel .lm-form .lm-consent{font-size:14px;line-height:1.65}
.lm-form input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.lm-form textarea,.lm-form select,
.lm-application-panel .lm-form input:not([type=radio]):not([type=checkbox]):not([type=hidden]),.lm-application-panel .lm-form textarea,.lm-application-panel .lm-form select{font-size:16px}
.lm-optional,.lm-application-panel .lm-steps li{font-size:13px;line-height:1.5}
.lm-application-panel .lm-form .lm-role{font-size:14px!important;line-height:1.5}
.lm-application-panel .lm-step-actions .lm-button,.lm-application-panel .lm-step-actions .lm-text-link{font-size:14px}

/* The quiet footer still has legible details and legal links. */
.lm-footer-lead>.lm-eyebrow,.lm-footer h3,
.lm-footer .lm-footer-legal,.lm-footer-bottom>small{font-size:var(--lm-type-label);line-height:1.6}
.lm-footer-lead>.lm-eyebrow,.lm-footer h3{letter-spacing:.06em}
.lm-footer .lm-footer-legal{row-gap:12px}

/* Consent copy and controls use the same minimum reading sizes. */
.lm-cookie-banner p,.lm-cookie-dialog>p{font-size:15px;line-height:1.6}
.lm-cookie-banner .lm-cookie-note,.lm-cookie-dialog .lm-cookie-note,
.lm-cookie-category-title>span:nth-child(2){font-size:13px;line-height:1.6}
.lm-cookie-category p,.lm-cookie-dialog .lm-cookie-context,.lm-cookie-actions button{font-size:14px;line-height:1.5}
.lm-cookie-actions button{padding:11px 10px}

.lm-intro-side,.lm-intro-bottom,.lm-intro-caption,.lm-intro-counter{font-size:13px;line-height:1.5}
@media(max-width:700px){
  body{font-size:16px}
  .lm-header-actions{font-size:14px;gap:12px}
  .lm-header-link--work{min-height:46px;padding-left:16px;padding-right:16px}
  .lm-overlay-nav a{font-size:clamp(28px,4.1svh,34px);line-height:1.15}
  .lm-footer-cta h2{font-size:32px}
  .lm-case .lm-project-nav{gap:8px}
  .lm-project-prev,.lm-project-next{gap:5px}
  .lm-case .lm-project-nav .lm-all-projects{font-size:13px}
  .lm-case .lm-project-nav strong{font-size:16px}
  .lm-intro-side--left{max-width:calc(28% + 20px)}
  .lm-intro-side--right{max-width:min(calc(58% + 20px),calc(100% - 134px))}
  .lm-intro-scroll,.lm-intro-skip{min-height:44px}
  .lm-person-copy h2,.lm-person--lead .lm-person-copy h2{font-size:25px}
}
