:root {
  --ink: #07345b;
  --green: #56a832;
  --lime: #80c341;
  --blue: #087db8;
  --mint: #eaf5f7;
  --paper: #f6f9fa;
  --line: #d7e3e8;
  --white: #fff;
  --body: #506575;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font: 16px/1.6 "DM Sans", sans-serif; }
body, button, input, select, textarea { font-family: "DM Sans", sans-serif; }
h1,h2,h3,p { margin-top: 0; }
h1,h2,h3 { font-family: "Manrope", sans-serif; }
a { color: inherit; }
.utility-bar { min-height: 36px; padding: 6px max(24px,calc((100vw - 1184px)/2)); display:flex; justify-content:space-between; align-items:center; background:#062c4e; color:#eaf3f8; font-size:.78rem; letter-spacing:.03em; }
.utility-bar a { text-decoration:none; }.utility-bar strong { color:#a9dc69; margin-left:7px; }
.site-header { position:sticky; top:0; z-index:20; height:82px; max-width:none; padding:0 max(24px,calc((100vw - 1184px)/2)); display:flex; justify-content:space-between; align-items:center; background:rgba(255,255,255,.96); border-bottom:1px solid var(--line); backdrop-filter:blur(16px); }
.brand { display:flex; align-items:center; text-decoration:none; }.brand img { display:block; width:66px; height:66px; object-fit:contain; }
.site-header nav { display:flex; align-items:center; gap:clamp(16px,3vw,38px); }.site-header nav a { color:var(--ink); text-decoration:none; font-size:.93rem; font-weight:700; transition:color .2s; }.site-header nav a:hover { color:var(--blue); }
.button { min-height:52px; display:inline-flex; align-items:center; justify-content:center; gap:15px; padding:13px 21px; border:0; border-radius:5px; background:#087db8; color:white; text-decoration:none; font-weight:700; box-shadow:0 6px 16px rgba(8,125,184,.16); cursor:pointer; transition:transform .18s,background .18s,box-shadow .18s; }.button:hover { transform:translateY(-2px); background:#056a9e; box-shadow:0 9px 22px rgba(8,125,184,.22); }.button-small { min-height:44px; padding:10px 17px; font-size:.87rem; }
.hero { position:relative; isolation:isolate; max-width:none; min-height:590px; padding:76px max(24px,calc((100vw - 1184px)/2)) 88px; display:grid; grid-template-columns:1.02fr .98fr; align-items:center; gap:58px; overflow:hidden; color:white; background:linear-gradient(117deg,#062f55 0%,#075b89 65%,#0784b5 100%); }
.hero:after { content:""; position:absolute; z-index:-1; right:-90px; top:-240px; width:610px; height:610px; border:1px solid rgba(255,255,255,.13); border-radius:50%; box-shadow:0 0 0 62px rgba(255,255,255,.035),0 0 0 124px rgba(255,255,255,.025); }
.hero-copy { max-width:590px; position:relative; z-index:1; }.eyebrow { display:flex; align-items:center; gap:10px; margin-bottom:18px; color:#137eb4; font-size:.78rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }.eyebrow>span { display:block; width:24px; height:2px; background:var(--green); }.eyebrow-light { color:#b5e47b; }.eyebrow-light>span { background:#b5e47b; }
.hero .eyebrow { color:#c2ef8a; }.hero .eyebrow>span { background:#c2ef8a; }.hero h1 { max-width:660px; margin-bottom:22px; font-size:clamp(3.2rem,6vw,5.2rem); line-height:.99; letter-spacing:-.065em; }.hero h1 em { color:#b1e36e; font-style:normal; }.hero-lead { max-width:525px; color:#deebf2; font-size:1.09rem; margin-bottom:29px; }.hero-actions { display:flex; gap:24px; align-items:center; margin-bottom:31px; }.hero .button { background:#83c73c; color:#082b49; box-shadow:none; }.hero .button:hover { background:#a0db62; }.text-link { color:#fff; text-decoration:none; font-weight:700; }.text-link:hover { color:#c5ed93; }.hero-proof { display:flex; align-items:center; gap:16px; color:#c9dce7; font-size:.9rem; }.hero-proof b { color:white; font-size:1.06rem; }.hero-proof i { width:1px; height:24px; background:rgba(255,255,255,.32); }
.hero-image-wrap { position:relative; justify-self:end; width:100%; max-width:510px; height:390px; }.hero-image { display:block; width:100%; height:100%; object-fit:cover; border:7px solid rgba(255,255,255,.94); border-radius:9px; box-shadow:0 24px 50px rgba(0,0,0,.23); }.hero-stamp { position:absolute; top:-22px; right:-16px; width:96px; height:96px; border:5px solid rgba(255,255,255,.92); border-radius:50%; display:flex; align-items:center; justify-content:center; flex-direction:column; background:#80bf3d; color:#08375a; box-shadow:0 9px 20px rgba(0,0,0,.15); text-align:center; }.hero-stamp span { font-size:.62rem; font-weight:900; line-height:1.2; letter-spacing:.08em; }.hero-stamp b { font-size:1.1rem; line-height:1; }.hero-caption { position:absolute; left:-25px; bottom:20px; display:flex; align-items:center; gap:12px; padding:14px 18px; border-radius:6px; background:white; color:var(--ink); box-shadow:0 14px 35px rgba(0,0,0,.18); }.hero-caption strong,.hero-caption small { display:block; }.hero-caption strong { font:700 .9rem "Manrope",sans-serif; }.hero-caption small { color:var(--body); font-size:.78rem; }.caption-dot { width:12px; height:12px; border-radius:50%; background:#77bd3a; box-shadow:0 0 0 5px #edf7e5; }.hero-watermark { position:absolute; z-index:-1; bottom:-58px; left:3vw; color:rgba(255,255,255,.035); font:800 clamp(5rem,16vw,14rem)/1 "Manrope",sans-serif; letter-spacing:-.08em; white-space:nowrap; }
.service-ribbon { min-height:75px; padding:12px 24px; display:flex; gap:clamp(14px,3vw,38px); justify-content:center; align-items:center; flex-wrap:wrap; background:#f4f8fa; border-bottom:1px solid var(--line); color:#315366; font-weight:700; font-size:.9rem; }.service-ribbon i { color:#76b93b; font-style:normal; }
.section { padding:100px max(24px,calc((100vw - 1184px)/2)); }.section-intro { max-width:570px; margin-bottom:46px; }.section-intro h2,.section-heading h2,.rate-strip h2,.area-copy h2,.about-copy h2,.quote-copy h2 { margin-bottom:14px; font-size:clamp(2.35rem,4.2vw,3.65rem); line-height:1.07; letter-spacing:-.055em; }.section-intro>p:last-child,.section-intro-wide>p { color:var(--body); font-size:1.02rem; }.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }.step { min-height:250px; position:relative; padding:28px 30px; background:white; border:1px solid var(--line); border-radius:5px; transition:transform .2s,box-shadow .2s; }.step:hover { transform:translateY(-4px); box-shadow:0 15px 38px rgba(7,52,91,.09); }.step-no { color:#84b65b; font-size:.8rem; font-weight:800; letter-spacing:.13em; }.step-icon { width:52px; height:52px; margin:26px 0 17px; display:grid; place-items:center; border-radius:50%; background:#e9f4e1; color:#1984b5; font-size:1.5rem; font-weight:800; }.step h3 { margin-bottom:8px; font-size:1.15rem; }.step p { margin:0; color:var(--body); font-size:.95rem; }
.freshness-band { display:grid; grid-template-columns:1fr 1fr; min-height:515px; background:#07345b; color:white; }.freshness-image { min-height:515px; overflow:hidden; }.freshness-image img { width:100%; height:100%; object-fit:cover; display:block; }.freshness-copy { align-self:center; max-width:590px; padding:72px clamp(35px,7vw,112px); }.freshness-copy h2 { margin-bottom:18px; font-size:clamp(3rem,5vw,4.4rem); line-height:.99; letter-spacing:-.06em; }.freshness-copy>p:not(.eyebrow) { color:#d4e2eb; max-width:440px; }.freshness-copy ul { list-style:none; margin:23px 0 30px; padding:0; display:grid; gap:9px; color:#e7f0f5; }.freshness-copy li { display:flex; align-items:center; gap:11px; }.freshness-copy li span { color:#a8df6a; font-weight:900; }.button-green { background:#80c341; color:#07345b; box-shadow:none; }.button-green:hover { background:#99d35f; }
.services { background:#fff; }.section-intro-wide { max-width:none; display:flex; align-items:end; justify-content:space-between; gap:44px; }.section-intro-wide>p { max-width:420px; margin-bottom:15px; }.service-gallery { display:grid; grid-template-columns:1.25fr 1fr 1fr; gap:14px; }.photo-card { position:relative; min-height:365px; display:block; overflow:hidden; border-radius:5px; color:white; background:#123f5c; text-decoration:none; }.photo-card:first-child { min-height:430px; }.photo-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .45s; }.photo-card:hover img { transform:scale(1.045); }.photo-overlay { position:absolute; inset:35% 0 0; background:linear-gradient(transparent,rgba(2,28,47,.86)); }.photo-label { position:absolute; left:22px; right:22px; bottom:22px; display:grid; grid-template-columns:1fr auto; align-items:end; }.photo-label small { grid-column:1/-1; margin-bottom:8px; color:#cdf08b; font-weight:800; font-size:.7rem; letter-spacing:.13em; }.photo-label strong { max-width:270px; font:700 1.3rem/1.2 "Manrope",sans-serif; }.photo-label b { width:35px; height:35px; display:grid; place-items:center; border-radius:50%; color:var(--ink); background:#a7db6b; }.service-chips { margin-top:25px; display:flex; flex-wrap:wrap; gap:9px; }.service-chips a { padding:11px 15px; border:1px solid var(--line); border-radius:999px; color:#254c63; text-decoration:none; font-size:.88rem; font-weight:700; transition:background .2s,color .2s,border-color .2s; }.service-chips a span { margin-left:9px; color:#1683b4; }.service-chips a:hover { border-color:#087db8; background:#eaf5f7; }
.rate-strip { padding:72px max(24px,calc((100vw - 1184px)/2)); display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:13px; align-items:stretch; background:#eaf4f7; }.rate-strip h2 { font-size:clamp(2rem,3.4vw,3rem); }.rate-card { min-height:180px; padding:24px; display:flex; flex-direction:column; justify-content:center; background:white; border:1px solid #d4e4e8; border-radius:4px; }.rate-card-featured { color:white; border-color:#076b9e; background:#087db8; }.rate-card span { font-size:.72rem; font-weight:800; letter-spacing:.13em; }.rate-card strong { margin:4px 0 0; font:800 3rem/1.1 "Manrope",sans-serif; letter-spacing:-.06em; }.rate-card small { color:var(--body); }.rate-card-featured small { color:#dceff7; }.rate-note { grid-column:2/-1; align-self:center; color:#4c6574; font-size:.9rem; }.rate-note a { margin-left:6px; color:#087db8; font-weight:800; text-decoration:none; }
.subscription-offer { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:28px; padding:24px 28px; border-radius:5px; color:white; background:#073b60; }.subscription-offer>div { max-width:730px; }.subscription-tag { display:block; margin-bottom:8px; color:#b5e47b; font-size:.7rem; font-weight:800; letter-spacing:.13em; }.subscription-offer h3 { margin:0 0 5px; font:800 clamp(1.35rem,2.2vw,1.85rem)/1.2 "Manrope",sans-serif; }.subscription-offer p { margin:0; color:#d0e0e9; font-size:.94rem; }.subscription-offer .button { flex:none; }.rate-note { grid-column:1/-1; text-align:right; }
.area-section { position:relative; min-height:490px; padding:92px max(24px,calc((100vw - 1184px)/2)); display:grid; grid-template-columns:.65fr 1.1fr 1fr; align-items:center; gap:42px; overflow:hidden; color:white; background:linear-gradient(115deg,#062f55,#075e8d 72%,#0785b2); }.area-section:after { content:""; position:absolute; right:-100px; bottom:-380px; width:620px; height:620px; border:1px solid rgba(255,255,255,.16); border-radius:50%; box-shadow:0 0 0 65px rgba(255,255,255,.035),0 0 0 130px rgba(255,255,255,.025); }.area-marker { position:relative; z-index:1; justify-self:center; display:flex; align-items:center; flex-direction:column; color:#b8e779; }.marker-ring { display:grid; place-items:center; width:122px; height:122px; border:1px solid rgba(184,231,121,.72); border-radius:50%; font:800 3rem "Manrope",sans-serif; box-shadow:0 0 0 15px rgba(184,231,121,.07),0 0 0 31px rgba(184,231,121,.035); }.marker-line { height:42px; width:1px; background:#b8e779; }.area-marker small { font-size:.7rem; letter-spacing:.14em; text-align:center; color:#d0e5f1; }.area-copy,.area-list { position:relative; z-index:1; }.area-copy h2 { font-size:clamp(2.45rem,4vw,3.6rem); }.area-copy>p:not(.eyebrow) { max-width:470px; color:#d6e7f0; }.button-white { margin-top:12px; background:white; color:#07345b; box-shadow:none; }.button-white:hover { background:#e8f4f7; }.area-list { display:grid; grid-template-columns:1fr 1fr; gap:10px; }.area-list span { padding:14px 15px; border:1px solid rgba(255,255,255,.24); border-radius:3px; background:rgba(255,255,255,.07); font-size:.92rem; font-weight:700; }
.about { display:grid; grid-template-columns:.85fr 1.15fr; gap:100px; align-items:center; background:#fff; }.about-photo { position:relative; max-width:430px; height:480px; }.about-photo img { width:100%; height:100%; display:block; object-fit:cover; object-position:center 28%; border-radius:5px; }.about-photo:after { content:""; position:absolute; z-index:0; inset:14px -14px -14px 14px; border:2px solid #85c747; border-radius:5px; pointer-events:none; }.about-photo-tag { position:absolute; z-index:1; bottom:20px; left:-24px; padding:14px 18px; background:#07345b; color:#d1eead; font-size:.72rem; font-weight:900; line-height:1.35; letter-spacing:.12em; }.about-copy>p:not(.eyebrow) { max-width:580px; margin:20px 0 26px; color:var(--body); }.about-points { border-top:1px solid var(--line); }.about-points>div { display:flex; gap:19px; padding:16px 0; border-bottom:1px solid var(--line); }.about-points b { color:#7fae55; font-size:.76rem; }.about-points span,.about-points strong,.about-points small { display:block; }.about-points strong { font:700 1rem "Manrope",sans-serif; }.about-points small { margin-top:3px; color:var(--body); font-size:.88rem; }
.faq-section { padding:92px max(24px,calc((100vw - 1184px)/2)); display:grid; grid-template-columns:.85fr 1.15fr; gap:70px; background:#f1f6f8; }.faq-section .section-intro { margin:0; }.faq-list details { border-top:1px solid #cbdbe2; }.faq-list details:last-child { border-bottom:1px solid #cbdbe2; }.faq-list summary { padding:19px 0; display:flex; justify-content:space-between; align-items:center; cursor:pointer; list-style:none; font:700 1rem "Manrope",sans-serif; }.faq-list summary::-webkit-details-marker { display:none; }.faq-list summary span { color:#087db8; font-size:1.3rem; }.faq-list details[open] summary span { transform:rotate(45deg); }.faq-list details p { max-width:650px; color:var(--body); font-size:.95rem; }
.quote { padding:90px max(24px,calc((100vw - 1184px)/2)); display:grid; grid-template-columns:1fr 1fr; gap:90px; color:white; background:#062f55; }.quote-copy { align-self:center; }.quote-copy h2 { font-size:clamp(3rem,5vw,4.4rem); }.quote-copy>p:not(.eyebrow) { max-width:460px; color:#d0e0e9; }.phone-link { display:inline-block; margin-top:18px; color:#c1e991; text-decoration:none; }.phone-link strong { color:white; }.quote form { display:grid; grid-template-columns:1fr 1fr; gap:16px; }.quote label { color:#e8f0f5; font-size:.86rem; font-weight:700; }.quote input,.quote select,.quote textarea { width:100%; display:block; margin-top:7px; padding:14px; border:1px solid #55788f; border-radius:4px; color:#07345b; background:white; font:inherit; }.quote textarea { resize:vertical; }.quote label:nth-child(4),.quote button,.quote .form-note { grid-column:1/-1; }.quote button { margin-top:3px; }.form-note { margin:0; text-align:center; color:#bdd0db; font-size:.82rem; }
.whatsapp-float { position:fixed; z-index:30; right:24px; bottom:24px; display:flex; align-items:center; gap:10px; padding:13px 18px; border:2px solid rgba(255,255,255,.85); border-radius:999px; background:#25d366; color:#063824; text-decoration:none; font-weight:800; box-shadow:0 10px 28px rgba(0,0,0,.2); transition:transform .18s; }.whatsapp-float:hover { transform:translateY(-3px); }.whatsapp-float svg { width:25px; height:25px; }
footer { max-width:none; padding:27px max(24px,calc((100vw - 1184px)/2)); display:flex; justify-content:space-between; align-items:center; gap:20px; background:#052947; color:#d2e0e8; font-size:.85rem; }footer p { margin:0; }footer> a:not(.brand) { text-decoration:none; color:#c2e994; font-weight:700; }footer small { color:#a8bdca; }.footer-brand img { width:60px; height:60px; }
@media (max-width: 900px) { .hero { grid-template-columns:1fr 1fr; gap:30px; padding-top:60px; }.hero-image-wrap { height:345px; }.hero h1 { font-size:clamp(3rem,6vw,4.25rem); }.site-header nav { gap:14px; }.site-header nav a { font-size:.82rem; }.service-gallery { grid-template-columns:1fr 1fr; }.photo-card:first-child { grid-row:span 2; }.photo-card { min-height:270px; }.photo-card:first-child { min-height:554px; }.rate-strip { grid-template-columns:1fr 1fr; }.rate-strip>div:first-child { grid-column:1/-1; }.rate-note { grid-column:1/-1; }.area-section { grid-template-columns:.5fr 1fr 1fr; gap:24px; }.area-list { grid-template-columns:1fr; }.about { gap:65px; }.faq-section { gap:38px; }.quote { gap:45px; } }
@media (max-width: 650px) { .utility-bar { min-height:34px; padding:5px 17px; font-size:.68rem; }.site-header { height:70px; padding:0 17px; }.brand img { width:54px; height:54px; }.site-header nav { display:none; }.button-small { min-height:41px; padding:9px 12px; font-size:.78rem; }.hero { padding:49px 20px 57px; grid-template-columns:1fr; gap:39px; }.hero h1 { font-size:clamp(3rem,13vw,4.1rem); }.hero-lead { font-size:1rem; }.hero-actions { gap:16px; flex-wrap:wrap; }.hero-proof { font-size:.82rem; }.hero-image-wrap { justify-self:center; height:300px; max-width:520px; width:calc(100% - 14px); }.hero-image { border-width:5px; }.hero-stamp { right:-11px; top:-16px; width:78px; height:78px; border-width:4px; }.hero-stamp span { font-size:.54rem; }.hero-caption { left:-9px; bottom:15px; padding:11px 13px; }.hero-watermark { bottom:-20px; }.service-ribbon { justify-content:flex-start; flex-wrap:nowrap; overflow-x:auto; white-space:nowrap; min-height:59px; padding:12px 20px; font-size:.8rem; }.section { padding:72px 20px; }.section-intro { margin-bottom:31px; }.section-intro h2,.section-heading h2,.about-copy h2 { font-size:2.35rem; }.steps { grid-template-columns:1fr; gap:10px; }.step { min-height:auto; padding:22px; display:grid; grid-template-columns:43px 48px 1fr; column-gap:11px; align-items:center; }.step-no { grid-column:1; grid-row:1; }.step-icon { width:42px; height:42px; margin:0; grid-column:2; grid-row:1/3; }.step h3 { grid-column:3; grid-row:1; margin:0; font-size:1rem; }.step p { grid-column:3; grid-row:2; font-size:.87rem; }.freshness-band { grid-template-columns:1fr; }.freshness-image { min-height:265px; max-height:340px; }.freshness-copy { padding:54px 23px 62px; }.freshness-copy h2 { font-size:3rem; }.section-intro-wide { display:block; }.section-intro-wide>p { margin:16px 0 0; }.service-gallery { grid-template-columns:1fr 1fr; gap:9px; }.photo-card,.photo-card:first-child { min-height:235px; grid-row:auto; }.photo-card:first-child { grid-column:1/-1; min-height:300px; }.photo-label { left:14px; right:14px; bottom:14px; }.photo-label strong { font-size:1rem; }.photo-label b { width:29px; height:29px; }.service-chips { gap:7px; }.service-chips a { padding:9px 11px; font-size:.79rem; }.rate-strip { padding:65px 20px; grid-template-columns:1fr 1fr; gap:9px; }.rate-strip>div:first-child { grid-column:1/-1; }.rate-strip h2 { font-size:2.3rem; }.rate-card { min-height:151px; padding:17px; }.rate-card strong { font-size:2.65rem; }.rate-card span { font-size:.64rem; }.rate-note { grid-column:1/-1; }.area-section { padding:68px 22px; grid-template-columns:1fr; gap:29px; }.area-marker { justify-self:start; margin:8px 0 5px 20px; }.marker-ring { width:85px; height:85px; font-size:2.25rem; }.marker-line { height:24px; }.area-list { grid-template-columns:1fr 1fr; }.area-list span { padding:11px; font-size:.83rem; }.about { grid-template-columns:1fr; gap:44px; }.about-photo { width:calc(100% - 13px); height:410px; max-width:none; }.about-photo-tag { left:-9px; bottom:15px; }.faq-section { padding:68px 20px; grid-template-columns:1fr; gap:12px; }.faq-list summary { font-size:.94rem; }.quote { padding:69px 20px; grid-template-columns:1fr; gap:35px; }.quote-copy h2 { font-size:3rem; }.quote form { grid-template-columns:1fr; gap:13px; }.quote label:nth-child(n) { grid-column:1/-1; }.whatsapp-float { right:14px; bottom:14px; padding:12px; }.whatsapp-float span { display:none; }footer { flex-direction:column; gap:11px; padding:28px 20px; text-align:center; } }
