:root {
  --navy: #07162a;
  --navy-soft: #102a43;
  --green: #8fc62f;
  --green-dark: #5d8e12;
  --cyan: #22add2;
  --gold: #f7b30b;
  --cream: #f6f7f2;
  --paper: #ffffff;
  --ink: #102033;
  --muted: #667384;
  --line: #dce2e5;
  --shadow: 0 24px 70px rgba(7, 22, 42, .12);
  --radius-lg: 28px;
  --radius-md: 18px;
  --max: 1240px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { background: var(--paper); color: var(--ink); font-family: "DM Sans", system-ui, sans-serif; margin: 0; -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
.container { margin-inline: auto; max-width: var(--max); padding-inline: 24px; width: 100%; }
.section { padding-block: 110px; }
.section-tight { padding-block: 78px; }
.section-cream { background: var(--cream); }
.section-navy { background: var(--navy); color: #fff; }
.eyebrow { align-items: center; color: var(--green-dark); display: flex; font-size: 0.6875rem; font-weight: 800; gap: 10px; letter-spacing: .16em; text-transform: uppercase; }
.eyebrow::before { background: currentColor; content: ""; height: 2px; width: 27px; }
.eyebrow.light { color: var(--green); }
h1, h2, h3, h4 { font-family: "Manrope", system-ui, sans-serif; letter-spacing: -.04em; line-height: 1.05; margin: 0; }
h1 { font-size: clamp(3rem, 6.3vw, 5.5rem); }
h2 { font-size: clamp(2.375rem, 4.4vw, 3.8125rem); }
h3 { font-size: clamp(1.375rem, 2.4vw, 2rem); }
p { line-height: 1.7; }
.lead { color: var(--muted); font-size: clamp(1.0625rem, 1.8vw, 1.25rem); max-width: 650px; }
.section-heading { align-items: end; display: flex; gap: 44px; justify-content: space-between; margin-bottom: 52px; }
.section-heading h2 { margin-top: 14px; max-width: 720px; }
.section-heading > p { color: var(--muted); margin: 0; max-width: 420px; }
.section-heading.light > p { color: #aebbc8; }
.button { align-items: center; border: 0; border-radius: 999px; cursor: pointer; display: inline-flex; font-size: 0.875rem; font-weight: 800; gap: 18px; justify-content: center; min-height: 52px; padding: 0 23px; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.button:hover { box-shadow: 0 12px 28px rgba(7, 22, 42, .18); transform: translateY(-2px); }
.button-green { background: var(--green); color: var(--navy); }
.button-navy { background: var(--navy); color: white; }
.button-white { background: white; color: var(--navy); }
.button-outline { background: transparent; border: 1px solid rgba(255,255,255,.55); color: white; }
.button .arrow { font-size: 1.125rem; }
.text-link { align-items: center; border-bottom: 1px solid currentColor; display: inline-flex; font-size: 0.8125rem; font-weight: 800; gap: 8px; padding-bottom: 4px; }
.skip-link { background: var(--navy); color: white; left: 10px; padding: 10px 14px; position: fixed; top: -80px; z-index: 999; }
.skip-link:focus { top: 10px; }

.topbar { background: var(--navy); color: #d7e0e7; font-size: 0.6875rem; }
.topbar .container { align-items: center; display: flex; height: 37px; justify-content: space-between; }
.topbar span { align-items: center; display: flex; gap: 8px; }
.topbar i { background: var(--green); border-radius: 50%; display: inline-block; height: 6px; width: 6px; }
.topbar a { color: white; font-weight: 700; }
.site-header { background: rgba(255,255,255,.96); border-bottom: 1px solid rgba(7,22,42,.08); position: sticky; top: 0; z-index: 100; backdrop-filter: blur(14px); }
.nav-shell { align-items: center; display: flex; height: 82px; justify-content: space-between; }
.logo { align-items: center; display: inline-flex; height: 67px; }
.logo img { height: 62px; object-fit: contain; width: 132px; }
.main-nav { align-items: center; display: flex; gap: 28px; }
.main-nav > a, .nav-dropdown > button { background: none; border: 0; color: #26384b; cursor: pointer; font-size: 0.8125rem; font-weight: 700; padding: 12px 0; }
.main-nav > a:hover, .nav-dropdown > button:hover, .main-nav > a[aria-current="page"] { color: var(--green-dark); }
.nav-dropdown { position: relative; }
.nav-dropdown > button::after { content: "⌄"; font-size: 0.75rem; margin-left: 5px; }
.dropdown-menu { background: white; border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow); display: grid; gap: 3px; left: -18px; min-width: 242px; opacity: 0; padding: 10px; pointer-events: none; position: absolute; top: 47px; transform: translateY(8px); transition: .2s ease; }
.nav-dropdown.open .dropdown-menu { opacity: 1; pointer-events: auto; transform: translateY(0); }
.dropdown-menu a { border-radius: 10px; display: flex; flex-direction: column; font-size: 0.8125rem; font-weight: 800; padding: 11px 12px; }
.dropdown-menu a span { color: var(--muted); font-size: 0.625rem; font-weight: 500; margin-top: 3px; }
.dropdown-menu a:hover { background: var(--cream); color: var(--green-dark); }
.nav-socials { align-items: center; display: flex; gap: 5px; }
.nav-social { align-items: center; border: 1px solid #dce3e8; border-radius: 50%; color: #34485c; display: inline-flex; height: 34px; justify-content: center; padding: 0 !important; transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease; width: 34px; }
.nav-social svg { height: 17px; width: 17px; }
.nav-social span { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
.nav-social:hover { background: var(--navy); border-color: var(--navy); color: white; transform: translateY(-2px); }
.nav-social:focus-visible { outline: 3px solid var(--cyan); outline-offset: 2px; }
.nav-social-google { color: #4285f4; }
.header-cta { background: var(--green); border-radius: 999px; color: var(--navy) !important; padding: 13px 20px !important; }
.header-login { border: 2px solid var(--navy) !important; border-radius: 999px; color: var(--navy) !important; padding: 11px 19px !important; }
.header-login:hover, .header-login[aria-current="page"] { background: var(--navy); color: white !important; }
.nav-toggle { background: var(--navy); border: 0; border-radius: 50%; display: none; height: 44px; padding: 0; width: 44px; }
.nav-toggle span { background: white; display: block; height: 2px; margin: 5px auto; width: 19px; }

.hero { min-height: 760px; overflow: hidden; position: relative; }
.hero-bg { height: 100%; inset: 0; object-fit: cover; object-position: center 50%; position: absolute; width: 100%; }
.hero-bg-fill { filter: blur(18px) saturate(.82); object-fit: cover; opacity: .72; transform: scale(1.04); }
.hero-bg-fall { object-fit: contain; object-position: center; }
.hero::before { background: linear-gradient(90deg, rgba(4,16,31,.93) 0%, rgba(4,16,31,.76) 44%, rgba(4,16,31,.18) 78%, rgba(4,16,31,.05) 100%); content: ""; inset: 0; position: absolute; z-index: 1; }
.hero::after { background: linear-gradient(0deg, rgba(7,22,42,.35), transparent 30%); content: ""; inset: 0; position: absolute; z-index: 1; }
.hero > .container { align-items: center; display: flex; min-height: 760px; position: relative; z-index: 2; }
.hero-copy { color: white; max-width: 790px; padding-block: 90px; }
.hero-copy h1 { max-width: 780px; }
.hero-copy h1 span { color: var(--green); }
.hero-copy > p { color: #d8e1e8; font-size: 1.1875rem; margin: 26px 0 32px; max-width: 650px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.hero-proof { align-items: center; display: flex; flex-wrap: wrap; gap: 22px; margin-top: 42px; }
.hero-proof span { align-items: center; color: #dfe6ec; display: flex; font-size: 0.75rem; font-weight: 700; gap: 7px; }
.hero-proof span::before { align-items: center; background: rgba(143,198,47,.16); border: 1px solid rgba(143,198,47,.5); border-radius: 50%; color: var(--green); content: "✓"; display: inline-flex; font-size: 0.625rem; height: 23px; justify-content: center; width: 23px; }
.hero.hero-conversion { min-height: 0; }
.hero-conversion .hero-layout { align-items: center; display: grid; gap: clamp(38px, 5vw, 72px); grid-template-columns: minmax(0, .82fr) minmax(500px, 1fr); min-height: 820px; padding-block: 62px; }
.hero-conversion .hero-copy { max-width: 590px; padding-block: 30px; }
.hero-conversion .hero-copy h1 { font-size: clamp(3rem, 5.4vw, 4.75rem); }
.hero-conversion .hero-copy > p { font-size: 1.0625rem; }
.hero-conversion-card { background: rgba(255,255,255,.98); border: 1px solid rgba(255,255,255,.72); border-radius: 24px; box-shadow: 0 32px 80px rgba(2,13,26,.36); color: var(--ink); min-width: 0; padding: 9px; scroll-margin-top: 115px; }
.hero-tool-tabs { background: #e9ede7; border-radius: 17px; display: grid; gap: 5px; grid-template-columns: repeat(3, 1fr); padding: 5px; }
.hero-tool-tabs button { background: transparent; border: 0; border-radius: 13px; color: #526171; cursor: pointer; font-family: Manrope, sans-serif; font-size: 0.875rem; font-weight: 800; line-height: 1.2; min-height: 62px; padding: 10px 14px; text-align: left; transition: background .2s ease, box-shadow .2s ease, color .2s ease; }
.hero-tool-tabs button span { display: block; font-family: "DM Sans", sans-serif; font-size: 0.75rem; font-weight: 500; margin-top: 4px; }
.hero-tool-tabs button.active { background: var(--navy); box-shadow: 0 8px 20px rgba(7,22,42,.18); color: white; }
.hero-tool-tabs button:focus-visible { outline: 3px solid var(--cyan); outline-offset: 2px; }
.hero-tool-panel[hidden] { display: none; }
.hero-tool-heading { padding: 24px 23px 15px; }
.hero-tool-heading h2 { font-size: 1.9375rem; margin: 11px 0 8px; }
.hero-tool-heading p { color: var(--muted); font-size: 0.875rem; line-height: 1.55; margin: 0; }
.hero-embed-scroll { border-top: 1px solid var(--line); max-height: 520px; min-height: 430px; overflow-y: auto; overscroll-behavior: contain; padding: 12px 14px 16px; scrollbar-color: #aab5bd transparent; }
.hero-embed-scroll .copilot-request-container { min-height: 500px; width: 100%; }
.hero-imq-widget { height: 1100px; width: 100%; }
.hero-imq-widget iframe { background: transparent; border: 0; display: block; height: 1100px; width: 100%; }
.hero-login-panel { align-items: center; background: linear-gradient(145deg, #f8faf5, #edf4e6); border-top: 1px solid var(--line); display: flex; min-height: 430px; padding: 20px; }
.hero-login-shell { background: white; border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 16px 40px rgba(7,22,42,.12); overflow: hidden; width: 100%; }
.hero-login-shell iframe { border: 0; display: block; height: 330px; width: 100%; }
.hero-login-fallback { align-items: center; border-top: 1px solid var(--line); display: flex; gap: 14px; justify-content: space-between; padding: 14px 16px; }
.hero-login-fallback p { color: var(--muted); font-size: 0.8125rem; margin: 0; }
.hero-service-strip { background: var(--cream); position: relative; z-index: 3; }
.service-strip-grid { background: white; border-radius: 0 0 18px 18px; box-shadow: 0 18px 50px rgba(7,22,42,.13); display: grid; grid-template-columns: repeat(4, 1fr); overflow: hidden; }
.service-strip-grid a { align-items: center; border-right: 1px solid var(--line); display: flex; gap: 14px; min-height: 92px; padding: 19px 22px; transition: background .2s ease; }
.service-strip-grid a:last-child { border: 0; }
.service-strip-grid a:hover { background: var(--cream); }
.strip-icon { align-items: center; background: var(--navy); border-radius: 50%; color: var(--green); display: flex; flex: 0 0 42px; font-size: 1.125rem; height: 42px; justify-content: center; }
.service-strip-grid strong { display: block; font-family: Manrope, sans-serif; font-size: 0.875rem; }
.service-strip-grid small { color: var(--muted); display: block; font-size: 0.625rem; margin-top: 3px; }

.service-grid { display: grid; gap: 20px; grid-template-columns: repeat(4, 1fr); }
.service-card { background: white; border: 1px solid var(--line); border-radius: var(--radius-md); min-height: 340px; overflow: hidden; position: relative; }
.service-card::before { background: linear-gradient(0deg, rgba(4,16,31,.92), rgba(4,16,31,.04)); content: ""; inset: 0; position: absolute; z-index: 1; }
.service-card img { height: 100%; object-fit: cover; position: absolute; transition: transform .5s ease; width: 100%; }
.service-card:hover img { transform: scale(1.045); }
.service-card-content { bottom: 0; color: white; left: 0; padding: 25px; position: absolute; right: 0; z-index: 2; }
.service-card-content span { color: var(--green); font-size: 0.625rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.service-card-content h3 { font-size: 1.5625rem; margin: 9px 0 8px; }
.service-card-content p { color: #c8d3db; font-size: 0.75rem; line-height: 1.5; margin: 0 0 15px; }

.split-layout { align-items: center; display: grid; gap: clamp(46px, 8vw, 110px); grid-template-columns: 1fr 1fr; }
.split-media { min-height: 540px; position: relative; }
.split-media .main-image { border-radius: var(--radius-lg); height: 520px; object-fit: cover; width: 88%; }
.split-media .accent-image { border: 8px solid white; border-radius: 20px; bottom: -8px; box-shadow: var(--shadow); height: 210px; object-fit: cover; position: absolute; right: 0; width: 45%; }
.experience-card { background: var(--green); border-radius: 18px; color: var(--navy); left: -18px; padding: 20px; position: absolute; top: 35px; width: 155px; }
.experience-card strong { display: block; font-family: Manrope, sans-serif; font-size: 1.875rem; }
.experience-card span { font-size: 0.6875rem; font-weight: 700; }
.split-copy h2 { margin: 16px 0 22px; }
.split-copy > p { color: var(--muted); }
.check-list { display: grid; gap: 13px; margin: 28px 0 32px; padding: 0; }
.check-list li { align-items: flex-start; display: flex; font-size: 0.875rem; gap: 11px; list-style: none; }
.check-list li::before { align-items: center; background: #edf6dd; border-radius: 50%; color: var(--green-dark); content: "✓"; display: flex; flex: 0 0 22px; font-size: 0.6875rem; height: 22px; justify-content: center; }

.audience-grid { display: grid; gap: 22px; grid-template-columns: repeat(2, 1fr); }
.audience-card { border-radius: var(--radius-lg); min-height: 440px; overflow: hidden; padding: 44px; position: relative; }
.audience-card img { height: 100%; inset: 0; object-fit: cover; position: absolute; transition: transform .5s ease; width: 100%; }
.audience-card::after { background: linear-gradient(0deg, rgba(4,16,31,.92), rgba(4,16,31,.05)); content: ""; inset: 0; position: absolute; }
.audience-card:hover img { transform: scale(1.04); }
.audience-card-content { bottom: 0; color: white; left: 0; padding: 40px; position: absolute; right: 0; z-index: 1; }
.audience-card h3 { font-size: 2.125rem; }
.audience-card p { color: #cfdae2; font-size: 0.875rem; max-width: 460px; }

.projects-grid { display: grid; gap: 15px; grid-template-columns: 1.25fr .75fr .75fr; grid-template-rows: repeat(2, 260px); }
.project-tile { border-radius: 18px; cursor: pointer; overflow: hidden; position: relative; }
.project-tile:first-child { grid-row: 1 / 3; }
.project-tile img { height: 100%; object-fit: cover; transition: transform .5s ease; width: 100%; }
.project-tile::after { background: linear-gradient(0deg, rgba(7,22,42,.64), transparent 55%); content: ""; inset: 0; position: absolute; }
.project-tile:hover img { transform: scale(1.04); }
.project-tile span { bottom: 18px; color: white; font-size: 0.75rem; font-weight: 800; left: 18px; position: absolute; z-index: 1; }

.review-layout { display: grid; gap: 48px; grid-template-columns: .7fr 1.3fr; }
.review-intro h2 { margin: 16px 0 20px; }
.review-intro p { color: #aebbc8; }
.rating { align-items: center; display: flex; gap: 13px; margin-top: 30px; }
.stars { color: var(--gold); letter-spacing: 3px; }
.rating small { color: #aebbc8; }
.review-grid { display: grid; gap: 16px; grid-template-columns: repeat(2, 1fr); }
.review-card { background: #10263b; border: 1px solid #253c51; border-radius: 18px; padding: 29px; }
.review-card q { color: #e5ebf0; display: block; font-size: 0.875rem; line-height: 1.75; quotes: none; }
.review-author { align-items: center; display: flex; gap: 12px; margin-top: 24px; }
.review-avatar { align-items: center; background: var(--green); border-radius: 50%; color: var(--navy); display: flex; font-family: Manrope, sans-serif; font-weight: 800; height: 38px; justify-content: center; width: 38px; }
.review-author strong { display: block; font-size: 0.75rem; }
.review-author small { color: #91a2b1; font-size: 0.625rem; }

.area-layout { align-items: center; display: grid; gap: 70px; grid-template-columns: 1fr 1fr; }
.area-copy h2 { margin: 15px 0 20px; }
.area-copy p { color: var(--muted); }
.area-tags { display: flex; flex-wrap: wrap; gap: 9px; margin: 26px 0 32px; }
.area-tags span { background: white; border: 1px solid var(--line); border-radius: 999px; font-size: 0.75rem; font-weight: 700; padding: 10px 14px; }
.map-card { background: var(--navy); border-radius: var(--radius-lg); min-height: 450px; overflow: hidden; padding: 40px; position: relative; }
.map-lines { inset: 0; opacity: .36; position: absolute; width: 100%; }
.map-card-content { align-items: center; display: flex; flex-direction: column; height: 360px; justify-content: center; position: relative; z-index: 1; }
.map-pin { align-items: center; background: var(--green); border: 8px solid rgba(143,198,47,.18); background-clip: padding-box; border-radius: 50% 50% 50% 0; color: var(--navy); display: flex; font-size: 1.375rem; height: 76px; justify-content: center; transform: rotate(-45deg); width: 76px; }
.map-pin span { transform: rotate(45deg); }
.map-card strong { color: white; font-family: Manrope, sans-serif; font-size: 1.6875rem; margin-top: 25px; }
.map-card small { color: #aebbc8; margin-top: 7px; }

.cta-panel { align-items: center; background: var(--green); border-radius: var(--radius-lg); display: flex; gap: 40px; justify-content: space-between; overflow: hidden; padding: 54px; position: relative; }
.cta-panel::after { border: 80px solid rgba(255,255,255,.13); border-radius: 50%; content: ""; height: 260px; position: absolute; right: -90px; top: -130px; width: 260px; }
.cta-panel h2 { color: var(--navy); font-size: clamp(2.125rem, 4vw, 3.5rem); max-width: 720px; position: relative; z-index: 1; }
.cta-panel .button { flex: 0 0 auto; position: relative; z-index: 1; }

.site-footer { background: #04101e; color: #c6d0d8; padding: 75px 0 22px; }
.footer-grid { display: grid; gap: 42px; grid-template-columns: 1.35fr .75fr .75fr .8fr 1fr; }
.footer-brand img { height: 92px; object-fit: contain; object-position: left; width: 160px; }
.footer-brand p { color: #8fa0ae; font-size: 0.75rem; max-width: 330px; }
.site-footer h4 { color: white; font-size: 0.875rem; margin-bottom: 19px; }
.footer-links { display: grid; gap: 10px; }
.footer-links a, .footer-links span { color: #91a2b1; font-size: 0.75rem; }
.footer-links a:hover { color: var(--green); }
.footer-bottom { align-items: center; border-top: 1px solid #1d3041; color: #718393; display: flex; font-size: 0.625rem; justify-content: space-between; margin-top: 55px; padding-top: 22px; }
.social-row { display: flex; gap: 14px; }
.social-row a { color: white; }
.mobile-actions { bottom: 0; display: none; left: 0; position: fixed; right: 0; z-index: 99; }
.mobile-actions a { align-items: center; display: flex; flex: 1; font-size: 0.8125rem; font-weight: 800; height: 58px; justify-content: center; }
.mobile-actions a:first-child { background: white; color: var(--navy); }
.mobile-actions a:last-child { background: var(--green); color: var(--navy); }

.page-hero { background: var(--navy); color: white; min-height: 475px; overflow: hidden; position: relative; }
.page-hero img { height: 100%; inset: 0; object-fit: cover; opacity: .46; position: absolute; width: 100%; }
.page-hero::after { background: linear-gradient(90deg, rgba(4,16,31,.95), rgba(4,16,31,.25)); content: ""; inset: 0; position: absolute; }
.page-hero .container { align-items: center; display: flex; min-height: 475px; position: relative; z-index: 1; }
.page-hero-content { max-width: 790px; padding-block: 70px; }
.breadcrumbs { color: #b9c6cf; font-size: 0.6875rem; font-weight: 700; margin-bottom: 22px; }
.breadcrumbs a { color: var(--green); }
.page-hero p { color: #d4dce3; font-size: 1.125rem; max-width: 650px; }
.page-hero-actions { display: flex; flex-wrap: wrap; gap: 11px; margin-top: 27px; }
.service-detail-grid { display: grid; gap: 22px; grid-template-columns: repeat(3, 1fr); }
.detail-card { background: white; border: 1px solid var(--line); border-radius: 16px; padding: 30px; }
.detail-number { align-items: center; background: #edf6dd; border-radius: 50%; color: var(--green-dark); display: flex; font-size: 0.75rem; font-weight: 800; height: 40px; justify-content: center; margin-bottom: 22px; width: 40px; }
.detail-card h3 { font-size: 1.3125rem; }
.detail-card p { color: var(--muted); font-size: 0.8125rem; margin-bottom: 0; }
.process-grid { display: grid; gap: 0; grid-template-columns: repeat(4, 1fr); }
.process-step { border-top: 1px solid #31455a; padding: 28px 24px 10px 0; position: relative; }
.process-step::before { background: var(--green); border: 5px solid var(--navy); border-radius: 50%; content: ""; height: 15px; position: absolute; top: -8px; width: 15px; }
.process-step span { color: var(--green); font-size: 0.625rem; font-weight: 800; letter-spacing: .14em; }
.process-step h3 { font-size: 1.25rem; margin: 14px 0 8px; }
.process-step p { color: #9eafbd; font-size: 0.75rem; }
.faq-list { display: grid; gap: 10px; margin-top: 38px; }
.faq-list details { background: white; border: 1px solid var(--line); border-radius: 13px; padding: 0 20px; }
.faq-list summary { cursor: pointer; font-family: Manrope, sans-serif; font-size: 0.875rem; font-weight: 800; list-style: none; padding: 20px 34px 20px 0; position: relative; }
.faq-list summary::after { color: var(--green-dark); content: "+"; font-size: 1.375rem; position: absolute; right: 0; top: 15px; }
.faq-list details[open] summary::after { content: "–"; }
.faq-list details p { color: var(--muted); font-size: 0.8125rem; margin: -4px 0 20px; max-width: 900px; }

.gallery-toolbar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 30px; }
.filter-button { background: white; border: 1px solid var(--line); border-radius: 999px; cursor: pointer; font-size: 0.75rem; font-weight: 800; padding: 10px 15px; }
.filter-button.active { background: var(--navy); border-color: var(--navy); color: white; }
.gallery-grid { display: grid; gap: 14px; grid-auto-rows: 250px; grid-template-columns: repeat(3, 1fr); }
.gallery-item { border-radius: 17px; overflow: hidden; position: relative; }
.gallery-item.wide { grid-column: span 2; }
.gallery-item.tall { grid-row: span 2; }
.gallery-item.hidden { display: none; }
.gallery-item img { height: 100%; object-fit: cover; transition: transform .45s ease; width: 100%; }
.gallery-item:hover img { transform: scale(1.035); }
.gallery-label { background: rgba(7,22,42,.88); border-radius: 999px; bottom: 14px; color: white; font-size: 0.625rem; font-weight: 800; left: 14px; padding: 8px 11px; position: absolute; }
.comparison { background: var(--navy); border-radius: var(--radius-lg); margin-top: 75px; overflow: hidden; padding: 40px; }
.comparison-head { align-items: end; color: white; display: flex; gap: 30px; justify-content: space-between; margin-bottom: 27px; }
.comparison-head p { color: #aebbc8; margin: 0; max-width: 460px; }
.compare-frame { border-radius: 18px; height: min(62vw, 560px); overflow: hidden; position: relative; }
.compare-frame > img, .compare-after img { height: 100%; object-fit: cover; width: 100%; }
.compare-after { inset: 0; overflow: hidden; position: absolute; width: 54%; }
.compare-after img { max-width: none; width: min(1160px, calc(100vw - 128px)); }
.compare-label { background: rgba(7,22,42,.82); border-radius: 999px; color: white; font-size: 0.625rem; font-weight: 800; padding: 8px 11px; position: absolute; top: 16px; z-index: 2; }
.compare-label.before { right: 16px; }
.compare-label.after { left: 16px; }
.compare-handle { background: white; bottom: 0; box-shadow: 0 0 0 1px rgba(7,22,42,.15); left: 54%; position: absolute; top: 0; width: 3px; z-index: 3; }
.compare-handle::after { align-items: center; background: var(--green); border: 5px solid white; border-radius: 50%; color: var(--navy); content: "↔"; display: flex; font-weight: 800; height: 48px; justify-content: center; left: 50%; position: absolute; top: 50%; transform: translate(-50%, -50%); width: 48px; }
.compare-range { cursor: ew-resize; inset: 0; opacity: 0; position: absolute; width: 100%; z-index: 4; }

.quote-layout { align-items: start; display: grid; gap: 52px; grid-template-columns: .68fr 1.32fr; }
.quote-sidebar { position: sticky; top: 140px; }
.quote-sidebar h2 { margin: 14px 0 18px; }
.quote-sidebar > p { color: var(--muted); }
.quote-feature { align-items: flex-start; border-top: 1px solid var(--line); display: flex; gap: 12px; padding: 16px 0; }
.quote-feature i { align-items: center; background: #edf6dd; border-radius: 50%; color: var(--green-dark); display: flex; flex: 0 0 28px; font-style: normal; height: 28px; justify-content: center; }
.quote-feature strong { display: block; font-size: 0.8125rem; }
.quote-feature span { color: var(--muted); display: block; font-size: 0.6875rem; margin-top: 3px; }
.embed-shell { background: white; border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow); min-height: 720px; overflow: hidden; padding: 18px; }
.embed-loading { align-items: center; color: var(--muted); display: flex; font-size: 0.75rem; gap: 10px; justify-content: center; padding: 20px; }
.embed-loading i { animation: pulse 1.3s infinite; background: var(--green); border-radius: 50%; height: 8px; width: 8px; }
@keyframes pulse { 50% { opacity: .3; } }
.embed-fallback { background: var(--cream); border-radius: 13px; color: var(--muted); font-size: 0.75rem; margin-top: 12px; padding: 14px; text-align: center; }
.contact-grid { display: grid; gap: 22px; grid-template-columns: repeat(3, 1fr); }
.contact-card { background: white; border: 1px solid var(--line); border-radius: 16px; padding: 30px; }
.contact-card span { align-items: center; background: var(--navy); border-radius: 50%; color: var(--green); display: flex; height: 42px; justify-content: center; margin-bottom: 20px; width: 42px; }
.contact-card h3 { font-size: 1.25rem; }
.contact-card p, .contact-card a { color: var(--muted); font-size: 0.8125rem; }
.contact-form { background: white; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 42px; }
.form-grid { display: grid; gap: 18px; grid-template-columns: repeat(2, 1fr); }
.form-field { display: flex; flex-direction: column; gap: 7px; }
.form-field.full { grid-column: 1 / -1; }
.form-field label { color: #425365; font-size: 0.6875rem; font-weight: 800; }
.form-field input, .form-field select, .form-field textarea { background: #fafbf9; border: 1px solid var(--line); border-radius: 10px; outline: 0; padding: 14px; width: 100%; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color: var(--green-dark); box-shadow: 0 0 0 3px rgba(143,198,47,.13); }
.form-field textarea { min-height: 145px; resize: vertical; }
.form-note { color: var(--muted); font-size: 0.625rem; }
.form-status { background: #edf6dd; border-radius: 10px; color: #47700d; display: none; font-size: 0.75rem; font-weight: 700; margin-top: 15px; padding: 13px; }
.form-status.show { display: block; }
.legal-layout { align-items: start; display: grid; gap: 58px; grid-template-columns: 260px minmax(0, 1fr); }
.legal-nav { background: var(--cream); border: 1px solid var(--line); border-radius: 16px; display: grid; gap: 3px; padding: 13px; position: sticky; top: 120px; }
.legal-nav strong { font-family: Manrope, sans-serif; font-size: 0.8125rem; padding: 10px 11px; }
.legal-nav a { border-radius: 9px; color: var(--muted); font-size: 0.6875rem; font-weight: 700; padding: 9px 11px; }
.legal-nav a:hover { background: white; color: var(--green-dark); }
.legal-content { max-width: 850px; }
.legal-content > p { color: var(--muted); }
.legal-meta { background: #edf6dd; border-radius: 999px; color: #47700d; display: inline-block; font-size: 0.625rem; font-weight: 800; margin: 18px 0 28px; padding: 9px 12px; }
.legal-section { border-top: 1px solid var(--line); padding: 33px 0; scroll-margin-top: 120px; }
.legal-section h2 { font-size: 1.5625rem; }
.legal-section h3 { font-size: 1.0625rem; margin-top: 25px; }
.legal-section p, .legal-section li { color: var(--muted); font-size: 0.8125rem; line-height: 1.75; }
.legal-section ul { display: grid; gap: 8px; padding-left: 19px; }
.policy-callout { background: var(--navy); border-radius: 16px; color: white; margin: 12px 0 25px; padding: 23px; }
.policy-callout strong { color: var(--green); display: block; font-family: Manrope, sans-serif; font-size: 0.9375rem; margin-bottom: 7px; }
.policy-callout p { color: #b8c5cf; margin: 0; }
.info-grid { display: grid; gap: 20px; grid-template-columns: repeat(2, 1fr); }
.info-card { background: white; border: 1px solid var(--line); border-radius: 18px; padding: 31px; }
.info-card .strip-icon { margin-bottom: 23px; }
.info-icon { height: 48px; width: 48px; }
.info-icon svg { height: 25px; width: 25px; }
.info-icon-hours { background: #edf7e5; color: #397218; }
.info-icon-meetings { background: #fff1dd; color: #9a5515; }
.info-icon-contact { background: #e4f3ff; color: #176ba0; }
.info-icon-area { background: #e2f3eb; color: #166346; }
.map-pin svg { height: 28px; width: 28px; }
.quote-thank-hero { background: radial-gradient(circle at 80% 20%, rgba(143,198,47,.2), transparent 32%), var(--navy); color: white; overflow: hidden; position: relative; }
.quote-thank-hero-inner { margin: 0 auto; max-width: 850px; padding: clamp(74px, 10vw, 128px) 0; text-align: center; }
.quote-success-mark { align-items: center; background: var(--green); border: 8px solid rgba(255,255,255,.1); border-radius: 50%; color: var(--navy); display: flex; height: 78px; justify-content: center; margin: 0 auto 28px; width: 78px; }
.quote-success-mark svg { height: 38px; width: 38px; }
.quote-thank-hero .eyebrow { justify-content: center; }
.quote-thank-hero h1 { font-size: clamp(2.75rem, 6.2vw, 4.75rem); margin-top: 18px; }
.quote-thank-hero p { color: #d5dfe7; font-size: 1.15rem; margin: 24px auto 30px; max-width: 670px; }
.quote-thank-actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.next-step-grid { display: grid; gap: 18px; grid-template-columns: repeat(4, minmax(0,1fr)); }
.next-step-card { background: white; border: 1px solid var(--line); border-radius: 20px; min-width: 0; padding: 28px; position: relative; }
.next-step-number { color: #a2adb6; font-family: Manrope, sans-serif; font-size: .75rem; font-weight: 800; letter-spacing: .14em; position: absolute; right: 22px; top: 21px; }
.next-step-icon { align-items: center; background: #edf7e5; border-radius: 14px; color: #397218; display: flex; height: 48px; justify-content: center; margin-bottom: 24px; width: 48px; }
.next-step-icon svg { height: 25px; width: 25px; }
.next-step-card h3 { font-size: 1.2rem; margin-bottom: 12px; }
.next-step-card p { color: var(--muted); font-size: 1rem; line-height: 1.65; margin: 0; }
.quote-portal-panel { align-items: center; background: var(--navy); border-radius: 24px; color: white; display: flex; gap: 36px; justify-content: space-between; padding: clamp(34px, 5vw, 60px); }
.quote-portal-panel h2 { font-size: clamp(2rem, 4vw, 3.125rem); margin: 14px 0 16px; max-width: 730px; }
.quote-portal-panel p { color: #bdcad4; margin: 0; max-width: 760px; }
.quote-portal-panel .button { flex: 0 0 auto; }
.thank-gallery { display: grid; gap: 16px; grid-auto-rows: 285px; grid-template-columns: repeat(3, minmax(0,1fr)); }
.thank-gallery-item { background: #e8edef; border-radius: 18px; margin: 0; overflow: hidden; position: relative; }
.thank-gallery-wide { grid-column: span 2; }
.thank-gallery-item a { display: block; height: 100%; }
.thank-gallery-item img { height: 100%; object-fit: cover; transition: transform .45s ease; width: 100%; }
.thank-gallery-item:hover img { transform: scale(1.035); }
.thank-gallery-item figcaption { background: linear-gradient(transparent, rgba(4,16,31,.88)); bottom: 0; color: white; font-family: Manrope, sans-serif; font-size: .95rem; font-weight: 700; left: 0; padding: 45px 20px 18px; position: absolute; right: 0; }
.thank-gallery-action { margin-top: 30px; text-align: center; }
.info-card h3 { font-size: 1.375rem; }
.info-card p { color: var(--muted); font-size: 0.8125rem; margin-bottom: 0; }
.hours-table { border-top: 1px solid var(--line); margin-top: 22px; }
.hours-row { align-items: center; border-bottom: 1px solid var(--line); display: flex; font-size: 0.8125rem; justify-content: space-between; padding: 15px 0; }
.hours-row span { color: var(--muted); }
.hours-row strong { text-align: right; }
.work-request-shell { background: white; border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow); min-height: 720px; overflow: hidden; padding: 18px; }
.work-request-shell .copilot-request-container { min-height: 680px; width: 100%; }
.login-shell { background: white; border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow); overflow: hidden; }
.login-shell iframe { border: 0; display: block; min-height: 760px; width: 100%; }
.login-fallback { align-items: center; background: #f3f7ed; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; padding: 18px 22px; }
.login-fallback p { color: var(--muted); margin: 0; }
.winter-grid { display: grid; gap: 20px; grid-template-columns: repeat(3, 1fr); }
.winter-card { background: white; border: 1px solid var(--line); border-radius: 20px; display: flex; flex-direction: column; min-height: 340px; overflow: hidden; padding: 32px; position: relative; }
.winter-card::after { background: var(--cyan); border-radius: 50%; content: ""; height: 130px; opacity: .12; position: absolute; right: -50px; top: -55px; width: 130px; }
.winter-card:nth-child(2)::after { background: var(--gold); }
.winter-card:nth-child(3)::after { background: var(--green); }
.winter-card .strip-icon { margin-bottom: 30px; }
.winter-card h3 { font-size: 1.5625rem; }
.winter-card p { color: var(--muted); font-size: 0.8125rem; }
.winter-card .text-link { margin-top: auto; width: fit-content; }
.stat-grid { display: grid; gap: 16px; grid-template-columns: repeat(3, 1fr); margin-top: 38px; }
.stat { background: var(--cream); border-radius: 14px; padding: 22px; }
.stat strong { display: block; font-family: Manrope, sans-serif; font-size: 1.625rem; }
.stat span { color: var(--muted); font-size: 0.6875rem; }
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .55s ease, transform .55s ease; }
.reveal.visible { opacity: 1; transform: none; }

@media (max-width: 1050px) {
  .main-nav { gap: 17px; }
  .nav-socials { display: none; }
  .next-step-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .service-grid { grid-template-columns: repeat(2, 1fr); }
  .projects-grid { grid-template-columns: 1fr 1fr; }
  .project-tile:first-child { grid-column: 1 / 3; grid-row: auto; }
  .footer-grid { grid-template-columns: 1.3fr 1fr 1fr; }
  .footer-grid > div:last-child { grid-column: 1 / -1; }
}

@media (max-width: 850px) {
  .section { padding-block: 82px; }
  .topbar .container > span:first-child { display: none; }
  .topbar .container { justify-content: center; }
  .nav-toggle { display: block; }
  .main-nav { align-items: stretch; background: white; display: none; flex-direction: column; gap: 0; height: calc(100vh - 82px); left: 0; overflow-y: auto; padding: 25px; position: absolute; right: 0; top: 82px; }
  .main-nav.open { display: flex; }
  .main-nav > a, .nav-dropdown > button { border-bottom: 1px solid var(--line); font-size: 1rem; padding: 17px 5px; text-align: left; width: 100%; }
  .dropdown-menu { border: 0; box-shadow: none; display: none; opacity: 1; padding: 4px 0 10px 12px; pointer-events: auto; position: static; transform: none; }
  .nav-dropdown.open .dropdown-menu { display: grid; }
  .nav-socials { border-bottom: 1px solid var(--line); display: flex; gap: 10px; padding: 17px 5px; }
  .nav-social { border-radius: 12px; height: 44px; width: 44px; }
  .nav-social svg { height: 21px; width: 21px; }
  .header-login, .header-cta { margin-top: 15px; text-align: center !important; }
  .hero, .hero > .container { min-height: 720px; }
  .hero.hero-conversion, .hero.hero-conversion .hero-layout { min-height: 0; }
  .hero-conversion .hero-layout { grid-template-columns: 1fr; padding-block: 70px; }
  .hero-conversion .hero-copy { max-width: 680px; padding-block: 10px; }
  .hero-conversion-card { max-width: 720px; width: 100%; }
  .hero-service-strip { display: none; }
  .service-strip-grid { grid-template-columns: repeat(2, 1fr); }
  .split-layout, .review-layout, .area-layout, .quote-layout { grid-template-columns: 1fr; }
  .split-media { order: 2; }
  .audience-grid { grid-template-columns: 1fr; }
  .review-grid { grid-template-columns: 1fr; }
  .process-grid { grid-template-columns: repeat(2, 1fr); row-gap: 30px; }
  .quote-sidebar { position: static; }
  .gallery-grid { grid-template-columns: repeat(2, 1fr); }
  .gallery-item.wide { grid-column: span 1; }
  .contact-grid { grid-template-columns: 1fr; }
  .legal-layout { grid-template-columns: 1fr; }
  .legal-nav { position: static; }
  .winter-grid { grid-template-columns: 1fr; }
  .quote-portal-panel { align-items: flex-start; flex-direction: column; }
  .thank-gallery { grid-auto-rows: 250px; grid-template-columns: repeat(2, minmax(0,1fr)); }
  .thank-gallery-wide { grid-column: span 1; }
}

@media (max-width: 620px) {
  body { padding-bottom: 58px; }
  .container { padding-inline: 18px; }
  .section, .section-tight { padding-block: 64px; }
  .section-heading { align-items: start; flex-direction: column; gap: 20px; margin-bottom: 34px; }
  .logo img { height: 54px; width: 118px; }
  .nav-shell { height: 74px; }
  .main-nav { height: calc(100vh - 74px); top: 74px; }
  .hero, .hero > .container { min-height: 670px; }
  .hero.hero-conversion, .hero.hero-conversion .hero-layout { min-height: 0; }
  .hero-conversion .hero-layout { gap: 35px; padding-block: 50px; }
  .hero-conversion .hero-copy { padding-block: 0; }
  .hero-conversion .hero-copy h1 { font-size: clamp(2.6875rem, 13.5vw, 3.75rem); }
  .hero-conversion-card { border-radius: 20px; padding: 7px; }
  .hero-tool-tabs button { font-size: 0.8125rem; min-height: 60px; padding-inline: 10px; }
  .hero-tool-tabs button span { font-size: 0.6875rem; }
  .hero-tool-tabs { grid-template-columns: 1fr; }
  .hero-tool-tabs button { min-height: 52px; text-align: center; }
  .hero-tool-tabs button span { display: inline; margin-left: 6px; }
  .hero-tool-heading { padding: 21px 16px 14px; }
  .hero-tool-heading h2 { font-size: 1.625rem; }
  .hero-embed-scroll { max-height: 560px; min-height: 410px; padding-inline: 8px; }
  .hero-login-panel { min-height: 390px; padding: 10px; }
  .hero-login-shell iframe { height: 300px; }
  .hero-login-fallback { align-items: stretch; flex-direction: column; }
  .hero::before { background: linear-gradient(90deg, rgba(4,16,31,.91), rgba(4,16,31,.57)); }
  .hero-copy { padding-block: 75px; }
  .hero-copy > p { font-size: 1rem; }
  .hero-actions .button { width: 100%; }
  .hero-proof { align-items: flex-start; flex-direction: column; gap: 10px; }
  .service-grid { grid-template-columns: 1fr; }
  .service-card { min-height: 390px; }
  .split-media { min-height: 430px; }
  .split-media .main-image { height: 410px; width: 94%; }
  .split-media .accent-image { height: 155px; width: 48%; }
  .experience-card { left: -4px; top: 20px; }
  .audience-card { min-height: 410px; padding: 26px; }
  .audience-card-content { padding: 28px; }
  .projects-grid { grid-auto-rows: 230px; grid-template-columns: 1fr; grid-template-rows: none; }
  .project-tile:first-child { grid-column: auto; }
  .project-tile { min-height: 230px; }
  .cta-panel { align-items: stretch; flex-direction: column; padding: 33px 27px; }
  .cta-panel .button { width: 100%; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > div:first-child, .footer-grid > div:last-child { grid-column: 1 / -1; }
  .footer-bottom { align-items: start; flex-direction: column; gap: 12px; }
  .mobile-actions { display: flex; }
  .page-hero, .page-hero .container { min-height: 470px; }
  .page-hero p { font-size: 1rem; }
  .page-hero-actions .button { width: 100%; }
  .service-detail-grid, .stat-grid { grid-template-columns: 1fr; }
  .process-grid { grid-template-columns: 1fr; }
  .gallery-grid { grid-auto-rows: 270px; grid-template-columns: 1fr; }
  .gallery-item.tall { grid-row: span 1; }
  .comparison { margin-inline: -18px; padding: 24px 18px; }
  .comparison-head { align-items: start; flex-direction: column; }
  .compare-frame { height: 470px; }
  .compare-after img { width: calc(100vw - 36px); }
  .embed-shell { border-radius: 17px; margin-inline: -8px; padding: 5px; }
  .login-shell { border-radius: 17px; margin-inline: -8px; }
  .login-shell iframe { min-height: 700px; }
  .login-fallback .button { width: 100%; }
  .contact-form { padding: 27px 20px; }
  .form-grid { grid-template-columns: 1fr; }
  .info-grid { grid-template-columns: 1fr; }
  .quote-thank-hero-inner { padding-block: 62px; }
  .quote-thank-actions { align-items: stretch; flex-direction: column; }
  .next-step-grid { grid-template-columns: 1fr; }
  .next-step-card { padding: 25px; }
  .quote-portal-panel { border-radius: 18px; padding: 28px 23px; }
  .quote-portal-panel .button { width: 100%; }
  .thank-gallery { grid-auto-rows: 245px; grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .reveal { opacity: 1; transform: none; }
}

.service-strip-grid .strip-icon { width: 48px; height: 48px; flex-basis: 48px; }
.strip-icon svg { width: 26px; height: 26px; }
.service-strip-grid .strip-icon-lawn { color: #397218; background: #edf7e5; }
.service-strip-grid .strip-icon-landscape { color: #a45d17; background: #fff1dd; }
.service-strip-grid .strip-icon-tree { color: #166346; background: #e2f3eb; }
.service-strip-grid .strip-icon-snow { color: #176ba0; background: #e4f3ff; }
@media (max-width: 850px) { .hero-service-strip { display: block; } }
@media (max-width: 620px) { .service-strip-grid { gap: 16px; } .service-strip-grid a { padding: 10px 0; gap: 10px; } .service-strip-grid strong { font-size: 0.875rem; } .service-strip-grid small { font-size: 0.75rem; } }

/* Consistent typography, alignment, and uncropped project photography. */
p, .detail-card p, .winter-card p, .info-card p, .process-step p, .legal-section p, .legal-section li, .contact-card p, .footer-brand p { font-size: 1rem; line-height: 1.7; }
.footer-links, .footer-links a, .form-field label, .quote-feature strong, .hours-row { font-size: .875rem; }
.main-nav > a, .nav-dropdown > button { font-size: .875rem; }
.detail-card, .winter-card, .info-card, .contact-card { min-width: 0; }
.service-card-content h3, .detail-card h3, .winter-card h3 { line-height: 1.25; }
.strip-icon, .contact-card > span { flex-shrink: 0; font-style: normal; }
.contact-card svg { width: 24px; height: 24px; }
.service-strip-grid a { align-items: center; }
.gallery-grid { grid-auto-rows: auto; align-items: start; }
.gallery-item, .gallery-item.wide, .gallery-item.tall { grid-column: auto; grid-row: auto; height: auto; margin: 0; background: #eef1f3; }
.gallery-item img { height: auto; width: 100%; object-fit: contain; transform: none !important; }
.gallery-label { position: static; display: block; border-radius: 0; font-size: .875rem; padding: 12px 16px; }
.projects-grid { grid-auto-rows: auto; grid-template-rows: none; align-items: start; }
.project-tile { min-height: 0; background: var(--navy); }
.project-tile img { height: auto; object-fit: contain; transform: none !important; }
.project-tile > span { position: static; display: block; padding: 16px; font-size: .875rem; }
.split-media .main-image, .split-media .accent-image { object-fit: contain; background: #eef1f3; }
.before-after-section { margin-top: 72px; }
.project-comparison { background: white; border: 1px solid var(--line); border-radius: 18px; padding: 28px; margin-top: 28px; }
.project-comparison > p { color: var(--muted); margin-bottom: 22px; }
.comparison-pair { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; align-items: start; }
.comparison-pair figure { margin: 0; overflow: hidden; border-radius: 12px; background: #eef1f3; }
.comparison-pair img { width: 100%; height: auto; object-fit: contain; }
.comparison-pair a:focus-visible { outline: 3px solid var(--green-dark); outline-offset: -3px; display: block; }
.comparison-pair figcaption { background: var(--navy); color: white; font-size: .875rem; font-weight: 700; padding: 12px 16px; }
@media (max-width: 620px) { .comparison-pair { grid-template-columns: 1fr; gap: 16px; } .project-comparison { padding: 18px; } .hours-row { flex-wrap: wrap; gap: 8px; } .info-card a { overflow-wrap: anywhere; } }

/* October refinement: tighter rhythm, readable controls, and honest photo framing. */
:root { --muted: #536273; }
h1,h2,h3 { text-wrap: balance; }
h1 { line-height: 1.1; }
h2 { font-size: clamp(2rem,3.8vw,3.25rem); line-height: 1.14; }
a,button { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--cyan); outline-offset: 4px; }
[hidden] { display: none !important; }
.section { padding-block: clamp(48px,6vw,80px); }
.section-tight { padding-block: 56px; }
.section-heading { gap: 32px; margin-bottom: 32px; }
.section-heading > * { min-width: 0; }
.section-heading > p { flex: 0 1 390px; }
.eyebrow,.breadcrumbs,.topbar { font-size: .75rem; }
.dropdown-menu a span,.hero-proof span,.service-strip-grid small,.service-card-content span,.experience-card span,.review-author small,.footer-bottom,.form-note,.stat span { font-size: .8125rem; }
.text-link,.filter-button,.footer-links span,.legal-nav a,.quote-feature span,.contact-card a { font-size: .875rem; }
.button { white-space: normal; text-align: center; line-height: 1.35; padding-block: 13px; }
.hero-bg-fall { object-fit: cover; object-position: 52% 52%; }
.hero::before { background: linear-gradient(90deg,rgba(4,16,31,.86),rgba(4,16,31,.62) 42%,rgba(4,16,31,.24)); }
.hero-conversion .hero-layout { grid-template-columns: minmax(0,.9fr) minmax(0,1fr); min-height: 0; padding-block: 44px; gap: 42px; }
.hero-conversion .hero-copy h1 { font-size: clamp(2.7rem,5vw,4.3rem); }
.hero-conversion .hero-copy { padding-block: 24px; }
.hero-conversion .hero-copy > p { max-width: 510px; }
.hero-proof { gap: 14px; margin-top: 28px; }
.hero-tool-tabs button { padding: 10px; text-align: center; }
.hero-tool-heading { padding: 20px 20px 14px; }
.hero-tool-heading h2 { font-size: 1.7rem; }
.hero-embed-scroll { min-height: 340px; max-height: 430px; }
.hero-login-panel { min-height: 340px; }
.widget-help { font-size: .875rem; color: var(--muted); margin: 0; padding: 12px 16px; border-top: 1px solid var(--line); line-height: 1.55; }
.widget-help a { text-decoration: underline; text-underline-offset: 3px; }
.service-strip-grid { box-shadow: none; }
.service-strip-grid a { min-height: 86px; padding: 16px; }
.service-card { min-height: 350px; }
.service-card-content { padding: 22px; }
.service-card-content p,.audience-card p,.review-card q { font-size: 1rem; }
.service-card::before { background: linear-gradient(0deg,rgba(4,16,31,.96),rgba(4,16,31,.55) 48%,rgba(4,16,31,.08)); }
.split-layout { gap: clamp(28px,5vw,64px); }
.split-media { min-height: 0; padding-bottom: 56px; }
.split-media .main-image { width: 92%; height: auto; border-radius: 18px; }
.split-media .accent-image { width: 43%; height: auto; bottom: 0; border-width: 5px; }
.experience-card { left: 0; top: 18px; width: 155px; padding: 16px; }
.experience-card strong { font-size: 1.5rem; }
.page-hero,.page-hero .container { min-height: 340px; }
.page-hero-content { padding-block: 48px; max-width: 880px; }
.page-hero h1 { font-size: clamp(2.3rem,4.6vw,4rem); }
.page-hero img { object-position: center 48%; }
.page-hero p { margin: 18px 0 0; }
.page-hero-actions { margin-top: 24px; }
.breadcrumbs { margin-bottom: 18px; }
.projects-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.project-tile:first-child { grid-row: auto; grid-column: auto; }
.project-tile::after { display: none; }
.project-tile img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.project-tile > span { padding: 13px 16px; }
.gallery-grid { display: block; columns: 3; column-gap: 20px; }
.gallery-item,.gallery-item.wide,.gallery-item.tall { break-inside: avoid; margin: 0 0 20px; border: 1px solid var(--line); border-radius: 14px; background: white; }
.gallery-photo { display: block; }
.gallery-photo:focus-visible { outline-offset: -4px; }
.gallery-label { background: white; color: var(--ink); padding: 14px 16px; line-height: 1.4; }
.gallery-toolbar { margin-bottom: 12px; }
.filter-button { min-height: 44px; }
.gallery-count { color: var(--muted); font-size: .875rem; margin: 0 0 24px; }
.before-after-section { margin-top: 48px; }
.project-comparison { margin-top: 20px; padding: 24px; }
.project-comparison h3 { font-size: 1.5rem; }
.comparison-pair { gap: 18px; }
.cta-panel { padding: 36px; gap: 28px; }
.cta-panel h2 { font-size: clamp(1.8rem,3.4vw,2.75rem); }
.site-footer { padding-top: 48px; }
.footer-grid { gap: 28px; }
.footer-bottom { margin-top: 32px; }
.footer-links a { overflow-wrap: anywhere; }
.legal-content > h2 { font-size: 2rem; }
.legal-section h2 { font-size: 1.5rem; }
.legal-nav a { line-height: 1.45; }
.quote-layout { gap: 36px; grid-template-columns: minmax(0,.68fr) minmax(0,1.32fr); }
.quote-sidebar h2 { font-size: clamp(1.8rem,3vw,2.6rem); }
.form-field input,.form-field select,.form-field textarea { min-width: 0; font-size: 1rem; }
.nav-dropdown:not(.open) .dropdown-menu { visibility: hidden; }
.nav-dropdown.open .dropdown-menu { visibility: visible; }
@media (max-width:1050px) {
 .main-nav { gap: 13px; }
 .header-login,.header-cta { padding-inline: 13px !important; }
 .hero-conversion .hero-layout { gap: 26px; }
 .hero-tool-tabs button { font-size: .8125rem; }
 .hero-tool-tabs button span { font-size: .75rem; }
}
@media (max-width:850px) {
 .hero-conversion .hero-layout { grid-template-columns: minmax(0,1fr); padding-block: 36px; }
 .hero-conversion .hero-copy { max-width: 620px; padding: 0; }
 .hero-conversion .hero-copy h1 { font-size: clamp(2.7rem,7vw,4rem); }
 .hero-conversion-card { max-width: none; }
 .hero-bg-fall { object-position: 60% top; }
 .section-heading > p { flex-basis: auto; }
 .quote-layout { grid-template-columns: minmax(0,1fr); }
 .gallery-grid { columns: 2; }
 .projects-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .main-nav { height: calc(100dvh - 82px); padding-bottom: 100px; }
 .service-strip-grid a { border-bottom: 1px solid var(--line); }
 .service-strip-grid a:nth-child(2) { border-right: 0; }
 .hero-service-strip { display: block; }
}
@media (max-width:620px) {
 .section,.section-tight { padding-block: 44px; }
 .section-heading { gap: 14px; margin-bottom: 26px; }
 .hero-conversion .hero-layout { padding-block: 32px; gap: 28px; }
 .hero-conversion .hero-copy h1 { font-size: clamp(2.6rem,11vw,3.4rem); }
 .hero-proof { flex-direction: row; gap: 12px; }
 .hero-proof span { font-size: .75rem; }
 .hero-tool-tabs { grid-template-columns: repeat(3,minmax(0,1fr)); }
 .hero-tool-tabs button { font-size: .8125rem; padding: 10px 5px; min-height: 60px; }
 .hero-tool-tabs button span { display: none; }
 .hero-embed-scroll { max-height: 500px; min-height: 340px; }
 .service-strip-grid { gap: 0; }
 .service-strip-grid a { padding: 12px 7px; gap: 8px; }
 .service-strip-grid .strip-icon { width: 34px; height: 34px; flex-basis: 34px; }
 .strip-icon svg { width: 22px; height: 22px; }
 .service-strip-grid small { line-height: 1.4; }
 .service-card { min-height: 340px; }
 .split-media { min-height: 0; padding-bottom: 46px; }
 .split-media .main-image { height: auto; width: 92%; }
 .split-media .accent-image { height: auto; }
 .page-hero,.page-hero .container { min-height: 0; }
 .page-hero-content { padding-block: 36px; }
 .page-hero h1 { font-size: clamp(2.1rem,9vw,2.9rem); }
 .projects-grid { grid-template-columns: minmax(0,1fr); }
 .gallery-grid { columns: 1; }
 .gallery-toolbar { gap: 7px; }
 .filter-button { padding-inline: 13px; }
 .project-comparison { padding: 18px; }
 .cta-panel { padding: 26px; }
 .main-nav { height: calc(100dvh - 74px); }
 .mobile-actions { padding-bottom: env(safe-area-inset-bottom); background: var(--navy); }
 body { padding-bottom: calc(58px + env(safe-area-inset-bottom)); }
 .hero-conversion-card { scroll-margin-top: 88px; }
 .topbar .container { height: auto; min-height: 37px; padding-block: 7px; text-align: center; }
 .login-shell iframe { min-height: 560px; }
}

/* Frame the high-resolution finished landscape, with no inherited service-strip height. */
.hero-bg-fall { object-position: center 78%; }
.hero-service-strip > .container { display: block; min-height: 0; }
@media(max-width:850px) { .hero-bg-fall { object-position: 45% 78%; } }

[data-site-header] { position: sticky; top: 0; z-index: 100; }
.site-header { position: relative; }
.main-nav > .header-cta { background: var(--green); }
@media(max-width:850px) { .main-nav { height: calc(100dvh - 119px); } }
@media(max-width:620px) { .main-nav { height: calc(100dvh - 111px); } }

.portal-card { max-width: 760px; margin-inline: auto; padding: 36px; text-align: center; }
.portal-card > img { width: 150px; height: 95px; object-fit: contain; margin: 0 auto 18px; }
.portal-card h2 { font-size: clamp(1.7rem,3vw,2.4rem); }
.portal-card > p { max-width: 540px; margin-inline: auto; color: var(--muted); }
.portal-card .portal-note { font-size: .875rem; margin-top: 14px; }
.portal-support { border-top: 1px solid var(--line); padding-top: 20px; }
.portal-support a { text-decoration: underline; text-underline-offset: 3px; }
.hero-login-shell.portal-card { padding: 24px; }
.hero-login-panel { min-height: 0; }
@media(max-width:620px) { .portal-card { padding: 24px 18px; } .portal-card .button { width: 100%; } }

/* Crop away empty sky and foreground road while preserving the original photograph. */
.hero.hero-conversion { background: var(--navy); }
.hero-bg-fall { object-view-box: inset(40% 0 8% 0); object-position: center 75%; }
@media(max-width:850px) { .hero-bg-fall { height: 620px; object-position: center; } }
