/* Emir Metal — typography, composition and contact refinements. */
:root { --copper: #d39a6a; --copper-light: #e5b28a; --muted: #5d6665; }
.container { width: min(1320px, calc(100% - 112px)); }
.section { padding-block: 96px; }
.button { font-size: 12px; letter-spacing: .2px; min-height: 52px; }
.eyebrow { font-size: 11px; letter-spacing: 1.4px; }
.header-inner { min-height: 86px; }
.site-nav { font-size: 12px; gap: 26px; }
.site-nav .nav-cta { font-size: 10px; }
.site-nav > a:not(.button) { position: relative; }
.site-nav > a:not(.button)::after { content: ''; position: absolute; left: 0; right: 0; bottom: 6px; height: 2px; background: var(--copper); transform: scaleX(0); transform-origin: left; transition: transform .2s; }
.site-nav > a.is-current { color: var(--copper-light); }
.site-nav > a.is-current::after { transform: scaleX(1); }
.hero, .hero-inner { min-height: 680px; }
.hero-inner { padding-top: 68px; padding-bottom: 155px; }
.hero-copy { max-width: 740px; }
.hero h1 { font-size: clamp(70px, 6.25vw, 92px); letter-spacing: -.9px; line-height: 1.02; margin-top: 24px; }
.hero-second-line { white-space: nowrap; }
.hero h1 .outline-text { -webkit-text-stroke: 1.1px #e0b696; }
.hero-image { object-position: center 54%; }
.hero-shade { background: linear-gradient(90deg, #0e1519f5 0%, #0e1519e6 27%, #0e15197d 52%, #0e151908 85%), linear-gradient(0deg, #101416ed 0%, transparent 50%); }
.hero-grid { opacity: .32; }
.hero .eyebrow { font-size: 11px; letter-spacing: 1.7px; color: #e1e5df; }
.hero-description { max-width: 490px; color: #d5dbd7; font-size: 15px; line-height: 1.85; margin-top: 25px; }
.hero-actions { margin-top: 27px; gap: 27px; }
.hero-actions .button { min-width: 225px; }
.hero-explore { font-size: 12px; }
.hero-service-note { display: flex; align-items: center; gap: 12px; margin-top: 25px; font-size: 11px; color: #b8c1bc; }
.hero-service-note > span { color: var(--copper); font-size: 17px; }
.hero-service-note i { width: 3px; height: 3px; background: #89978f; border-radius: 50%; }
.hero-side { top: 65px; bottom: 190px; font-size: 9px; }
.hero-image-note { font-size: 10px; bottom: 130px; }
.hero-dock > a { padding-block: 23px; min-height: 103px; }
.hero-dock strong { font-size: 23px; }
.hero-dock small { font-size: 11px; color: #bac4bd; line-height: 1.6; }
.hero-dock > a:hover { background: #e8c2a208; }
.expertise-strip > .container { padding-block: 22px; font-size: 10px; letter-spacing: .5px; }
.expertise-strip strong { font-size: 19px; }
.approach { gap: 76px; grid-template-columns: 1.05fr 1fr; }
.approach-visual { padding: 0 22px 22px 0; }
.approach-visual > img { height: 510px; }
.visual-corner { left: 0; bottom: 55px; border-left: 3px solid var(--copper); background: #171e20f2; }
.approach-copy h2 { font-size: clamp(45px, 4.1vw, 61px); line-height: 1.03; }
.approach-copy > p:not(.eyebrow) { font-size: 14px; line-height: 1.9; }
.approach-copy > p.approach-lead { color: #303b39; font-size: 17px; line-height: 1.7; }
.approach-points { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; padding-block: 23px; margin-top: 27px; }
.approach-points > span { display: block; font-size: 12px; }
.approach-points i { display: block; font-size: 11px; font-weight: 500; margin-bottom: 8px; }
.approach-points > span > span { display: block; }
.approach-points > span > span > span { display: block; color: var(--muted); font-size: 10px; font-weight: 400; margin-top: 4px; line-height: 1.6; }
.underlined-link { font-size: 12px; letter-spacing: .1px; }
.section-heading { margin-bottom: 38px; }
.section-heading h2 { font-size: clamp(46px, 4.6vw, 65px); line-height: 1.04; }
.section-heading > p { font-size: 14px; max-width: 355px; }
.solutions-section .outline-text, .process-section .outline-text { color: #a6b2ae; -webkit-text-stroke: 0; }
.solution-tabs { margin-bottom: 28px; }
.solution-tabs button { font-size: 26px; padding-block: 21px; }
.solution-tabs button > span:first-child { font-size: 11px; }
.solution-panel { min-height: 485px; grid-template-columns: 1.08fr 1fr; }
.solution-image > img { min-height: 485px; }
.solution-image > span { font-size: 10px; letter-spacing: .5px; }
.solution-copy { padding: 38px 42px; }
.solution-copy > .eyebrow { font-size: 10px; letter-spacing: .8px; }
.solution-copy h3 { font-size: 40px; }
.solution-copy > p:not(.eyebrow) { font-size: 14px; line-height: 1.8; }
.detail-list { font-size: 13px; margin-block: 21px 25px; }
.solution-copy .button { font-size: 11px; }
.solution-copy .technical-note { font-size: 12px !important; }
.filters button { min-height: 44px; font-size: 11px; letter-spacing: .2px; }
#project-count { font-size: 12px; }
.project-grid { grid-template-columns: 1.12fr 1fr; gap: 24px; }
.project-card > button { min-height: 450px; }
.project-badge { font-size: 10px; letter-spacing: .5px; }
.project-overlay strong { font-size: 35px; }
.project-overlay small { font-size: 10px; }
.project-technical > button { min-height: 235px; }
.finish-layout { gap: 80px; }
.finish-copy > p:not(.eyebrow) { font-size: 14px; }
.finish-options button { min-height: 88px; font-size: 11px; }
.finish-copy .finish-disclaimer { font-size: 12px !important; max-width: 410px; }
.finish-caption strong { font-size: 15px; }
.finish-caption p { font-size: 13px; }
.process-steps { gap: 32px; margin-top: 50px; }
.process-steps h3 { font-size: 27px; }
.process-steps p { font-size: 13px; color: #bec8c1; }
.quote-section { gap: 72px; grid-template-columns: .9fr 1.1fr; }
.quote-intro h2 { font-size: clamp(54px, 5vw, 72px); }
.quote-intro > p:not(.eyebrow) { font-size: 15px; max-width: 410px; }
.quote-direct { margin-top: 22px; }
.quote-checklist { margin-top: 35px; border-top: 1px solid var(--line); padding-top: 25px; max-width: 420px; }
.quote-checklist h3 { font-family: var(--body); font-size: 14px; font-weight: 800; line-height: 1.6; }
.quote-checklist ul { padding: 0; list-style: none; margin: 15px 0; }
.quote-checklist li { position: relative; padding-left: 19px; font-size: 13px; margin-block: 7px; color: #4b5854; }
.quote-checklist li::before { content: '+'; position: absolute; left: 0; color: #9a5d33; }
.quote-checklist > p { font-size: 12px; }
.quote-panel { background: #eeefe9; border-color: #d6dbd1; padding: 33px; box-shadow: 0 16px 40px #27352908; }
.form-heading { margin-bottom: 16px; }
.form-heading small { font-size: 10px; letter-spacing: .2px; }
.form-intro { font-size: 13px; line-height: 1.8; color: #5d685e; }
.form-guide { display: flex; padding: 0 0 20px; margin: 22px 0 25px; gap: 16px; list-style: none; border-bottom: 1px solid #d2d8cc; }
.form-guide li { display: flex; flex-direction: column; gap: 4px; flex: 1; font-size: 11px; font-weight: 600; color: #4e5c52; }
.form-guide li > span { font-size: 10px; color: #9d6035; }
legend, .form-field > label { font-size: 11px; letter-spacing: .2px; }
.service-choice-grid label > span { min-height: 61px; font-size: 13px; }
.form-field .field-help { font-size: 11px; line-height: 1.7; margin-top: 8px; color: #687166; }
input[type=text], select, textarea { background: #fafbf6; border-color: #c8d0c2; border-radius: 0; font-size: 14px; }
.form-submit { font-size: 12px; min-height: 54px; }
.form-privacy { font-size: 12px; }
#quote-form-status { font-size: 12px; }
.quote-result { scroll-margin-top: 110px; }
.quote-result h3 { font-size: 35px; }
.result-note { font-size: 13px; line-height: 1.8; margin-top: 12px; }
.result-actions .button { font-size: 12px; }
.secondary-button { min-height: 44px; font-size: 12px; }
.faq-section { padding-bottom: 85px; gap: 65px; }
.faq-list summary { font-size: 14px; min-height: 64px; }
.faq-list details p { font-size: 14px; }
.footer-callout > a { font-size: clamp(56px, 6.8vw, 94px); }
.footer-grid h3 { font-size: 11px; letter-spacing: .9px; }
.footer-grid p, .footer-grid > div > a:not(.brand) { font-size: 13px; }
.footer-grid > div > a.footer-phone { font-size: 33px; }
.footer-bottom { font-size: 10px; letter-spacing: .3px; }
.floating-contact { background: #18231f; border-color: #8d9a85; font-size: 10px; }
.mobile-contact-bar { display: none; }
.business-details { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr); gap: 23px; margin-top: 28px; padding: 24px; border: 1px solid #cbd2c6; border-left: 3px solid var(--copper); background: #e9ece530; }
.business-details h3 { font-family: var(--body); color: #657061; font-size: 10px; font-weight: 800; letter-spacing: .7px; line-height: 1.7; margin-bottom: 9px; }
.business-details address { font-style: normal; font-size: 14px; line-height: 1.85; overflow-wrap: anywhere; }
.business-channels { padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.business-channels a { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 44px; font-size: 14px; font-weight: 600; overflow-wrap: anywhere; }
.business-channels a > span { flex-shrink: 0; color: #80502f; }
.business-channels a:hover { color: #80502f; }
.business-map-link { display: inline-flex; gap: 18px; align-items: center; min-height: 44px; margin-top: 7px; color: #80502f; font-size: 13px; font-weight: 700; text-decoration: underline; text-underline-offset: 5px; }
.business-map-link:hover { color: #412b1d; }
.business-hours { padding-top: 20px; border-top: 1px solid var(--line); }
.business-hours p { display: flex; align-items: baseline; gap: 8px; font-family: var(--heading); font-size: 31px; line-height: 1; letter-spacing: .4px; }
.footer-grid > div > a.footer-location { font-size: 12px; line-height: 1.8; max-width: 300px; margin-top: 19px; }
.footer-grid p.footer-hours { margin-top: 9px; }
.footer-grid > div > a.footer-secondary-phone { font-family: var(--heading); font-size: 25px; letter-spacing: .4px; line-height: 1.4; }
.footer-grid > div > a.footer-email { overflow-wrap: anywhere; line-height: 1.8; }
.dialog-copy > p:not(.eyebrow) { font-size: 14px; }
.dialog-copy .underlined-link { font-size: 12px; }

@media (max-width: 1100px) {
  .container { width: calc(100% - 72px); }
  .site-nav { gap: 17px; font-size: 11px; }
  .hero h1 { font-size: 76px; }
  .hero-copy { max-width: 650px; }
  .hero-shade { background: linear-gradient(90deg, #0e1519f5, #0e1519c4 50%, #0e15192b), linear-gradient(0deg, #101416ed, transparent 60%); }
  .approach, .finish-layout, .quote-section { gap: 44px; }
  .approach-visual > img { height: 490px; }
  .solution-copy { padding: 29px; }
  .solution-copy h3 { font-size: 36px; }
  .solution-tabs button { font-size: 23px; gap: 13px; }
  .hero-dock strong { font-size: 21px; }
  .hero-dock small { font-size: 10px; }
  .approach-points { gap: 11px; }
  .approach-points > span { font-size: 11px; }
}
@media (max-width: 950px) {
  .header-inner { min-height: 80px; }
  .site-nav { top: 80px; font-size: 14px; }
  .site-nav > a.is-current::after { display: none; }
  .hero, .hero-inner { min-height: 650px; }
  .hero-inner { padding-top: 60px; }
  .hero h1 { font-size: 68px; }
  .hero-copy { max-width: 600px; }
  .hero-description { font-size: 15px; max-width: 455px; }
  .section { padding-block: 80px; }
  .approach-copy h2 { font-size: 49px; }
  .approach-points { grid-template-columns: 1fr; padding-block: 18px; }
  .approach-points > span { display: flex; gap: 13px; }
  .approach-points i { margin: 2px 0 0; }
  .approach-points > span > span > span { display: inline; margin-left: 9px; }
  .section-heading h2 { font-size: 51px; }
  .section-heading > p { max-width: 275px; font-size: 13px; }
  .solution-tabs button { font-size: 21px; }
  .solution-image > img { min-height: 530px; }
  .solution-copy h3 { font-size: 33px; }
  .solution-copy .button { font-size: 10px; }
  .project-overlay strong { font-size: 31px; }
  .process-steps { grid-template-columns: 1fr 1fr; gap: 38px; }
  .process-steps p { max-width: 310px; }
  .quote-section { grid-template-columns: 1fr; gap: 40px; }
  .quote-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 0 35px; }
  .quote-intro > .eyebrow, .quote-intro h2, .quote-intro > p, .quote-intro > .phone-link, .quote-direct { grid-column: 1; }
  .quote-checklist { grid-column: 2; grid-row: 2 / 6; margin-top: 25px; }
  .quote-intro .contact-note { grid-column: 1 / -1; }
  .quote-panel { padding: 36px; }
  .form-row { grid-template-columns: 1fr 1fr; }
  .faq-section { gap: 40px; }
}
@media (max-width: 700px) {
  .container { width: calc(100% - 40px); }
  html { scroll-padding-top: 94px; }
  body { padding-bottom: calc(70px + env(safe-area-inset-bottom)); }
  .utility-bar > .container { min-height: 31px; font-size: 9px; letter-spacing: .3px; }
  .utility-bar a { font-size: 11px; }
  .header-inner { min-height: 76px; }
  .site-nav { top: 76px; padding: 18px 20px 24px; }
  .brand-wordmark { font-size: 29px; }
  .brand-mark { width: 36px; height: 36px; }
  .brand-wordmark small { font-size: 7px; letter-spacing: 1px; }
  .menu-toggle { font-size: 12px; }
  .hero, .hero-inner { min-height: 0; }
  .hero-inner { padding-top: 43px; padding-bottom: 0; }
  .hero-copy { max-width: 100%; }
  .hero h1 { font-size: clamp(43px, 10.6vw, 70px); line-height: 1.04; letter-spacing: -.4px; margin-top: 23px; }
  .hero .eyebrow { font-size: 10px; letter-spacing: 1px; gap: 10px; }
  .hero-description { font-size: 14px; line-height: 1.85; margin-top: 23px; max-width: 440px; }
  .hero-image { object-position: 77% 50%; opacity: .85; }
  .hero-shade { background: linear-gradient(90deg, #0e161beb, #0e161bc7 47%, #0e161b40), linear-gradient(0deg, #101416fa, #10141677 60%, transparent); }
  .hero-actions { flex-direction: row; align-items: center; flex-wrap: wrap; gap: 21px; margin-top: 25px; }
  .hero-actions .button { min-width: 0; min-height: 52px; font-size: 12px; padding: 15px 20px; gap: 28px; }
  .hero-explore { font-size: 12px; gap: 9px; }
  .explore-circle { width: 32px; height: 32px; font-size: 16px; }
  .hero-service-note { font-size: 10px; gap: 9px; margin-top: 22px; }
  .hero-image-note { position: static; text-align: right; margin-top: 29px; margin-bottom: 16px; font-size: 9px; }
  .hero-dock { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); left: auto; right: auto; margin-top: 29px; }
  .hero-dock > a, .hero-dock > a:not(:first-child) { display: block; padding: 18px 10px !important; border-right: 1px solid #8e999047; border-bottom: 0; min-height: 121px; }
  .hero-dock > a:first-child { padding-left: 0 !important; }
  .hero-dock > a:last-child { border-right: 0; padding-right: 0 !important; }
  .dock-number { display: block; font-family: var(--body); font-size: 10px; margin-bottom: 10px; }
  .hero-dock strong { font-size: 18px; line-height: 1.1; letter-spacing: .1px; }
  .hero-dock small { font-size: 10px; line-height: 1.55; margin-top: 8px; }
  .dock-arrow { display: none; }
  .expertise-strip > .container { padding-block: 20px; gap: 10px; font-size: 8px; letter-spacing: .2px; }
  .expertise-strip > .container > span { padding-left: 8px; line-height: 1.6; }
  .section { padding-block: 63px; }
  .eyebrow { font-size: 10px; letter-spacing: 1px; }
  .approach { grid-template-columns: 1fr; gap: 35px; }
  .approach-visual { padding-right: 15px; padding-bottom: 21px; max-width: 100%; }
  .approach-visual > img { height: 380px; object-position: 62% center; }
  .visual-corner { left: 0; bottom: 50px; padding: 19px; min-width: 140px; }
  .photo-caption { font-size: 9px; right: 15px; bottom: 0; }
  .approach-copy h2 { font-size: 47px; margin-top: 22px; }
  .approach-copy > p:not(.eyebrow) { font-size: 14px; }
  .approach-copy > p.approach-lead { font-size: 16px; }
  .approach-points { grid-template-columns: repeat(3, 1fr); gap: 12px; }
  .approach-points > span { display: block; font-size: 11px; }
  .approach-points i { margin-bottom: 8px; }
  .approach-points > span > span > span { display: block; margin-left: 0; font-size: 10px; }
  .approach-copy .underlined-link { font-size: 12px; }
  .section-heading { display: block; margin-bottom: 29px; }
  .section-heading h2 { font-size: clamp(40px, 10vw, 52px); margin-top: 20px; }
  .section-heading > p { font-size: 14px; max-width: 100%; margin-top: 22px; }
  .solution-tabs { margin-bottom: 22px; }
  .solution-tabs button { display: block; padding: 17px 9px; font-size: 18px; min-height: 84px; line-height: 1.15; }
  .solution-tabs button > span:first-child { display: block; font-size: 10px; margin-bottom: 9px; }
  .solution-tabs button .tab-arrow { display: none; }
  .solution-panel { grid-template-columns: 1fr; min-height: 0; }
  .solution-image > img { min-height: 0; height: 285px; }
  .solution-copy { padding: 28px 23px 32px; }
  .solution-copy > .eyebrow { font-size: 10px; letter-spacing: .4px; }
  .solution-copy h3 { font-size: 36px; }
  .solution-copy > p:not(.eyebrow) { font-size: 14px; }
  .detail-list { font-size: 13px; }
  .solution-copy .button { font-size: 11px; min-height: 48px; }
  .filter-bar { display: block; }
  .filters { gap: 7px; }
  .filters button { padding: 10px 12px; font-size: 10px; min-height: 44px; }
  #project-count { display: block; margin-top: 14px; font-size: 12px; }
  .project-grid { grid-template-columns: 1fr; gap: 18px; }
  .project-card > button { min-height: 390px; }
  .project-badge { font-size: 9px; top: 18px; left: 18px; }
  .project-overlay { left: 20px; right: 20px; bottom: 23px; }
  .project-overlay strong { font-size: 31px; }
  .project-overlay small { font-size: 9px; }
  .project-technical > button { min-height: 320px; }
  .project-technical img { inset: 0; width: 100%; height: 75%; padding: 12px 30px; }
  .project-technical > button::after { background: linear-gradient(0deg, #d9e0d9, #d9e0d9aa 30%, transparent 70%); }
  .project-technical .project-overlay strong { font-size: 29px; }
  .finish-section { padding-block: 60px; }
  .finish-layout { grid-template-columns: 1fr; gap: 28px; }
  .finish-copy h2 { font-size: 47px; }
  .finish-copy > p:not(.eyebrow) { font-size: 14px; }
  .finish-options { gap: 22px; }
  .finish-options button { font-size: 11px; }
  .finish-preview { height: 300px; }
  .finish-caption strong { font-size: 14px; }
  .finish-caption p { font-size: 12px; }
  .process-section .section-heading { display: flex; flex-direction: column; gap: 23px; align-items: flex-start; }
  .process-section .underlined-link { font-size: 11px; }
  .process-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 34px 23px; }
  .process-steps h3 { font-size: 25px; }
  .process-steps p { font-size: 12px; }
  .quote-intro { display: block; }
  .quote-intro h2 { font-size: 55px; }
  .quote-intro > p:not(.eyebrow) { font-size: 14px; }
  .phone-link > span:last-child { font-size: 37px; }
  .phone-link small { font-size: 10px; }
  .quote-checklist { margin-top: 28px; }
  .contact-note { font-size: 10px; }
  .contact-note small { font-size: 12px; }
  .quote-panel { padding: 25px 20px; }
  .form-heading { font-size: 28px; }
  .form-heading small { font-size: 9px; }
  .form-intro { font-size: 13px; }
  .form-guide { gap: 11px; }
  .form-guide li { font-size: 10px; }
  .form-row { grid-template-columns: 1fr; }
  .service-choice-grid label > span { font-size: 12px; padding: 12px 10px; }
  legend, .form-field > label { font-size: 11px; }
  input[type=text], select, textarea { font-size: 16px; }
  .form-submit { font-size: 11px; }
  .form-privacy, #quote-form-status { font-size: 12px; }
  .quote-result h3 { font-size: 32px; }
  .result-actions .button { width: 100%; font-size: 12px; }
  .faq-section { grid-template-columns: 1fr; padding-block: 20px 65px; gap: 30px; }
  .faq-section h2 { font-size: 47px; }
  .faq-list summary { font-size: 14px; line-height: 1.7; }
  .faq-list details p { font-size: 13px; }
  .footer-callout > a { font-size: 48px; }
  .footer-grid { grid-template-columns: 1fr; gap: 30px; }
  .footer-grid > div > a:not(.brand), .footer-grid p { font-size: 13px; }
  .footer-grid > div > a.footer-phone { font-size: 34px; }
  .footer-grid h3 { font-size: 11px; }
  .footer-bottom { font-size: 10px; padding-bottom: 25px; }
  .floating-contact { display: none; }
  .mobile-contact-bar { position: fixed; z-index: 45; bottom: 0; left: 0; right: 0; display: grid; grid-template-columns: 1fr 1.35fr; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); gap: 10px; background: #11191cf5; border-top: 1px solid #42504b; backdrop-filter: blur(12px); }
  .mobile-contact-bar a { display: flex; justify-content: center; align-items: center; gap: 11px; min-height: 46px; font-size: 12px; font-weight: 700; color: #f4f3ee; border: 1px solid #67756b; }
  .mobile-contact-bar a:last-child { background: var(--copper); color: var(--deep); border-color: var(--copper); }
  .mobile-contact-bar svg { width: 18px; height: 18px; stroke: currentColor; stroke-width: 1.5; }
  .mobile-contact-bar a:last-child > span:last-child { font-size: 20px; line-height: 1; }
  .dialog-copy { padding: 25px; }
  .dialog-copy h2 { font-size: 34px; }
  .dialog-copy > p:not(.eyebrow) { font-size: 14px; }
}
@media (max-width: 360px) {
  .container { width: calc(100% - 32px); }
  .hero h1 { font-size: 43px; }
  .hero .eyebrow { font-size: 9px; }
  .hero-description { font-size: 13px; }
  .hero-dock strong { font-size: 16px; }
  .hero-dock small { font-size: 9px; }
  .hero-service-note { font-size: 9px; gap: 7px; }
  .process-steps h3 { font-size: 22px; }
  .approach-points { gap: 8px; }
  .solution-tabs button { font-size: 16px; }
  .solution-copy { padding-inline: 19px; }
  .quote-panel { padding-inline: 16px; }
  .service-choice-grid label > span { font-size: 11px; }
  .form-guide li { font-size: 9px; }
  .phone-link > span:last-child { font-size: 33px; }
  .mobile-contact-bar { padding-inline: 12px; gap: 8px; }
  .mobile-contact-bar a { font-size: 11px; }
}
@media print { body { padding-bottom: 0; } .mobile-contact-bar, .hero-service-note, .quote-checklist { display: none; } }

/* Two service categories, shared scope and category-specific quote selection. */
.applications-four .filter-bar { align-items: flex-start; flex-wrap: wrap; gap: 16px; }
.applications-four .filters { flex: 1 1 780px; gap: 8px; }
.applications-four .filters button { font-size: 12px; line-height: 1.65; padding: 11px 15px; text-align: left; }
.applications-four #project-count { flex-shrink: 0; margin-top: 13px; white-space: nowrap; }
.applications-four .project-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.applications-four .project-card { grid-column: auto; }
.applications-four .project-card > button { min-height: 365px; }
.applications-four .project-overlay strong { font-size: clamp(30px, 2.7vw, 38px); text-transform: uppercase; line-height: 1.15; }
.applications-four .project-overlay > span:first-child { min-width: 0; }
.applications-four .project-overlay small { line-height: 1.7; }
.applications-four .project-technical img { inset: 0; width: 100%; height: 78%; padding: 10px 30px 20px; }
.applications-four .project-technical > button::after { background: linear-gradient(0deg, #d9e0d9 4%, #d9e0d9ed 25%, transparent 73%); }
@media (max-width: 700px) {
  .applications-four .filter-bar { display: block; }
  .applications-four .filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .applications-four .filters button { padding: 10px; min-height: 48px; font-size: 12px; }
  .applications-four .filters button:first-child { grid-column: 1 / -1; }
  .applications-four #project-count { display: block; margin-top: 16px; }
  .applications-four .project-grid { grid-template-columns: 1fr; gap: 18px; }
  .applications-four .project-card > button { min-height: 340px; }
  .applications-four .project-overlay strong { font-size: 32px; }
  .applications-four .project-overlay { left: 20px; right: 20px; gap: 16px; }
}
@media (max-width: 360px) {
  .applications-four .filters button { font-size: 11px; }
  .applications-four .project-overlay strong { font-size: 29px; }
  .applications-four .project-arrow { width: 34px; height: 34px; }
}
.hero-dock.two-service-dock { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.hero-dock.two-service-dock > a { display: flex; min-width: 0; }
.two-service-dock strong { font-size: 24px; letter-spacing: .6px; line-height: 1.2; }
.service-categories { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.service-category { display: flex; flex-direction: column; min-width: 0; border: 1px solid #3c4542; background: #1a2022; scroll-margin-top: 110px; }
.category-image { height: 245px; position: relative; overflow: hidden; }
.category-image img { width: 100%; height: 100%; object-fit: cover; }
.category-image::after { content: ''; position: absolute; inset: 40% 0 0; background: linear-gradient(transparent, #101718a6); }
.category-image > span { position: absolute; z-index: 1; left: 24px; bottom: 18px; color: #f2f1e9; font-size: 9px; letter-spacing: 1px; }
.category-letter { position: absolute; z-index: 1; right: 24px; bottom: 12px; font-family: var(--heading); font-size: 66px; color: var(--copper); font-weight: 500; line-height: 1; }
.category-copy { padding: 32px; display: flex; flex-direction: column; flex: 1; }
.category-copy > .eyebrow { color: var(--copper); font-size: 10px; letter-spacing: .8px; min-height: 18px; }
.category-copy h3 { font-size: 37px; line-height: 1.12; text-transform: uppercase; margin-top: 18px; min-height: 84px; }
.category-description { color: #b7c0bb; font-size: 14px; line-height: 1.85; margin-top: 18px; min-height: 52px; }
.category-copy .detail-list { font-size: 14px; margin-block: 24px 30px; }
.category-copy .detail-list li { line-height: 1.7; padding-block: 11px; }
.category-copy .detail-list li::before { top: 9px; }
.category-copy .button { margin-top: auto; font-size: 11px; justify-content: space-between; padding-inline: 20px; min-height: 52px; }
.service-scope { margin-top: 32px; padding: 27px 30px; border: 1px solid #4c5550; border-left: 3px solid var(--copper); display: grid; grid-template-columns: 1fr 1.25fr auto; align-items: center; gap: 28px; }
.service-scope .eyebrow { font-size: 10px; letter-spacing: .8px; color: #b3bfb5; }
.service-scope h3 { font-size: 31px; line-height: 1.1; margin-top: 9px; }
.service-scope > p { font-size: 14px; line-height: 1.8; color: #c2cbc4; }
.service-scope .underlined-link { font-size: 12px; gap: 16px; }
.service-technical-note { color: #aeb9b0; font-size: 12px; line-height: 1.8; margin-top: 19px; }
.five-stage-process { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 28px; }
.five-stage-process h3 { font-size: 27px; }
.service-choice-grid.two-category-choices { grid-template-columns: 1fr; }
.two-category-choices .service-choice-copy { display: block; min-width: 0; }
.two-category-choices .service-choice-copy strong { display: block; font-size: 14px; line-height: 1.6; font-weight: 700; }
.two-category-choices .service-choice-copy small { display: block; font-size: 12px; line-height: 1.7; font-weight: 400; margin-top: 5px; opacity: .8; }
.two-category-choices label > span { padding: 16px; gap: 16px; }

@media (max-width: 1100px) {
  .two-service-dock strong { font-size: 22px; }
  .category-copy { padding: 27px; }
  .category-copy h3 { font-size: 33px; min-height: 112px; }
  .category-description { min-height: 78px; }
  .category-copy .detail-list { font-size: 13px; }
  .service-scope { grid-template-columns: 1fr 1.3fr; gap: 20px 30px; }
  .service-scope .underlined-link { grid-column: 1 / -1; justify-self: start; }
  .five-stage-process { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 35px; }
  .five-stage-process li:last-child { grid-column: 1 / -1; }
}
@media (max-width: 900px) {
  .service-categories { grid-template-columns: 1fr; gap: 30px; }
  .category-image { height: 290px; }
  .category-copy { padding: 30px; }
  .category-copy h3 { font-size: 37px; min-height: 0; max-width: 630px; }
  .category-description { min-height: 0; }
}
@media (max-width: 700px) {
  .hero-dock.two-service-dock > a, .hero-dock.two-service-dock > a:not(:first-child) { display: block; padding: 18px 14px !important; min-height: 133px; }
  .hero-dock.two-service-dock > a:first-child { padding-left: 0 !important; }
  .hero-dock.two-service-dock > a:last-child { padding-right: 0 !important; }
  .two-service-dock strong { font-size: 21px; line-height: 1.15; }
  .two-service-dock small { font-size: 10px; max-width: 100%; }
  .category-image { height: 220px; }
  .category-copy { padding: 25px 22px; }
  .category-copy > .eyebrow { font-size: 9px; line-height: 1.8; }
  .category-copy h3 { font-size: 34px; }
  .category-copy .detail-list { font-size: 14px; }
  .category-copy .button { font-size: 11px; padding-inline: 16px; gap: 14px; }
  .service-scope { grid-template-columns: 1fr; padding: 24px 22px; gap: 18px; }
  .service-scope .underlined-link { grid-column: auto; }
  .five-stage-process { grid-template-columns: 1fr; gap: 34px; }
  .five-stage-process li:last-child { grid-column: auto; }
  .five-stage-process p { max-width: 100%; }
  .two-category-choices .service-choice-copy strong { font-size: 13px; }
}
@media (max-width: 360px) {
  .two-service-dock strong { font-size: 18px; }
  .category-copy { padding-inline: 18px; }
  .category-copy h3 { font-size: 31px; }
  .category-copy .detail-list { font-size: 13px; }
}
@media print {
  .service-categories { grid-template-columns: 1fr 1fr; }
  .service-category { break-inside: avoid; color: black; background: white; }
  .category-description, .category-copy .detail-list, .service-scope > p, .service-technical-note { color: black; }
  .five-stage-process { grid-template-columns: repeat(5, 1fr); }
}

/* A continuous process timeline, with a vertical reading order on smaller screens. */
.process-refined { background-color: #172022; background-size: 20% 100%; }
.process-refined .section-heading { display: grid; grid-template-columns: 1.35fr 1fr; align-items: end; gap: 65px; margin-bottom: 0; }
.process-refined .section-heading h2 { font-size: clamp(45px, 4.4vw, 63px); line-height: 1.08; }
.process-refined .process-intro { padding-bottom: 5px; max-width: 440px; }
.process-refined .process-intro > p { font-size: 14px; line-height: 1.9; color: #b8c3bd; }
.process-refined .process-intro .underlined-link { display: inline-flex; margin-top: 21px; font-size: 12px; }
.process-refined .process-timeline { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 32px; margin-top: 59px; }
.process-refined .process-timeline > li { min-width: 0; position: relative; }
.process-refined .step-number { font-size: 66px; line-height: 1; letter-spacing: -.8px; }
.process-refined .step-line { width: calc(100% + 32px); height: 1px; margin: 23px 0 27px; background: #58635d; }
.process-refined li:last-child .step-line { width: 100%; }
.process-refined .step-line::before { width: 7px; height: 7px; top: -3px; background: var(--copper); }
.process-refined .process-step-copy h3 { min-height: 66px; font-size: 29px; line-height: 1.13; text-transform: uppercase; letter-spacing: .2px; }
.process-refined .process-step-copy p { font-size: 14px; line-height: 1.85; color: #b8c3bd; margin-top: 13px; max-width: 100%; }
.process-refined .process-scope-note { display: flex; gap: 13px; align-items: baseline; font-size: 13px; line-height: 1.85; color: #c6cec8; margin-top: 36px; padding-top: 24px; border-top: 1px solid #3c4943; }
.process-refined .process-scope-note > span { color: var(--copper); font-size: 20px; }
@media (max-width: 1100px) {
  .process-refined .section-heading { gap: 35px; }
  .process-refined .process-timeline { grid-template-columns: 1fr; gap: 0; margin-top: 43px; }
  .process-refined .process-timeline > li { display: grid; grid-template-columns: 68px minmax(0, 1fr); gap: 26px; padding-bottom: 35px; }
  .process-refined .process-timeline > li:last-child { grid-column: auto; padding-bottom: 0; }
  .process-refined .step-number { font-size: 54px; }
  .process-refined .step-line { position: absolute; left: 27px; top: 64px; bottom: 7px; width: 1px; height: auto; margin: 0; }
  .process-refined .step-line::before { left: -2px; top: 0; width: 5px; height: 5px; }
  .process-refined li:last-child .step-line { display: none; }
  .process-refined .process-step-copy h3 { min-height: 0; font-size: 29px; padding-top: 3px; }
  .process-refined .process-step-copy p { margin-top: 9px; max-width: 680px; }
}
@media (max-width: 800px) {
  .process-refined .section-heading { grid-template-columns: 1fr; gap: 25px; }
  .process-refined .section-heading h2 { font-size: 49px; }
  .process-refined .process-intro { max-width: 560px; padding-bottom: 0; }
}
@media (max-width: 700px) {
  .process-refined .section-heading { display: grid; }
  .process-refined .section-heading h2 { font-size: 43px; }
  .process-refined .process-timeline { margin-top: 38px; }
  .process-refined .process-timeline > li { grid-template-columns: 49px minmax(0, 1fr); gap: 20px; padding-bottom: 31px; }
  .process-refined .step-number { font-size: 48px; }
  .process-refined .step-line { left: 23px; top: 56px; bottom: 6px; }
  .process-refined .process-step-copy h3 { font-size: 27px; }
  .process-refined .process-step-copy p { font-size: 14px; line-height: 1.8; }
  .process-refined .process-scope-note { margin-top: 29px; font-size: 12px; }
}
@media (max-width: 360px) {
  .process-refined .section-heading h2 { font-size: 38px; }
  .process-refined .process-timeline > li { gap: 16px; }
  .process-refined .process-step-copy h3 { font-size: 25px; }
}
@media print {
  .process-refined { background: #fff; color: #111; }
  .process-refined .outline-text { color: #333; }
  .process-refined .process-step-copy p, .process-refined .process-intro > p, .process-refined .process-scope-note { color: #333; }
  .process-refined .process-timeline > li { break-inside: avoid; }
}
