/* Add the listed gpv-* classes to Elementor Containers, Widgets, or image widgets. */
:root { --gpv-ink:#17283a; --gpv-green:#05755f; --gpv-deep:#034444; --gpv-mint:#c3d8d4; --gpv-aqua:#6cd0b8; --gpv-wash:#f6f6f6; --gpv-line:#91adad; }
.gpv-page { color:var(--gpv-ink); font-family:"DM Sans",sans-serif; }
.gpv-page h1,.gpv-page h2,.gpv-page h3,.gpv-display { font-family:Poppins,sans-serif; letter-spacing:-.06em; }
.gpv-hero { position:relative; overflow:hidden; isolation:isolate; min-height:590px; background:linear-gradient(105deg,#fff 35%,var(--gpv-mint) 100%); }
.gpv-hero::before { content:""; position:absolute; z-index:-1; inset:0; background:var(--e-bg-image) center / cover no-repeat; opacity:.42; }
.gpv-hero .elementor-container { min-height:590px; align-items:center; }
.gpv-display { font-size:clamp(45px,5.4vw,72px); font-weight:800; line-height:.96; }
.gpv-display .elementor-heading-title,.gpv-green-text { color:var(--gpv-green); }
.gpv-button .elementor-button { min-height:42px; border-radius:999px; background:var(--gpv-green); font-family:"DM Sans",sans-serif; font-weight:700; }
.gpv-button--outline .elementor-button { color:var(--gpv-green); border:1px solid var(--gpv-green); background:transparent; }
.gpv-section--wash { background:var(--gpv-wash); }
.gpv-eyebrow .elementor-heading-title { color:var(--gpv-green); font-family:"DM Sans",sans-serif; font-size:16px; font-weight:500; letter-spacing:0; }
.gpv-image-collage { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:170px 170px 170px; gap:18px; }
.gpv-image-collage .elementor-widget-image { height:100%; min-height:0; overflow:hidden; border-radius:18px; background:var(--gpv-aqua); }
.gpv-image-collage .elementor-widget-image img { width:100%; height:100%; object-fit:cover; }
.gpv-image-collage .elementor-widget-image:nth-child(1),.gpv-image-collage .elementor-widget-image:nth-child(4) { grid-row:span 2; }
.gpv-image-collage .elementor-widget-image:nth-child(1) { background:var(--gpv-deep); }
.gpv-service-card { height:100%; overflow:hidden; border:1px solid var(--gpv-deep); border-radius:9px; background:#fff; }
.gpv-service-card > .e-con-inner { min-height:222px; padding:0 22px 22px; }
.gpv-service-card .elementor-heading-title { min-height:62px; display:flex; align-items:center; margin:0 -22px 14px; padding:15px 17px; color:#fff; background:var(--gpv-deep); font-family:Poppins,sans-serif; font-size:18px; line-height:1.1; }
.gpv-service-card .elementor-button { padding:0; color:var(--gpv-green); background:transparent; font-size:13px; }
.gpv-testimonial-media img { width:100%; height:324px; object-fit:cover; border-radius:12px; }
.gpv-testimonial-copy { height:100%; min-height:324px; border-radius:12px; color:#fff; background:var(--gpv-green); }
.gpv-testimonial-copy > .e-con-inner { display:flex; height:100%; justify-content:center; padding:48px; }
.gpv-testimonial-copy .elementor-heading-title { color:#f9cf48; letter-spacing:4px; }
.gpv-testimonial-copy .elementor-widget-text-editor { font-size:16px; font-weight:500; line-height:1.55; }
.gpv-testimonial-copy .elementor-widget-text-editor:last-child { color:var(--gpv-aqua); font-size:13px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; }
.gpv-ticker { overflow:hidden; color:#fff; background:var(--gpv-deep); }
.gpv-ticker .elementor-heading-title { padding:14px 0; color:#fff; font-family:"DM Sans",sans-serif; font-size:12px; white-space:nowrap; }
.gpv-ticker .elementor-heading-title span { margin-right:22px; }
.gpv-process-card { min-height:210px; border:1px solid var(--gpv-green); border-radius:9px; background:#fff; }
.gpv-process-card > .e-con-inner { padding:28px 22px; }
.gpv-process-card:nth-child(2) { transform:translateY(-20px); }.gpv-process-card:nth-child(3) { transform:translateY(-40px); }
.gpv-process-number .elementor-heading-title { display:grid; width:36px; height:36px; margin:-28px 0 28px -22px; place-items:center; color:#fff; background:var(--gpv-green); font-family:"DM Sans",sans-serif; font-size:14px; }
.gpv-contact-card { border-radius:18px; background:var(--gpv-wash); }.gpv-contact-card > .e-con-inner { padding:44px 68px; }
.gpv-contact-card .elementor-field { padding:10px 0; border:0; border-bottom:1px solid #263233; border-radius:0; background:transparent; }
.gpv-contact-card .elementor-button { min-height:42px; border-radius:999px; background:var(--gpv-green); font-weight:700; }
.gpv-site-header { position:relative; z-index:20; background:var(--gpv-mint); }
.gpv-site-header .e-con-inner { min-height:106px; align-items:center; }
.gpv-site-header .elementor-widget-image { width:auto; }
.gpv-site-header .elementor-widget-container a { font-family:Poppins,sans-serif; font-size:15px; font-weight:500; color:var(--gpv-ink); text-decoration:none; transition:color .2s; }
.gpv-site-header .elementor-widget-container a:hover { color:var(--gpv-green); font-weight:700; }
.gpv-site-header .elementor-button { min-height:42px; border-radius:999px; background:var(--gpv-green); font-family:"DM Sans",sans-serif; font-weight:700; }
.gpv-site-footer { background:var(--gpv-deep); color:#fff; }
.gpv-site-footer .e-con-inner { padding:48px 0; align-items:center; }
.gpv-site-footer .elementor-widget-container a:hover { text-decoration:underline; }
.gpv-site-footer .elementor-widget-container a { color:rgba(255,255,255,.85); font-family:"DM Sans",sans-serif; font-size:14px; text-decoration:none; }
.gpv-hero-art { position:relative; min-height:480px; }
.gpv-hero-art__orbit { position:absolute; top:24px; right:22px; width:420px; height:420px; border:2px solid var(--gpv-green); border-radius:50%; opacity:.9; }
.gpv-hero-art__orbit::before { content:""; display:block; margin:30px; height:calc(100% - 60px); border:1px solid var(--gpv-aqua); border-radius:50%; }
.gpv-hero-card { position:absolute; display:grid; place-items:center; width:195px; height:128px; border-radius:10px; box-shadow:0 14px 38px rgba(8,55,51,.08); overflow:hidden; }
.gpv-hero-card::before { content:""; width:70px; height:70px; border:8px solid currentColor; border-radius:50%; opacity:.75; }
.gpv-hero-card--one { top:91px; right:12px; background:linear-gradient(135deg,#f6fffd,#d9ebe7); transform:rotate(4deg); color:var(--gpv-green); }
.gpv-hero-card--two { top:211px; left:42px; background:linear-gradient(135deg,#e1f3ef,#99d5ca); transform:rotate(-6deg); color:var(--gpv-deep); }
.gpv-hero-card--three { right:160px; bottom:48px; background:var(--gpv-deep); transform:rotate(7deg); color:#fff; }
.gpv-illustration { position:relative; min-height:170px; border-radius:18px; background:var(--gpv-aqua); overflow:hidden; }
.gpv-illustration--tall { min-height:360px; background:var(--gpv-green); grid-row:span 2; }
.gpv-illustration--shelf { background:#b4eee4; }
.gpv-illustration::after { content:""; position:absolute; inset:22%; border:4px solid var(--gpv-ink); border-radius:44% 52% 42% 50%; transform:rotate(-14deg); }
.gpv-illustration--tall::before { content:""; position:absolute; left:37%; top:23%; width:27%; height:56%; border-radius:48% 48% 12px 12px; background:#fff; box-shadow:-32px 88px 0 -3px #fff, 32px 88px 0 -3px #fff; }
.gpv-illustration--tall::after { inset:auto; left:30%; top:12%; width:42%; height:25%; border-radius:50%; background:#fff; border:0; }
.gpv-illustration--shelf::after { border-radius:4px; transform:none; inset:30% 15%; box-shadow:0 28px 0 -1px var(--gpv-ink), 0 56px 0 -1px var(--gpv-ink); }
.gpv-illustration--small::after { border-radius:50%; inset:26%; }
.gpv-audience-card { border:1px solid var(--gpv-green); border-radius:9px; background:#fff; }
.gpv-audience-card > .e-con-inner { padding:22px 24px 22px 54px; }
.gpv-process-number { display:inline-flex; width:36px; height:36px; align-items:center; justify-content:center; color:#fff; background:var(--gpv-green); font-weight:700; font-size:14px; }
.gpv-post-card { overflow:hidden; border-bottom:1px solid var(--gpv-line); }
.gpv-post-card-image { aspect-ratio:1.38; border-radius:9px; background:linear-gradient(135deg,#abd0c9,#edf4ef 48%,#d0a887); }
@media (max-width:767px) { .gpv-hero,.gpv-hero .e-con-inner { min-height:auto; }.gpv-image-collage { max-width:410px; margin:auto; }.gpv-process-card:nth-child(2),.gpv-process-card:nth-child(3) { transform:none; }.gpv-contact-card > .e-con-inner { padding:30px 25px; }.gpv-testimonial-copy > .e-con-inner { padding:32px; }.gpv-site-header .e-con-inner { min-height:82px; }.gpv-site-footer .e-con-inner { flex-direction:column; gap:20px; text-align:center; } }