.rsv-service-cards,.rsv-project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.rsv-service-cards{margin-top:36px;text-align:left}
.rsv-service-cards article{padding:25px;background:#fff;color:#161924;border-radius:4px;box-shadow:0 3px 18px #10132214}
.rsv-service-cards h3,.rsv-project-card h3{font-size:20px;line-height:1.3;margin:0 0 8px;color:#101322}
.rsv-service-cards p,.rsv-project-card p{margin:0;font-size:14px;line-height:1.5;color:#525965}
.rsv-home-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.rsv-home-actions-center{justify-content:center}
.rsv-home-action{display:inline-block;padding:10px 18px;background:#0074d9;color:#fff!important;border-radius:4px;font-weight:600}
.rsv-home-action:hover{background:#005fac}
.rsv-project-filters,.rsv-project-pages,.rsv-related-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:20px 0}
.rsv-project-filters a,.rsv-project-pages a,.rsv-related-controls button{padding:8px 12px;border:1px solid #dce0e6;border-radius:4px;color:#273142;background:#fff;text-decoration:none}
.rsv-project-filters a[aria-current],.rsv-project-pages a[aria-current]{background:#0069bf;color:#fff;border-color:#0069bf}
.rsv-project-card{min-width:0;text-align:left;overflow:hidden;border:1px solid #e8e9ed;border-radius:4px;background:#fff}
.rsv-project-card a{display:block;text-decoration:none}
.rsv-project-card h3,.rsv-project-card p{padding:0 14px}
.rsv-project-card p{padding-bottom:14px}
.rsv-project-image{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;background:#f6f7f9;margin-bottom:14px}
.rsv-related-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 36px)/3);gap:18px;overflow-x:auto;scroll-snap-type:x mandatory}
.rsv-related-track .rsv-project-card{scroll-snap-align:start}
.rsv-related-controls button:disabled{opacity:.4}
.rsv-related-controls[hidden]{display:none}
@media(max-width:850px){.rsv-service-cards,.rsv-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rsv-related-track{grid-auto-columns:calc((100% - 18px)/2)}}
@media(max-width:520px){.rsv-service-cards,.rsv-project-grid{grid-template-columns:minmax(0,1fr)}.rsv-related-track{grid-auto-columns:90%}}

/* RSV homepage, matched to the original menu, portfolio, and About sections. */
body.home .rsv-home-bar {
    background: linear-gradient(106deg,#04060b 0%,#10182e 43%,#0e1528 64%,#030509 100%);
    color: #fff;
    min-height: 70px;
    font: 400 16px/1.5 Arial,sans-serif;
    padding-inline: 20px;
    box-shadow: none;
}
body.home .rsv-home-bar a { color: #fff; }
body.home .rsv-home-bar a:hover,body.home .rsv-home-bar a:focus-visible { color: #36e5a0; }
body.home .rsv-home-bar > nav a { position: relative; padding-block: 8px; }
body.home .rsv-home-bar > nav a:first-child::after {
    content: ''; position: absolute; inset: auto 0 3px; height: 2px; background: #03d87d;
}
body.home .rsv-home-bar .rsv-home-contact {
    color: #fff; border: 0; display: flex; align-items: center; gap: 12px; padding-inline: 0;
}
.rsv-home-contact::before {
    content: ''; width: 22px; height: 18px; border: 2px solid #03d87d; border-radius: 55%;
    transform: skew(-10deg); flex-shrink: 0;
}
body.home [data-elementor-id="6243"] > .e-con:has(.rsv-home-bar) { background: #0d1428; }

body.home #portfolio .elementor-heading-title,body.home #about .elementor-heading-title {
    color: #0b0f1f;
}
body.home #portfolio h2,body.home #about h2 {
    font-family: Comfortaa,Arial,sans-serif;
    font-weight: 900;
    font-size: clamp(28px,2.15vw,42px);
    line-height: 1.28;
}
body.home #portfolio .elementor-element-7e98b4d .elementor-heading-title,
body.home #about .elementor-element-2501a57 .elementor-heading-title {
    color: #0076e8; font: 800 clamp(16px,1.2vw,23px)/1.25 Arial,sans-serif;
}
body.home #portfolio { padding-top: clamp(65px,6.5vw,135px); padding-bottom: 0; }
body.home #portfolio .elementor-element-4b6e60d { display:none; }
body.home [data-elementor-id="6243"] > .elementor-element-9472f99 { padding-top: 0; }
body.home .rsv-project-browser { width:min(80vw,1680px); margin: 0 auto; }
body.home .rsv-project-filters {
    gap: 10px 12px; margin: 0 0 38px; align-items: center;
    font: 400 clamp(13px,.84vw,17px)/1.35 Arial,sans-serif;
}
body.home .rsv-project-filters a {
    border: 0; background: transparent; color: #0b0f1f; padding: 7px 10px;
}
body.home .rsv-project-filters a[aria-current] { background: #0077e8; color: #fff; }
body.home .rsv-project-grid { grid-template-columns:repeat(4,minmax(0,1fr));gap:34px 20px; }
body.home .rsv-project-card { border:0; border-radius:0; text-align:center; background:transparent; }
body.home .rsv-project-image {
    aspect-ratio: 1.31; object-fit:cover; background:transparent; border-radius:6px; margin-bottom:22px;
}
body.home .rsv-project-card h3 {
    color:#0b0f1f; font:500 clamp(17px,1.22vw,24px)/1.42 Arial,sans-serif; margin-bottom:10px;
}
body.home .rsv-project-card p {
    font:400 clamp(13px,.87vw,17px)/1.55 Arial,sans-serif; color:#6f7480; padding:0 4px 12px;
}

body.home #about .elementor-element-c41c072 > .elementor-container { max-width: min(1200px,94vw); }
body.home #about .elementor-element-c9921ae > .elementor-container,
body.home #about .elementor-element-d0aa391 > .elementor-container { max-width:min(92vw,1700px); }
body.home #about .elementor-element-c9921ae { margin-top:clamp(30px,4vw,72px); }
body.home #about .elementor-element-45c36e2 > .elementor-element-populated { padding-right:clamp(12px,3vw,60px); }
body.home #about .elementor-element-a0a8d1d > .elementor-element-populated { padding-left:clamp(12px,2vw,40px); }
body.home #about h3 { font:400 clamp(22px,1.65vw,31px)/1.3 Arial,sans-serif; }
body.home #about .elementor-widget-text-editor p { font:400 clamp(16px,1.08vw,21px)/1.68 Arial,sans-serif; color:#61666e; }
body.home #about .rsv-about-highlights {
    list-style:none; padding:0; margin:0 0 42px; display:grid; gap:24px;
    color:#0b0f1f; font:400 clamp(17px,1.26vw,24px)/1.5 Arial,sans-serif;
}
.rsv-about-highlights li { display:flex; gap:26px; align-items:baseline; }
.rsv-about-highlights li::before { content:'\203a'; color:#03c97e; font-size:32px; line-height:.7; }
.rsv-about-actions { gap:24px; margin-top:0; }
.rsv-about-actions .rsv-home-action {
    text-align:center; width:min(225px,100%); padding:17px 12px; font:400 16px/1.45 Arial,sans-serif;
}
.rsv-about-actions .rsv-home-action:last-child { background:#eaf2fc; color:#006dcc!important; }
body.home #about .elementor-counter-number-wrapper { color:#0076e8; font:400 clamp(42px,3.35vw,62px)/1.1 Arial,sans-serif; }
body.home #about .elementor-element-d0aa391 { margin-top:clamp(35px,4vw,75px); }
body.home #about .elementor-element-d0aa391 h5 { color:#0b0f1f; font:400 clamp(16px,1.2vw,23px)/1.35 Arial,sans-serif; }
@media(max-width:989px) {
    body.home .rsv-home-bar details nav { background:#10182e; }
    body.home .rsv-home-bar .rsv-home-contact { gap:7px; }
    body.home .rsv-project-browser { width:100%; }
    body.home .rsv-project-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:767px) {
    body.home .rsv-home-bar { padding-inline:14px; }
    body.home #about .elementor-element-c9921ae > .elementor-container > .elementor-column > .elementor-element-populated { padding:0; }
    body.home #about .elementor-element-a0a8d1d { margin-top:24px; }
    body.home #about .rsv-about-highlights { margin-bottom:25px; gap:16px; }
    .rsv-about-actions { gap:12px; }
    .rsv-about-actions .rsv-home-action { width:auto; flex:1 0 115px; }
}
@media(max-width:520px) {
    body.home .rsv-project-grid { grid-template-columns:minmax(0,1fr); }
    body.home .rsv-project-filters { margin-bottom:24px; }
}

body.home .rsv-home-bar .rsv-home-contact { position:relative; }
.rsv-home-contact::after {
    content:''; position:absolute; left:1px; top:calc(50% + 5px); width:6px; height:5px;
    background:#070b14; border-left:2px solid #03d87d; border-bottom:2px solid #03d87d;
    transform:skew(-24deg) rotate(-12deg);
}
body.home #portfolio .elementor-element-5908c33,
body.home #about .elementor-element-56d5411 {
    width:min(1150px,100%) !important; max-width:min(1150px,100%) !important;
}
body.home #about > .elementor-container { max-width:min(92vw,1700px); }
body.home #about .elementor-element-c9921ae { margin-top:clamp(20px,2.7vw,50px); }
body.home #about .elementor-element-d0aa391 { margin-top:clamp(30px,3.2vw,60px); }

body.home #services > .elementor-container { max-width:min(89vw,1720px); }
body.home #services .elementor-element-0a060b7 { width:100%; max-width:100%; }
body.home #services .elementor-element-5fce68f .elementor-heading-title {
    color:#03c97e; font:800 clamp(16px,1.2vw,23px)/1.25 Arial,sans-serif;
}
body.home #services h2 {
    max-width:min(830px,100%); margin-inline:auto; color:#0b0f1f;
    font:900 clamp(28px,2.15vw,42px)/1.28 Comfortaa,Arial,sans-serif;
}
body.home #services .rsv-service-cards {
    grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(20px,3.7vw,72px);
    margin-top:clamp(40px,5.7vw,112px); text-align:center;
}
body.home #services .rsv-service-cards article { background:transparent; box-shadow:none; border-radius:0; padding:0; }
.rsv-service-icon {
    display:grid; place-items:center; width:clamp(68px,4.65vw,92px); aspect-ratio:1;
    margin:0 auto clamp(16px,1.25vw,25px); border-radius:50%; background:#005bb8; color:#fff;
    font-size:clamp(29px,2vw,40px);
}
.rsv-service-icon svg { width:1em; height:1em; fill:currentColor; }
body.home #services .rsv-service-cards h3 {
    color:#0b0f1f; font:400 clamp(20px,1.55vw,31px)/1.3 Arial,sans-serif;
    margin:0 0 clamp(12px,1.2vw,24px);
}
body.home #services .rsv-service-cards p {
    color:#666; font:400 clamp(15px,1.03vw,21px)/1.65 Arial,sans-serif;
    max-width:510px; margin:auto;
}
@media(max-width:767px) {
    body.home #services .rsv-service-cards { grid-template-columns:minmax(0,1fr); gap:36px; }
    body.home #services > .elementor-container { max-width:94vw; }
}

body.page-id-17 [data-elementor-id="17"] > section > .elementor-container { max-width:min(84vw,1550px); }
body.page-id-17 .elementor-element-4fda108 h1 {
    color:#0b0f1f; font:700 clamp(35px,2.7vw,52px)/1.15 Arial,sans-serif;
}
body.page-id-17 .elementor-element-63d0f62 h3 {
    color:#0b0f1f; font:400 clamp(22px,1.42vw,27px)/1.3 Arial,sans-serif;
}
body.page-id-17 .elementor-element-3505e2b > .elementor-container:has(.rsv-contact-phone) {
    display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(25px,3.5vw,66px); align-items:stretch;
}
body.page-id-17 .elementor-element-3505e2b > .elementor-container:has(.rsv-contact-phone) > .elementor-element-0f78b0c { display:none; }
body.page-id-17 .elementor-element-3505e2b > .elementor-container:has(.rsv-contact-phone) > .elementor-element-4431267 { width:auto; }
body.page-id-17 .elementor-element-4431267 > .elementor-element-populated { padding-inline:0; }
body.page-id-17 [data-elementor-id="17"] .elementor-widget-text-editor {
    color:#63666c; font:400 clamp(15px,1vw,18px)/1.7 Arial,sans-serif;
}
body.page-id-17 .elementor-form .elementor-field-label { color:#0b0f1f; font:400 15px/1.4 Arial,sans-serif; }
body.page-id-17 .elementor-form .elementor-field-textual { border:1px solid #dedfe2; color:#0b0f1f; min-height:40px; border-radius:4px; }
body.page-id-17 .elementor-form textarea.elementor-field-textual { min-height:115px; }
body.page-id-17 .elementor-form .elementor-button { background:#0075df; border:0; color:#fff; min-height:40px; border-radius:4px; }
body.page-id-17 .elementor-form .elementor-button:hover { background:#005eb7; }
.rsv-contact-phone {
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    min-height:clamp(380px,28.8vw,546px); padding:30px 15px; background:#fff;
    box-shadow:0 0 28px #0002; text-align:center; color:#0b0f1f;
}
.rsv-contact-icon { width:24px; height:24px; display:block; color:#0078e9; }
.rsv-contact-phone .rsv-contact-icon { width:42px; height:42px; margin-bottom:24px; }
.rsv-contact-phone a { color:#0b0f1f; font:400 clamp(25px,2.15vw,41px)/1.3 Arial,sans-serif; text-decoration:none; }
.rsv-contact-phone p { color:#63666c; margin:12px 0 0; font:400 16px/1.5 Arial,sans-serif; }
.rsv-contact-detail-heading h2 { margin:14px 0 24px; color:#0b0f1f; font:400 clamp(20px,1.25vw,24px)/1.35 Arial,sans-serif; }
.rsv-contact-social { display:grid; gap:12px; margin-top:8px; }
.rsv-contact-social a { color:#777d87; display:flex; gap:12px; align-items:center; font:400 13px/1.45 Arial,sans-serif; width:max-content; }
.rsv-contact-social svg { width:18px; height:18px; fill:currentColor; }
@media(max-width:767px) {
    body.page-id-17 [data-elementor-id="17"] > section > .elementor-container { max-width:92vw; }
    body.page-id-17 .elementor-element-3505e2b > .elementor-container:has(.rsv-contact-phone) { grid-template-columns:minmax(0,1fr); }
    .rsv-contact-phone { min-height:250px; }
}

body.page-id-17 .elementor-4609 > .elementor-element-8a0bf64 {
    width:100%; max-width:100%; padding-inline:0!important;
}
body.page-id-17 .elementor-element-2ac00bd > .elementor-element-populated,
body.page-id-17 .elementor-element-3d799f88 > .elementor-element-populated { padding-left:0; }

/* Keep the original white-at-top / compact black-on-scroll menu behavior. */
body header[data-elementor-id="3971"] {
    position:sticky!important; top:0; z-index:30!important; font-family:Manrope,sans-serif;
}
body.admin-bar header[data-elementor-id="3971"] { top:32px; }
body header[data-elementor-id="3971"] .elementor-nav-menu .elementor-item,
body header[data-elementor-id="3971"] .rsv-header-contact,
body.home .rsv-home-bar { font-family:Manrope,sans-serif; }
body header[data-elementor-id="3971"].rsv-interior-compact {
    background:#000; min-height:70px; margin-bottom:40px;
}
body header[data-elementor-id="3971"].rsv-interior-compact > .elementor-element-785b672 > .elementor-container {
    min-height:70px; height:70px;
}
body header[data-elementor-id="3971"].rsv-interior-compact .elementor-nav-menu--main .elementor-item,
body header[data-elementor-id="3971"].rsv-interior-compact .elementor-menu-toggle { color:#fbfbfb; }
body header[data-elementor-id="3971"].rsv-interior-compact .rsv-header-contact { color:#03d87d!important; }
body header[data-elementor-id="3971"].rsv-interior-compact .elementor-nav-menu--dropdown.elementor-nav-menu__container { background:#101010; }
body header[data-elementor-id="3971"].rsv-interior-compact .elementor-nav-menu--dropdown .elementor-item { color:#fbfbfb; }
body.home .rsv-home-stuck .rsv-home-bar { background:#000; }
body.home .rsv-home-stuck .rsv-home-contact::after { background:#000; }

body.home .rsv-project-card h3,
body.home .rsv-project-card p,
body.home .rsv-project-filters,
body.home #about .elementor-widget-text-editor p,
body.home #about .rsv-about-highlights,
body.home #about .rsv-about-actions .rsv-home-action,
body.home #about .elementor-counter-number-wrapper,
body.home #services .rsv-service-cards h3,
body.home #services .rsv-service-cards p { font-family:Manrope,sans-serif; }
body.page-id-17 [data-elementor-id="17"] .elementor-widget-text-editor { font:400 16px/1.7 Manrope,sans-serif; color:#666; }
body.page-id-17 .elementor-form .elementor-field-label { font:400 14px/1.6 Manrope,sans-serif; }
body.page-id-17 .elementor-form .elementor-field-textual { font:400 15px/1.6 Manrope,sans-serif; }
body.page-id-17 .elementor-form .elementor-button { font:400 12px/1 Manrope,sans-serif; }
body.page-id-17 .rsv-contact-phone a,
body.page-id-17 .rsv-contact-phone p,
body.page-id-17 .rsv-contact-detail-heading h2 { font-family:Manrope,sans-serif; }
body.page-id-17 .rsv-contact-social a { font:400 12px/1.2 Manrope,sans-serif; color:#666d7c; }
@media(max-width:989px) {
    body header[data-elementor-id="3971"].rsv-interior-compact { margin-bottom:2px; }
}
@media(max-width:782px) {
    body.admin-bar header[data-elementor-id="3971"] { top:46px; }
}
@media(max-width:600px) {
    body.admin-bar header[data-elementor-id="3971"] { top:0; }
}

body.home #portfolio h2,body.home #about h2,body.home #services h2 { font-family:Comfortaa,sans-serif; }
body:is(.page-id-2383,.page-id-2385) [data-elementor-type="wp-page"] {
    color:#666; font:400 16px/1.7 Manrope,sans-serif;
}
body:is(.page-id-2383,.page-id-2385) [data-elementor-type="wp-page"] h2 {
    color:#0b0f1f; font:900 clamp(25px,2vw,34px)/1.3 Comfortaa,sans-serif;
}
.rsv-news-list { width:min(840px,100%); font:400 16px/1.7 Manrope,sans-serif; color:#666; }
.rsv-news-card { display:grid; grid-template-columns:150px minmax(0,1fr); gap:30px; margin-bottom:30px; padding:20px 0; }
.rsv-news-image img { width:150px; height:150px; object-fit:cover; border-radius:4px; }
.rsv-news-card h2 { margin:0 0 8px; font:500 24px/1.4 Manrope,sans-serif; }
.rsv-news-card h2 a { color:#0b0f1f; }
.rsv-news-meta { display:flex; flex-wrap:wrap; gap:7px 12px; color:#727784; font-size:14px; }
.rsv-news-meta a { color:inherit; }
.rsv-news-card p { margin:14px 0; }
.rsv-news-read { display:inline-block; padding:8px 14px; border-radius:4px; background:#0075df; color:#fff!important; font-size:12px; }
@media(max-width:520px) { .rsv-news-card { grid-template-columns:minmax(0,1fr); gap:16px; } }

/* Keep the original logo row underneath the replacement menu and CTA. */
body header[data-elementor-id="3971"] > .elementor-element-785b672 { z-index:1!important; }
body header[data-elementor-id="3971"] > .elementor-element-75f7db6 { z-index:2; }
body header[data-elementor-id="3971"] > .elementor-element-afbd3fa { z-index:3; pointer-events:none; }
body header[data-elementor-id="3971"] .rsv-header-contact { pointer-events:auto; }

/* Size the centered Elementor container to the grid so neither side can overflow. */
body.home [data-elementor-id="6243"] > .elementor-element-9472f99 > .e-con-inner {
    width:min(80vw,1680px); max-width:100%; margin-inline:auto;
}
body.home .rsv-project-browser { width:100%; max-width:100%; margin-inline:auto; }
@media(max-width:989px) {
    body.home [data-elementor-id="6243"] > .elementor-element-9472f99 > .e-con-inner { width:100%; }
}

/* Apply the RSV font pairing to Elementor content and custom components. */
body.wp-theme-hello-elementor {
    --e-global-typography-primary-font-family:Lato;
    --e-global-typography-secondary-font-family:Lato;
    --e-global-typography-text-font-family:Inter;
    --e-global-typography-accent-font-family:Inter;
    font-family:Inter,Arial,sans-serif;
}
body.wp-theme-hello-elementor :is(p,li,a,button,input,textarea,select,label,summary,time,.elementor-button-text,.elementor-counter-number-wrapper,.rsv-project-icon-title,.rsv-footer-copy):not([class*="icon"]):not(.elementor-heading-title) {
    font-family:Inter,Arial,sans-serif!important;
}
body.wp-theme-hello-elementor :is(h1,h2,h3,h4,h5,h6,.elementor-heading-title,.rsv-footer-brand strong),
body.wp-theme-hello-elementor :is(h1,h2,h3,h4,h5,h6) a {
    font-family:Lato,Arial,sans-serif!important;
}

body.wp-theme-hello-elementor .rsv-project-icon-title { font-family:Inter,Arial,sans-serif!important; }

/* The inherited Services offset overlaps the preceding portfolio pagination. */
body.home [data-elementor-id="6243"] > #services { margin-top:0!important; }
