:root {
  --ink: #172a2f;
  --ink-soft: #52666a;
  --paper: #f4f5f1;
  --paper-deep: #e8ebe5;
  --line: #d4dcd7;
  --teal: #14645d;
  --teal-dark: #0b4542;
  --lime: #d7ec67;
  --white: #fcfcf8;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: Arial, Helvetica, sans-serif; }
a { color: inherit; text-decoration: none; }

.topline { display: flex; justify-content: space-between; padding: 10px 5vw; background: var(--teal-dark); color: #d7e8e0; font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }
.topline-status { color: var(--lime); }
.topline-status i { display: inline-block; width: 6px; height: 6px; margin-right: 7px; border-radius: 50%; background: var(--lime); }
.site-header { display: flex; align-items: center; justify-content: space-between; max-width: 1320px; margin: 0 auto; padding: 23px 5vw; }
.brand { display: inline-flex; align-items: center; gap: 11px; }
.brand-mark { display: grid; place-items: center; width: 31px; height: 31px; border: 1px solid var(--teal); transform: rotate(45deg); }
.brand-mark span { transform: rotate(-45deg); font-family: Georgia, serif; font-size: 17px; }
.brand-name { font-size: 13px; font-weight: 700; letter-spacing: .16em; }
.brand-name span { display: block; color: var(--teal); font-size: 8px; font-weight: 400; letter-spacing: .3em; margin-top: 3px; }
nav { display: flex; gap: 28px; color: var(--ink-soft); font-size: 12px; }
nav a:hover, .footer-links a:hover { color: var(--teal); }
.header-cta { border-bottom: 1px solid var(--teal); padding-bottom: 5px; color: var(--teal-dark); font-size: 12px; font-weight: 700; }
.arrow-icon { display: inline-block; margin-left: 7px; font-size: 16px; line-height: 0; transition: transform .2s ease; }
a:hover .arrow-icon { transform: translate(3px, -3px); }

.hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .9fr); gap: 5vw; max-width: 1320px; margin: 0 auto; padding: 78px 5vw 102px; align-items: center; }
.hero-copy { max-width: 640px; }
.eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 25px; color: var(--teal); font-size: 10px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.eyebrow-line { display: inline-block; width: 26px; height: 1px; background: currentColor; }
h1, h2, h3, p { margin-top: 0; }
h1 { max-width: 680px; margin-bottom: 26px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(56px, 7.4vw, 105px); font-weight: 400; letter-spacing: -.07em; line-height: .92; }
h1 em { color: var(--teal); font-style: italic; }
.hero-lede { max-width: 520px; color: var(--ink-soft); font-size: 17px; line-height: 1.65; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 36px; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 47px; padding: 0 21px; border: 1px solid transparent; font-size: 12px; font-weight: 700; transition: background .2s ease, color .2s ease, border-color .2s ease; }
.button-primary { background: var(--teal); color: var(--white); }
.button-primary:hover { background: var(--teal-dark); }
.button-quiet { border-color: var(--line); color: var(--ink); }
.button-quiet:hover { border-color: var(--teal); color: var(--teal); }
.hero-note { margin-top: 26px; color: var(--ink-soft); font-size: 11px; }
.hero-note span { display: inline-block; margin-right: 7px; color: var(--teal); font-size: 17px; }

.hero-visual { position: relative; min-height: 478px; overflow: hidden; background: var(--teal-dark); }
.visual-grid { position: absolute; inset: 0; opacity: .14; background-image: linear-gradient(rgba(255,255,255,.7) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.7) 1px, transparent 1px); background-size: 45px 45px; }
.visual-line { position: absolute; height: 1px; background: var(--lime); opacity: .7; transform-origin: left; }
.visual-line-one { width: 78%; top: 22%; left: 12%; transform: rotate(-32deg); }
.visual-line-two { width: 55%; right: -5%; bottom: 26%; transform: rotate(52deg); }
.lift-frame { position: absolute; top: 12%; left: 23%; width: 53%; height: 66%; border: 1px solid rgba(215,236,103,.8); border-bottom: 0; }
.lift-frame::before, .lift-frame::after { content: ""; position: absolute; top: 0; bottom: -11%; width: 1px; background: rgba(215,236,103,.55); }
.lift-frame::before { left: 14%; transform: skew(-10deg); }.lift-frame::after { right: 14%; transform: skew(10deg); }
.lift-cabin { position: absolute; left: 19%; top: 24%; width: 62%; height: 48%; display: flex; flex-direction: column; justify-content: space-between; padding: 20px; border: 1px solid var(--white); background: rgba(16, 82, 76, .7); color: var(--white); }
.lift-cabin span { align-self: flex-end; color: var(--lime); font-size: 13px; letter-spacing: .12em; }.lift-cabin b { font-size: 10px; font-weight: 400; letter-spacing: .22em; }
.lift-rail { position: absolute; left: 7%; top: 6%; height: 90%; width: 1px; background: rgba(255,255,255,.5); }.lift-rail-right { left: auto; right: 7%; }
.visual-caption { position: absolute; bottom: 24px; left: 25px; right: 25px; display: flex; justify-content: space-between; color: #b2ccc1; font-size: 9px; letter-spacing: .16em; text-transform: uppercase; }
.visual-stamp { position: absolute; right: 22px; top: 22px; display: grid; place-items: center; width: 59px; height: 59px; border: 1px solid var(--lime); color: var(--lime); font-family: Georgia, serif; font-size: 20px; line-height: .8; transform: rotate(8deg); }.visual-stamp small { font-family: Arial, sans-serif; font-size: 5px; letter-spacing: .1em; }

.trust-strip { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 18px 5vw; color: var(--ink-soft); font-size: 10px; letter-spacing: .16em; text-align: center; text-transform: uppercase; }
.section { max-width: 1320px; margin: 0 auto; padding: 120px 5vw; }
.section-heading { display: grid; grid-template-columns: 1fr 1.4fr 1fr; gap: 4vw; align-items: start; margin-bottom: 65px; }.section-heading .eyebrow { margin: 7px 0 0; }.section-heading h2 { margin: 0; }.section-heading > p:last-child { margin: 7px 0 0; color: var(--ink-soft); font-size: 14px; line-height: 1.7; }
h2 { font-family: Georgia, "Times New Roman", serif; font-size: clamp(34px, 4.3vw, 61px); font-weight: 400; letter-spacing: -.055em; line-height: .98; }
.service-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); }.service-card { min-height: 330px; padding: 25px 25px 25px 0; border-right: 1px solid var(--line); }.service-card:not(:first-child) { padding-left: 25px; }.service-card:last-child { border-right: 0; }.service-number { margin-bottom: 70px; color: var(--teal); font-family: Georgia, serif; font-size: 18px; }.card-eyebrow { margin-bottom: 11px; color: var(--teal); font-size: 9px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }.service-card h3 { max-width: 220px; font-family: Georgia, serif; font-size: 24px; font-weight: 400; letter-spacing: -.035em; line-height: 1.05; }.service-card > p:not(.card-eyebrow) { max-width: 220px; color: var(--ink-soft); font-size: 13px; line-height: 1.55; }.service-card a, .text-link { display: inline-flex; align-items: center; margin-top: 20px; border-bottom: 1px solid var(--teal); padding-bottom: 5px; color: var(--teal); font-size: 11px; font-weight: 700; }

.method-section { display: grid; grid-template-columns: 1fr 1.4fr; gap: 9vw; padding: 110px 10vw; background: var(--teal-dark); color: var(--white); }.eyebrow-light { color: var(--lime); }.method-intro h2 { max-width: 540px; color: var(--white); }.method-intro > p:last-child { max-width: 380px; color: #b7ccc2; font-size: 14px; line-height: 1.65; }.method-steps { border-top: 1px solid rgba(255,255,255,.24); }.method-step { display: grid; grid-template-columns: 66px 1fr; gap: 18px; border-bottom: 1px solid rgba(255,255,255,.24); padding: 25px 0; }.method-step > span { color: var(--lime); font-family: Georgia, serif; font-size: 20px; }.method-step h3 { margin-bottom: 7px; font-family: Georgia, serif; font-size: 25px; font-weight: 400; }.method-step p { margin: 0; color: #b7ccc2; font-size: 13px; line-height: 1.6; }

.about-section { display: grid; grid-template-columns: 1fr 2fr; gap: 6vw; }.about-aside { min-height: 220px; padding: 22px; border: 1px solid var(--line); color: var(--teal); }.about-aside span { display: block; font-family: Georgia, serif; font-size: 72px; line-height: .8; }.about-aside p { margin-top: 80px; color: var(--ink-soft); font-size: 9px; letter-spacing: .18em; line-height: 1.6; text-transform: uppercase; }.about-copy { max-width: 700px; }.about-copy h2 { max-width: 690px; }.about-copy > p:not(.eyebrow) { max-width: 540px; color: var(--ink-soft); font-size: 15px; line-height: 1.7; }
.contact-section { display: flex; justify-content: space-between; gap: 5vw; padding: 95px 10vw; background: var(--teal); color: var(--white); }.contact-section h2 { max-width: 590px; margin-bottom: 22px; }.contact-section p:not(.eyebrow) { max-width: 500px; color: #c3d8ce; font-size: 14px; line-height: 1.6; }.contact-actions { display: flex; flex-direction: column; align-items: stretch; min-width: 240px; gap: 10px; }.button-light { background: var(--lime); color: var(--teal-dark); }.button-light:hover { background: var(--white); }.button-outline-light { border-color: rgba(255,255,255,.45); color: var(--white); }.button-outline-light:hover { border-color: var(--white); }.contact-actions small { margin-top: 10px; color: #c3d8ce; font-size: 10px; line-height: 1.4; }
.site-footer { display: grid; grid-template-columns: 1fr 1.5fr 1fr; gap: 4vw; max-width: 1320px; margin: 0 auto; padding: 45px 5vw 25px; }.footer-brand { align-self: start; }.site-footer > p { margin: 5px 0 0; color: var(--ink-soft); font-size: 12px; }.footer-links { display: flex; gap: 20px; color: var(--ink-soft); font-size: 11px; }.footer-meta { grid-column: 1 / -1; display: flex; justify-content: space-between; border-top: 1px solid var(--line); padding-top: 18px; color: #7b8988; font-size: 10px; }

@media (max-width: 900px) { nav { display: none; }.hero { grid-template-columns: 1fr; padding-top: 55px; }.hero-visual { min-height: 420px; }.section-heading { grid-template-columns: 1fr 1.5fr; }.section-heading > p:last-child { grid-column: 2; }.service-grid { grid-template-columns: repeat(2, 1fr); }.service-card:nth-child(2) { border-right: 0; }.service-card:nth-child(n+3) { border-top: 1px solid var(--line); }.method-section { grid-template-columns: 1fr; gap: 45px; }.contact-section { padding: 80px 7vw; }.site-footer { grid-template-columns: 1fr 1fr; }.footer-links { justify-content: flex-end; } }
@media (max-width: 600px) { .topline { gap: 12px; padding: 9px 5vw; font-size: 8px; }.topline-status { display: none; }.site-header { padding: 18px 5vw; }.header-cta { font-size: 10px; }.header-cta .arrow-icon { display: none; }.hero { padding: 55px 5vw 75px; }.hero h1 { font-size: clamp(53px, 16vw, 80px); }.hero-lede { font-size: 15px; }.hero-visual { min-height: 350px; }.lift-frame { left: 18%; width: 64%; }.trust-strip { grid-template-columns: 1fr 1fr; gap: 15px; font-size: 8px; line-height: 1.4; }.section { padding: 78px 5vw; }.section-heading { display: block; margin-bottom: 42px; }.section-heading .eyebrow { margin-bottom: 25px; }.section-heading > p:last-child { margin-top: 22px; }.service-grid { grid-template-columns: 1fr; }.service-card, .service-card:not(:first-child) { min-height: auto; padding: 25px 0 32px; border-right: 0; border-bottom: 1px solid var(--line); }.service-card:last-child { border-bottom: 0; }.service-number { margin-bottom: 38px; }.method-section { padding: 75px 8vw; }.about-section { display: block; }.about-aside { display: none; }.contact-section { display: block; padding: 72px 8vw; }.contact-actions { margin-top: 35px; }.site-footer { display: block; padding-top: 35px; }.site-footer > p { margin: 25px 0; }.footer-links { justify-content: flex-start; margin-bottom: 30px; }.footer-meta { display: block; line-height: 1.8; } }
