:root {
  --blue: #28458d;
  --blue-light: #9fb8ee;
  --graphite: #111a24;
  --navy: #172b43;
  --white: #ffffff;
  --mist: #eef1f4;
  --ink: #1e2b3c;
  --muted: #475565;
  --line: #d6dce3;
  --display: 'Barlow Condensed', sans-serif;
  --body: 'Barlow', sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--white); color: var(--ink); font-family: var(--body); font-size: 17px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
h1, h2, h3, p, figure { margin: 0; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
img { display: block; max-width: 100%; }
svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
p { text-wrap: pretty; }
h1, h2 { font-family: var(--display); font-weight: 600; line-height: .97; letter-spacing: -.01em; }
h2 { font-size: clamp(44px, 4.45vw, 64px); }
h2 > span { color: var(--blue); }
::selection { background: var(--blue); color: var(--white); }
a:focus-visible, button:focus-visible, [role="tabpanel"]:focus-visible { outline: 2px solid var(--blue); outline-offset: 5px; }
.hero a:focus-visible, .scope-section button:focus-visible, .scope-section [role="tabpanel"]:focus-visible, .closing-section a:focus-visible { outline-color: var(--blue-light); }
.wrap { width: min(1280px, calc(100% - 112px)); margin-inline: auto; }
.block-space { padding-block: 100px; }
.skip-link { position: fixed; top: -100px; left: 20px; z-index: 100; background: var(--white); padding: 12px 20px; border: 1px solid var(--blue); }
.skip-link:focus { top: 12px; }
.site-header { background: var(--white); position: relative; z-index: 20; }
.header-layout { min-height: 106px; display: flex; justify-content: space-between; align-items: center; gap: 35px; }
.brand { display: block; width: 225px; flex-shrink: 0; }
.brand img { width: 100%; height: auto; }
#primary-nav { display: flex; gap: 32px; align-items: center; }
.nav-link { position: relative; font-size: 15px; font-weight: 600; padding-block: 14px; }
.nav-link::after { content: ''; position: absolute; bottom: 5px; height: 2px; left: 0; right: 0; background: var(--blue); transform: scaleX(0); transform-origin: left; transition: transform .2s; }
.nav-link.current, .nav-link:hover { color: var(--blue); }
.nav-link:hover::after, .nav-link.current::after { transform: scaleX(1); }
.button { display: inline-flex; justify-content: space-between; align-items: center; gap: 30px; min-height: 56px; padding: 16px 24px; border-radius: 2px; font-weight: 600; font-size: 15px; line-height: 1.4; transition: background .2s, color .2s, transform .2s; }
.button span { font-size: 23px; font-weight: 400; line-height: 1; transition: transform .2s; }
.button:hover span, .text-link:hover span, .facebook:hover span { transform: translate(3px, -3px); }
.button:active { transform: translateY(1px); }
.button-blue { background: var(--blue); color: var(--white); }
.button-blue:hover { background: #3459b0; }
.button-white { background: var(--white); color: var(--navy); }
.button-white:hover { background: #dce5f5; }
.header-cta { min-height: 48px; padding: 12px 19px; margin-left: 4px; font-size: 13px; gap: 22px; }
.menu-toggle { display: none; }
.hero { position: relative; isolation: isolate; overflow: hidden; background: var(--graphite); color: var(--white); }
.hero-image-layer, .hero-overlay { position: absolute; inset: 0; z-index: -1; }
.hero-image { width: 100%; height: 100%; object-fit: cover; object-position: center 54%; transform-origin: 72% 55%; animation: hero-zoom 30s ease-out 1 forwards; }
@keyframes hero-zoom { from { transform: scale(1); } to { transform: scale(1.12); } }
.hero-overlay { background: linear-gradient(90deg, rgba(10,18,28,.93) 0%, rgba(10,18,28,.76) 29%, rgba(10,18,28,.26) 63%, rgba(10,18,28,.08) 100%), linear-gradient(0deg, #0b1624a8, transparent 35%); }
.hero-layout { display: flex; flex-direction: column; min-height: 644px; }
.hero-content { padding-top: 76px; padding-bottom: 62px; max-width: 700px; }
.hero-label { display: flex; align-items: center; gap: 12px; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: #d1d8e3; margin-bottom: 26px; }
.hero-label > span { display: block; height: 3px; width: 32px; background: var(--blue-light); }
h1 { font-size: clamp(72px, 7.7vw, 110px); font-weight: 600; line-height: .89; letter-spacing: -.015em; }
h1 > span { color: var(--blue-light); }
.hero-description { font-size: 17px; line-height: 1.65; color: #dce1e9; max-width: 455px; margin-top: 29px; }
.hero-actions { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; margin-top: 31px; }
.phone-link { display: flex; align-items: center; gap: 10px; font-size: 16px; font-weight: 500; padding-block: 13px; }
.phone-link svg { width: 18px; height: 18px; }
.phone-link:hover { color: var(--blue-light); }
.hero-bottom { margin-top: auto; border-top: 1px solid #ffffff40; display: flex; align-items: center; justify-content: space-between; padding-block: 21px; gap: 25px; }
.hero-bottom p { font-family: var(--display); font-size: 19px; line-height: 1.2; letter-spacing: .045em; }
.hero-bottom > span { display: flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 500; }
.hero-bottom svg { width: 17px; height: 17px; }
.trust-ribbon { background: var(--navy); color: var(--white); border-bottom: 4px solid var(--blue); }
.trust-layout { display: flex; justify-content: space-between; gap: 30px; padding-block: 29px; }
.trust-layout > div { display: flex; gap: 16px; align-items: center; }
.trust-layout svg { width: 37px; height: 37px; color: var(--blue-light); stroke-width: 1.2; }
.trust-layout strong { display: block; font-family: var(--display); font-size: 21px; line-height: 1.2; font-weight: 600; }
.trust-layout p > span { display: block; font-size: 12px; color: #bac5d4; margin-top: 5px; }
.owner-layout { display: grid; grid-template-columns: 1.12fr .86fr; gap: 110px; align-items: center; }
.section-label { font-size: 12px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; color: var(--blue); margin-bottom: 21px; }
.owner-intro h2 { font-size: clamp(48px, 4.65vw, 67px); }
.experience-proof { display: flex; align-items: center; gap: 27px; padding-block: 24px; margin-top: 26px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.experience-proof > strong { font-family: var(--display); font-weight: 600; font-size: 84px; line-height: .85; color: var(--blue); }
.experience-proof > strong span { font-size: 43px; vertical-align: top; }
.experience-proof > p { font-size: 12px; font-weight: 600; letter-spacing: .045em; line-height: 1.6; color: var(--ink); }
.owner-intro > p:not(.section-label) { margin-top: 23px; font-size: 16px; color: var(--muted); line-height: 1.75; }
.text-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 34px; color: var(--blue); font-size: 15px; font-weight: 600; padding-block: 12px; margin-top: 22px; border-bottom: 2px solid var(--blue); }
.text-link span { font-size: 24px; font-weight: 400; transition: transform .2s; }
.owner-portrait { position: relative; border-bottom: 4px solid var(--blue); }
.owner-portrait img { width: 100%; height: auto; }
.owner-portrait figcaption { display: flex; justify-content: space-between; gap: 25px; padding: 24px; background: var(--graphite); color: var(--white); }
.owner-portrait figcaption strong { font-family: var(--display); font-size: 28px; font-weight: 600; line-height: 1.1; display: block; }
.owner-portrait figcaption div > span { display: block; font-size: 13px; margin-top: 6px; color: #c6cfdb; }
.owner-license { font-size: 11px; color: #bdc8d9; text-align: right; padding-top: 3px; }
.services-section { padding-block: 0 94px; }
.services-header { display: flex; justify-content: space-between; gap: 50px; align-items: flex-end; padding-top: 47px; border-top: 1px solid var(--line); }
.services-header > div { max-width: 410px; }
.services-header p { font-size: 16px; color: var(--muted); }
.services-header .text-link { margin-top: 13px; }
.service-lines { margin-top: 41px; display: flex; }
.service-lines > div { flex: 1; border-left: 1px solid var(--line); padding: 7px 36px 0; }
.service-lines > div:first-child { border-left: none; padding-left: 0; }
.service-lines > div:last-child { padding-right: 0; }
.service-lines svg { width: 31px; height: 31px; color: var(--blue); margin-bottom: 20px; stroke-width: 1.2; }
.service-lines h3 { font-family: var(--display); font-weight: 600; font-size: 30px; line-height: 1.1; margin-bottom: 14px; }
.service-lines p { color: var(--muted); font-size: 16px; max-width: 300px; line-height: 1.65; }
.scope-section { background: var(--graphite); color: var(--white); }
.scope-header .section-label { color: var(--blue-light); }
.scope-header h2 { font-size: clamp(51px, 5vw, 72px); }
.scope-header h2 > span { color: var(--blue-light); }
.scope-header > p:last-child { color: #b4c0cf; font-size: 17px; max-width: 520px; margin-top: 23px; }
.scope-layout { display: grid; grid-template-columns: .9fr 1.03fr .82fr; gap: 34px; align-items: center; margin-top: 47px; padding-top: 35px; border-top: 1px solid #374353; }
.scope-tabs { display: flex; flex-direction: column; }
.scope-tabs button { background: none; border: none; color: #b7c2d0; text-align: left; cursor: pointer; font-size: 17px; line-height: 1.5; padding: 19px 0; border-bottom: 1px solid #354150; display: flex; justify-content: space-between; gap: 20px; align-items: center; }
.scope-tabs button > span { font-size: 23px; }
.scope-tabs button[aria-selected="true"] { color: var(--white); border-bottom-color: var(--blue-light); }
.scope-tabs button[aria-selected="true"] > span { color: var(--blue-light); }
.scope-tabs button:hover { color: var(--white); }
.scope-panels h3 { font-family: var(--display); font-size: 34px; font-weight: 500; line-height: 1.07; margin-bottom: 19px; }
.scope-panels p { font-size: 15px; color: #bcc7d5; line-height: 1.8; }
.scope-panels p.scope-caption { color: var(--blue-light); font-size: 12px; margin-top: 24px; padding-top: 19px; border-top: 1px solid #374353; }
.scope-panels [role="tabpanel"] { padding-block: 8px; }
.scope-panels [hidden] { display: none; }
.scope-image { height: 268px; }
.scope-image img { width: 100%; height: 100%; object-fit: cover; }
.scope-limit { font-size: 12px; color: #9eacbf; margin-top: 32px; }
.report-layout { display: grid; grid-template-columns: .87fr 1.13fr; align-items: center; gap: 100px; }
.work-photo img { width: 100%; height: auto; }
.work-photo figcaption { font-size: 12px; color: var(--muted); border-bottom: 1px solid var(--line); padding-block: 14px; }
.report-copy h2 { font-size: clamp(47px, 4.7vw, 66px); }
.report-copy > p:not(.section-label) { font-size: 17px; color: var(--muted); margin-top: 25px; }
.report-points { margin-top: 29px; }
.report-points > div { display: flex; align-items: flex-start; gap: 16px; padding-block: 18px; border-top: 1px solid var(--line); }
.report-points .tick { font-size: 21px; color: var(--blue); font-weight: 600; }
.report-points p { font-size: 15px; color: var(--muted); line-height: 1.65; }
.report-points strong { display: block; color: var(--ink); font-weight: 600; margin-bottom: 3px; }
.report-copy .text-link { margin-top: 12px; }
.technology-section { background: var(--mist); padding-block: 87px; }
.technology-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 78px; align-items: center; }
.technology-copy h2 { font-size: clamp(43px, 4.35vw, 60px); }
.tech-item { margin-top: 30px; }
.tech-item + .tech-item { border-top: 1px solid #cbd3df; padding-top: 27px; margin-top: 26px; }
.tech-item h3 { font-size: 20px; font-weight: 600; line-height: 1.3; margin-bottom: 10px; }
.tech-item p { font-size: 16px; color: var(--muted); }
.tech-qualifier { font-size: 12px; color: var(--muted); margin-top: 24px; }
.roof-photo { align-self: stretch; display: flex; flex-direction: column; padding-top: 2px; }
.roof-photo img { width: 100%; height: 100%; min-height: 510px; object-fit: cover; }
.roof-photo figcaption { font-size: 12px; margin-top: 13px; color: var(--muted); }
.closing-section { background: var(--navy); color: var(--white); padding-block: 76px; border-top: 6px solid var(--blue); }
.closing-layout { display: flex; justify-content: space-between; align-items: center; gap: 65px; }
.closing-section .section-label { color: #b1c4e6; font-size: 11px; }
.closing-section h2 { font-size: clamp(51px, 5vw, 72px); }
.closing-section h2 > span { color: var(--blue-light); }
.closing-contact { min-width: 325px; display: flex; flex-direction: column; }
.closing-phone { font-family: var(--display); font-weight: 500; font-size: 43px; line-height: 1.2; margin-bottom: 25px; display: flex; gap: 24px; align-items: center; justify-content: space-between; }
.closing-phone span { font-size: 29px; }
.closing-phone:hover { color: var(--blue-light); }
.closing-email { font-size: 14px; color: #c0cde0; text-align: center; margin-top: 20px; overflow-wrap: anywhere; }
.closing-email:hover { color: var(--white); }
@media (min-width: 1600px) {
  .hero-layout { min-height: 700px; }
  .hero-content { padding-top: 86px; }
}
@media (max-width: 1150px) {
  .wrap { width: calc(100% - 80px); }
  #primary-nav { gap: 24px; }
  .brand { width: 205px; }
  .nav-link { font-size: 14px; }
  .header-cta { font-size: 12px; padding-inline: 17px; gap: 15px; }
  .owner-layout { gap: 65px; }
  .report-layout { gap: 60px; }
  .technology-layout { gap: 50px; }
  .trust-layout { gap: 24px; }
  .trust-layout strong { font-size: 18px; }
  .trust-layout p > span { font-size: 11px; }
  .scope-layout { grid-template-columns: .85fr 1.05fr; gap: 40px; }
  .scope-image { display: none; }
}
@media (max-width: 860px) {
  .wrap { width: calc(100% - 48px); }
  .block-space { padding-block: 74px; }
  .header-layout { min-height: 94px; }
  .brand { width: 205px; }
  .menu-toggle { display: flex; width: 46px; height: 46px; padding: 12px; background: var(--white); border: 1px solid var(--line); cursor: pointer; flex-direction: column; justify-content: center; gap: 7px; }
  .menu-toggle span { height: 2px; width: 20px; background: var(--navy); display: block; transition: transform .2s; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(4.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-4.5px) rotate(-45deg); }
  #primary-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--white); border-bottom: 3px solid var(--blue); padding: 15px 24px 24px; }
  #primary-nav.is-open { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
  #primary-nav .nav-link { padding-block: 13px; font-size: 16px; }
  .nav-link::after { width: 30px; }
  .header-cta { margin: 15px 0 0; font-size: 14px; padding: 15px 21px; }
  .hero-content { padding-top: 65px; max-width: 590px; }
  .hero-layout { min-height: 644px; }
  h1 { font-size: 87px; }
  .hero-overlay { background: linear-gradient(90deg, #0b1421ed, #0b14219c 55%, #0b14214d), linear-gradient(0deg, #0b16248c, transparent 30%); }
  .trust-layout { flex-wrap: wrap; gap: 25px 32px; }
  .trust-layout > div { flex: 1; min-width: 220px; }
  .trust-layout strong { font-size: 20px; }
  .trust-layout p > span { font-size: 11px; }
  .owner-layout { grid-template-columns: 1fr .9fr; gap: 35px; }
  .owner-intro h2 { font-size: 49px; }
  .owner-intro > p:not(.section-label) { font-size: 15px; }
  .experience-proof { gap: 19px; }
  .experience-proof > strong { font-size: 73px; }
  .experience-proof > p { font-size: 10px; }
  .owner-portrait figcaption { padding: 19px; gap: 12px; }
  .owner-portrait figcaption strong { font-size: 24px; }
  .owner-portrait figcaption div > span { font-size: 11px; }
  .owner-license { font-size: 9px; }
  .services-header { gap: 40px; }
  .services-header h2 { font-size: 46px; }
  .services-header > div { max-width: 300px; }
  .services-header p { font-size: 15px; }
  .service-lines > div { padding-inline: 24px; }
  .service-lines h3 { font-size: 26px; }
  .service-lines p { font-size: 15px; }
  .services-section { padding-bottom: 70px; }
  .scope-header h2 { font-size: 58px; }
  .scope-layout { gap: 30px; }
  .scope-tabs button { font-size: 15px; }
  .scope-panels h3 { font-size: 31px; }
  .report-layout { grid-template-columns: .85fr 1.15fr; gap: 36px; }
  .report-copy h2 { font-size: 47px; }
  .report-copy > p:not(.section-label) { font-size: 16px; }
  .report-points p { font-size: 14px; }
  .technology-layout { gap: 35px; }
  .technology-copy h2 { font-size: 44px; }
  .tech-item p { font-size: 15px; }
  .roof-photo img { min-height: 550px; }
  .closing-layout { gap: 35px; }
  .closing-section h2 { font-size: 53px; }
  .closing-contact { min-width: 255px; }
  .closing-phone { font-size: 35px; }
  .closing-email { font-size: 12px; }
}
@media (max-width: 600px) {
  body { font-size: 16px; }
  .block-space { padding-block: 59px; }
  .header-layout { min-height: 90px; }
  .brand { width: 185px; }
  .hero-layout { min-height: 640px; }
  .hero-content { padding-top: 63px; padding-bottom: 43px; }
  .hero-label { font-size: 9px; letter-spacing: .1em; gap: 9px; margin-bottom: 28px; }
  .hero-label > span { width: 22px; }
  h1 { font-size: clamp(58px, 14.8vw, 84px); line-height: .93; }
  .hero-image { object-position: 60% center; }
  .hero-overlay { background: linear-gradient(90deg, #0b1421df, #0b142180), linear-gradient(0deg, #0b1624bf, transparent 50%); }
  .hero-description { font-size: 17px; max-width: 380px; margin-top: 27px; }
  .hero-actions { margin-top: 29px; gap: 13px; align-items: flex-start; flex-direction: column; }
  .hero-actions .button { font-size: 14px; gap: 37px; }
  .phone-link { font-size: 15px; }
  .hero-bottom { align-items: flex-start; gap: 12px; flex-direction: column; padding-block: 21px; }
  .hero-bottom p { font-size: 16px; }
  .hero-bottom > span { font-size: 12px; }
  .trust-layout { flex-direction: column; gap: 0; padding-block: 9px; }
  .trust-layout > div { padding-block: 19px; gap: 18px; }
  .trust-layout > div + div { border-top: 1px solid #354861; }
  .trust-layout strong { font-size: 21px; }
  .trust-layout p > span { font-size: 12px; }
  .owner-layout { display: flex; flex-direction: column; gap: 40px; }
  .section-label { font-size: 10px; }
  .owner-intro h2 { font-size: clamp(47px, 12vw, 64px); }
  .owner-intro > p:not(.section-label) { font-size: 16px; }
  .experience-proof { gap: 28px; padding-block: 24px; }
  .experience-proof > strong { font-size: 83px; }
  .experience-proof > p { font-size: 11px; }
  .owner-portrait { width: min(100%, 420px); }
  .owner-portrait figcaption { padding: 21px; }
  .owner-portrait figcaption strong { font-size: 28px; }
  .owner-portrait figcaption div > span { font-size: 13px; }
  .owner-license { font-size: 10px; }
  h2 { font-size: 49px; }
  .services-header { display: block; padding-top: 34px; }
  .services-header h2 { font-size: 49px; }
  .services-header > div { max-width: 100%; margin-top: 25px; }
  .services-header p { font-size: 16px; }
  .service-lines { display: block; margin-top: 19px; }
  .service-lines > div { position: relative; padding: 26px 0 26px 49px; border-left: 0; border-bottom: 1px solid var(--line); }
  .service-lines > div:first-child { padding-left: 49px; }
  .service-lines svg { position: absolute; left: 0; top: 25px; width: 28px; height: 28px; }
  .service-lines h3 { font-size: 30px; margin-bottom: 10px; }
  .service-lines p { font-size: 16px; max-width: 100%; }
  .services-section { padding-bottom: 60px; }
  .scope-header h2 { font-size: clamp(44px, 12.8vw, 62px); }
  .scope-header > p:last-child { font-size: 16px; }
  .scope-layout { display: block; margin-top: 29px; padding-top: 12px; }
  .scope-tabs button { font-size: 16px; padding-block: 16px; }
  .scope-panels { margin-top: 26px; }
  .scope-panels h3 { font-size: 34px; }
  .scope-panels p { font-size: 16px; }
  .scope-panels p.scope-caption { font-size: 12px; }
  .scope-image { display: block; margin-top: 28px; height: 240px; }
  .scope-limit { font-size: 11px; }
  .report-layout { display: flex; flex-direction: column-reverse; gap: 36px; }
  .report-copy h2 { font-size: clamp(44px, 12.1vw, 60px); }
  .report-copy > p:not(.section-label) { font-size: 17px; }
  .report-points p { font-size: 16px; }
  .work-photo { width: min(100%, 420px); }
  .work-photo figcaption { font-size: 11px; }
  .technology-section { padding-block: 56px; }
  .technology-layout { display: flex; flex-direction: column; gap: 33px; }
  .technology-copy h2 { font-size: clamp(43px, 12vw, 60px); }
  .tech-item h3 { font-size: 21px; }
  .tech-item p { font-size: 16px; }
  .roof-photo img { height: 340px; min-height: 0; }
  .roof-photo figcaption { font-size: 11px; }
  .closing-section { padding-block: 54px; }
  .closing-layout { display: block; }
  .closing-section .section-label { font-size: 9px; }
  .closing-section h2 { font-size: clamp(48px, 13vw, 66px); }
  .closing-contact { margin-top: 34px; min-width: 0; max-width: 370px; }
  .closing-phone { font-size: 43px; }
  .closing-email { font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .hero-image { transform: scale(1); }
}

/* Accepted-design refinements: contact-first navigation, substantial footer, measured entrances. */
.header-layout { gap: 24px; }
.brand { width: 210px; }
#primary-nav { gap: 23px; }
.nav-phone { display: flex; align-items: center; gap: 8px; color: var(--navy); font-size: 14px; font-weight: 600; white-space: nowrap; padding-block: 14px; }
.nav-phone svg { width: 17px; height: 17px; color: var(--blue); }
.nav-phone:hover { color: var(--blue); }
.mobile-header-phone { display: none; }
h1 > .hero-line { display: block; color: var(--white); }
.hero-accent { color: var(--blue-light); }

.footer { position: relative; isolation: isolate; background: var(--graphite); color: var(--white); border-top: 1px solid #ffffff21; }
.footer::before { content: ''; position: absolute; top: 0; left: 0; height: 4px; width: 23%; background: var(--blue-light); }
.footer-statement { padding-block: 66px 45px; display: flex; align-items: flex-end; justify-content: space-between; gap: 45px; border-bottom: 1px solid #ffffff26; }
.footer-statement > p { font-family: var(--display); font-size: clamp(48px, 5.1vw, 73px); font-weight: 500; line-height: .99; }
.footer-statement > p > span { color: var(--blue-light); }
.facebook { display: inline-flex; align-items: center; gap: 18px; color: #c7d6ed; font-size: 14px; padding-block: 12px; border-bottom: 1px solid #667e9f; white-space: nowrap; }
.facebook span { font-size: 25px; transition: transform .2s; }
.footer-grid { display: grid; grid-template-columns: 1.1fr .55fr 1.1fr .65fr; gap: 48px; padding-block: 49px 53px; }
.footer-grid > * { min-width: 0; }
.footer-brand { display: block; width: 255px; max-width: 100%; background: var(--white); padding: 12px 14px; }
.footer-brand img { width: 100%; height: auto; }
.footer-identity > p { color: #aebcd0; font-size: 15px; margin-top: 23px; line-height: 1.8; }
.footer-grid h2 { font-family: var(--body); font-weight: 500; font-size: 11px; line-height: 1.6; letter-spacing: .11em; color: #9bacc5; text-transform: uppercase; margin-bottom: 23px; }
.footer-nav { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.footer-nav h2 { margin-bottom: 13px; }
.footer-nav > a { display: inline-flex; gap: 14px; align-items: center; font-size: 15px; min-height: 31px; color: #dbe2eb; transition: color .2s; }
.footer-nav > a > span { font-size: 18px; color: var(--blue-light); }
.footer-nav > a:hover { color: var(--blue-light); }
.footer-phone { display: inline-flex; align-items: center; gap: 24px; font-family: var(--display); font-weight: 500; font-size: 34px; line-height: 1.2; white-space: nowrap; }
.footer-phone > span { font-size: 25px; color: var(--blue-light); }
.footer-phone:hover { color: var(--blue-light); }
.footer-email { display: block; font-size: 14px; color: #c7d3e3; margin-top: 14px; overflow-wrap: anywhere; }
.footer-email:hover { color: var(--white); }
.footer-reach > p { color: #9fb0c8; font-size: 13px; line-height: 1.8; margin-top: 22px; }
.footer-local > p { font-size: 16px; color: #dce4ef; line-height: 1.75; }
.footer-credentials { display: flex; flex-direction: column; gap: 10px; border-top: 1px solid #ffffff24; padding-top: 19px; margin-top: 23px; font-size: 11px; line-height: 1.6; color: #a7b8d0; }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 26px; border-top: 1px solid #ffffff26; padding-block: 24px 30px; font-size: 11px; color: #93a5bf; }
.footer-credit { font-size: 11px; line-height: 1.8; color: #a8b9d0; }
.footer-credit strong { font-weight: 500; color: #d4dfed; }
.footer-credit > span { padding-left: 8px; font-size: 16px; color: var(--blue-light); }
.footer-credit:hover strong { color: var(--blue-light); }
.footer a:focus-visible { outline-color: var(--blue-light); }

@media (max-width: 1150px) {
  .footer-grid { gap: 28px; grid-template-columns: 1fr .5fr 1fr .65fr; }
  .footer-brand { width: 225px; }
  .footer-phone { font-size: 30px; gap: 14px; }
  .footer-email { font-size: 13px; }
}
@media (max-width: 1100px) {
  .header-layout { min-height: 94px; }
  .brand { width: 205px; }
  .menu-toggle { display: flex; width: 46px; height: 46px; padding: 12px; background: var(--white); border: 1px solid var(--line); cursor: pointer; flex-direction: column; justify-content: center; gap: 7px; }
  .menu-toggle span { height: 2px; width: 20px; background: var(--navy); display: block; transition: transform .2s; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(4.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-4.5px) rotate(-45deg); }
  #primary-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--white); border-bottom: 3px solid var(--blue); padding: 15px 24px 24px; }
  #primary-nav.is-open { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
  #primary-nav .nav-link { padding-block: 13px; font-size: 16px; }
  .nav-link::after { width: 30px; }
  #primary-nav .header-cta { margin: 15px 0 0; font-size: 14px; padding: 15px 21px; }
  #primary-nav .nav-phone { font-size: 17px; color: var(--blue); border-top: 1px solid var(--line); margin-top: 13px; padding-top: 22px; }
  .mobile-header-phone { display: flex; justify-content: space-between; align-items: center; gap: 20px; color: var(--white); background: var(--navy); min-height: 44px; padding: 9px max(24px, calc((100vw - 1280px) / 2)); }
  .mobile-header-phone > span { font-size: 12px; color: #c4d3e6; }
  .mobile-header-phone > strong { display: flex; align-items: center; gap: 9px; font-size: 15px; font-weight: 500; white-space: nowrap; }
  .mobile-header-phone svg { width: 15px; height: 15px; color: var(--blue-light); }
  .mobile-header-phone:hover { background: var(--blue); }
  .mobile-header-phone:focus-visible { outline-color: var(--blue-light); outline-offset: -4px; }
}
@media (max-width: 860px) {
  .footer-statement { padding-block: 53px 35px; gap: 30px; }
  .footer-statement > p { font-size: 53px; }
  .facebook { font-size: 12px; gap: 12px; }
  .footer-grid { grid-template-columns: 1.1fr .7fr; gap: 39px 55px; padding-block: 38px; }
  .footer-brand { width: 245px; }
  .footer-phone { font-size: 35px; }
  .footer-email { font-size: 14px; }
  .footer-bottom { flex-direction: column; align-items: flex-start; gap: 12px; }
}
@media (max-width: 600px) {
  .header-layout { min-height: 90px; }
  .brand { width: 185px; }
  .mobile-header-phone { gap: 10px; }
  .mobile-header-phone > span { font-size: 10px; }
  .mobile-header-phone > strong { font-size: 15px; gap: 7px; }
  .footer-statement { display: block; padding-block: 45px 31px; }
  .footer-statement > p { font-size: clamp(44px, 11.8vw, 61px); }
  .facebook { margin-top: 24px; font-size: 14px; }
  .footer-grid { grid-template-columns: 1fr .7fr; gap: 33px 24px; padding-block: 33px 39px; }
  .footer-identity { grid-column: 1 / -1; }
  .footer-brand { width: 255px; }
  .footer-identity > p { font-size: 15px; margin-top: 18px; }
  .footer-nav { grid-column: 2; grid-row: 2; }
  .footer-nav > a { min-height: 39px; font-size: 15px; }
  .footer-reach { grid-column: 1 / -1; grid-row: 3; padding-top: 27px; border-top: 1px solid #ffffff26; }
  .footer-local { grid-column: 1; grid-row: 2; }
  .footer-grid h2 { font-size: 10px; margin-bottom: 17px; }
  .footer-nav h2 { margin-bottom: 6px; }
  .footer-phone { font-size: 39px; }
  .footer-email { font-size: 15px; }
  .footer-reach > p { margin-top: 18px; }
  .footer-bottom { padding-block: 21px 26px; font-size: 10px; }
  .footer-credit { font-size: 11px; max-width: 320px; }
}
@media (max-width: 350px) {
  .mobile-header-phone { padding-inline: 17px; }
  .mobile-header-phone > span { font-size: 9px; }
  .mobile-header-phone > strong { font-size: 14px; }
}

@keyframes intro-rise {
  from { opacity: 0; transform: translate3d(0, 24px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}
@keyframes headline-rise {
  from { opacity: 0; transform: translate3d(0, 30px, 0); clip-path: inset(0 0 100% 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); clip-path: inset(0 0 0 0); }
}
@media (prefers-reduced-motion: no-preference) {
  .hero-label { animation: intro-rise .7s cubic-bezier(.22, 1, .36, 1) .08s 1 both; }
  .hero-line { animation: headline-rise .95s cubic-bezier(.22, 1, .36, 1) .18s 1 both; }
  .hero-line:nth-child(2) { animation-delay: .32s; }
  .hero-description { animation: intro-rise .8s cubic-bezier(.22, 1, .36, 1) .46s 1 both; }
  .hero-actions > .button { animation: intro-rise .8s cubic-bezier(.22, 1, .36, 1) .6s 1 both; }
  .hero-actions > .phone-link { animation: intro-rise .8s cubic-bezier(.22, 1, .36, 1) .73s 1 both; }
  .hero-bottom > p { animation: intro-rise .7s cubic-bezier(.22, 1, .36, 1) .83s 1 both; }
  .hero-bottom > span { animation: intro-rise .7s cubic-bezier(.22, 1, .36, 1) .92s 1 both; }
  .intro-reveal.intro-pending { opacity: 0; transform: translate3d(0, 23px, 0); }
  .intro-reveal.intro-visible { animation: intro-rise .85s cubic-bezier(.22, 1, .36, 1) var(--intro-delay, 0ms) 1 both; }
  .intro-reveal.intro-done { opacity: 1; transform: none; }
  .hero a:focus-visible, .intro-reveal:focus-within { animation: none !important; opacity: 1 !important; transform: none !important; clip-path: none !important; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .hero-line, .intro-reveal, .intro-reveal.intro-pending { opacity: 1; transform: none; clip-path: none; }
}
