@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Onest:wght@400;500;600;700&display=swap');

:root { --ink:#142734; --muted:#5c6d76; --blue:#77c0ed; --blue-dark:#1389c4; --pale:#f3f8fb; --orange:#ffbd1e; --line:#dce8ef; --white:#fff; --shadow:0 14px 38px rgba(30,81,107,.1); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; font-family:Manrope,Arial,sans-serif; color:var(--ink); background:#fff; }
button,input,select { font:inherit; }
button { cursor:pointer; }
a { color:inherit; text-decoration:none; }
.container { width:min(1200px,calc(100% - 48px)); margin:0 auto; }
.site-header { height:92px; display:flex; align-items:center; width:min(1200px,calc(100% - 48px)); margin:0 auto; position:absolute; z-index:10; left:50%; transform:translateX(-50%); }
.logo { font-family:Onest,sans-serif; font-weight:800; font-size:22px; letter-spacing:0; color:var(--blue-dark); white-space:nowrap; }
.logo span { color:var(--ink); font-weight:600; }
.nav { display:flex; align-items:center; gap:31px; margin-left:78px; font-size:13px; font-weight:700; }
.nav a { transition:color .2s; }.nav a:hover { color:var(--blue-dark); }
.header-cta,.nav-cta { margin-left:auto; border:0; background:#dceffc; color:#337a9e; border-radius:9px; padding:12px 17px; font-size:13px; font-weight:800; }
.menu-toggle,.mobile-cta { display:none; }
.hero { min-height:801px; background:linear-gradient(90deg,#f5f8fc 0%,#f5f8fc 51%,#7dc1ed 51%,#7dc1ed 100%); overflow:hidden; }
.hero-inner { height:801px; position:relative; display:grid; grid-template-columns:51% 49%; }
.hero-copy { align-self:center; padding-top:64px; max-width:602px; position:relative; z-index:2; }
.eyebrow,.section-kicker { text-transform:uppercase; color:var(--blue-dark); font-size:12px; letter-spacing:.08em; font-weight:800; display:flex; gap:8px; align-items:center; margin:0 0 20px; }
h1,h2,h3,p { margin-top:0; } h1,h2,h3 { font-family:Onest,Manrope,sans-serif; letter-spacing:0; }
h1 { font-size:54px; line-height:1.15; max-width:640px; margin-bottom:25px; letter-spacing:0; }
.hero-description { font-size:16px; color:var(--muted); line-height:1.75; max-width:560px; margin-bottom:30px; }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:28px; }
.button { border:0; min-height:52px; padding:0 22px; display:inline-flex; align-items:center; justify-content:center; gap:10px; border-radius:9px; font-weight:800; font-size:14px; transition:transform .2s,box-shadow .2s,background .2s; }
.button:hover { transform:translateY(-2px); box-shadow:0 9px 20px rgba(21,77,106,.18); }
.button--primary { background:var(--orange); color:#21313a; }.button--ghost { background:#edf7fe;color:var(--blue-dark); }
.text-action { font-size:14px; font-weight:800; display:inline-flex; align-items:center; gap:9px; color:#42535d; }.text-action svg { color:var(--blue-dark); }
.hero-media { position:relative; height:100%; background:var(--blue); border-bottom-left-radius:300px; }
.hero-media > img { height:88%; width:78%; object-fit:cover; object-position:center top; position:absolute; bottom:0; left:18%; border-bottom-left-radius:230px; mix-blend-mode:multiply; }
.trust-card { background:#fff; position:absolute; display:flex; align-items:center; gap:12px; border-radius:14px; padding:15px 17px; box-shadow:var(--shadow); }.trust-card svg { color:#ff8b48; }.trust-card b { display:block; font-size:15px; }.trust-card small { display:block; font-size:11px; color:var(--muted); margin-top:2px; }.trust-card--shield { right:21px; top:260px; }.trust-card--bottom { bottom:84px; left:-68px; }.trust-card--bottom b { font-size:26px; }
.about { display:grid; grid-template-columns:1fr 1fr; gap:75px; padding:108px 0 114px; align-items:center; }
.photo-collage { height:530px; position:relative; }.photo-collage__main { height:100%; width:70%; margin-left:50px; overflow:hidden; border-radius:8px; }.photo-collage img { width:100%; height:100%; object-fit:cover; }.photo-collage__small { position:absolute; width:182px; height:245px; padding:11px; background:#fff; border-radius:8px; box-shadow:var(--shadow); }.photo-collage__small img { border-radius:5px; }.photo-collage__small--left { left:0; top:57px; }.photo-collage__small--right { right:0; bottom:42px; width:164px; height:212px; }
.about-copy h2,.section-heading h2 { font-size:37px; line-height:1.22; margin-bottom:20px; }.about-copy > p:not(.section-kicker),.section-heading > p,.section-heading--split > p { color:var(--muted); line-height:1.7; font-size:15px; }
.benefit-list { margin-top:31px; display:grid; gap:20px; }.benefit { display:flex; gap:16px; }.benefit > span { flex:0 0 31px; height:31px; border-radius:50%; display:grid; place-items:center; background:#e5f5ff; color:var(--blue-dark); }.benefit h3 { font-size:16px; margin:3px 0 6px; }.benefit p { font-size:13px; line-height:1.55; color:var(--muted); margin:0; }
.services,.process { background:var(--pale); padding:100px 0; }.section-heading { max-width:650px; margin-bottom:40px; }.section-heading--split { max-width:none; display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:end; }.section-heading--split > p { max-width:460px; margin-bottom:5px; }
.service-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:17px; }.service-card { min-height:280px; background:#fff; padding:32px 25px 26px; position:relative; box-shadow:0 10px 30px rgba(14,80,111,.06); }.service-icon { height:47px; width:47px; color:var(--blue-dark); display:grid; place-items:center; background:#e8f6ff; border-radius:8px; }.service-icon svg { width:27px; }.service-card h3 { font-size:17px; margin:26px 0 9px; }.service-card p { color:var(--muted); font-size:13px; line-height:1.6; margin-bottom:15px; }.service-card b { font-size:13px; color:#2d789c; }.service-card button { position:absolute; right:19px; bottom:20px; background:transparent; border:0; color:var(--blue-dark); }
.team { padding:100px 0 95px; overflow:hidden; }.team-track { display:flex; gap:18px; width:max-content; margin:0 auto; padding:0 24px; }.team-card { width:224px; }.team-card img { width:224px; height:313px; object-fit:cover; object-position:top; display:block; border-radius:5px; }.team-card h3 { font-size:14px; margin:13px 0 2px; }.team-card p { font-size:11px; color:var(--blue-dark); margin:0; }
.pricing { padding:105px 0; }.price-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; align-items:stretch; }.price-card { padding:34px 31px; border:1px solid #edf0f2; background:#fff; position:relative; border-radius:7px; display:flex; flex-direction:column; }.price-card--featured { background:#d9f0ff; border-color:#d9f0ff; transform:translateY(-12px); box-shadow:var(--shadow); }.popular { position:absolute; top:-14px; right:22px; background:var(--blue-dark); color:#fff; border-radius:20px; padding:6px 11px; font-size:10px; font-weight:800; }.price-card h3 { font-size:19px; margin:0 0 12px; }.price-card .price { font-family:Onest,sans-serif; font-size:34px; font-weight:800; margin:0 0 13px; color:var(--blue-dark); }.price span,.price small { font-family:Manrope,sans-serif; font-size:13px; }.price-card > p:not(.price) { font-size:13px; color:var(--muted); line-height:1.5; min-height:40px; }.price-card ul { padding:0; margin:23px 0 28px; list-style:none; display:grid; gap:13px; font-size:13px; color:#42535d; }.price-card li { display:flex; gap:8px; align-items:flex-start; }.price-card li svg { color:var(--blue-dark); flex:none; }.price-card .button { margin-top:auto; width:100%; }
.process { padding:98px 0; }.process-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:50px; }.process-card { position:relative; padding-top:18px; }.process-card:not(:last-child)::after { content:''; position:absolute; height:1px; background:#b9dff3; left:80px; right:-27px; top:36px; }.process-card span { color:var(--blue-dark); font-size:13px; font-weight:800; border:1px solid #b9dff3; display:grid; place-items:center; height:38px; width:54px; border-radius:20px; margin-bottom:25px; background:#fff; position:relative; z-index:1; }.process-card h3 { margin:0 0 10px; font-size:18px; }.process-card p { font-size:14px; color:var(--muted); line-height:1.65; }
.reviews { padding:102px 0; }.review-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }.review-card { padding:27px; border-radius:6px; background:var(--pale); }.review-person { display:flex; gap:12px; align-items:center; }.review-person img { height:40px; width:40px; object-fit:cover; border-radius:50%; }.review-person h3 { font-size:14px; margin:0 0 2px; }.review-person p { font-size:11px; color:var(--muted); margin:0; }.stars { color:#ff9c17; display:flex; gap:3px; margin:17px 0 11px; }.review-card > p { font-size:13px; line-height:1.65; color:var(--muted); margin:0; }
.final-cta { overflow:hidden; background:#eff6fb; }.final-cta__inner { min-height:390px; display:flex; align-items:center; justify-content:space-between; position:relative; }.final-cta__inner > div:first-child { max-width:590px; position:relative; z-index:1; }.final-cta h2 { font-size:38px; line-height:1.2; margin:0 0 17px; }.final-cta p:not(.section-kicker) { color:var(--muted); font-size:15px; line-height:1.6; margin-bottom:25px; }.cta-mark { background:var(--blue); height:570px; width:570px; display:grid; place-items:center; border-radius:45% 55% 37% 63% / 49% 40% 60% 51%; transform:rotate(-17deg); margin-right:-110px; color:#fff; }.cta-mark svg { transform:rotate(17deg); }
footer { background:#fff; }.footer-main { display:grid; grid-template-columns:1.65fr 1fr 1fr 1.3fr; gap:40px; padding:70px 0 55px; }.footer-main h3 { color:#ff7e56; font-size:13px; margin:4px 0 17px; }.footer-note,.footer-group a,.footer-contacts p,.footer-contacts a { display:block; font-size:12px; line-height:1.7; color:var(--muted); margin:0 0 8px; }.footer-note { max-width:250px; margin-top:16px; }.footer-contacts a { color:var(--ink); font-weight:700; }.footer-contacts p:last-child { display:flex; gap:5px; align-items:center; }.footer-bottom { background:#115773; color:#fff; font-size:10px; }.footer-bottom > .container { min-height:48px; display:flex; align-items:center; justify-content:space-between; }
.modal-backdrop { position:fixed; inset:0; background:rgba(13,35,47,.52); z-index:20; display:grid; place-items:center; padding:20px; }.quote-modal { background:#fff; padding:36px; width:min(460px,100%); position:relative; border-radius:10px; box-shadow:0 20px 70px rgba(0,0,0,.2); }.modal-close { background:#eff6fb; height:36px; width:36px; border:0; display:grid; place-items:center; color:var(--ink); border-radius:50%; position:absolute; top:18px; right:18px; }.quote-modal h2 { font-size:27px; margin:0 0 8px; }.quote-modal > p:not(.section-kicker) { color:var(--muted); font-size:13px; line-height:1.6; }.quote-modal form { display:grid; gap:15px; margin-top:24px; }.quote-modal label { display:grid; gap:7px; color:var(--ink); font-size:12px; font-weight:800; position:relative; }.quote-modal input,.quote-modal select { border:1px solid var(--line); border-radius:6px; min-height:45px; padding:0 12px; background:#fff; outline-color:var(--blue-dark); color:var(--ink); font-size:14px; appearance:none; }.quote-modal label svg { position:absolute; right:13px; bottom:14px; pointer-events:none; color:var(--muted); }.quote-modal .button { margin-top:5px; }.success { min-height:285px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }.success svg { color:var(--blue-dark); }.success h2 { margin:13px 0 8px; }.success p { color:var(--muted); font-size:14px; line-height:1.6; max-width:300px; }.success .button { margin-top:13px; }.cta-mark { font-size:126px; font-family:Onest,sans-serif; }
.modal-backdrop[hidden] {
  display: none;
}
@media (max-width:900px) { .container,.site-header { width:min(100% - 36px,700px); }.site-header { height:70px; }.nav { position:absolute; top:66px; left:0; right:0; margin:0; padding:18px; display:none; flex-direction:column; align-items:stretch; gap:3px; background:#fff; border-radius:0 0 12px 12px; box-shadow:var(--shadow); }.nav--open { display:flex; }.nav a { padding:10px; }.header-cta { display:none; }.mobile-cta { display:block; margin:8px 0 0; width:100%; }.menu-toggle { display:grid; margin-left:auto; place-items:center; border:0; background:#dceffc; color:var(--blue-dark); border-radius:8px; height:38px; width:40px; }.hero { min-height:auto; background:#f5f8fc; }.hero-inner { height:auto; grid-template-columns:1fr; padding-top:110px; }.hero-copy { padding:20px 0 45px; }.hero-media { height:450px; margin:0 -18px; border-bottom-left-radius:0; }.hero-media > img { width:60%; left:23%; }.trust-card--shield { right:22px; top:60px; }.trust-card--bottom { left:24px; bottom:32px; }.about { grid-template-columns:1fr; gap:45px; padding:75px 0; }.photo-collage { height:450px; max-width:580px; width:100%; }.section-heading--split { grid-template-columns:1fr; gap:6px; }.service-grid,.price-grid,.review-grid { grid-template-columns:repeat(2,1fr); }.price-card--featured { transform:none; }.team-track { margin-left:0; }.process-grid { gap:25px; }.footer-main { grid-template-columns:repeat(2,1fr); }.cta-mark { height:360px; width:360px; margin-right:-160px; }.final-cta h2 { font-size:32px; } }
@media (max-width:560px) { .container,.site-header { width:calc(100% - 32px); }.hero-copy { padding-top:0; }.eyebrow { font-size:10px; }.hero h1 { font-size:37px; line-height:1.18; }.hero-description { font-size:14px; }.hero-actions { gap:17px; }.button { width:100%; }.text-action { width:100%; justify-content:center; }.hero-media { height:360px; }.hero-media > img { width:73%; left:15%; }.trust-card { padding:11px; gap:8px; }.trust-card b { font-size:12px; }.trust-card small { font-size:9px; }.trust-card--bottom b { font-size:20px; }.about-copy h2,.section-heading h2 { font-size:29px; }.photo-collage { height:345px; }.photo-collage__main { margin-left:27px; width:75%; }.photo-collage__small { width:120px; height:165px; padding:7px; }.photo-collage__small--right { width:110px; height:145px; }.services,.process,.pricing,.team,.reviews { padding:70px 0; }.service-grid,.price-grid,.review-grid,.process-grid { grid-template-columns:1fr; }.service-card { min-height:230px; }.team-track { gap:12px; padding:0 16px; }.team-card,.team-card img { width:190px; }.team-card img { height:264px; }.process-card:not(:last-child)::after { width:1px; height:30px; left:26px; top:72px; right:auto; }.price-card { padding:27px 23px; }.final-cta__inner { min-height:510px; padding:64px 0; }.final-cta h2 { font-size:31px; }.cta-mark { position:absolute; bottom:-195px; right:-190px; opacity:.9; }.footer-main { grid-template-columns:1fr 1fr; padding:55px 0 38px; gap:28px 18px; }.footer-main > div:first-child { grid-column:span 2; }.footer-bottom > .container { min-height:58px; gap:8px; flex-direction:column; justify-content:center; }.quote-modal { padding:29px 21px; } }