
/* ===== SOURCE: styles.css ===== */
:root{
  --navy:#07111F;
  --navy-2:#0A1828;
  --navy-3:#1A2B4C;
  --red:#D32F2F;
  --red-2:#B92525;
  --off:#F5F2EC;
  --cream:#F8F5EF;
  --white:#FFFFFF;
  --line:rgba(26,43,76,.14);
  --line-dark:rgba(255,255,255,.14);
  --text:#111827;
  --muted:#4C5565;
  --soft:#E8E6E1;
  --shadow:0 34px 90px rgba(7,17,31,.18);
  --ease:cubic-bezier(.22,.61,.36,1);
  --display:"Arial Narrow","Helvetica Neue Condensed",Impact,system-ui,sans-serif;
  --sans:"Inter","Segoe UI",Roboto,Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--navy)}
body{margin:0;font-family:var(--sans);background:var(--off);color:var(--text);overflow-x:hidden;text-rendering:geometricPrecision;-webkit-font-smoothing:antialiased}
img,video,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
.container{width:min(100% - 96px,1440px);margin-inline:auto}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:12px;left:12px;z-index:9999;background:var(--red);color:#fff;padding:12px 16px;border-radius:999px;transform:translateY(-140%);transition:transform .3s var(--ease);font-weight:900}.skip-link:focus{transform:translateY(0)}

/* Header */
.site-header{position:fixed;z-index:1000;top:0;left:0;width:100%;height:112px;padding:26px 7.6vw;display:flex;align-items:flex-start;justify-content:space-between;transition:height .32s var(--ease),background .32s var(--ease),backdrop-filter .32s var(--ease),padding .32s var(--ease),border .32s var(--ease)}
.site-header.is-scrolled,.site-header.is-menu-open{height:92px;padding-top:18px;background:rgba(7,17,31,.82);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.08)}
.header-logo{display:block;width:250px;filter:drop-shadow(0 10px 26px rgba(0,0,0,.26));transition:width .32s var(--ease),transform .32s var(--ease)}
.site-header.is-scrolled .header-logo{width:202px}.header-logo img{width:100%;height:auto}
.menu-toggle{width:64px;height:54px;border:0;background:transparent;display:grid;place-content:center;gap:7px;cursor:pointer;color:#fff;margin-top:4px}
.menu-toggle span{width:34px;height:2px;background:currentColor;border-radius:10px;display:block;box-shadow:0 1px 12px rgba(0,0,0,.22);transition:transform .28s var(--ease),width .28s var(--ease),opacity .28s var(--ease)}
.menu-toggle:hover span:nth-child(2){width:42px}.menu-toggle:focus-visible{outline:3px solid rgba(211,47,47,.8);outline-offset:6px;border-radius:16px}

/* Fullscreen menu */
.fullscreen-menu{position:fixed;inset:0;z-index:2000;visibility:hidden;pointer-events:none}.fullscreen-menu.is-open{visibility:visible;pointer-events:auto}.menu-scrim{position:absolute;inset:0;background:rgba(0,0,0,.55);opacity:0;transition:opacity .32s var(--ease)}.fullscreen-menu.is-open .menu-scrim{opacity:1}.menu-panel{position:absolute;inset:0;background:radial-gradient(circle at 14% 26%,rgba(255,255,255,.08),transparent 36%),linear-gradient(135deg,#07111F,#0A1726 68%,#060B13);color:#fff;padding:42px 56px 32px;overflow:auto;transform:translateY(-18px);opacity:0;transition:transform .38s var(--ease),opacity .38s var(--ease)}.fullscreen-menu.is-open .menu-panel{transform:none;opacity:1}.menu-panel::before{content:"";position:absolute;inset:0;opacity:.14;background-image:linear-gradient(rgba(255,255,255,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);background-size:92px 92px;pointer-events:none}.menu-top,.menu-content,.menu-signature{position:relative;z-index:1}.menu-top{display:flex;align-items:center;justify-content:space-between}.menu-top img{width:245px}.menu-close{display:flex;gap:18px;align-items:center;border:0;background:transparent;color:#fff;text-transform:uppercase;letter-spacing:.28em;font-size:12px;font-weight:900;cursor:pointer}.menu-close i{width:42px;height:42px;position:relative}.menu-close i::before,.menu-close i::after{content:"";position:absolute;left:0;top:50%;width:42px;height:2px;background:#fff}.menu-close i::before{transform:rotate(45deg)}.menu-close i::after{transform:rotate(-45deg)}.menu-content{display:grid;grid-template-columns:.72fr 1.28fr;gap:48px;margin-top:56px}.menu-links{display:grid;gap:2px;align-content:start}.menu-links a,.services-trigger{font-family:var(--display);font-size:clamp(54px,6vw,96px);line-height:.9;letter-spacing:-.06em;text-transform:uppercase;font-weight:600;color:#fff;background:transparent;border:0;text-align:left;padding:0;cursor:pointer}.services-trigger{color:var(--red)}.menu-services{background:var(--off);border:1px solid rgba(255,255,255,.52);border-radius:30px;color:var(--navy);padding:38px;box-shadow:0 50px 150px rgba(0,0,0,.42)}.menu-services-head p{margin:0 0 10px;color:var(--red);font-size:12px;letter-spacing:.24em;text-transform:uppercase;font-weight:900}.menu-services-head h2{font-family:var(--display);font-size:clamp(46px,4vw,78px);line-height:.9;margin:0;text-transform:uppercase;letter-spacing:-.055em}.menu-services-head span{display:block;margin-top:12px;line-height:1.55;color:var(--muted);font-weight:700}.menu-services-head div{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:24px 0}.menu-services-head a{text-transform:uppercase;letter-spacing:.1em;font-size:12px;font-weight:900}.red-pill{background:var(--red);color:#fff;padding:13px 18px;border-radius:999px;box-shadow:0 14px 30px rgba(211,47,47,.24)}.menu-service-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.menu-service-grid article{background:rgba(255,255,255,.62);border:1px solid var(--line);border-radius:18px;padding:18px}.menu-service-grid small{display:inline-flex;background:rgba(211,47,47,.12);color:var(--red);border-radius:999px;padding:6px 8px;font-weight:900}.menu-service-grid h3{display:inline-block;margin:0 0 14px 10px;font-size:13px;text-transform:uppercase;letter-spacing:.14em}.menu-service-grid a{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--line);font-weight:800}.menu-service-grid b{color:var(--red)}.menu-signature{margin-top:36px;text-transform:uppercase;letter-spacing:.42em;color:rgba(255,255,255,.45);font-weight:900}

/* Shared */
.kicker{margin:0 0 28px;display:flex;align-items:center;gap:16px;color:var(--red);font-size:12px;line-height:1;text-transform:uppercase;letter-spacing:.26em;font-weight:1000}.kicker span{width:52px;height:2px;background:currentColor;display:inline-block}.kicker.dark{color:var(--red)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:22px;min-height:66px;padding:0 32px;border-radius:8px;text-transform:uppercase;letter-spacing:.05em;font-weight:1000;font-size:15px;transition:transform .28s var(--ease),box-shadow .28s var(--ease),background .28s var(--ease)}.btn-red{background:linear-gradient(135deg,var(--red),#ed3333);color:#fff;box-shadow:0 22px 54px rgba(211,47,47,.32),0 0 42px rgba(211,47,47,.18)}.btn:hover{transform:translateY(-3px)}.btn-red:hover{background:linear-gradient(135deg,var(--red-2),#f03a3a);box-shadow:0 26px 62px rgba(211,47,47,.44),0 0 50px rgba(211,47,47,.22)}.text-link{display:inline-flex;align-items:center;gap:10px;text-transform:uppercase;letter-spacing:.08em;font-size:13px;font-weight:1000;color:var(--navy);transition:color .24s var(--ease),transform .24s var(--ease)}.text-link:hover{color:var(--red);transform:translateX(3px)}.text-link.light{color:#fff}.text-link.light:hover{color:var(--red)}

/* Hero */
.hero{position:relative;min-height:100vh;background:#050b14;color:#fff;overflow:hidden;padding:132px 0 172px;display:grid;align-items:center}.hero-media,.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-media img{width:100%;height:100%;object-fit:cover;object-position:66% center}.hero-video{z-index:1;opacity:.48;mix-blend-mode:screen;filter:saturate(1.1) contrast(1.04)}.hero-media{z-index:0}.hero-shade{position:absolute;z-index:2;inset:0;background:radial-gradient(circle at 17% 72%,rgba(211,47,47,.28),transparent 22%),linear-gradient(90deg,rgba(7,17,31,.98) 0%,rgba(7,17,31,.9) 31%,rgba(7,17,31,.52) 58%,rgba(7,17,31,.12) 100%),linear-gradient(180deg,rgba(0,0,0,.56) 0%,rgba(0,0,0,.05) 42%,rgba(0,0,0,.66) 100%)}.hero-noise{position:absolute;z-index:3;inset:0;opacity:.15;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:92px 92px}.hero-inner{position:relative;z-index:4}.hero h1{font-family:var(--display);margin:0;max-width:850px;text-transform:uppercase;letter-spacing:-.06em;font-size:clamp(72px,7.3vw,128px);line-height:.93;text-shadow:0 18px 50px rgba(0,0,0,.46)}.hero h1 em{font-style:normal;color:var(--red)}.hero-copy{max-width:760px;color:rgba(255,255,255,.86);font-size:18px;line-height:1.55;margin:28px 0 34px;font-weight:550;text-shadow:0 10px 30px rgba(0,0,0,.32)}
.trusted-hero{position:absolute;z-index:5;left:50%;bottom:26px;transform:translateX(-50%);width:min(100% - 96px,1380px);display:grid;grid-template-columns:54px minmax(0,1fr) 54px;gap:14px;align-items:center;padding:22px;border:1px solid rgba(255,255,255,.2);border-radius:20px;background:linear-gradient(180deg,rgba(13,28,45,.72),rgba(7,17,31,.78));box-shadow:0 28px 80px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.08);backdrop-filter:blur(22px)}.trusted-window{overflow:hidden;position:relative}.trusted-window::before,.trusted-window::after{content:"";position:absolute;z-index:2;top:0;bottom:0;width:90px;pointer-events:none}.trusted-window::before{left:0;background:linear-gradient(90deg,rgba(7,17,31,.94),transparent)}.trusted-window::after{right:0;background:linear-gradient(270deg,rgba(7,17,31,.94),transparent)}.trusted-hero h2{margin:0 0 14px;text-align:center;text-transform:uppercase;letter-spacing:.28em;font-size:12px;color:rgba(255,255,255,.72);font-weight:900}.trusted-track{display:flex;width:max-content;gap:16px;animation:logoScroll 28s linear infinite}.logo-card{height:70px;min-width:230px;display:flex;align-items:center;gap:18px;padding:0 22px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.08);color:rgba(255,255,255,.66);transition:transform .28s var(--ease),color .28s var(--ease),background .28s var(--ease)}.logo-card svg{width:44px;height:44px;fill:currentColor}.logo-card p{margin:0;text-transform:uppercase;letter-spacing:.14em;font-size:17px;font-weight:1000;line-height:1}.logo-card span{display:block;margin-top:8px;font-size:10px;letter-spacing:.55em}.logo-card:hover{transform:translateY(-4px);color:#fff;background:rgba(255,255,255,.12)}.trusted-arrow{width:48px;height:48px;border-radius:999px;border:1px solid rgba(255,255,255,.26);background:rgba(255,255,255,.04);color:#fff;font-size:32px;display:grid;place-items:center;cursor:pointer;transition:background .25s var(--ease),transform .25s var(--ease)}.trusted-arrow:hover{background:rgba(255,255,255,.12);transform:scale(1.04)}.trusted-dots{display:flex;justify-content:center;gap:9px;margin-top:12px}.trusted-dots i{width:7px;height:7px;border-radius:999px;background:rgba(255,255,255,.3)}.trusted-dots .active{width:24px;background:var(--red)}@keyframes logoScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* Mission */
.mission{background:linear-gradient(135deg,#fbfaf7 0%,var(--off) 62%,#ede7dc 100%);padding:86px 0 96px;color:var(--navy);position:relative}.mission::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.3;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:88px 88px}.mission-grid{position:relative;z-index:1;display:grid;grid-template-columns:84px minmax(300px,.72fr) 1fr auto;gap:52px;align-items:center}.mission-icon{width:62px;height:62px;border:2px solid var(--navy);border-radius:999px;display:grid;place-items:center;color:var(--navy)}.mission-icon svg{width:36px;height:36px}.mission h2{font-family:var(--display);font-size:clamp(52px,5.5vw,102px);line-height:.88;margin:0;text-transform:uppercase;letter-spacing:-.055em}.mission-copy{font-size:17px;line-height:1.65;color:var(--muted);font-weight:700;max-width:540px}

/* Services */
.services{background:radial-gradient(circle at 10% 15%,rgba(211,47,47,.12),transparent 22%),linear-gradient(160deg,#07111F 0%,#081522 64%,#06101d 100%);color:#fff;padding:92px 0 104px;position:relative;overflow:hidden}.services::before{content:"";position:absolute;inset:0;opacity:.12;background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:88px 88px}.services-layout{position:relative;z-index:1;display:grid;grid-template-columns:280px 1fr;gap:34px;align-items:start}.services-intro{padding-top:54px}.services-intro h2{font-family:var(--display);font-size:clamp(42px,4.3vw,76px);line-height:.92;margin:0 0 22px;text-transform:uppercase;letter-spacing:-.055em}.services-intro p{color:rgba(255,255,255,.68);line-height:1.6;margin:0 0 28px}.services-intro i,.projects-copy i,.testimonials aside i{display:block;width:72px;height:2px;background:var(--red)}.services-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.service-card{position:relative;min-height:348px;border:1px solid rgba(255,255,255,.22);border-radius:6px;overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.025));box-shadow:0 22px 60px rgba(0,0,0,.22);transition:transform .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease)}.service-card:hover{transform:translateY(-7px);border-color:rgba(211,47,47,.62);box-shadow:0 30px 80px rgba(0,0,0,.34)}.service-card img{width:100%;height:172px;object-fit:cover;filter:saturate(.95) contrast(1.04);transition:transform .45s var(--ease),filter .45s var(--ease)}.service-card:hover img{transform:scale(1.05);filter:saturate(1.08) contrast(1.1) brightness(.9)}.service-card div{padding:18px}.service-card span{position:absolute;top:16px;left:16px;width:34px;height:34px;border:1px solid rgba(255,255,255,.32);border-radius:999px;display:grid;place-items:center;background:rgba(7,17,31,.62);font-size:10px;font-weight:900;color:#fff}.service-card h3{margin:0 0 10px;text-transform:uppercase;letter-spacing:.015em;font-size:18px;color:#fff}.service-card p{margin:0;color:rgba(255,255,255,.72);line-height:1.45;font-size:14px}.service-card b{position:absolute;left:18px;bottom:12px;color:var(--red);font-size:20px}.services-more{grid-column:2;justify-self:center;margin-top:24px;display:inline-flex;gap:10px;text-transform:uppercase;font-size:12px;letter-spacing:.12em;font-weight:1000;color:#fff}.services-more span{color:var(--red)}

/* Reel */
.reel{position:relative;min-height:520px;color:#fff;display:grid;align-items:center;overflow:hidden;background:#06101c}.reel-bg,.reel-bg img,.reel video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.reel video{opacity:.42}.reel-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,17,31,.92),rgba(7,17,31,.62) 42%,rgba(7,17,31,.12)),linear-gradient(180deg,rgba(0,0,0,.22),rgba(0,0,0,.6))}.reel-content{position:relative;z-index:1}.reel h2{font-family:var(--display);font-size:clamp(54px,5.3vw,96px);line-height:.93;margin:0;text-transform:uppercase;letter-spacing:-.055em;max-width:760px}.reel p:not(.kicker){max-width:580px;color:rgba(255,255,255,.78);line-height:1.6}.play-link{display:inline-flex;align-items:center;gap:18px;text-transform:uppercase;letter-spacing:.16em;font-size:13px;font-weight:1000}.play-link span{width:48px;height:48px;border-radius:999px;border:1px solid rgba(255,255,255,.36);display:grid;place-items:center;background:rgba(255,255,255,.08);backdrop-filter:blur(14px)}

/* Projects */
.projects{background:linear-gradient(180deg,#fff 0%,var(--off) 100%);padding:90px 0;color:var(--navy);overflow:hidden}.project-layout{display:grid;grid-template-columns:330px 1fr;gap:52px;align-items:center}.projects-copy h2{font-family:var(--display);font-size:clamp(48px,5vw,86px);line-height:.94;margin:0 0 20px;text-transform:uppercase;letter-spacing:-.055em}.projects-copy p{color:var(--muted);font-size:17px;line-height:1.62;font-weight:700}.project-arrows{display:flex;gap:16px;margin:34px 0 22px}.project-arrows button{width:54px;height:54px;border-radius:999px;border:0;background:#fff;box-shadow:0 14px 34px rgba(7,17,31,.12);color:var(--navy);font-weight:1000;cursor:pointer;transition:transform .24s var(--ease),background .24s var(--ease),color .24s var(--ease)}.project-arrows button:hover{transform:translateY(-3px);background:var(--navy);color:#fff}.project-carousel{overflow:hidden;padding:18px 0 44px}.project-track{display:flex;gap:24px;will-change:transform;transition:transform .52s var(--ease)}.project-card{min-width:430px;max-width:430px;background:#fff;border:1px solid rgba(26,43,76,.12);border-radius:4px;overflow:hidden;box-shadow:0 24px 60px rgba(7,17,31,.1);transition:transform .3s var(--ease),box-shadow .3s var(--ease)}.project-card:hover{transform:translateY(-7px);box-shadow:0 30px 80px rgba(7,17,31,.18)}.project-card img{width:100%;height:270px;object-fit:cover}.project-card div{position:relative;padding:26px 30px 28px;background:linear-gradient(180deg,#fff,var(--cream))}.project-card span{color:var(--red);font-size:11px;text-transform:uppercase;letter-spacing:.24em;font-weight:1000}.project-card h3{font-family:var(--display);font-size:30px;text-transform:uppercase;letter-spacing:-.04em;margin:14px 0 8px}.project-card p{margin:0;color:#718096;font-weight:800}.project-card b{position:absolute;right:28px;bottom:25px;color:var(--red);font-size:24px}.carousel-dots{display:flex;gap:10px;margin-top:16px}.carousel-dots button{width:8px;height:8px;border:0;padding:0;border-radius:999px;background:#cdd3d8;cursor:pointer}.carousel-dots button.is-active{width:28px;background:var(--red)}

/* Approach */
.approach{background:radial-gradient(circle at 75% 35%,rgba(211,47,47,.12),transparent 24%),linear-gradient(150deg,#07111F,#081522 70%,#06101c);color:#fff;padding:86px 0;position:relative;overflow:hidden}.approach::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:62px 62px;opacity:.24}.approach-grid{position:relative;z-index:1;display:grid;grid-template-columns:.92fr 1.15fr;gap:52px;align-items:center}.approach figure{margin:0}.approach figure img{width:100%;height:420px;object-fit:cover;border:1px solid rgba(255,255,255,.18);box-shadow:0 34px 86px rgba(0,0,0,.35)}.approach h2{font-family:var(--display);font-size:clamp(52px,5.3vw,92px);line-height:.9;text-transform:uppercase;letter-spacing:-.055em;margin:0 0 20px}.approach-copy>p:not(.kicker){max-width:700px;color:rgba(255,255,255,.78);line-height:1.62}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:42px 0 24px}.steps article{border-top:1px solid rgba(255,255,255,.16);padding-top:20px}.steps span{width:44px;height:44px;border-radius:999px;border:1px solid rgba(255,255,255,.22);display:grid;place-items:center;color:var(--red);font-size:12px;font-weight:1000}.steps h3{text-transform:uppercase;font-size:14px;letter-spacing:.05em;margin:14px 0 8px}.steps p{margin:0;color:rgba(255,255,255,.64);font-size:13px;line-height:1.5}

/* Testimonials */
.testimonials{background:linear-gradient(180deg,#fff,var(--off));padding:92px 0;color:var(--navy)}.testimonials-grid{display:grid;grid-template-columns:340px 1fr;gap:54px;align-items:center}.testimonials h2{font-family:var(--display);font-size:clamp(52px,5vw,88px);line-height:.95;margin:0 0 26px;text-transform:uppercase;letter-spacing:-.055em}.testimonial-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.testimonial-cards article{background:#fff;border:1px solid rgba(26,43,76,.14);padding:36px;min-height:305px;box-shadow:0 22px 60px rgba(7,17,31,.08)}.testimonial-cards b{display:block;color:var(--red);font-family:Georgia,serif;font-size:70px;line-height:.7;margin-bottom:16px}.testimonial-cards p{margin:0 0 28px;color:#4b5b70;font-size:16px;line-height:1.65;font-weight:650}.testimonial-cards div{display:grid;grid-template-columns:50px 1fr;column-gap:15px;align-items:center}.testimonial-cards span{grid-row:1/3;width:48px;height:48px;border-radius:999px;background:linear-gradient(135deg,#1a2b4c,#07111f);color:#fff;display:grid;place-items:center;font-weight:1000}.testimonial-cards h3{margin:0;text-transform:uppercase;font-size:14px;letter-spacing:.08em}.testimonial-cards small{color:#627085}.testimonial-dots{grid-column:2;display:flex;justify-content:center;gap:10px;margin-top:8px}.testimonial-dots i{width:8px;height:8px;border-radius:999px;background:#cbd1d8}.testimonial-dots .active{background:var(--red)}

/* Final CTA */
.final-cta{position:relative;min-height:540px;color:#fff;display:grid;align-items:center;overflow:hidden;background:#07111f}.final-cta picture,.final-cta img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.final-cta-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,17,31,.95),rgba(7,17,31,.72),rgba(7,17,31,.34)),linear-gradient(180deg,rgba(0,0,0,.4),rgba(0,0,0,.68))}.final-cta-content{position:relative;z-index:1}.final-cta h2{font-family:var(--display);font-size:clamp(56px,6vw,112px);line-height:.9;text-transform:uppercase;letter-spacing:-.06em;margin:0 0 22px;max-width:900px}.final-cta p:not(.kicker){color:rgba(255,255,255,.8);font-size:18px;line-height:1.6;max-width:580px;margin-bottom:34px}

/* Footer */
.site-footer{background:linear-gradient(180deg,#07111F,#050B13);color:#fff;padding:52px 0 24px}.footer-grid{display:grid;grid-template-columns:1.2fr .9fr .75fr 1fr 1fr;gap:36px;align-items:start}.footer-brand img{width:170px;margin-bottom:18px}.footer-brand p,.footer-col p{color:rgba(255,255,255,.62);line-height:1.6;margin:0 0 18px;font-size:13px}.socials{display:flex;gap:10px}.socials a{width:28px;height:28px;border-radius:999px;border:1px solid rgba(255,255,255,.22);display:grid;place-items:center;color:#fff;font-size:12px;font-weight:900}.footer-col{display:grid;gap:10px}.footer-col h3{color:var(--red);font-size:11px;text-transform:uppercase;letter-spacing:.18em;margin:0 0 4px;font-weight:1000}.footer-col a{color:rgba(255,255,255,.72);font-size:13px;line-height:1.2;transition:color .2s var(--ease)}.footer-col a:hover{color:#fff}.newsletter-col form{height:44px;display:grid;grid-template-columns:1fr 48px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14)}.newsletter-col input{min-width:0;background:transparent;border:0;color:#fff;padding:0 14px;outline:0}.newsletter-col input::placeholder{color:rgba(255,255,255,.45)}.newsletter-col button{border:0;background:var(--red);color:#fff;font-size:22px;cursor:pointer}.footer-bottom{margin-top:32px;padding-top:22px;border-top:1px solid rgba(255,255,255,.12);display:flex;align-items:center;justify-content:space-between;gap:20px}.footer-bottom p{margin:0;color:rgba(255,255,255,.55);font-size:12px}.footer-bottom nav{display:flex;gap:24px}.footer-bottom a{color:rgba(255,255,255,.62);font-size:12px}

@media (max-width:1180px){.container{width:min(100% - 56px,1120px)}.site-header{height:104px;padding:24px 36px}.menu-content,.project-layout,.approach-grid,.testimonials-grid,.footer-grid{grid-template-columns:1fr}.mission-grid{grid-template-columns:72px 1fr;align-items:start}.mission-copy,.mission .text-link{grid-column:2}.services-layout{grid-template-columns:1fr}.services-intro{padding-top:0}.services-grid{grid-template-columns:repeat(2,1fr)}.services-more{grid-column:auto}.steps{grid-template-columns:repeat(2,1fr)}.testimonial-cards{grid-template-columns:1fr 1fr}.footer-grid{gap:28px}.trusted-hero{position:relative;left:auto;bottom:auto;transform:none;margin:40px auto 0;width:min(100% - 56px,1120px)}.hero{padding-bottom:50px}}
@media (max-width:760px){.container{width:min(100% - 34px,760px)}.site-header{height:92px;padding:16px 18px;align-items:center;background:rgba(7,17,31,.56);backdrop-filter:blur(16px)}.site-header.is-scrolled{height:82px;padding-top:14px}.header-logo{width:158px}.site-header.is-scrolled .header-logo{width:142px}.menu-toggle{width:50px;height:46px}.menu-toggle span{width:31px}.hero{min-height:100svh;padding:112px 0 24px;align-items:center}.hero-media img{object-position:64% center}.hero-video{opacity:.28}.hero-shade{background:linear-gradient(90deg,rgba(7,17,31,.96) 0%,rgba(7,17,31,.82) 58%,rgba(7,17,31,.42) 100%),linear-gradient(180deg,rgba(0,0,0,.45),rgba(0,0,0,.25) 44%,rgba(0,0,0,.7))}.kicker{font-size:10px;gap:11px;letter-spacing:.2em;margin-bottom:22px}.kicker span{width:36px}.hero h1{font-size:clamp(47px,14.5vw,70px);line-height:.94;max-width:92vw}.hero-copy{font-size:14.5px;line-height:1.58;margin:22px 0 24px;max-width:94vw}.btn{width:100%;min-height:56px;padding-inline:18px}.trusted-hero{width:calc(100% - 22px);grid-template-columns:34px minmax(0,1fr) 34px;padding:13px 10px;border-radius:16px;margin-top:26px}.trusted-arrow{width:34px;height:34px;font-size:24px}.trusted-hero h2{font-size:9px;letter-spacing:.2em}.logo-card{min-width:205px;height:56px;padding:0 15px;gap:12px}.logo-card svg{width:34px;height:34px}.logo-card p{font-size:13px}.logo-card span{font-size:8px;letter-spacing:.36em}.mission,.services,.projects,.approach,.testimonials{padding:68px 0}.mission-grid{grid-template-columns:1fr;gap:24px}.mission-copy,.mission .text-link{grid-column:auto}.mission-icon{width:58px;height:58px}.mission h2,.services-intro h2,.projects-copy h2,.approach h2,.testimonials h2,.final-cta h2{font-size:clamp(44px,13.5vw,66px)}.services-grid{grid-template-columns:1fr}.service-card{min-height:365px}.reel{min-height:78svh}.reel h2{font-size:clamp(43px,13vw,66px)}.project-card{min-width:82vw;max-width:82vw}.project-card img{height:250px}.approach figure img{height:280px}.steps,.testimonial-cards{grid-template-columns:1fr}.testimonial-cards article{padding:28px}.footer-grid{grid-template-columns:1fr}.footer-bottom{display:grid;gap:14px}.menu-panel{padding:24px 20px}.menu-top img{width:168px}.menu-close span{display:none}.menu-content{margin-top:32px}.menu-links a,.services-trigger{font-size:clamp(42px,15vw,70px)}.menu-services{padding:22px;border-radius:20px}.menu-service-grid{grid-template-columns:1fr}.menu-services-head h2{font-size:46px}.menu-services-head div a{width:100%;}.red-pill{text-align:center}.menu-signature{font-size:10px;line-height:1.9}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.trusted-track{animation:none}.hero-video,.reel video{display:none}}
:focus-visible{outline:3px solid rgba(211,47,47,.86);outline-offset:4px}


/* ==========================================================
   FINAL PATCH — HERO + REAL IMPACT VIDEO ONLY
   Removes static image backgrounds from the indicated sections.
   The visual base is now the actual MP4 video layer only.
   ========================================================== */
.hero-media,
.reel-bg,
.reel-bg img{
  display:none !important;
  visibility:hidden !important;
  opacity:0 !important;
}

.hero-video,
.reel video,
.reel-video{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  display:block !important;
  visibility:visible !important;
  pointer-events:none !important;
  mix-blend-mode:normal !important;
}

.hero-video{
  z-index:1 !important;
  opacity:1 !important;
  object-position:70% center !important;
  filter:brightness(.82) contrast(1.12) saturate(1.08) !important;
}

.hero-shade{
  z-index:2 !important;
  background:
    radial-gradient(circle at 16% 78%, rgba(211,47,47,.24), transparent 22%),
    linear-gradient(90deg,
      rgba(7,17,31,.98) 0%,
      rgba(7,17,31,.92) 31%,
      rgba(7,17,31,.58) 58%,
      rgba(7,17,31,.18) 100%),
    linear-gradient(180deg, rgba(0,0,0,.58) 0%, rgba(0,0,0,.08) 44%, rgba(0,0,0,.72) 100%) !important;
}

.hero-noise{z-index:3 !important;}
.hero-inner{z-index:4 !important;}
.trusted-hero{z-index:5 !important;}

.reel video,
.reel-video{
  z-index:0 !important;
  opacity:1 !important;
  object-position:center center !important;
  filter:brightness(.70) contrast(1.16) saturate(1.04) !important;
}

.reel-overlay{
  z-index:1 !important;
  background:
    linear-gradient(90deg,
      rgba(7,17,31,.95) 0%,
      rgba(7,17,31,.76) 42%,
      rgba(7,17,31,.32) 100%),
    linear-gradient(180deg, rgba(0,0,0,.36), rgba(0,0,0,.72)) !important;
}

.reel-content{z-index:2 !important;}

@media (max-width:760px){
  .hero-video{
    opacity:1 !important;
    object-position:64% center !important;
    filter:brightness(.76) contrast(1.14) saturate(1.08) !important;
  }
  .hero-shade{
    background:
      linear-gradient(90deg, rgba(7,17,31,.98) 0%, rgba(7,17,31,.86) 58%, rgba(7,17,31,.36) 100%),
      linear-gradient(180deg, rgba(0,0,0,.58), rgba(0,0,0,.18) 44%, rgba(0,0,0,.74)) !important;
  }
  .reel video,
  .reel-video{
    opacity:1 !important;
    object-position:center center !important;
    filter:brightness(.66) contrast(1.18) saturate(1.02) !important;
  }
}

@media (prefers-reduced-motion:reduce){
  .hero-video,
  .reel video,
  .reel-video{
    display:block !important;
    animation:none !important;
  }
}

/* ==========================================================
   FINAL SITE AUDIT PATCH V2 — HEADER / HERO / SERVICES / REEL / PROJECTS
   Focus: eliminate overlap, improve video visibility, scale sections,
   and make the experience feel premium and expensive across devices.
   ========================================================== */

:root{
  --premium-shadow:0 34px 100px rgba(0,0,0,.36);
  --glass-line:rgba(255,255,255,.18);
}

.site-header{
  height:98px !important;
  padding:22px clamp(24px,7vw,138px) 16px !important;
  align-items:flex-start !important;
  background:linear-gradient(180deg,rgba(7,17,31,.62),rgba(7,17,31,.16) 72%,rgba(7,17,31,0)) !important;
  backdrop-filter:none !important;
  border-bottom:1px solid rgba(255,255,255,.045) !important;
}
.site-header.is-scrolled,
.site-header.is-menu-open{
  height:82px !important;
  padding-top:14px !important;
  background:rgba(7,17,31,.88) !important;
  backdrop-filter:blur(20px) !important;
  border-bottom:1px solid rgba(255,255,255,.1) !important;
}
.header-logo{
  width:190px !important;
  max-height:74px !important;
  overflow:visible !important;
  filter:drop-shadow(0 14px 34px rgba(0,0,0,.38)) !important;
}
.site-header.is-scrolled .header-logo{width:154px !important;}
.header-logo img{width:100% !important;height:auto !important;object-fit:contain !important;}
.menu-toggle{margin-top:4px !important;color:#fff !important;}

.hero{
  min-height:clamp(880px,100vh,1040px) !important;
  padding:152px 0 190px !important;
  align-items:center !important;
}
.hero-inner{
  transform:none !important;
  max-width:930px !important;
}
.hero h1{
  max-width:900px !important;
  font-size:clamp(66px,6.35vw,112px) !important;
  line-height:.93 !important;
  letter-spacing:-.055em !important;
  text-wrap:balance !important;
}
.hero-copy{
  max-width:760px !important;
  font-size:clamp(16px,1.15vw,20px) !important;
  line-height:1.55 !important;
  margin:26px 0 34px !important;
  color:rgba(255,255,255,.9) !important;
}
.hero-video{
  opacity:1 !important;
  object-position:66% center !important;
  filter:brightness(.9) contrast(1.08) saturate(1.08) !important;
}
.hero-shade{
  background:
    radial-gradient(circle at 18% 72%, rgba(211,47,47,.22), transparent 24%),
    linear-gradient(90deg,
      rgba(7,17,31,.96) 0%,
      rgba(7,17,31,.90) 31%,
      rgba(7,17,31,.56) 55%,
      rgba(7,17,31,.17) 100%),
    linear-gradient(180deg, rgba(0,0,0,.46) 0%, rgba(0,0,0,.04) 44%, rgba(0,0,0,.72) 100%) !important;
}
.hero-noise{opacity:.09 !important;}
.trusted-hero{
  bottom:34px !important;
  width:min(100% - 120px,1420px) !important;
  padding:24px 28px !important;
  border-radius:24px !important;
  background:linear-gradient(180deg,rgba(13,28,45,.76),rgba(6,14,24,.86)) !important;
  box-shadow:0 36px 110px rgba(0,0,0,.52),inset 0 1px 0 rgba(255,255,255,.10) !important;
}
.logo-card{
  background:linear-gradient(180deg,rgba(255,255,255,.1),rgba(255,255,255,.035)) !important;
  border-color:rgba(255,255,255,.14) !important;
}

.services{
  padding:128px 0 142px !important;
  background:
    radial-gradient(circle at 12% 16%,rgba(211,47,47,.16),transparent 26%),
    radial-gradient(circle at 84% 8%,rgba(255,255,255,.07),transparent 24%),
    linear-gradient(160deg,#07111F 0%,#081522 58%,#030914 100%) !important;
}
.services::after{
  content:"";
  position:absolute;
  inset:54px clamp(18px,4vw,72px);
  border:1px solid rgba(255,255,255,.055);
  border-radius:34px;
  pointer-events:none;
}
.services-layout{
  grid-template-columns:minmax(310px,390px) minmax(0,1fr) !important;
  gap:64px !important;
  align-items:start !important;
}
.services-intro{
  position:sticky;
  top:112px;
  padding-top:18px !important;
  z-index:2;
}
.services-intro h2{
  font-size:clamp(58px,5.2vw,96px) !important;
  line-height:.88 !important;
  letter-spacing:-.06em !important;
  margin-bottom:28px !important;
}
.services-intro p{
  max-width:330px;
  font-size:17px;
  color:rgba(255,255,255,.76) !important;
}
.services-grid{
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:24px !important;
}
.service-card{
  min-height:444px !important;
  border-radius:12px !important;
  border-color:rgba(255,255,255,.20) !important;
  background:linear-gradient(180deg,rgba(255,255,255,.095),rgba(255,255,255,.032)) !important;
  box-shadow:0 28px 72px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.08) !important;
}
.service-card img{
  height:218px !important;
}
.service-card div{padding:24px 22px 56px !important;}
.service-card h3{font-size:20px !important;line-height:1.05 !important;margin-bottom:14px !important;}
.service-card p{font-size:15px !important;line-height:1.52 !important;color:rgba(255,255,255,.78) !important;}
.service-card b{left:22px !important;bottom:22px !important;}
.services-more{margin-top:44px !important;}

.reel{
  min-height:clamp(720px,82vh,940px) !important;
  border-top:1px solid rgba(255,255,255,.08);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.reel video,
.reel-video{
  filter:brightness(.88) contrast(1.08) saturate(1.06) !important;
  object-position:center center !important;
}
.reel-overlay{
  background:
    linear-gradient(90deg,
      rgba(7,17,31,.88) 0%,
      rgba(7,17,31,.66) 38%,
      rgba(7,17,31,.20) 100%),
    linear-gradient(180deg, rgba(0,0,0,.20), rgba(0,0,0,.48)) !important;
}
.reel h2{
  font-size:clamp(70px,6.2vw,118px) !important;
  max-width:980px !important;
}
.reel p:not(.kicker){font-size:19px !important;max-width:680px !important;color:rgba(255,255,255,.84) !important;}

.projects{
  padding:128px 0 142px !important;
  background:
    radial-gradient(circle at 78% 18%, rgba(26,43,76,.09), transparent 28%),
    linear-gradient(180deg,#fff 0%,#F5F2EC 100%) !important;
}
.project-layout{
  grid-template-columns:minmax(320px,390px) minmax(0,1fr) !important;
  gap:72px !important;
  align-items:center !important;
}
.projects-copy h2{
  font-size:clamp(64px,5.6vw,104px) !important;
  line-height:.9 !important;
  margin-bottom:26px !important;
}
.projects-copy p{
  font-size:19px !important;
  line-height:1.56 !important;
  color:#4e5d70 !important;
}
.project-carousel{
  overflow:hidden !important;
  padding:24px 0 60px !important;
  mask-image:linear-gradient(90deg,#000 0%,#000 88%,transparent 100%);
}
.project-track{gap:28px !important;align-items:stretch !important;}
.project-card{
  min-width:min(520px,38vw) !important;
  max-width:min(520px,38vw) !important;
  border-radius:12px !important;
  box-shadow:0 34px 90px rgba(7,17,31,.16) !important;
  border-color:rgba(26,43,76,.13) !important;
}
.project-card img{height:330px !important;}
.project-card div{padding:32px 34px 34px !important;}
.project-card h3{font-size:36px !important;}
.project-card p{font-size:18px !important;}

@media (max-width:1180px){
  .site-header{height:92px !important;padding:20px 30px 14px !important;align-items:flex-start !important;}
  .header-logo{width:170px !important;}
  .hero{min-height:auto !important;padding:138px 0 62px !important;}
  .trusted-hero{position:relative !important;left:auto !important;bottom:auto !important;transform:none !important;margin:48px auto 0 !important;width:min(100% - 56px,1120px) !important;}
  .services-layout{grid-template-columns:1fr !important;gap:42px !important;}
  .services-intro{position:relative !important;top:auto !important;}
  .services-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  .project-layout{grid-template-columns:1fr !important;gap:40px !important;}
  .project-carousel{mask-image:none !important;}
  .project-card{min-width:48vw !important;max-width:48vw !important;}
}

@media (max-width:760px){
  .site-header{
    height:76px !important;
    padding:12px 18px 10px !important;
    align-items:center !important;
    background:rgba(7,17,31,.72) !important;
    backdrop-filter:blur(16px) !important;
  }
  .site-header.is-scrolled{height:70px !important;padding-top:10px !important;}
  .header-logo{width:132px !important;max-height:52px !important;}
  .site-header.is-scrolled .header-logo{width:118px !important;}
  .menu-toggle{width:44px !important;height:40px !important;gap:6px !important;}
  .menu-toggle span{width:28px !important;height:2px !important;}
  .hero{
    min-height:100svh !important;
    padding:94px 0 28px !important;
    align-items:center !important;
  }
  .hero-inner{max-width:100% !important;}
  .hero h1{
    font-size:clamp(42px,12.4vw,58px) !important;
    line-height:.94 !important;
    max-width:96vw !important;
    letter-spacing:-.052em !important;
  }
  .hero-copy{
    font-size:14px !important;
    line-height:1.54 !important;
    margin:20px 0 22px !important;
    max-width:95vw !important;
  }
  .hero-video{object-position:62% center !important;filter:brightness(.82) contrast(1.1) saturate(1.06) !important;}
  .hero-shade{
    background:
      radial-gradient(circle at 17% 75%, rgba(211,47,47,.18), transparent 26%),
      linear-gradient(90deg,rgba(7,17,31,.96) 0%,rgba(7,17,31,.84) 58%,rgba(7,17,31,.32) 100%),
      linear-gradient(180deg,rgba(0,0,0,.42),rgba(0,0,0,.12) 44%,rgba(0,0,0,.70)) !important;
  }
  .trusted-hero{width:calc(100% - 22px) !important;padding:14px 10px !important;margin-top:26px !important;}
  .services{padding:78px 0 86px !important;}
  .services::after{display:none !important;}
  .services-intro h2{font-size:clamp(44px,13vw,64px) !important;}
  .services-grid{grid-template-columns:1fr !important;gap:18px !important;}
  .service-card{min-height:390px !important;border-radius:12px !important;}
  .service-card img{height:210px !important;}
  .reel{min-height:88svh !important;}
  .reel video,.reel-video{filter:brightness(.78) contrast(1.12) saturate(1.04) !important;}
  .reel-overlay{
    background:linear-gradient(90deg,rgba(7,17,31,.92),rgba(7,17,31,.66) 62%,rgba(7,17,31,.28)),linear-gradient(180deg,rgba(0,0,0,.22),rgba(0,0,0,.58)) !important;
  }
  .reel h2{font-size:clamp(44px,13vw,64px) !important;}
  .reel p:not(.kicker){font-size:15px !important;}
  .projects{padding:78px 0 90px !important;}
  .projects-copy h2{font-size:clamp(46px,13.5vw,68px) !important;}
  .project-card{min-width:86vw !important;max-width:86vw !important;}
  .project-card img{height:260px !important;}
  .project-card div{padding:26px 26px 30px !important;}
  .project-card h3{font-size:30px !important;}
}

/* =========================================================
   REAL.PRO FINAL PATCH — HERO CTA / TRUSTED LOGO BAR SPACING
   Keeps the trusted carousel visually separated from the CTA
   without changing the existing content, videos, menu or footer.
   ========================================================= */
@media (min-width:1181px){
  .hero{
    display:block !important;
    min-height:100vh !important;
    padding-top:clamp(150px, 9.4vh, 178px) !important;
    padding-bottom:clamp(76px, 8.2vh, 112px) !important;
  }

  .hero-inner{
    position:relative !important;
    z-index:4 !important;
    transform:none !important;
  }

  .hero .btn,
  .hero .btn-red{
    margin-bottom:0 !important;
  }

  .trusted-hero{
    position:relative !important;
    left:auto !important;
    right:auto !important;
    bottom:auto !important;
    transform:none !important;
    margin:clamp(58px, 6.6vh, 86px) auto 0 !important;
    width:min(100% - 120px,1420px) !important;
    clear:both !important;
  }
}

@media (min-width:1181px) and (max-height:820px){
  .hero{
    padding-top:136px !important;
    padding-bottom:62px !important;
  }

  .hero h1{
    font-size:clamp(62px,5.85vw,100px) !important;
  }

  .hero-copy{
    margin:22px 0 28px !important;
  }

  .trusted-hero{
    margin-top:54px !important;
  }
}

@media (max-width:1180px){
  .trusted-hero{
    margin-top:64px !important;
  }
}

@media (max-width:760px){
  .hero{
    padding-bottom:42px !important;
  }

  .trusted-hero{
    margin-top:40px !important;
  }
}


/* Import note: final header/footer overrides are linked separately in HTML. */

/* Preserve the existing Our Approach styling after the requested image removal. */
.approach-grid.approach-grid--copy-only{
  grid-template-columns:1fr !important;
}
.approach-grid--copy-only .approach-copy{
  max-width:1180px;
  margin-inline:auto;
  width:100%;
}

/* ===== SOURCE: assets/css/realpro-header-footer-scrolltop-final.css ===== */

/* =========================================================
   REAL.PRO STUDIOS — HEADER WHITE SCROLL + PREMIUM FOOTER + SCROLL TOP
   Final sitewide refinement: header turns white on scroll with color logo,
   footer becomes a larger sophisticated navy system, and a premium back-to-top
   control appears at the lower-right after scrolling.
   ========================================================= */
:root{
  --rp-navy-deep:#07111F;
  --rp-navy:#1A2B4C;
  --rp-red:#D32F2F;
  --rp-red-hover:#B92525;
  --rp-soft:#F5F2EC;
  --rp-white:#FFFFFF;
  --rp-muted:#AEB8C7;
  --rp-line-dark:rgba(255,255,255,.14);
  --rp-line-light:rgba(26,43,76,.14);
  --rp-ease:cubic-bezier(.22,.61,.36,1);
}

html{scroll-behavior:smooth;}
body{background:var(--rp-navy-deep);}

/* Header: transparent over hero, white/premium after scroll */
.site-header{
  isolation:isolate;
  transition:background .34s var(--rp-ease), box-shadow .34s var(--rp-ease), border-color .34s var(--rp-ease), height .34s var(--rp-ease), padding .34s var(--rp-ease), backdrop-filter .34s var(--rp-ease) !important;
}
.site-header.is-scrolled{
  background:rgba(255,255,255,.96) !important;
  backdrop-filter:blur(22px) saturate(1.18) !important;
  -webkit-backdrop-filter:blur(22px) saturate(1.18) !important;
  border-bottom:1px solid rgba(26,43,76,.12) !important;
  box-shadow:0 18px 48px rgba(7,17,31,.10), 0 1px 0 rgba(255,255,255,.7) inset !important;
  color:var(--rp-navy) !important;
}
.site-header.is-scrolled .nav-shell,
.site-header.is-scrolled .nav-shell--premium{
  background:transparent !important;
  border-color:transparent !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}
.site-header.is-scrolled .header-logo,
.site-header.is-scrolled .brand,
.site-header.is-scrolled .brand--header{
  filter:none !important;
  box-shadow:none !important;
  background:transparent !important;
}
.site-header.is-scrolled .header-logo img,
.site-header.is-scrolled .brand-mark,
.site-header.is-scrolled .brand img.brand-mark{
  filter:drop-shadow(0 8px 18px rgba(26,43,76,.10)) !important;
}
.site-header.is-scrolled .menu-toggle{
  color:var(--rp-navy) !important;
  background:rgba(26,43,76,.045) !important;
  border-color:rgba(26,43,76,.14) !important;
}
.site-header.is-scrolled .menu-toggle span{
  background:var(--rp-navy) !important;
  box-shadow:none !important;
}
.site-header.is-scrolled .menu-toggle:hover span:nth-child(2){background:var(--rp-red) !important;}
.site-header.is-scrolled .desktop-nav a,
.site-header.is-scrolled .nav-link,
.site-header.is-scrolled .nav-button,
.site-header.is-scrolled .desktop-nav--premium .nav-link{
  color:var(--rp-navy) !important;
  text-shadow:none !important;
}
.site-header.is-scrolled .desktop-nav a:hover,
.site-header.is-scrolled .nav-link:hover,
.site-header.is-scrolled .nav-button:hover{
  color:var(--rp-red) !important;
}
.site-header.is-scrolled .btn,
.site-header.is-scrolled .btn--primary,
.site-header.is-scrolled .header-cta,
.site-header.is-scrolled .nav-cta{
  box-shadow:0 14px 34px rgba(211,47,47,.20) !important;
}

@media (min-width:1181px){
  .site-header.is-scrolled{height:86px !important;padding-top:12px !important;padding-bottom:12px !important;align-items:center !important;}
  .site-header.is-scrolled .header-logo{width:168px !important;max-height:62px !important;}
  .site-header.is-scrolled .brand-mark,
  .site-header.is-scrolled .brand img.brand-mark{width:168px !important;max-height:68px !important;object-fit:contain !important;}
}
@media (max-width:1180px){
  .site-header.is-scrolled{height:78px !important;padding-top:10px !important;padding-bottom:10px !important;align-items:center !important;}
  .site-header.is-scrolled .header-logo{width:142px !important;max-height:58px !important;}
  .site-header.is-scrolled .brand-mark,
  .site-header.is-scrolled .brand img.brand-mark{width:140px !important;max-height:58px !important;object-fit:contain !important;}
}
@media (max-width:760px){
  .site-header.is-scrolled{height:72px !important;padding:10px 18px !important;}
  .site-header.is-scrolled .header-logo{width:128px !important;}
  .site-header.is-scrolled .brand-mark,
  .site-header.is-scrolled .brand img.brand-mark{width:126px !important;max-height:54px !important;}
}

/* Final CTA and footer touch each other with no unwanted white seam */
.final-cta{margin-bottom:0 !important;border-bottom:0 !important;}
.final-cta + .site-footer{margin-top:0 !important;}
main + .site-footer{margin-top:0 !important;}

/* Large sophisticated footer system — supports both footer structures used in the package */
.site-footer,
.site-footer.site-footer--premium{
  position:relative !important;
  overflow:hidden !important;
  background:
    radial-gradient(circle at 12% 0%, rgba(211,47,47,.16), transparent 27%),
    radial-gradient(circle at 84% 18%, rgba(58,87,124,.20), transparent 30%),
    linear-gradient(180deg,#07111F 0%,#050B13 56%,#02060B 100%) !important;
  color:#fff !important;
  padding:clamp(82px,7.2vw,132px) 0 clamp(28px,3.3vw,48px) !important;
  border-top:1px solid rgba(255,255,255,.08) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06) !important;
}
.site-footer::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.28;
  background:
    linear-gradient(rgba(255,255,255,.032) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
  background-size:72px 72px;
  mask-image:linear-gradient(180deg,transparent 0%,#000 22%,#000 84%,transparent 100%);
}
.site-footer > .container,
.site-footer .footer-shell{
  position:relative !important;
  z-index:1 !important;
  width:min(100% - clamp(36px,6vw,112px),1580px) !important;
  max-width:1580px !important;
  margin-inline:auto !important;
}
.footer-grid,
.footer-main{
  display:grid !important;
  grid-template-columns:minmax(280px,1.25fr) minmax(150px,.68fr) minmax(380px,1.45fr) minmax(230px,.86fr) minmax(290px,1.05fr) !important;
  align-items:start !important;
  gap:clamp(34px,4.2vw,76px) !important;
}
.footer-main{grid-template-columns:minmax(300px,1.18fr) minmax(170px,.68fr) minmax(420px,1.48fr) minmax(310px,1.05fr) !important;}
.footer-brand,
.footer-brand--premium{
  max-width:360px !important;
}
.footer-brand img,
.footer-brand .brand-mark,
.footer-brand--premium img,
.footer-brand--premium .brand-mark,
.brand--footer img{
  width:clamp(200px,15vw,285px) !important;
  max-width:100% !important;
  height:auto !important;
  margin:0 0 clamp(22px,2.1vw,32px) !important;
  object-fit:contain !important;
  filter:drop-shadow(0 18px 42px rgba(0,0,0,.30)) !important;
}
.footer-brand p,
.footer-brand--premium p,
.site-footer .footer-col p,
.site-footer .footer-col--newsletter p,
.newsletter-col p{
  color:rgba(235,241,248,.74) !important;
  font-size:clamp(14px,.88vw,16px) !important;
  line-height:1.78 !important;
  max-width:360px !important;
  margin:0 0 28px !important;
}
.socials,
.footer-social{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:12px !important;
  align-items:center !important;
}
.socials a,
.footer-social a{
  width:42px !important;
  height:42px !important;
  min-width:42px !important;
  border-radius:999px !important;
  border:1px solid rgba(255,255,255,.20) !important;
  display:grid !important;
  place-items:center !important;
  color:#fff !important;
  background:rgba(255,255,255,.035) !important;
  box-shadow:0 16px 34px rgba(0,0,0,.16), inset 0 1px 0 rgba(255,255,255,.08) !important;
  transition:transform .28s var(--rp-ease), background .28s var(--rp-ease), border-color .28s var(--rp-ease) !important;
}
.socials a:hover,
.footer-social a:hover{transform:translateY(-3px) !important;background:rgba(211,47,47,.15) !important;border-color:rgba(211,47,47,.5) !important;}
.footer-social svg{width:18px !important;height:18px !important;fill:currentColor !important;}
.footer-col,
.footer-col--navigate,
.footer-col--services,
.footer-col--newsletter,
.contact-col,
.newsletter-col{
  display:block !important;
  min-width:0 !important;
}
.site-footer h2,
.site-footer .footer-col h2,
.site-footer .footer-col h3,
.footer-col h3{
  color:var(--rp-red) !important;
  font-family:inherit !important;
  font-size:clamp(12px,.82vw,14px) !important;
  line-height:1 !important;
  text-transform:uppercase !important;
  letter-spacing:.24em !important;
  font-weight:900 !important;
  margin:0 0 clamp(22px,2.2vw,34px) !important;
}
.site-footer h2::after,
.site-footer .footer-col h2::after,
.site-footer .footer-col h3::after{
  content:"" !important;
  display:block !important;
  width:42px !important;
  height:2px !important;
  margin-top:16px !important;
  background:var(--rp-red) !important;
  border-radius:999px !important;
}
.site-footer .footer-col a,
.site-footer .footer-link-grid a,
.footer-col a{
  color:rgba(235,241,248,.78) !important;
  font-size:clamp(14px,.9vw,16px) !important;
  line-height:1.25 !important;
  font-weight:500 !important;
  letter-spacing:-.01em !important;
  text-decoration:none !important;
  transition:color .24s var(--rp-ease), transform .24s var(--rp-ease) !important;
}
.site-footer .footer-col a:hover,
.site-footer .footer-link-grid a:hover,
.footer-col a:hover{color:#fff !important;transform:translateX(3px) !important;}
.footer-col:not(.footer-col--services):not(.footer-col--newsletter):not(.newsletter-col):not(.contact-col) > a{
  display:block !important;
  margin:0 0 18px !important;
}
.footer-grid > .footer-col:nth-child(2) > a,
.footer-grid > .footer-col:nth-child(3) > a,
.contact-col > a{
  display:block !important;
  margin:0 0 16px !important;
}
.footer-link-grid,
.footer-col--services .footer-link-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  column-gap:clamp(26px,3.4vw,62px) !important;
  row-gap:18px !important;
}
.footer-col--services a,
.footer-grid > .footer-col:nth-child(2) a{
  position:relative !important;
  padding-left:18px !important;
}
.footer-col--services a::before,
.footer-grid > .footer-col:nth-child(2) a::before{
  content:"" !important;
  position:absolute !important;
  left:0 !important;
  top:.55em !important;
  width:5px !important;
  height:5px !important;
  border-radius:999px !important;
  background:var(--rp-red) !important;
  box-shadow:0 0 16px rgba(211,47,47,.65) !important;
}
.site-footer form,
.footer-newsletter,
.newsletter-col form{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 56px !important;
  height:58px !important;
  width:100% !important;
  max-width:380px !important;
  background:rgba(255,255,255,.055) !important;
  border:1px solid rgba(255,255,255,.14) !important;
  box-shadow:0 24px 60px rgba(0,0,0,.16) !important;
}
.site-footer input,
.footer-newsletter input,
.newsletter-col input{
  min-width:0 !important;
  background:transparent !important;
  border:0 !important;
  color:#fff !important;
  padding:0 20px !important;
  font-size:16px !important;
  outline:none !important;
}
.site-footer input::placeholder{color:rgba(235,241,248,.48) !important;}
.site-footer form button,
.footer-newsletter button,
.newsletter-col button{
  border:0 !important;
  background:var(--rp-red) !important;
  color:#fff !important;
  font-size:30px !important;
  line-height:1 !important;
  cursor:pointer !important;
  transition:background .24s var(--rp-ease), transform .24s var(--rp-ease) !important;
}
.site-footer form button:hover{background:var(--rp-red-hover) !important;transform:translateX(1px) !important;}
.footer-contact-mini{display:grid !important;gap:16px !important;margin-top:30px !important;}
.footer-contact-mini a{display:flex !important;align-items:center !important;gap:14px !important;color:rgba(235,241,248,.78) !important;}
.footer-contact-mini svg{width:18px !important;height:18px !important;fill:var(--rp-red) !important;flex:0 0 auto !important;}
.footer-bottom,
.footer-bottom--premium{
  position:relative !important;
  z-index:1 !important;
  margin-top:clamp(52px,5vw,86px) !important;
  padding-top:28px !important;
  border-top:1px solid rgba(255,255,255,.14) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:24px !important;
}
.footer-bottom p,
.footer-bottom--premium p{
  color:rgba(235,241,248,.58) !important;
  font-size:14px !important;
  margin:0 !important;
}
.footer-bottom nav,
.footer-bottom--premium div{
  display:flex !important;
  align-items:center !important;
  gap:24px !important;
}
.footer-bottom a,
.footer-bottom--premium a{
  color:rgba(235,241,248,.66) !important;
  font-size:14px !important;
  text-decoration:none !important;
}
.footer-bottom a:hover,
.footer-bottom--premium a:hover{color:#fff !important;}
.footer-bottom--premium span[aria-hidden="true"],
.footer-bottom nav a + a::before{opacity:.35 !important;}

/* Premium scroll-to-top button */
.rp-scroll-top{
  position:fixed;
  right:clamp(18px,2.4vw,34px);
  bottom:clamp(18px,2.4vw,34px);
  z-index:998;
  width:56px;
  height:56px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.20);
  background:linear-gradient(180deg,rgba(13,28,45,.92),rgba(6,13,22,.96));
  color:#fff;
  display:grid;
  place-items:center;
  cursor:pointer;
  box-shadow:0 24px 70px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.10);
  opacity:0;
  visibility:hidden;
  transform:translateY(18px) scale(.92);
  transition:opacity .32s var(--rp-ease), visibility .32s var(--rp-ease), transform .32s var(--rp-ease), background .32s var(--rp-ease), border-color .32s var(--rp-ease);
}
.rp-scroll-top::before{content:"↑";font-size:24px;font-weight:900;line-height:1;}
.rp-scroll-top.is-visible{opacity:1;visibility:visible;transform:translateY(0) scale(1);}
.rp-scroll-top:hover{background:linear-gradient(180deg,#D32F2F,#B92525);border-color:rgba(255,255,255,.32);transform:translateY(-4px) scale(1.02);}
.rp-scroll-top:focus-visible{outline:3px solid rgba(211,47,47,.46);outline-offset:4px;}

@media (max-width:1320px){
  .footer-grid{grid-template-columns:1.2fr .7fr 1.35fr 1fr !important;}
  .footer-grid .newsletter-col{grid-column:1 / -1 !important;max-width:480px !important;}
  .footer-main{grid-template-columns:1.05fr .68fr 1.42fr !important;}
  .footer-col--newsletter{grid-column:1 / -1 !important;max-width:520px !important;}
}
@media (max-width:980px){
  .site-footer > .container,
  .site-footer .footer-shell{width:min(100% - 44px,760px) !important;}
  .footer-grid,
  .footer-main{grid-template-columns:1fr 1fr !important;gap:42px 36px !important;}
  .footer-brand,.footer-brand--premium{grid-column:1 / -1 !important;max-width:520px !important;}
  .footer-col--services,.footer-grid > .footer-col:nth-child(2){grid-column:1 / -1 !important;}
  .footer-link-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  .footer-bottom,.footer-bottom--premium{align-items:flex-start !important;flex-direction:column !important;}
}
@media (max-width:640px){
  .site-footer,
  .site-footer.site-footer--premium{padding:66px 0 28px !important;}
  .footer-grid,
  .footer-main{grid-template-columns:1fr !important;gap:34px !important;}
  .footer-link-grid{grid-template-columns:1fr !important;row-gap:15px !important;}
  .footer-brand img,
  .footer-brand .brand-mark,
  .footer-brand--premium img,
  .footer-brand--premium .brand-mark{width:210px !important;}
  .site-footer form,.footer-newsletter,.newsletter-col form{max-width:none !important;height:56px !important;grid-template-columns:1fr 54px !important;}
  .footer-bottom nav,.footer-bottom--premium div{gap:16px !important;flex-wrap:wrap !important;}
  .rp-scroll-top{width:50px;height:50px;right:16px;bottom:16px;}
}


/* ======================================================================
   REAL.PRO Studios — Footer/Header Union Premium Refinement
   Goal: the enlarged footer visually meets the sticky header at the bottom
   of the page and reveals a subtle brand message inside the header.
   ====================================================================== */
:root{
  --rp-footer-union-header-height:86px;
  --rp-footer-union-ease:cubic-bezier(.22,.61,.36,1);
}

/* Header message that appears only when the footer reaches the sticky header */
.site-header .rp-header-union-message{
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  transform:translate(-50%, calc(-50% + 10px)) !important;
  z-index:4 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:.42em !important;
  max-width:min(54vw,760px) !important;
  white-space:nowrap !important;
  pointer-events:none !important;
  opacity:0 !important;
  visibility:hidden !important;
  filter:blur(8px) !important;
  color:#1A2B4C !important;
  font-size:clamp(10px,.72vw,13px) !important;
  line-height:1 !important;
  font-weight:900 !important;
  letter-spacing:.22em !important;
  text-transform:uppercase !important;
  text-shadow:none !important;
  transition:
    opacity .62s var(--rp-footer-union-ease),
    visibility .62s var(--rp-footer-union-ease),
    transform .62s var(--rp-footer-union-ease),
    filter .62s var(--rp-footer-union-ease),
    letter-spacing .62s var(--rp-footer-union-ease) !important;
}
.site-header .rp-header-union-message::before,
.site-header .rp-header-union-message::after{
  content:"" !important;
  width:34px !important;
  height:2px !important;
  display:block !important;
  border-radius:999px !important;
  background:#D32F2F !important;
  box-shadow:0 0 20px rgba(211,47,47,.24) !important;
}
.site-header .rp-header-union-message em{
  color:#D32F2F !important;
  font-style:normal !important;
}
.site-header.is-footer-union .rp-header-union-message{
  opacity:1 !important;
  visibility:visible !important;
  transform:translate(-50%,-50%) !important;
  filter:blur(0) !important;
  letter-spacing:.18em !important;
}
.site-header.is-footer-union{
  background:rgba(255,255,255,.96) !important;
  border-bottom:1px solid rgba(26,43,76,.12) !important;
  box-shadow:0 18px 48px rgba(7,17,31,.10) !important;
}
.site-header.is-footer-union .menu-toggle{
  background:rgba(26,43,76,.055) !important;
  border-color:rgba(26,43,76,.14) !important;
}

/* Make the final footer tall enough so, at the bottom of the page, it begins
   exactly under the sticky header instead of leaving a strip of CTA above it. */
.site-footer,
.site-footer.site-footer--premium{
  min-height:calc(100svh - var(--rp-footer-union-header-height)) !important;
  display:flex !important;
  align-items:center !important;
  padding-top:clamp(92px,8.4vw,154px) !important;
  padding-bottom:clamp(34px,4vw,58px) !important;
}
.site-footer > .container,
.site-footer .footer-shell{
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  min-height:calc(100svh - var(--rp-footer-union-header-height) - clamp(126px,12vw,210px)) !important;
}
.footer-grid,
.footer-main{
  width:100% !important;
  align-items:start !important;
}
.footer-bottom,
.footer-bottom--premium{
  width:100% !important;
}

/* More generous, premium footer scale and column rhythm */
.footer-brand img,
.footer-brand .brand-mark,
.footer-brand--premium img,
.footer-brand--premium .brand-mark,
.brand--footer img{
  width:clamp(220px,16vw,315px) !important;
}
.footer-brand p,
.footer-brand--premium p,
.site-footer .footer-col p,
.site-footer .footer-col--newsletter p,
.newsletter-col p{
  font-size:clamp(15px,.94vw,17px) !important;
  line-height:1.82 !important;
}
.site-footer .footer-col a,
.site-footer .footer-link-grid a,
.footer-col a{
  font-size:clamp(15px,.94vw,17px) !important;
  line-height:1.36 !important;
}
.footer-col:not(.footer-col--services):not(.footer-col--newsletter):not(.newsletter-col):not(.contact-col) > a,
.footer-grid > .footer-col:nth-child(2) > a,
.footer-grid > .footer-col:nth-child(3) > a,
.contact-col > a{
  margin-bottom:19px !important;
}
.footer-link-grid,
.footer-col--services .footer-link-grid{
  row-gap:19px !important;
}
.site-footer form,
.footer-newsletter,
.newsletter-col form{
  height:62px !important;
  grid-template-columns:minmax(0,1fr) 62px !important;
  max-width:420px !important;
}
.site-footer input,
.footer-newsletter input,
.newsletter-col input{
  font-size:17px !important;
}

@media (min-width:1181px){
  .site-header.is-footer-union{height:86px !important;padding-top:12px !important;padding-bottom:12px !important;align-items:center !important;}
}
@media (max-width:1180px){
  :root{--rp-footer-union-header-height:78px;}
  .site-header .rp-header-union-message{max-width:48vw !important;font-size:10px !important;letter-spacing:.16em !important;}
  .site-header .rp-header-union-message::before,
  .site-header .rp-header-union-message::after{width:22px !important;}
  .site-footer,.site-footer.site-footer--premium{padding-top:82px !important;}
}
@media (max-width:760px){
  :root{--rp-footer-union-header-height:72px;}
  .site-header .rp-header-union-message{display:none !important;}
  .site-footer,.site-footer.site-footer--premium{
    min-height:auto !important;
    padding-top:70px !important;
    padding-bottom:30px !important;
  }
  .site-footer > .container,
  .site-footer .footer-shell{min-height:auto !important;display:block !important;}
  .footer-brand img,
  .footer-brand .brand-mark,
  .footer-brand--premium img,
  .footer-brand--premium .brand-mark{width:220px !important;}
}

@media (prefers-reduced-motion:reduce){
  .site-header .rp-header-union-message{transition:none !important;filter:none !important;}
}

/* ===== SOURCE: assets/css/realpro-services-section-exact-final.css ===== */

/* =========================================================
   REAL.PRO STUDIOS — EXACT PREMIUM SERVICES SECTION
   Matches the approved high-end dark service grid reference.
   Scope: .realpro-services-exact only.
   ========================================================= */
.realpro-services-exact{
  position:relative !important;
  isolation:isolate !important;
  overflow:hidden !important;
  color:#fff !important;
  background:
    radial-gradient(circle at 8% 8%, rgba(255,255,255,.095), transparent 18%),
    radial-gradient(circle at 78% 20%, rgba(55,91,122,.12), transparent 32%),
    linear-gradient(180deg, #07111F 0%, #06101B 48%, #050B14 100%) !important;
  padding:clamp(104px,9vw,154px) 0 clamp(110px,9vw,150px) !important;
  min-height:min(1040px,100svh) !important;
}
.realpro-services-exact::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  z-index:-2 !important;
  opacity:.34 !important;
  background:
    linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px),
    linear-gradient(180deg, rgba(255,255,255,.032) 1px, transparent 1px),
    repeating-linear-gradient(90deg, rgba(255,255,255,.018) 0 1px, transparent 1px 7px) !important;
  background-size:112px 112px,112px 112px,8px 100% !important;
  mask-image:linear-gradient(90deg,rgba(0,0,0,.8),rgba(0,0,0,.55) 35%,rgba(0,0,0,.72)) !important;
}
.realpro-services-exact::after{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  z-index:-1 !important;
  border-radius:0 !important;
  border:0 !important;
  background:
    radial-gradient(circle at 0% 54%, rgba(211,47,47,.07), transparent 20%),
    radial-gradient(circle at 74% 50%, rgba(255,255,255,.045), transparent 28%),
    linear-gradient(90deg, rgba(0,0,0,.30), transparent 28%, transparent 78%, rgba(0,0,0,.18)) !important;
  pointer-events:none !important;
}
.realpro-services-exact .container{
  width:min(100% - 112px,1540px) !important;
}
.realpro-services-exact .services-layout{
  position:relative !important;
  z-index:2 !important;
  display:grid !important;
  grid-template-columns:minmax(330px,410px) minmax(820px,1fr) !important;
  gap:clamp(70px,7.2vw,118px) !important;
  align-items:start !important;
}
.realpro-services-exact .services-intro{
  position:sticky !important;
  top:128px !important;
  padding-top:clamp(82px,8vh,128px) !important;
  align-self:start !important;
}
.realpro-services-exact .services-kicker,
.realpro-services-exact .kicker{
  display:flex !important;
  align-items:center !important;
  gap:18px !important;
  margin:0 0 34px !important;
  color:#f5f7fb !important;
  font-family:var(--sans) !important;
  font-size:12px !important;
  line-height:1 !important;
  font-weight:900 !important;
  letter-spacing:.24em !important;
  text-transform:uppercase !important;
}
.realpro-services-exact .services-kicker span,
.realpro-services-exact .kicker span{
  width:84px !important;
  height:2px !important;
  display:inline-block !important;
  flex:0 0 84px !important;
  background:linear-gradient(90deg,#d32f2f,#e53737) !important;
}
.realpro-services-exact .services-intro h2{
  margin:0 !important;
  max-width:420px !important;
  color:#f8fafc !important;
  font-family:var(--display) !important;
  font-size:clamp(76px,6.2vw,112px) !important;
  font-weight:900 !important;
  line-height:.875 !important;
  letter-spacing:-.055em !important;
  text-transform:uppercase !important;
  text-shadow:0 22px 60px rgba(0,0,0,.55), 0 1px 0 rgba(255,255,255,.12) !important;
}
.realpro-services-exact .services-intro p:not(.kicker){
  max-width:360px !important;
  margin:34px 0 0 !important;
  color:rgba(255,255,255,.75) !important;
  font-size:clamp(16px,1.05vw,19px) !important;
  font-weight:500 !important;
  line-height:1.58 !important;
}
.realpro-services-exact .services-panel{
  position:relative !important;
  display:grid !important;
  gap:34px !important;
}
.realpro-services-exact .services-grid{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:18px !important;
  align-items:stretch !important;
}
.realpro-services-exact .service-card{
  position:relative !important;
  display:flex !important;
  flex-direction:column !important;
  min-height:386px !important;
  height:100% !important;
  overflow:hidden !important;
  color:#fff !important;
  background:
    linear-gradient(180deg, rgba(17,35,53,.88), rgba(7,17,31,.94)) !important;
  border:1px solid rgba(255,255,255,.18) !important;
  border-radius:10px !important;
  box-shadow:0 28px 76px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.075) !important;
  transform:translateZ(0) !important;
  transition:transform .34s var(--ease), border-color .34s var(--ease), box-shadow .34s var(--ease), background .34s var(--ease) !important;
}
.realpro-services-exact .service-card::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  pointer-events:none !important;
  background:linear-gradient(180deg, rgba(255,255,255,.055), transparent 34%, rgba(0,0,0,.12)) !important;
  opacity:.8 !important;
  z-index:1 !important;
}
.realpro-services-exact .service-card:hover,
.realpro-services-exact .service-card:focus-visible{
  transform:translateY(-7px) !important;
  border-color:rgba(211,47,47,.62) !important;
  box-shadow:0 38px 92px rgba(0,0,0,.34), 0 0 0 1px rgba(211,47,47,.12), inset 0 1px 0 rgba(255,255,255,.12) !important;
  outline:none !important;
}
.realpro-services-exact .service-card img{
  position:relative !important;
  z-index:0 !important;
  width:100% !important;
  height:178px !important;
  flex:0 0 178px !important;
  object-fit:cover !important;
  object-position:center !important;
  filter:brightness(.78) saturate(.95) contrast(1.08) !important;
  border:0 !important;
  border-radius:0 !important;
  transition:transform .54s var(--ease), filter .54s var(--ease) !important;
}
.realpro-services-exact .service-card:hover img,
.realpro-services-exact .service-card:focus-visible img{
  transform:scale(1.045) !important;
  filter:brightness(.92) saturate(1.05) contrast(1.12) !important;
}
.realpro-services-exact .service-card div{
  position:relative !important;
  z-index:2 !important;
  display:flex !important;
  flex-direction:column !important;
  flex:1 1 auto !important;
  padding:24px 24px 58px !important;
  background:linear-gradient(180deg,rgba(10,25,39,.86),rgba(7,17,31,.96)) !important;
}
.realpro-services-exact .service-card span{
  position:absolute !important;
  top:-164px !important;
  left:18px !important;
  z-index:3 !important;
  width:43px !important;
  height:43px !important;
  display:grid !important;
  place-items:center !important;
  color:#fff !important;
  background:rgba(7,17,31,.74) !important;
  border:1px solid rgba(255,255,255,.23) !important;
  border-radius:50% !important;
  font-family:var(--sans) !important;
  font-size:14px !important;
  font-weight:900 !important;
  line-height:1 !important;
  box-shadow:0 10px 30px rgba(0,0,0,.32) !important;
}
.realpro-services-exact .service-card h3{
  margin:0 0 12px !important;
  color:#fff !important;
  font-family:var(--display) !important;
  font-size:clamp(22px,1.55vw,30px) !important;
  font-weight:900 !important;
  line-height:1.02 !important;
  letter-spacing:-.028em !important;
  text-transform:uppercase !important;
  text-shadow:0 10px 30px rgba(0,0,0,.30) !important;
}
.realpro-services-exact .service-card p{
  max-width:100% !important;
  margin:0 !important;
  color:rgba(255,255,255,.76) !important;
  font-size:clamp(14px,.97vw,17px) !important;
  line-height:1.42 !important;
  font-weight:500 !important;
}
.realpro-services-exact .service-card b{
  position:absolute !important;
  left:24px !important;
  bottom:20px !important;
  color:#ff3a35 !important;
  font-size:25px !important;
  line-height:1 !important;
  font-weight:500 !important;
  transition:transform .32s var(--ease), color .32s var(--ease) !important;
}
.realpro-services-exact .service-card:hover b,
.realpro-services-exact .service-card:focus-visible b{
  color:#ff4a45 !important;
  transform:translateX(8px) !important;
}
.realpro-services-exact .services-more{
  grid-column:auto !important;
  justify-self:center !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:28px !important;
  min-width:min(420px,100%) !important;
  min-height:56px !important;
  margin:2px auto 0 !important;
  padding:0 44px !important;
  color:#fff !important;
  border:1px solid rgba(211,47,47,.72) !important;
  border-radius:6px !important;
  background:rgba(7,17,31,.58) !important;
  box-shadow:0 22px 60px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.05) !important;
  text-transform:uppercase !important;
  letter-spacing:.24em !important;
  font-family:var(--sans) !important;
  font-size:13px !important;
  font-weight:900 !important;
  transition:background .3s var(--ease), transform .3s var(--ease), border-color .3s var(--ease), box-shadow .3s var(--ease) !important;
}
.realpro-services-exact .services-more span{
  color:#ff3a35 !important;
  font-size:22px !important;
  line-height:1 !important;
  transition:transform .3s var(--ease) !important;
}
.realpro-services-exact .services-more:hover,
.realpro-services-exact .services-more:focus-visible{
  background:rgba(211,47,47,.16) !important;
  border-color:#ff3a35 !important;
  transform:translateY(-3px) !important;
  box-shadow:0 30px 76px rgba(0,0,0,.30),0 0 42px rgba(211,47,47,.14) !important;
  outline:none !important;
}
.realpro-services-exact .services-more:hover span,
.realpro-services-exact .services-more:focus-visible span{transform:translateX(8px) !important;}

@media (max-width:1360px){
  .realpro-services-exact .container{width:min(100% - 72px,1280px) !important;}
  .realpro-services-exact .services-layout{grid-template-columns:minmax(280px,340px) minmax(0,1fr) !important;gap:54px !important;}
  .realpro-services-exact .services-intro h2{font-size:clamp(62px,6.5vw,90px) !important;}
  .realpro-services-exact .services-grid{gap:16px !important;}
  .realpro-services-exact .service-card{min-height:372px !important;}
  .realpro-services-exact .service-card img{height:164px !important;flex-basis:164px !important;}
  .realpro-services-exact .service-card span{top:-151px !important;}
}
@media (max-width:1120px){
  .realpro-services-exact{padding:92px 0 104px !important;}
  .realpro-services-exact .container{width:min(100% - 48px,980px) !important;}
  .realpro-services-exact .services-layout{display:block !important;}
  .realpro-services-exact .services-intro{position:relative !important;top:auto !important;padding-top:0 !important;margin-bottom:44px !important;}
  .realpro-services-exact .services-intro h2{max-width:720px !important;font-size:clamp(58px,9vw,88px) !important;}
  .realpro-services-exact .services-intro p:not(.kicker){max-width:620px !important;}
  .realpro-services-exact .services-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:20px !important;}
  .realpro-services-exact .service-card{min-height:390px !important;}
  .realpro-services-exact .service-card img{height:190px !important;flex-basis:190px !important;}
  .realpro-services-exact .service-card span{top:-176px !important;}
}
@media (max-width:680px){
  .realpro-services-exact{padding:70px 0 82px !important;min-height:auto !important;}
  .realpro-services-exact .container{width:min(100% - 34px,560px) !important;}
  .realpro-services-exact .services-kicker,.realpro-services-exact .kicker{font-size:10px !important;letter-spacing:.2em !important;margin-bottom:24px !important;}
  .realpro-services-exact .services-kicker span,.realpro-services-exact .kicker span{width:42px !important;flex-basis:42px !important;}
  .realpro-services-exact .services-intro{margin-bottom:34px !important;}
  .realpro-services-exact .services-intro h2{font-size:clamp(50px,15vw,68px) !important;line-height:.90 !important;}
  .realpro-services-exact .services-intro p:not(.kicker){font-size:15.5px !important;margin-top:24px !important;}
  .realpro-services-exact .services-grid{grid-template-columns:1fr !important;gap:18px !important;}
  .realpro-services-exact .service-card{min-height:auto !important;border-radius:10px !important;}
  .realpro-services-exact .service-card img{height:220px !important;flex-basis:220px !important;}
  .realpro-services-exact .service-card span{top:-202px !important;width:40px !important;height:40px !important;font-size:13px !important;}
  .realpro-services-exact .service-card h3{font-size:30px !important;}
  .realpro-services-exact .service-card p{font-size:15.5px !important;}
  .realpro-services-exact .services-more{width:100% !important;min-width:0 !important;padding:0 22px !important;font-size:11px !important;letter-spacing:.18em !important;}
}
@media (prefers-reduced-motion:reduce){
  .realpro-services-exact .service-card,
  .realpro-services-exact .service-card img,
  .realpro-services-exact .service-card b,
  .realpro-services-exact .services-more,
  .realpro-services-exact .services-more span{transition:none !important;}
}

.realpro-services-exact .service-card{transform:translateZ(0) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) !important;}
.realpro-services-exact .service-card:hover,
.realpro-services-exact .service-card:focus-visible{transform:translateY(-7px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) !important;}
@media (prefers-reduced-motion:no-preference){
  .realpro-services-exact .services-intro,
  .realpro-services-exact .service-card,
  .realpro-services-exact .services-more{opacity:1;}
  .realpro-services-exact:not(.is-services-visible) .services-intro,
  .realpro-services-exact:not(.is-services-visible) .service-card,
  .realpro-services-exact:not(.is-services-visible) .services-more{opacity:.001;transform:translateY(18px) !important;}
  .realpro-services-exact.is-services-visible .services-intro,
  .realpro-services-exact.is-services-visible .service-card,
  .realpro-services-exact.is-services-visible .services-more{animation:realproServiceIn .68s var(--ease) both;}
  .realpro-services-exact.is-services-visible .service-card{animation-delay:var(--service-delay,0ms);}
  .realpro-services-exact.is-services-visible .services-more{animation-delay:380ms;}
}
@keyframes realproServiceIn{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}

/* =========================================================
   REAL.PRO STUDIOS — SERVICES SECTION REFERENCE MATCH V2
   Final visual audit: matches the approved reference image.
   Fixes oversized left headline, overlapping, card typography,
   spacing, grid proportions and premium dark texture.
   ========================================================= */
.realpro-services-exact{
  background:
    radial-gradient(circle at 7% 5%, rgba(84,113,142,.28), transparent 22%),
    radial-gradient(circle at 96% 10%, rgba(31,53,78,.20), transparent 34%),
    linear-gradient(180deg,#081523 0%,#06111d 48%,#050b14 100%) !important;
}
.realpro-services-exact::before{
  opacity:.25 !important;
  background:
    linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px),
    linear-gradient(180deg,rgba(255,255,255,.028) 1px,transparent 1px),
    repeating-linear-gradient(90deg,rgba(255,255,255,.015) 0 1px,transparent 1px 8px) !important;
  background-size:120px 120px,120px 120px,9px 100% !important;
}
.realpro-services-exact::after{
  background:
    radial-gradient(circle at 0% 52%, rgba(255,255,255,.09), transparent 18%),
    radial-gradient(circle at 14% 58%, rgba(54,83,111,.18), transparent 22%),
    linear-gradient(90deg,rgba(0,0,0,.26),transparent 30%,transparent 78%,rgba(0,0,0,.14)) !important;
}
.realpro-services-exact .service-card h3{
  text-transform:none !important;
}
@media (min-width:1181px){
  .realpro-services-exact{
    min-height:clamp(880px,100vh,1040px) !important;
    padding:clamp(90px,8vh,112px) 0 clamp(86px,8vh,118px) !important;
  }
  .realpro-services-exact .container{
    width:min(100% - 138px,1540px) !important;
  }
  .realpro-services-exact .services-layout{
    display:grid !important;
    grid-template-columns:minmax(330px,390px) minmax(760px,1000px) !important;
    gap:clamp(54px,4.7vw,82px) !important;
    justify-content:center !important;
    align-items:start !important;
  }
  .realpro-services-exact .services-intro{
    position:sticky !important;
    top:116px !important;
    padding-top:clamp(88px,10vh,122px) !important;
    max-width:390px !important;
  }
  .realpro-services-exact .services-kicker,
  .realpro-services-exact .kicker{
    margin:0 0 34px !important;
    gap:18px !important;
    color:rgba(255,255,255,.94) !important;
    font-size:12px !important;
    letter-spacing:.24em !important;
    font-weight:950 !important;
  }
  .realpro-services-exact .services-kicker span,
  .realpro-services-exact .kicker span{
    width:88px !important;
    flex-basis:88px !important;
    height:2px !important;
  }
  .realpro-services-exact .services-intro h2{
    max-width:365px !important;
    font-size:clamp(62px,5.05vw,92px) !important;
    line-height:.92 !important;
    letter-spacing:-.038em !important;
    font-weight:950 !important;
    margin:0 !important;
    text-shadow:0 20px 58px rgba(0,0,0,.52),0 1px 0 rgba(255,255,255,.10) !important;
  }
  .realpro-services-exact .services-intro p:not(.kicker){
    max-width:365px !important;
    margin:34px 0 0 !important;
    color:rgba(255,255,255,.78) !important;
    font-size:17px !important;
    line-height:1.55 !important;
    font-weight:500 !important;
  }
  .realpro-services-exact .services-panel{
    gap:32px !important;
  }
  .realpro-services-exact .services-grid{
    display:grid !important;
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    gap:16px !important;
    align-items:stretch !important;
  }
  .realpro-services-exact .service-card{
    min-height:380px !important;
    border-radius:10px !important;
    border-color:rgba(255,255,255,.20) !important;
    background:linear-gradient(180deg,rgba(15,32,49,.92),rgba(6,16,28,.96)) !important;
    box-shadow:0 28px 72px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.08) !important;
  }
  .realpro-services-exact .service-card img{
    height:178px !important;
    flex-basis:178px !important;
    filter:brightness(.78) saturate(.95) contrast(1.08) !important;
  }
  .realpro-services-exact .service-card div{
    padding:22px 22px 54px !important;
    background:linear-gradient(180deg,rgba(9,24,38,.84),rgba(6,16,28,.96)) !important;
  }
  .realpro-services-exact .service-card span{
    top:-160px !important;
    left:18px !important;
    width:42px !important;
    height:42px !important;
    font-size:14px !important;
    font-weight:900 !important;
    background:rgba(7,17,31,.76) !important;
    border-color:rgba(255,255,255,.25) !important;
  }
  .realpro-services-exact .service-card h3{
    margin:0 0 9px !important;
    font-family:var(--sans) !important;
    font-size:clamp(20px,1.28vw,24px) !important;
    line-height:1.08 !important;
    letter-spacing:-.025em !important;
    font-weight:850 !important;
    text-transform:none !important;
    color:#fff !important;
  }
  .realpro-services-exact .service-card p{
    font-size:clamp(14px,.92vw,16px) !important;
    line-height:1.45 !important;
    color:rgba(255,255,255,.74) !important;
    font-weight:500 !important;
  }
  .realpro-services-exact .service-card b{
    left:22px !important;
    bottom:20px !important;
    font-size:24px !important;
    color:#ff392f !important;
  }
  .realpro-services-exact .services-more{
    min-width:360px !important;
    min-height:54px !important;
    margin:0 auto !important;
    padding:0 38px !important;
    border-radius:6px !important;
    border:1px solid rgba(255,255,255,.20) !important;
    background:rgba(7,17,31,.52) !important;
    letter-spacing:.22em !important;
    font-size:12px !important;
    box-shadow:0 20px 54px rgba(0,0,0,.20),inset 0 1px 0 rgba(255,255,255,.06) !important;
  }
  .realpro-services-exact .services-more:hover,
  .realpro-services-exact .services-more:focus-visible{
    border-color:rgba(211,47,47,.78) !important;
    background:rgba(211,47,47,.12) !important;
  }
}
@media (min-width:1500px){
  .realpro-services-exact .services-layout{
    grid-template-columns:minmax(360px,420px) minmax(980px,1040px) !important;
    gap:80px !important;
  }
  .realpro-services-exact .services-intro h2{
    font-size:clamp(76px,5.35vw,102px) !important;
    max-width:410px !important;
  }
  .realpro-services-exact .services-grid{
    gap:18px !important;
  }
  .realpro-services-exact .service-card{
    min-height:398px !important;
  }
  .realpro-services-exact .service-card img{
    height:186px !important;
    flex-basis:186px !important;
  }
  .realpro-services-exact .service-card span{
    top:-168px !important;
  }
}
@media (min-width:1181px) and (max-width:1380px){
  .realpro-services-exact{
    padding-top:92px !important;
    padding-bottom:92px !important;
  }
  .realpro-services-exact .container{
    width:min(100% - 96px,1240px) !important;
  }
  .realpro-services-exact .services-layout{
    grid-template-columns:minmax(300px,340px) minmax(760px,1fr) !important;
    gap:46px !important;
  }
  .realpro-services-exact .services-intro{
    padding-top:96px !important;
  }
  .realpro-services-exact .services-intro h2{
    font-size:clamp(58px,5.2vw,74px) !important;
    max-width:320px !important;
    line-height:.91 !important;
  }
  .realpro-services-exact .services-intro p:not(.kicker){
    font-size:15.5px !important;
    max-width:310px !important;
    margin-top:28px !important;
  }
  .realpro-services-exact .services-kicker span,
  .realpro-services-exact .kicker span{
    width:64px !important;
    flex-basis:64px !important;
  }
  .realpro-services-exact .services-grid{
    gap:14px !important;
  }
  .realpro-services-exact .service-card{
    min-height:346px !important;
  }
  .realpro-services-exact .service-card img{
    height:150px !important;
    flex-basis:150px !important;
  }
  .realpro-services-exact .service-card span{
    top:-134px !important;
    width:36px !important;
    height:36px !important;
    font-size:12px !important;
  }
  .realpro-services-exact .service-card div{
    padding:18px 18px 48px !important;
  }
  .realpro-services-exact .service-card h3{
    font-size:18px !important;
    margin-bottom:8px !important;
  }
  .realpro-services-exact .service-card p{
    font-size:13.5px !important;
    line-height:1.4 !important;
  }
  .realpro-services-exact .services-more{
    min-width:330px !important;
    min-height:50px !important;
  }
}
@media (max-width:1180px){
  .realpro-services-exact{
    min-height:auto !important;
    padding:86px 0 96px !important;
  }
  .realpro-services-exact .services-layout{
    display:block !important;
  }
  .realpro-services-exact .services-intro{
    position:relative !important;
    top:auto !important;
    padding-top:0 !important;
    margin-bottom:42px !important;
  }
  .realpro-services-exact .services-intro h2{
    max-width:720px !important;
    font-size:clamp(58px,8.6vw,86px) !important;
  }
  .realpro-services-exact .services-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:20px !important;
  }
  .realpro-services-exact .service-card h3{
    text-transform:none !important;
    font-family:var(--sans) !important;
  }
}
@media (max-width:680px){
  .realpro-services-exact{
    padding:68px 0 78px !important;
  }
  .realpro-services-exact .container{
    width:min(100% - 34px,560px) !important;
  }
  .realpro-services-exact .services-intro h2{
    font-size:clamp(46px,14vw,64px) !important;
    max-width:100% !important;
  }
  .realpro-services-exact .services-grid{
    grid-template-columns:1fr !important;
  }
  .realpro-services-exact .service-card{
    min-height:auto !important;
  }
}

/* ===== SOURCE: assets/css/realpro-final-hybrid-site-fix.css ===== */
/* =========================================================
   REAL.PRO STUDIOS — FINAL HYBRID SITE FIX
   Purpose: final visual correction for the whole website, with a
   production-safe services section that matches the approved reference.
   Loaded last in every HTML file.
   ========================================================= */
:root{
  --rp-navy-deep:#07111F;
  --rp-navy:#1A2B4C;
  --rp-red:#D32F2F;
  --rp-red-hover:#B92525;
  --rp-off:#F5F2EC;
  --rp-white:#FFFFFF;
  --rp-muted:#C9D1DA;
  --rp-dark-line:rgba(255,255,255,.15);
  --rp-ease:cubic-bezier(.22,.61,.36,1);
}
html{scroll-behavior:smooth;}
body{
  background:var(--rp-navy-deep) !important;
  overflow-x:hidden !important;
}
img{max-width:100%;height:auto;}

/* Improve global hybrid rhythm without disturbing structural content */
main > section:nth-of-type(odd):not(.hero):not(.realpro-services-exact):not(.services){
  background-color:var(--rp-off);
}
.final-cta + .site-footer,
.final-cta + footer{margin-top:0 !important;}

/* Header guardrails: logo never breaks layout */
.site-header{
  min-height:86px !important;
  display:flex !important;
  align-items:center !important;
}
.site-header .header-logo,
.site-header .brand,
.site-header a[aria-label*="REAL.PRO"]{
  display:inline-flex !important;
  align-items:center !important;
  line-height:0 !important;
  flex:0 0 auto !important;
}
.site-header .header-logo img,
.site-header .brand img,
.site-header img[alt*="REAL.PRO"]{
  display:block !important;
  width:clamp(138px,11vw,214px) !important;
  max-height:72px !important;
  object-fit:contain !important;
}
.site-header.is-scrolled img[alt*="REAL.PRO"]{
  width:clamp(138px,10vw,198px) !important;
  max-height:66px !important;
}

/* =========================================================
   EXACT SERVICES SECTION — approved reference match
   ========================================================= */
.realpro-services-exact,
section.realpro-services-exact#services{
  position:relative !important;
  isolation:isolate !important;
  overflow:hidden !important;
  color:#fff !important;
  background:
    radial-gradient(circle at 7% 8%, rgba(129,161,193,.18), transparent 22%),
    radial-gradient(circle at 86% 3%, rgba(38,72,101,.18), transparent 32%),
    linear-gradient(180deg,#081522 0%,#06111d 52%,#050b14 100%) !important;
  padding:clamp(84px,8vh,112px) 0 clamp(82px,8vh,110px) !important;
  min-height:auto !important;
  border:0 !important;
}
.realpro-services-exact::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  z-index:-2 !important;
  opacity:.28 !important;
  background:
    linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px),
    linear-gradient(180deg,rgba(255,255,255,.028) 1px,transparent 1px),
    repeating-linear-gradient(90deg,rgba(255,255,255,.014) 0 1px,transparent 1px 8px) !important;
  background-size:120px 120px,120px 120px,9px 100% !important;
  pointer-events:none !important;
}
.realpro-services-exact::after{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  z-index:-1 !important;
  pointer-events:none !important;
  background:
    radial-gradient(circle at 0% 42%, rgba(255,255,255,.09), transparent 19%),
    radial-gradient(circle at 11% 56%, rgba(54,83,111,.18), transparent 23%),
    radial-gradient(circle at 50% 80%, rgba(211,47,47,.035), transparent 22%),
    linear-gradient(90deg,rgba(0,0,0,.24),transparent 33%,transparent 80%,rgba(0,0,0,.15)) !important;
}
.realpro-services-exact .container,
.realpro-services-exact .services-layout{
  box-sizing:border-box !important;
}
.realpro-services-exact .container{
  width:min(100% - 120px,1500px) !important;
  max-width:1500px !important;
  margin-inline:auto !important;
}
.realpro-services-exact .services-layout{
  position:relative !important;
  z-index:2 !important;
  display:grid !important;
  grid-template-columns:minmax(300px,380px) minmax(760px,980px) !important;
  gap:clamp(54px,4.8vw,86px) !important;
  justify-content:center !important;
  align-items:start !important;
}
.realpro-services-exact .services-intro{
  position:sticky !important;
  top:118px !important;
  align-self:start !important;
  padding-top:clamp(74px,9vh,112px) !important;
  max-width:380px !important;
  min-width:0 !important;
}
.realpro-services-exact .services-kicker,
.realpro-services-exact .kicker{
  display:flex !important;
  align-items:center !important;
  gap:18px !important;
  margin:0 0 32px !important;
  color:rgba(255,255,255,.94) !important;
  font-family:var(--sans, Arial, sans-serif) !important;
  font-size:12px !important;
  line-height:1 !important;
  font-weight:850 !important;
  letter-spacing:.24em !important;
  text-transform:uppercase !important;
  white-space:nowrap !important;
}
.realpro-services-exact .services-kicker span,
.realpro-services-exact .kicker span{
  display:block !important;
  flex:0 0 78px !important;
  width:78px !important;
  height:2px !important;
  background:linear-gradient(90deg,#d32f2f,#e53737) !important;
}
.realpro-services-exact .services-intro h2{
  max-width:365px !important;
  margin:0 !important;
  color:#f8fafc !important;
  font-family:var(--display,"Arial Narrow","Helvetica Neue Condensed",Impact,system-ui,sans-serif) !important;
  font-size:clamp(62px,5.1vw,96px) !important;
  line-height:.94 !important;
  letter-spacing:-.035em !important;
  font-weight:850 !important;
  text-transform:uppercase !important;
  text-shadow:0 18px 54px rgba(0,0,0,.52), 0 1px 0 rgba(255,255,255,.10) !important;
  word-spacing:.04em !important;
}
.realpro-services-exact .services-intro p:not(.kicker){
  max-width:355px !important;
  margin:34px 0 0 !important;
  color:rgba(255,255,255,.78) !important;
  font-family:var(--sans,Arial,sans-serif) !important;
  font-size:17px !important;
  font-weight:500 !important;
  line-height:1.55 !important;
}
.realpro-services-exact .services-panel{
  position:relative !important;
  display:grid !important;
  gap:30px !important;
  min-width:0 !important;
  overflow:visible !important;
}
.realpro-services-exact .services-grid{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:16px !important;
  align-items:stretch !important;
  min-width:0 !important;
}
.realpro-services-exact .service-card{
  position:relative !important;
  display:flex !important;
  flex-direction:column !important;
  min-height:380px !important;
  height:100% !important;
  overflow:hidden !important;
  color:#fff !important;
  text-decoration:none !important;
  background:linear-gradient(180deg,rgba(15,32,49,.92),rgba(6,16,28,.96)) !important;
  border:1px solid rgba(255,255,255,.20) !important;
  border-radius:10px !important;
  box-shadow:0 28px 72px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.08) !important;
  transform:translateZ(0) !important;
  transition:transform .34s var(--rp-ease),border-color .34s var(--rp-ease),box-shadow .34s var(--rp-ease),background .34s var(--rp-ease) !important;
}
.realpro-services-exact .service-card::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  pointer-events:none !important;
  background:linear-gradient(180deg,rgba(255,255,255,.045),transparent 34%,rgba(0,0,0,.13)) !important;
  opacity:.82 !important;
}
.realpro-services-exact .service-card:hover,
.realpro-services-exact .service-card:focus-visible{
  transform:translateY(-6px) !important;
  border-color:rgba(211,47,47,.62) !important;
  box-shadow:0 38px 92px rgba(0,0,0,.34), 0 0 0 1px rgba(211,47,47,.12), inset 0 1px 0 rgba(255,255,255,.12) !important;
  outline:none !important;
}
.realpro-services-exact .service-card img{
  display:block !important;
  position:relative !important;
  z-index:0 !important;
  width:100% !important;
  height:178px !important;
  min-height:178px !important;
  max-height:178px !important;
  flex:0 0 178px !important;
  object-fit:cover !important;
  object-position:center !important;
  filter:brightness(.78) saturate(.95) contrast(1.08) !important;
  border:0 !important;
  border-radius:0 !important;
  transition:transform .54s var(--rp-ease),filter .54s var(--rp-ease) !important;
}
.realpro-services-exact .service-card:hover img,
.realpro-services-exact .service-card:focus-visible img{
  transform:scale(1.035) !important;
  filter:brightness(.9) saturate(1.03) contrast(1.1) !important;
}
.realpro-services-exact .service-card div{
  position:relative !important;
  z-index:2 !important;
  display:flex !important;
  flex-direction:column !important;
  flex:1 1 auto !important;
  min-height:0 !important;
  padding:22px 22px 54px !important;
  background:linear-gradient(180deg,rgba(9,24,38,.84),rgba(6,16,28,.96)) !important;
}
.realpro-services-exact .service-card span{
  position:absolute !important;
  top:-160px !important;
  left:18px !important;
  z-index:3 !important;
  display:grid !important;
  place-items:center !important;
  width:42px !important;
  height:42px !important;
  margin:0 !important;
  color:#fff !important;
  background:rgba(7,17,31,.76) !important;
  border:1px solid rgba(255,255,255,.25) !important;
  border-radius:50% !important;
  font-family:var(--sans,Arial,sans-serif) !important;
  font-size:14px !important;
  font-weight:850 !important;
  line-height:1 !important;
  letter-spacing:0 !important;
  box-shadow:0 10px 30px rgba(0,0,0,.32) !important;
}
.realpro-services-exact .service-card h3{
  margin:0 0 9px !important;
  color:#fff !important;
  font-family:var(--sans,Arial,sans-serif) !important;
  font-size:clamp(20px,1.28vw,24px) !important;
  line-height:1.08 !important;
  letter-spacing:-.025em !important;
  font-weight:800 !important;
  text-transform:none !important;
  text-shadow:0 10px 30px rgba(0,0,0,.30) !important;
}
.realpro-services-exact .service-card p{
  max-width:100% !important;
  margin:0 !important;
  color:rgba(255,255,255,.74) !important;
  font-family:var(--sans,Arial,sans-serif) !important;
  font-size:clamp(14px,.92vw,16px) !important;
  line-height:1.45 !important;
  font-weight:500 !important;
}
.realpro-services-exact .service-card b{
  position:absolute !important;
  left:22px !important;
  bottom:20px !important;
  color:#ff392f !important;
  font-size:24px !important;
  line-height:1 !important;
  font-weight:500 !important;
  transition:transform .32s var(--rp-ease),color .32s var(--rp-ease) !important;
}
.realpro-services-exact .service-card:hover b,
.realpro-services-exact .service-card:focus-visible b{
  color:#ff4a45 !important;
  transform:translateX(8px) !important;
}
.realpro-services-exact .services-more{
  justify-self:center !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:28px !important;
  min-width:360px !important;
  min-height:54px !important;
  margin:0 auto !important;
  padding:0 38px !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.20) !important;
  border-radius:6px !important;
  background:rgba(7,17,31,.52) !important;
  box-shadow:0 20px 54px rgba(0,0,0,.20), inset 0 1px 0 rgba(255,255,255,.06) !important;
  text-transform:uppercase !important;
  letter-spacing:.22em !important;
  font-family:var(--sans,Arial,sans-serif) !important;
  font-size:12px !important;
  font-weight:850 !important;
  text-decoration:none !important;
  transition:background .3s var(--rp-ease), transform .3s var(--rp-ease), border-color .3s var(--rp-ease), box-shadow .3s var(--rp-ease) !important;
}
.realpro-services-exact .services-more span{
  color:#ff392f !important;
  font-size:22px !important;
  line-height:1 !important;
  transition:transform .3s var(--rp-ease) !important;
}
.realpro-services-exact .services-more:hover,
.realpro-services-exact .services-more:focus-visible{
  border-color:rgba(211,47,47,.78) !important;
  background:rgba(211,47,47,.12) !important;
  transform:translateY(-3px) !important;
  box-shadow:0 28px 68px rgba(0,0,0,.28),0 0 36px rgba(211,47,47,.13) !important;
  outline:none !important;
}
.realpro-services-exact .services-more:hover span,
.realpro-services-exact .services-more:focus-visible span{transform:translateX(8px) !important;}

/* Desktop compact safeguard used on 1366px notebooks */
@media (min-width:1181px) and (max-width:1420px){
  .realpro-services-exact{padding:90px 0 92px !important;}
  .realpro-services-exact .container{width:min(100% - 96px,1240px) !important;}
  .realpro-services-exact .services-layout{
    grid-template-columns:minmax(294px,330px) minmax(760px,1fr) !important;
    gap:46px !important;
  }
  .realpro-services-exact .services-intro{padding-top:96px !important;}
  .realpro-services-exact .services-intro h2{
    max-width:318px !important;
    font-size:clamp(58px,5.2vw,74px) !important;
    line-height:.92 !important;
    letter-spacing:-.028em !important;
  }
  .realpro-services-exact .services-intro p:not(.kicker){
    max-width:310px !important;
    margin-top:28px !important;
    font-size:15.5px !important;
  }
  .realpro-services-exact .services-kicker span,
  .realpro-services-exact .kicker span{width:64px !important;flex-basis:64px !important;}
  .realpro-services-exact .services-grid{gap:14px !important;}
  .realpro-services-exact .service-card{min-height:346px !important;}
  .realpro-services-exact .service-card img{height:150px !important;min-height:150px !important;max-height:150px !important;flex-basis:150px !important;}
  .realpro-services-exact .service-card span{top:-134px !important;width:36px !important;height:36px !important;font-size:12px !important;}
  .realpro-services-exact .service-card div{padding:18px 18px 48px !important;}
  .realpro-services-exact .service-card h3{font-size:18px !important;margin-bottom:8px !important;}
  .realpro-services-exact .service-card p{font-size:13.5px !important;line-height:1.4 !important;}
  .realpro-services-exact .services-more{min-width:330px !important;min-height:50px !important;}
}

/* Large desktop: preserve the high-end spacious reference */
@media (min-width:1500px){
  .realpro-services-exact .services-layout{
    grid-template-columns:minmax(360px,420px) minmax(980px,1040px) !important;
    gap:80px !important;
  }
  .realpro-services-exact .services-intro h2{
    max-width:410px !important;
    font-size:clamp(76px,5.35vw,102px) !important;
  }
  .realpro-services-exact .services-grid{gap:18px !important;}
  .realpro-services-exact .service-card{min-height:398px !important;}
  .realpro-services-exact .service-card img{height:186px !important;min-height:186px !important;max-height:186px !important;flex-basis:186px !important;}
  .realpro-services-exact .service-card span{top:-168px !important;}
}

/* Tablet and mobile: clean stacked premium view */
@media (max-width:1180px){
  .realpro-services-exact{padding:84px 0 94px !important;min-height:auto !important;}
  .realpro-services-exact .container{width:min(100% - 48px,980px) !important;}
  .realpro-services-exact .services-layout{display:block !important;}
  .realpro-services-exact .services-intro{position:relative !important;top:auto !important;padding-top:0 !important;margin-bottom:42px !important;max-width:760px !important;}
  .realpro-services-exact .services-intro h2{max-width:720px !important;font-size:clamp(58px,8.6vw,86px) !important;line-height:.94 !important;}
  .realpro-services-exact .services-intro p:not(.kicker){max-width:620px !important;}
  .realpro-services-exact .services-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:20px !important;}
  .realpro-services-exact .service-card{min-height:390px !important;}
  .realpro-services-exact .service-card img{height:190px !important;min-height:190px !important;max-height:190px !important;flex-basis:190px !important;}
  .realpro-services-exact .service-card span{top:-172px !important;}
}
@media (max-width:680px){
  .realpro-services-exact{padding:68px 0 78px !important;}
  .realpro-services-exact .container{width:min(100% - 34px,560px) !important;}
  .realpro-services-exact .services-kicker,
  .realpro-services-exact .kicker{font-size:10px !important;letter-spacing:.2em !important;margin-bottom:24px !important;}
  .realpro-services-exact .services-kicker span,
  .realpro-services-exact .kicker span{width:42px !important;flex-basis:42px !important;}
  .realpro-services-exact .services-intro{margin-bottom:34px !important;}
  .realpro-services-exact .services-intro h2{font-size:clamp(46px,14vw,64px) !important;max-width:100% !important;}
  .realpro-services-exact .services-intro p:not(.kicker){font-size:15.5px !important;margin-top:24px !important;}
  .realpro-services-exact .services-grid{grid-template-columns:1fr !important;gap:18px !important;}
  .realpro-services-exact .service-card{min-height:auto !important;border-radius:10px !important;}
  .realpro-services-exact .service-card img{height:220px !important;min-height:220px !important;max-height:220px !important;flex-basis:220px !important;}
  .realpro-services-exact .service-card span{top:-202px !important;width:40px !important;height:40px !important;font-size:13px !important;}
  .realpro-services-exact .service-card h3{font-size:24px !important;}
  .realpro-services-exact .service-card p{font-size:15.5px !important;}
  .realpro-services-exact .services-more{width:100% !important;min-width:0 !important;padding:0 22px !important;font-size:11px !important;letter-spacing:.18em !important;}
}

/* Footer/header integration polish */
.site-footer, footer.site-footer{
  background:
    radial-gradient(circle at 11% 6%,rgba(39,75,109,.20),transparent 28%),
    linear-gradient(180deg,#07111F 0%,#040912 100%) !important;
  color:rgba(255,255,255,.78) !important;
}
.rp-scroll-top{z-index:2500 !important;}
@media (prefers-reduced-motion:reduce){
  .realpro-services-exact .service-card,
  .realpro-services-exact .service-card img,
  .realpro-services-exact .service-card b,
  .realpro-services-exact .services-more,
  .realpro-services-exact .services-more span{transition:none !important;}
}

/* ===== SOURCE: assets/css/realpro-title-weight-refinement-final.css ===== */
/* REAL.PRO Studios — Title Weight Refinement Final
   Purpose: reduce overly heavy title weights while preserving the premium hybrid visual system.
   Loaded last to neutralize earlier 900/1000 overrides without changing content or structure. */
:root{
  --rp-title-weight:650;
  --rp-title-weight-strong:700;
  --rp-card-title-weight:650;
  --rp-label-weight:700;
  --rp-title-tracking:-0.028em;
  --rp-title-shadow:0 16px 42px rgba(0,0,0,.32);
}

/* Global editorial title refinement */
h1,
h2,
h3,
.hero h1,
.page-hero h1,
.section-heading h2,
.featured-copy h2,
.testimonials-copy h2,
.process-copy h2,
.final-cta h2,
.final-cta-content h2,
.reel-content h2,
.mission h2,
.services-intro h2,
.realpro-services-exact .services-intro h2,
.menu-services-head h2,
.menu-showcase-head p,
.footer-col h2,
.article-body h2,
.legal-copy h2,
.quote-card,
.cta-panel h2{
  font-weight:var(--rp-title-weight) !important;
  letter-spacing:var(--rp-title-tracking) !important;
  text-rendering:geometricPrecision !important;
  -webkit-font-smoothing:antialiased !important;
}

/* Large cinematic headings keep authority, but with less visual weight */
.hero h1,
.page-hero h1,
.realpro-services-exact .services-intro h2,
.final-cta-content h2,
.reel-content h2,
.featured-copy h2,
.testimonials-copy h2,
.process-copy h2{
  font-weight:var(--rp-title-weight-strong) !important;
  text-shadow:var(--rp-title-shadow) !important;
}

/* Services section: refined to match the approved premium reference */
.realpro-services-exact .services-intro h2{
  max-width:390px !important;
  font-weight:650 !important;
  line-height:.95 !important;
  letter-spacing:-.022em !important;
  text-shadow:0 18px 44px rgba(0,0,0,.35), 0 1px 0 rgba(255,255,255,.08) !important;
}
.realpro-services-exact .services-kicker,
.realpro-services-exact .kicker,
.kicker{
  font-weight:var(--rp-label-weight) !important;
  letter-spacing:.24em !important;
}
.realpro-services-exact .service-card h3{
  font-family:var(--sans, Arial, sans-serif) !important;
  font-weight:650 !important;
  letter-spacing:-.012em !important;
  text-transform:none !important;
  line-height:1.08 !important;
  text-shadow:0 8px 22px rgba(0,0,0,.22) !important;
}
.realpro-services-exact .service-card span{
  font-weight:700 !important;
}
.realpro-services-exact .service-card p{
  font-weight:450 !important;
}
.realpro-services-exact .services-more,
.btn,
.text-link,
.menu-services-head a,
.footer-newsletter button{
  font-weight:760 !important;
}

/* Cards and lists across the site */
.service-card h3,
.project-card h3,
.related-card h3,
.portfolio-tile h3,
.process-cards h3,
.values-grid h3,
.capability-list strong,
.case-facts strong,
.result-grid strong,
.contact-details strong,
.footer-col h2{
  font-weight:650 !important;
  letter-spacing:-.012em !important;
}
.project-card p,
.service-card p,
.process-cards p,
.values-grid p,
.footer-col a,
.footer-brand p{
  font-weight:450 !important;
}

/* Menu: keep the big editorial scale, but avoid black/heavy titles */
.menu-links a,
.services-trigger{
  font-weight:600 !important;
  letter-spacing:-.045em !important;
}
.menu-services-head p,
.menu-showcase-head p,
.menu-showcase-caption strong,
.menu-showcase-card strong{
  font-weight:700 !important;
}
.menu-showcase-caption em,
.menu-showcase-head small{
  font-weight:450 !important;
}

/* Footer: premium, readable, less heavy */
.site-footer h2,
.footer-col h2,
.footer-brand strong,
.footer-bottom,
.footer-bottom a{
  font-weight:600 !important;
}
.site-footer p,
.site-footer a,
.footer-contact-mini a,
.footer-newsletter input{
  font-weight:450 !important;
}

/* Notebook and tablet refinement keeps the same hierarchy without crowding */
@media (max-width:1420px){
  .realpro-services-exact .services-intro h2{
    font-size:clamp(56px,5.1vw,72px) !important;
    line-height:.95 !important;
    letter-spacing:-.02em !important;
  }
  .realpro-services-exact .service-card h3{
    font-size:clamp(18px,1.2vw,23px) !important;
    font-weight:650 !important;
  }
}
@media (max-width:1180px){
  .realpro-services-exact .services-intro h2,
  .hero h1,
  .page-hero h1{
    font-weight:650 !important;
    letter-spacing:-.022em !important;
  }
}
@media (max-width:680px){
  h1,h2,h3,
  .hero h1,
  .page-hero h1,
  .realpro-services-exact .services-intro h2{
    font-weight:650 !important;
    letter-spacing:-.018em !important;
  }
  .realpro-services-exact .service-card h3{
    font-size:23px !important;
    font-weight:650 !important;
  }
}

/* ===== SOURCE: assets/css/realpro-sitewide-standardization-final.css ===== */
/* =========================================================
   REAL.PRO STUDIOS — SITEWIDE HEADER, FOOTER & PAGE RHYTHM
   Final synchronization layer.
   Purpose: replicate the approved homepage hamburger header,
   fullscreen services menu and footer across every page while
   preserving page content and assets.
   ========================================================= */
:root{
  --rp-sync-navy:#07111F;
  --rp-sync-navy-2:#0A1726;
  --rp-sync-navy-3:#1A2B4C;
  --rp-sync-red:#D32F2F;
  --rp-sync-red-dark:#B92525;
  --rp-sync-off:#F5F2EC;
  --rp-sync-cream:#F8F5EF;
  --rp-sync-white:#FFFFFF;
  --rp-sync-muted:#4C5565;
  --rp-sync-line:rgba(26,43,76,.14);
  --rp-sync-line-dark:rgba(255,255,255,.14);
  --rp-sync-ease:cubic-bezier(.22,.61,.36,1);
  --rp-sync-display:"Arial Narrow","Helvetica Neue Condensed",Impact,system-ui,sans-serif;
  --rp-sync-sans:Inter,"Segoe UI",Roboto,Arial,sans-serif;
}

html body{
  overflow-x:hidden !important;
}

/* ------------------------------
   Approved homepage header clone
   ------------------------------ */
html body .site-header[data-header]{
  position:fixed !important;
  z-index:1000 !important;
  top:0 !important;
  left:0 !important;
  right:0 !important;
  width:100% !important;
  height:98px !important;
  min-height:86px !important;
  padding:22px clamp(24px,7vw,138px) 16px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:24px !important;
  background:linear-gradient(180deg,rgba(7,17,31,.62),rgba(7,17,31,.16) 72%,rgba(7,17,31,0)) !important;
  border:0 !important;
  border-bottom:1px solid rgba(255,255,255,.045) !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  transition:height .34s var(--rp-sync-ease),padding .34s var(--rp-sync-ease),background .34s var(--rp-sync-ease),border-color .34s var(--rp-sync-ease),box-shadow .34s var(--rp-sync-ease),backdrop-filter .34s var(--rp-sync-ease) !important;
}
html body .site-header[data-header].is-menu-open{
  height:82px !important;
  padding-top:14px !important;
  padding-bottom:14px !important;
  background:rgba(7,17,31,.90) !important;
  backdrop-filter:blur(20px) !important;
  -webkit-backdrop-filter:blur(20px) !important;
  border-bottom:1px solid rgba(255,255,255,.10) !important;
  box-shadow:0 18px 48px rgba(0,0,0,.16) !important;
  color:#fff !important;
}
html body .site-header[data-header].is-scrolled:not(.is-menu-open){
  height:86px !important;
  padding-top:12px !important;
  padding-bottom:12px !important;
  background:rgba(255,255,255,.96) !important;
  backdrop-filter:blur(22px) saturate(1.18) !important;
  -webkit-backdrop-filter:blur(22px) saturate(1.18) !important;
  border-bottom:1px solid rgba(26,43,76,.12) !important;
  box-shadow:0 18px 48px rgba(7,17,31,.10),0 1px 0 rgba(255,255,255,.70) inset !important;
  color:var(--rp-sync-navy-3) !important;
}
html body .site-header[data-header] .header-logo{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  flex:0 0 auto !important;
  width:190px !important;
  max-width:36vw !important;
  max-height:74px !important;
  line-height:0 !important;
  overflow:visible !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  filter:drop-shadow(0 14px 34px rgba(0,0,0,.38)) !important;
  transition:width .32s var(--rp-sync-ease),filter .32s var(--rp-sync-ease),transform .32s var(--rp-sync-ease) !important;
}
html body .site-header[data-header] .header-logo img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  max-height:74px !important;
  object-fit:contain !important;
  object-position:left center !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}
html body .site-header[data-header].is-scrolled .header-logo{
  width:168px !important;
  max-height:62px !important;
  filter:none !important;
}
html body .site-header[data-header].is-scrolled .header-logo img{
  max-height:62px !important;
  filter:drop-shadow(0 8px 18px rgba(26,43,76,.10)) !important;
}
html body .site-header[data-header] .menu-toggle{
  position:relative !important;
  z-index:2 !important;
  display:grid !important;
  place-content:center !important;
  flex:0 0 auto !important;
  width:64px !important;
  height:54px !important;
  min-width:64px !important;
  min-height:54px !important;
  margin:4px 0 0 !important;
  padding:0 !important;
  gap:7px !important;
  color:#fff !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  cursor:pointer !important;
  opacity:1 !important;
  pointer-events:auto !important;
  transition:transform .28s var(--rp-sync-ease),color .28s var(--rp-sync-ease),background .28s var(--rp-sync-ease),border-color .28s var(--rp-sync-ease) !important;
}
html body .site-header[data-header] .menu-toggle span{
  display:block !important;
  width:34px !important;
  height:2px !important;
  margin:0 !important;
  background:currentColor !important;
  border-radius:10px !important;
  box-shadow:0 1px 12px rgba(0,0,0,.22) !important;
  transform:none !important;
  opacity:1 !important;
  transition:width .28s var(--rp-sync-ease),background .28s var(--rp-sync-ease),box-shadow .28s var(--rp-sync-ease) !important;
}
html body .site-header[data-header] .menu-toggle:hover span:nth-child(2),
html body .site-header[data-header] .menu-toggle:focus-visible span:nth-child(2){
  width:42px !important;
}
html body .site-header[data-header] .menu-toggle:focus-visible{
  outline:3px solid rgba(211,47,47,.82) !important;
  outline-offset:6px !important;
  border-radius:16px !important;
}
html body .site-header[data-header].is-scrolled:not(.is-menu-open) .menu-toggle{
  color:var(--rp-sync-navy-3) !important;
  background:rgba(26,43,76,.045) !important;
  border:1px solid rgba(26,43,76,.14) !important;
  border-radius:16px !important;
}
html body .site-header[data-header].is-scrolled:not(.is-menu-open) .menu-toggle span{
  background:var(--rp-sync-navy-3) !important;
  box-shadow:none !important;
}

/* Hide legacy desktop/nav structures whenever older CSS remains loaded. */
html body .site-header[data-header] .nav-shell,
html body .site-header[data-header] .desktop-nav,
html body .site-header[data-header] .header-cta,
html body .site-header[data-header] .brand:not(.header-logo){
  display:none !important;
}
html body .menu-backdrop,
html body .mobile-menu{
  display:none !important;
}

/* ------------------------------
   Approved fullscreen hamburger menu
   ------------------------------ */
html body .fullscreen-menu#siteMenu{
  position:fixed !important;
  inset:0 !important;
  z-index:2000 !important;
  display:block !important;
  visibility:hidden !important;
  pointer-events:none !important;
  opacity:1 !important;
}
html body .fullscreen-menu#siteMenu.is-open{
  visibility:visible !important;
  pointer-events:auto !important;
}
html body .fullscreen-menu#siteMenu .menu-scrim{
  position:absolute !important;
  inset:0 !important;
  display:block !important;
  background:rgba(0,0,0,.55) !important;
  opacity:0 !important;
  transition:opacity .32s var(--rp-sync-ease) !important;
}
html body .fullscreen-menu#siteMenu.is-open .menu-scrim{
  opacity:1 !important;
}
html body .fullscreen-menu#siteMenu .menu-panel{
  position:absolute !important;
  inset:0 !important;
  display:block !important;
  width:100% !important;
  height:100% !important;
  overflow:auto !important;
  padding:42px 56px 32px !important;
  color:#fff !important;
  background:
    radial-gradient(circle at 14% 26%,rgba(255,255,255,.08),transparent 36%),
    linear-gradient(135deg,#07111F,#0A1726 68%,#060B13) !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  transform:translateY(-18px) !important;
  opacity:0 !important;
  transition:transform .38s var(--rp-sync-ease),opacity .38s var(--rp-sync-ease) !important;
}
html body .fullscreen-menu#siteMenu.is-open .menu-panel{
  transform:none !important;
  opacity:1 !important;
}
html body .fullscreen-menu#siteMenu .menu-panel::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  opacity:.14 !important;
  background-image:
    linear-gradient(rgba(255,255,255,.10) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px) !important;
  background-size:92px 92px !important;
  pointer-events:none !important;
}
html body .fullscreen-menu#siteMenu .menu-top,
html body .fullscreen-menu#siteMenu .menu-content,
html body .fullscreen-menu#siteMenu .menu-signature{
  position:relative !important;
  z-index:1 !important;
}
html body .fullscreen-menu#siteMenu .menu-top{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:24px !important;
}
html body .fullscreen-menu#siteMenu .menu-top img{
  width:245px !important;
  height:auto !important;
  max-height:101px !important;
  object-fit:contain !important;
  filter:drop-shadow(0 16px 36px rgba(0,0,0,.28)) !important;
}
html body .fullscreen-menu#siteMenu .menu-close{
  display:flex !important;
  gap:18px !important;
  align-items:center !important;
  width:auto !important;
  height:auto !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  color:#fff !important;
  text-transform:uppercase !important;
  letter-spacing:.28em !important;
  font-size:12px !important;
  font-weight:900 !important;
  cursor:pointer !important;
}
html body .fullscreen-menu#siteMenu .menu-close i{
  width:42px !important;
  height:42px !important;
  position:relative !important;
  display:block !important;
}
html body .fullscreen-menu#siteMenu .menu-close i::before,
html body .fullscreen-menu#siteMenu .menu-close i::after{
  content:"" !important;
  position:absolute !important;
  left:0 !important;
  top:50% !important;
  width:42px !important;
  height:2px !important;
  background:#fff !important;
  border-radius:999px !important;
}
html body .fullscreen-menu#siteMenu .menu-close i::before{transform:rotate(45deg) !important;}
html body .fullscreen-menu#siteMenu .menu-close i::after{transform:rotate(-45deg) !important;}
html body .fullscreen-menu#siteMenu .menu-content{
  display:grid !important;
  grid-template-columns:minmax(300px,.72fr) minmax(620px,1.28fr) !important;
  gap:48px !important;
  align-items:start !important;
  margin-top:56px !important;
}
html body .fullscreen-menu#siteMenu .menu-links{
  display:grid !important;
  gap:2px !important;
  align-content:start !important;
}
html body .fullscreen-menu#siteMenu .menu-links a,
html body .fullscreen-menu#siteMenu .services-trigger{
  display:block !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  color:#fff !important;
  font-family:var(--rp-sync-display) !important;
  font-size:clamp(54px,6vw,96px) !important;
  line-height:.9 !important;
  letter-spacing:-.045em !important;
  text-transform:uppercase !important;
  text-align:left !important;
  font-weight:600 !important;
  cursor:pointer !important;
  box-shadow:none !important;
  transition:color .22s var(--rp-sync-ease),transform .22s var(--rp-sync-ease) !important;
}
html body .fullscreen-menu#siteMenu .menu-links a:hover,
html body .fullscreen-menu#siteMenu .menu-links a:focus-visible,
html body .fullscreen-menu#siteMenu .services-trigger:hover,
html body .fullscreen-menu#siteMenu .services-trigger:focus-visible{
  color:var(--rp-sync-red) !important;
  transform:translateX(4px) !important;
  outline:none !important;
}
html body .fullscreen-menu#siteMenu .services-trigger{
  color:var(--rp-sync-red) !important;
}
html body .fullscreen-menu#siteMenu .menu-services.menu-services--showcase{
  color:#12233E !important;
  background:linear-gradient(180deg,#F7F4EF 0%,#EFEAE1 100%) !important;
  border:1px solid rgba(255,255,255,.56) !important;
  border-radius:30px !important;
  box-shadow:0 54px 150px rgba(0,0,0,.44),inset 0 1px 0 rgba(255,255,255,.88) !important;
}
html body .fullscreen-menu#siteMenu .menu-signature{
  margin-top:36px !important;
  color:rgba(255,255,255,.45) !important;
  text-transform:uppercase !important;
  letter-spacing:.42em !important;
  font-size:12px !important;
  font-weight:900 !important;
}
body:has(.fullscreen-menu.is-open){
  overflow:hidden !important;
}

/* ------------------------------
   Approved homepage footer clone
   ------------------------------ */
html body .site-footer.site-footer--premium{
  position:relative !important;
  left:auto !important;
  right:auto !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:clamp(82px,7.2vw,132px) 0 clamp(28px,3.3vw,48px) !important;
  color:#fff !important;
  background:
    radial-gradient(circle at 12% 0%, rgba(211,47,47,.16), transparent 27%),
    radial-gradient(circle at 84% 18%, rgba(58,87,124,.20), transparent 30%),
    linear-gradient(180deg,#07111F 0%,#050B13 56%,#02060B 100%) !important;
  border:0 !important;
  border-top:1px solid rgba(255,255,255,.08) !important;
  border-radius:0 !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06) !important;
  overflow:hidden !important;
  isolation:isolate !important;
}
html body .site-footer.site-footer--premium::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  z-index:0 !important;
  pointer-events:none !important;
  opacity:.28 !important;
  background:
    linear-gradient(rgba(255,255,255,.032) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px) !important;
  background-size:72px 72px !important;
  mask-image:linear-gradient(180deg,transparent 0%,#000 22%,#000 84%,transparent 100%) !important;
}
html body .site-footer.site-footer--premium .footer-shell,
html body .site-footer.site-footer--premium > .container{
  position:relative !important;
  z-index:1 !important;
  width:min(100% - clamp(36px,6vw,112px),1580px) !important;
  max-width:1580px !important;
  margin:0 auto !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
}
html body .site-footer.site-footer--premium .footer-main{
  display:grid !important;
  grid-template-columns:minmax(300px,1.18fr) minmax(170px,.68fr) minmax(420px,1.48fr) minmax(310px,1.05fr) !important;
  align-items:start !important;
  gap:clamp(34px,4.2vw,76px) !important;
  margin:0 !important;
  padding:0 !important;
}
html body .site-footer.site-footer--premium .footer-brand,
html body .site-footer.site-footer--premium .footer-col{
  display:block !important;
  width:auto !important;
  max-width:360px !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  text-align:left !important;
}
html body .site-footer.site-footer--premium .footer-col--services{
  max-width:none !important;
}
html body .site-footer.site-footer--premium .brand--footer{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  width:auto !important;
  height:auto !important;
  max-width:100% !important;
  margin:0 0 clamp(22px,2.1vw,32px) !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  line-height:0 !important;
}
html body .site-footer.site-footer--premium .brand--footer img,
html body .site-footer.site-footer--premium .footer-brand img{
  display:block !important;
  width:clamp(200px,15vw,285px) !important;
  max-width:100% !important;
  height:auto !important;
  max-height:none !important;
  margin:0 !important;
  padding:0 !important;
  object-fit:contain !important;
  object-position:left center !important;
  filter:drop-shadow(0 18px 42px rgba(0,0,0,.30)) !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}
html body .site-footer.site-footer--premium .footer-brand p,
html body .site-footer.site-footer--premium .footer-col p{
  max-width:360px !important;
  margin:0 0 28px !important;
  color:rgba(235,241,248,.74) !important;
  font-family:inherit !important;
  font-size:clamp(14px,.88vw,16px) !important;
  line-height:1.78 !important;
  font-weight:450 !important;
}
html body .site-footer.site-footer--premium .footer-social{
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:12px !important;
  margin:0 !important;
  padding:0 !important;
}
html body .site-footer.site-footer--premium .footer-social a{
  display:grid !important;
  place-items:center !important;
  width:42px !important;
  height:42px !important;
  min-width:42px !important;
  min-height:42px !important;
  margin:0 !important;
  padding:0 !important;
  color:#fff !important;
  background:rgba(255,255,255,.035) !important;
  border:1px solid rgba(255,255,255,.20) !important;
  border-radius:999px !important;
  box-shadow:0 16px 34px rgba(0,0,0,.16),inset 0 1px 0 rgba(255,255,255,.08) !important;
  transition:transform .28s var(--rp-sync-ease),background .28s var(--rp-sync-ease),border-color .28s var(--rp-sync-ease) !important;
}
html body .site-footer.site-footer--premium .footer-social a:hover,
html body .site-footer.site-footer--premium .footer-social a:focus-visible{
  transform:translateY(-3px) !important;
  background:rgba(211,47,47,.15) !important;
  border-color:rgba(211,47,47,.50) !important;
  outline:none !important;
}
html body .site-footer.site-footer--premium .footer-social svg{
  display:block !important;
  width:18px !important;
  height:18px !important;
  fill:currentColor !important;
}
html body .site-footer.site-footer--premium .footer-col h2{
  display:block !important;
  margin:0 0 clamp(22px,2.2vw,34px) !important;
  padding:0 !important;
  color:var(--rp-sync-red) !important;
  font-family:inherit !important;
  font-size:clamp(12px,.82vw,14px) !important;
  line-height:1 !important;
  text-transform:uppercase !important;
  letter-spacing:.24em !important;
  font-weight:650 !important;
  text-align:left !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}
html body .site-footer.site-footer--premium .footer-col h2::after{
  content:"" !important;
  display:block !important;
  width:42px !important;
  height:2px !important;
  margin-top:16px !important;
  background:var(--rp-sync-red) !important;
  border-radius:999px !important;
}
html body .site-footer.site-footer--premium .footer-link-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:14px 22px !important;
}
html body .site-footer.site-footer--premium .footer-col a,
html body .site-footer.site-footer--premium .footer-link-grid a,
html body .site-footer.site-footer--premium .footer-bottom a,
html body .site-footer.site-footer--premium .footer-contact-mini a{
  display:inline-flex !important;
  align-items:center !important;
  gap:8px !important;
  color:rgba(235,241,248,.78) !important;
  font-size:clamp(14px,.9vw,16px) !important;
  line-height:1.25 !important;
  font-weight:450 !important;
  letter-spacing:-.01em !important;
  text-decoration:none !important;
  transform:none !important;
  transition:color .24s var(--rp-sync-ease),transform .24s var(--rp-sync-ease) !important;
}
html body .site-footer.site-footer--premium .footer-col--navigate > a{
  display:block !important;
  margin:0 0 18px !important;
}
html body .site-footer.site-footer--premium .footer-col a:hover,
html body .site-footer.site-footer--premium .footer-link-grid a:hover,
html body .site-footer.site-footer--premium .footer-bottom a:hover,
html body .site-footer.site-footer--premium .footer-contact-mini a:hover{
  color:#fff !important;
  transform:translateX(3px) !important;
}
html body .site-footer.site-footer--premium .footer-newsletter{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 54px !important;
  width:100% !important;
  max-width:360px !important;
  height:54px !important;
  margin:0 0 22px !important;
  overflow:hidden !important;
  background:rgba(255,255,255,.06) !important;
  border:1px solid rgba(255,255,255,.14) !important;
  border-radius:999px !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06) !important;
}
html body .site-footer.site-footer--premium .footer-newsletter input{
  min-width:0 !important;
  width:100% !important;
  height:100% !important;
  padding:0 18px !important;
  color:#fff !important;
  background:transparent !important;
  border:0 !important;
  outline:0 !important;
}
html body .site-footer.site-footer--premium .footer-newsletter input::placeholder{
  color:rgba(255,255,255,.45) !important;
}
html body .site-footer.site-footer--premium .footer-newsletter button{
  display:grid !important;
  place-items:center !important;
  width:54px !important;
  height:54px !important;
  color:#fff !important;
  background:var(--rp-sync-red) !important;
  border:0 !important;
  border-radius:999px !important;
  cursor:pointer !important;
  font-size:22px !important;
  font-weight:760 !important;
}
html body .site-footer.site-footer--premium .footer-contact-mini{
  display:grid !important;
  gap:10px !important;
  margin-top:18px !important;
}
html body .site-footer.site-footer--premium .footer-contact-mini svg{
  width:18px !important;
  height:18px !important;
  fill:currentColor !important;
}
html body .site-footer.site-footer--premium .footer-bottom{
  position:relative !important;
  z-index:1 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:20px !important;
  margin:clamp(44px,4vw,64px) 0 0 !important;
  padding:24px 0 0 !important;
  color:rgba(235,241,248,.58) !important;
  border-top:1px solid rgba(255,255,255,.12) !important;
  background:transparent !important;
  box-shadow:none !important;
}
html body .site-footer.site-footer--premium .footer-bottom p{
  margin:0 !important;
  color:rgba(235,241,248,.58) !important;
  font-size:12px !important;
  font-weight:450 !important;
}
html body .site-footer.site-footer--premium .footer-bottom nav{
  display:flex !important;
  flex-wrap:wrap !important;
  justify-content:flex-end !important;
  gap:24px !important;
}

/* ------------------------------
   Internal page section standardization
   ------------------------------ */
body.rp-standardized-page{
  background:var(--rp-sync-navy) !important;
}
body.rp-standardized-page main{
  background:var(--rp-sync-off) !important;
  overflow:hidden !important;
}
body.rp-standardized-page main > section{
  position:relative !important;
  isolation:isolate !important;
}
body.rp-standardized-page .rp-page-hero,
body.rp-standardized-page main > .hero{
  min-height:clamp(760px,92vh,980px) !important;
  display:grid !important;
  align-items:center !important;
  overflow:hidden !important;
  padding:clamp(128px,14vh,170px) 0 clamp(82px,10vh,126px) !important;
  color:#fff !important;
  background:#07111F !important;
}
body.rp-standardized-page .rp-page-hero::before,
body.rp-standardized-page main > .hero::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  pointer-events:none !important;
  background:
    radial-gradient(circle at 12% 68%,rgba(211,47,47,.24),transparent 24%),
    linear-gradient(90deg,rgba(7,17,31,.98) 0%,rgba(7,17,31,.88) 38%,rgba(7,17,31,.34) 72%,rgba(7,17,31,.10) 100%),
    linear-gradient(180deg,rgba(0,0,0,.42),rgba(0,0,0,.05) 42%,rgba(0,0,0,.54)) !important;
}
body.rp-standardized-page .rp-page-hero::after,
body.rp-standardized-page main > .hero::after{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  z-index:2 !important;
  pointer-events:none !important;
  opacity:.14 !important;
  background-image:
    linear-gradient(rgba(255,255,255,.10) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px) !important;
  background-size:92px 92px !important;
}
body.rp-standardized-page .rp-page-hero__media,
body.rp-standardized-page main > .hero .hero-media{
  position:absolute !important;
  inset:0 !important;
  z-index:0 !important;
  width:100% !important;
  height:100% !important;
  margin:0 !important;
  overflow:hidden !important;
  border-radius:0 !important;
  box-shadow:none !important;
}
body.rp-standardized-page .rp-page-hero__media img,
body.rp-standardized-page main > .hero .hero-media img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center !important;
  filter:saturate(.98) contrast(1.05) brightness(.88) !important;
}
body.rp-standardized-page .rp-page-hero__cloud{
  display:none !important;
}
body.rp-standardized-page .rp-page-hero__content,
body.rp-standardized-page main > .hero .hero-grid,
body.rp-standardized-page main > .hero .container{
  position:relative !important;
  z-index:3 !important;
  width:min(100% - 96px,1440px) !important;
  margin-inline:auto !important;
}
body.rp-standardized-page .rp-page-hero__copy,
body.rp-standardized-page main > .hero .hero-copy{
  max-width:880px !important;
  margin:0 !important;
}
body.rp-standardized-page .rp-page-hero h1,
body.rp-standardized-page main > .hero h1{
  max-width:920px !important;
  margin:0 0 24px !important;
  color:#fff !important;
  font-family:var(--rp-sync-display) !important;
  font-size:clamp(58px,6.5vw,118px) !important;
  line-height:.92 !important;
  letter-spacing:-.035em !important;
  font-weight:650 !important;
  text-transform:uppercase !important;
  text-shadow:0 18px 54px rgba(0,0,0,.48) !important;
}
body.rp-standardized-page .rp-page-hero .lead,
body.rp-standardized-page main > .hero .lead{
  max-width:760px !important;
  margin:0 0 34px !important;
  color:rgba(255,255,255,.84) !important;
  font-size:clamp(17px,1.25vw,20px) !important;
  line-height:1.58 !important;
  font-weight:450 !important;
  text-shadow:0 10px 30px rgba(0,0,0,.30) !important;
}
body.rp-standardized-page .eyebrow,
body.rp-standardized-page .kicker{
  color:var(--rp-sync-red) !important;
  font-weight:700 !important;
  letter-spacing:.24em !important;
}
body.rp-standardized-page .button-row{
  display:flex !important;
  align-items:center !important;
  flex-wrap:wrap !important;
  gap:14px !important;
}
body.rp-standardized-page .btn,
body.rp-standardized-page .btn--primary,
body.rp-standardized-page .btn--secondary,
body.rp-standardized-page .btn--light{
  min-height:56px !important;
  padding:0 24px !important;
  border-radius:8px !important;
  text-transform:uppercase !important;
  letter-spacing:.055em !important;
  font-size:14px !important;
  font-weight:760 !important;
}
body.rp-standardized-page .btn--primary{
  color:#fff !important;
  background:linear-gradient(135deg,var(--rp-sync-red),#ed3333) !important;
  border-color:transparent !important;
  box-shadow:0 22px 54px rgba(211,47,47,.28) !important;
}
body.rp-standardized-page .btn--secondary,
body.rp-standardized-page .btn--light{
  color:#fff !important;
  background:rgba(255,255,255,.08) !important;
  border:1px solid rgba(255,255,255,.22) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08) !important;
}
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero){
  padding:clamp(82px,8vw,132px) 0 !important;
}
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(odd){
  color:#111827 !important;
  background:
    radial-gradient(circle at 84% 12%,rgba(26,43,76,.07),transparent 24%),
    linear-gradient(180deg,#ffffff 0%,#F5F2EC 100%) !important;
}
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even){
  color:#fff !important;
  background:
    radial-gradient(circle at 10% 12%,rgba(211,47,47,.14),transparent 28%),
    radial-gradient(circle at 86% 20%,rgba(58,87,124,.20),transparent 32%),
    linear-gradient(180deg,#07111F 0%,#0A1726 100%) !important;
}
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even)::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  z-index:-1 !important;
  pointer-events:none !important;
  opacity:.20 !important;
  background-image:
    linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px) !important;
  background-size:84px 84px !important;
}
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) h1,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) h2,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) h3,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) strong{
  color:#fff !important;
}
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) p,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) li,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) span:not(.eyebrow),
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) .lead{
  color:rgba(255,255,255,.76) !important;
}
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) a:not(.btn){
  color:#fff !important;
}
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) .btn--secondary{
  color:#fff !important;
  background:rgba(255,255,255,.08) !important;
  border-color:rgba(255,255,255,.22) !important;
}
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) .service-card,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) .process-cards article,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) .values-grid article,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) .quote-card,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) .contact-details div,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) .project-form,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) .portfolio-tile,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) .related-card{
  color:#fff !important;
  background:rgba(255,255,255,.075) !important;
  border-color:rgba(255,255,255,.14) !important;
  box-shadow:0 24px 70px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.08) !important;
}
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(odd) .service-card,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(odd) .process-cards article,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(odd) .values-grid article,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(odd) .quote-card,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(odd) .contact-details div,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(odd) .project-form,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(odd) .portfolio-tile,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(odd) .related-card{
  background:rgba(255,255,255,.86) !important;
  border-color:rgba(26,43,76,.10) !important;
  box-shadow:0 24px 70px rgba(7,17,31,.08),inset 0 1px 0 rgba(255,255,255,.88) !important;
}
body.rp-standardized-page .trust-strip.ref-trust{
  min-height:auto !important;
  padding:clamp(34px,4vw,56px) 0 !important;
}
body.rp-standardized-page .section--cta{
  color:#fff !important;
  background:
    radial-gradient(circle at 16% 0%,rgba(211,47,47,.22),transparent 30%),
    linear-gradient(135deg,#07111F,#0A1726 62%,#050B13) !important;
}
body.rp-standardized-page .section--cta h2,
body.rp-standardized-page .section--cta h3{
  color:#fff !important;
}
body.rp-standardized-page .section--cta p{
  color:rgba(255,255,255,.78) !important;
}

/* Keep forms and inputs readable on any alternating surface. */
body.rp-standardized-page input,
body.rp-standardized-page textarea,
body.rp-standardized-page select{
  color:#111827 !important;
  background:#fff !important;
}
body.rp-standardized-page label{
  color:inherit !important;
}

/* ------------------------------
   Responsive refinement
   ------------------------------ */
@media (max-width:1180px){
  html body .site-header[data-header]{
    height:92px !important;
    padding:20px 30px 14px !important;
  }
  html body .site-header[data-header] .header-logo{width:170px !important;}
  html body .site-header[data-header].is-scrolled .header-logo{width:142px !important;}
  html body .fullscreen-menu#siteMenu .menu-content{
    grid-template-columns:1fr !important;
    gap:34px !important;
  }
  html body .fullscreen-menu#siteMenu .menu-services.menu-services--showcase{
    max-width:100% !important;
    max-height:none !important;
  }
  html body .site-footer.site-footer--premium .footer-main{
    grid-template-columns:1fr 1fr !important;
  }
  body.rp-standardized-page .rp-page-hero__content,
  body.rp-standardized-page main > .hero .hero-grid,
  body.rp-standardized-page main > .hero .container{
    width:min(100% - 56px,1120px) !important;
  }
}
@media (max-width:760px){
  html body .site-header[data-header]{
    height:76px !important;
    min-height:76px !important;
    padding:12px 18px 10px !important;
    align-items:center !important;
    background:rgba(7,17,31,.72) !important;
    backdrop-filter:blur(16px) !important;
    -webkit-backdrop-filter:blur(16px) !important;
  }
  html body .site-header[data-header].is-scrolled:not(.is-menu-open),
  html body .site-header[data-header].is-menu-open{
    height:70px !important;
    min-height:70px !important;
    padding:10px 18px !important;
  }
  html body .site-header[data-header] .header-logo{
    width:132px !important;
    max-height:52px !important;
  }
  html body .site-header[data-header].is-scrolled .header-logo{width:128px !important;}
  html body .site-header[data-header] .header-logo img{max-height:52px !important;}
  html body .site-header[data-header] .menu-toggle{
    width:44px !important;
    height:40px !important;
    min-width:44px !important;
    min-height:40px !important;
    gap:6px !important;
  }
  html body .site-header[data-header] .menu-toggle span{
    width:28px !important;
    height:2px !important;
  }
  html body .site-header[data-header] .menu-toggle:hover span:nth-child(2),
  html body .site-header[data-header] .menu-toggle:focus-visible span:nth-child(2){
    width:32px !important;
  }
  html body .fullscreen-menu#siteMenu .menu-panel{
    padding:24px 20px !important;
  }
  html body .fullscreen-menu#siteMenu .menu-top img{
    width:168px !important;
  }
  html body .fullscreen-menu#siteMenu .menu-close span{
    display:none !important;
  }
  html body .fullscreen-menu#siteMenu .menu-content{
    margin-top:32px !important;
    gap:28px !important;
  }
  html body .fullscreen-menu#siteMenu .menu-links a,
  html body .fullscreen-menu#siteMenu .services-trigger{
    font-size:clamp(42px,15vw,70px) !important;
  }
  html body .fullscreen-menu#siteMenu .menu-services.menu-services--showcase{
    padding:22px !important;
    border-radius:22px !important;
  }
  html body .site-footer.site-footer--premium{
    padding:72px 0 30px !important;
  }
  html body .site-footer.site-footer--premium .footer-shell,
  html body .site-footer.site-footer--premium > .container{
    width:calc(100% - 34px) !important;
  }
  html body .site-footer.site-footer--premium .footer-main{
    grid-template-columns:1fr !important;
    gap:38px !important;
  }
  html body .site-footer.site-footer--premium .footer-link-grid{
    grid-template-columns:1fr !important;
  }
  html body .site-footer.site-footer--premium .footer-bottom{
    display:grid !important;
    justify-content:start !important;
    gap:14px !important;
  }
  html body .site-footer.site-footer--premium .footer-bottom nav{
    justify-content:flex-start !important;
    gap:16px 22px !important;
  }
  body.rp-standardized-page .rp-page-hero,
  body.rp-standardized-page main > .hero{
    min-height:100svh !important;
    padding:104px 0 58px !important;
  }
  body.rp-standardized-page .rp-page-hero__content,
  body.rp-standardized-page main > .hero .hero-grid,
  body.rp-standardized-page main > .hero .container{
    width:calc(100% - 34px) !important;
  }
  body.rp-standardized-page .rp-page-hero h1,
  body.rp-standardized-page main > .hero h1{
    font-size:clamp(42px,12.5vw,64px) !important;
    line-height:.94 !important;
  }
  body.rp-standardized-page .rp-page-hero .lead,
  body.rp-standardized-page main > .hero .lead{
    font-size:15px !important;
    line-height:1.56 !important;
  }
  body.rp-standardized-page .button-row .btn{
    width:100% !important;
  }
  body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero){
    padding:68px 0 !important;
  }
}
@media (prefers-reduced-motion:reduce){
  html body .fullscreen-menu#siteMenu .menu-panel,
  html body .fullscreen-menu#siteMenu .menu-scrim,
  html body .site-header[data-header],
  html body .site-footer.site-footer--premium a{
    transition:none !important;
  }
}

/* ===== SOURCE: assets/css/realpro-contrast-visibility-final.css ===== */
/* ========================================================================
   REALPRO Studios — Final Contrast & Visibility Safeguards
   Scope: color contrast, text visibility, controls, and nested surfaces only.
   Layout, media, spacing, animation, and component structure are unchanged.
   ======================================================================== */
:root{
  --rp-c-ink:#13223A;
  --rp-c-muted:#3F4C60;
  --rp-c-muted-soft:#465368;
  --rp-c-dark:#07111F;
  --rp-c-dark-2:#0A1726;
  --rp-c-light:#FFFFFF;
  --rp-c-light-soft:#F5F2EC;
  --rp-c-on-dark:#DCE5F0;
  --rp-c-red-light:#FF8585;
  --rp-c-red-dark:#B42323;
}

/* Base readability and keyboard visibility. */
html body{color:var(--rp-c-ink)}
html body :focus-visible{
  outline:3px solid #D32F2F!important;
  outline-offset:4px!important;
  box-shadow:0 0 0 2px rgba(255,255,255,.92)!important;
}
html body input::placeholder,
html body textarea::placeholder{color:#68768A!important;opacity:1!important}

/* White sticky header: keep every control visible before and after scroll. */
html body .site-header .menu-toggle{color:var(--rp-c-ink)!important}
html body .site-header .menu-toggle span{background:var(--rp-c-ink)!important;opacity:1!important}
html body .site-header .menu-toggle:hover span,
html body .site-header .menu-toggle:focus-visible span{background:var(--rp-c-red-dark)!important}

/* Fullscreen navigation remains a dark cinematic surface. */
html body .fullscreen-menu .menu-panel{color:#fff!important}
html body .fullscreen-menu .menu-links a{color:#fff!important;opacity:1!important}
html body .fullscreen-menu .menu-links a[href="services.html"]{color:var(--rp-c-red-light)!important}
html body .fullscreen-menu .menu-links a:hover,
html body .fullscreen-menu .menu-links a:focus-visible{color:var(--rp-c-red-light)!important}
html body .fullscreen-menu .menu-close,
html body .fullscreen-menu .menu-close span{color:#fff!important;opacity:1!important}
html body .fullscreen-menu .menu-close i::before,
html body .fullscreen-menu .menu-close i::after{background:#fff!important;opacity:1!important}

/* Internal heroes are full-bleed cinematic dark surfaces in the final cascade. */
body.rp-standardized-page .hero,
body.rp-standardized-page .rp-page-hero{color:#fff!important}
body.rp-standardized-page .hero h1,
body.rp-standardized-page .hero h2,
body.rp-standardized-page .hero h3,
body.rp-standardized-page .rp-page-hero h1,
body.rp-standardized-page .rp-page-hero h2,
body.rp-standardized-page .rp-page-hero h3{
  color:#fff!important;
  text-shadow:0 18px 54px rgba(0,0,0,.52)!important;
}
body.rp-standardized-page .hero .lead,
body.rp-standardized-page .hero p:not(.eyebrow),
body.rp-standardized-page .rp-page-hero .lead,
body.rp-standardized-page .rp-page-hero p:not(.eyebrow){
  color:var(--rp-c-on-dark)!important;
  text-shadow:0 10px 30px rgba(0,0,0,.38)!important;
}
body.rp-standardized-page .hero .eyebrow,
body.rp-standardized-page .rp-page-hero .eyebrow{color:var(--rp-c-red-light)!important}
body.rp-standardized-page .hero .eyebrow::before,
body.rp-standardized-page .rp-page-hero .eyebrow::before{background:var(--rp-c-red-light)!important}
body.rp-standardized-page .hero .btn--secondary,
body.rp-standardized-page .rp-page-hero .btn--secondary{
  color:#fff!important;
  background:rgba(7,17,31,.58)!important;
  border-color:rgba(255,255,255,.42)!important;
  box-shadow:0 16px 38px rgba(0,0,0,.22)!important;
}
body.rp-standardized-page .hero .btn--secondary:hover,
body.rp-standardized-page .rp-page-hero .btn--secondary:hover{
  color:var(--rp-c-ink)!important;
  background:#fff!important;
  border-color:#fff!important;
}

/* Explicit surface markers prevent inherited colors from contradicting backgrounds. */
body.rp-standardized-page main > section[data-rp-surface="dark"]{color:#fff!important}
body.rp-standardized-page main > section[data-rp-surface="dark"] > :is(.container,.rp-page-hero__content) :is(h1,h2,h3,strong){color:#fff!important}
body.rp-standardized-page main > section[data-rp-surface="dark"] > :is(.container,.rp-page-hero__content) :is(p,li,.lead){color:var(--rp-c-on-dark)!important}
body.rp-standardized-page main > section[data-rp-surface="dark"] .eyebrow{color:var(--rp-c-red-light)!important}
body.rp-standardized-page main > section[data-rp-surface="light"]{color:var(--rp-c-ink)!important}
body.rp-standardized-page main > section[data-rp-surface="light"] > .container :is(h1,h2,h3,strong){color:var(--rp-c-ink)!important}
body.rp-standardized-page main > section[data-rp-surface="light"] > .container :is(p,li,.lead){color:var(--rp-c-muted-soft)!important}
body.rp-standardized-page main > section[data-rp-surface="light"] .eyebrow{color:var(--rp-c-red-dark)!important}

/* Alternating light sections: deep navy text and stronger supporting copy. */
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(odd){color:var(--rp-c-ink)!important}
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(odd) h1,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(odd) h2,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(odd) h3,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(odd) strong,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(odd) a:not(.btn){color:var(--rp-c-ink)!important}
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(odd) p,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(odd) li,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(odd) .lead{color:var(--rp-c-muted-soft)!important}
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(odd) .eyebrow,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(odd) .card-kicker{color:var(--rp-c-red-dark)!important}

/* Alternating dark sections: solid, high-contrast light text. */
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even){color:#fff!important}
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) h1,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) h2,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) h3,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) strong,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) a:not(.btn){color:#fff!important}
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) p,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) li,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) .lead{color:var(--rp-c-on-dark)!important}
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) .eyebrow,
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) .card-kicker{color:var(--rp-c-red-light)!important}

/* Dark nested cards omitted by earlier alternation rules. */
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) :is(
  .timeline-list article,
  .next-steps article,
  .challenge-grid article,
  .capability-grid article,
  .sticky-note
){
  color:#fff!important;
  background:rgba(255,255,255,.075)!important;
  border-color:rgba(255,255,255,.18)!important;
  box-shadow:0 24px 70px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.08)!important;
}
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) :is(
  .timeline-list article,
  .next-steps article,
  .challenge-grid article,
  .capability-grid article,
  .sticky-note
) :is(h2,h3,strong,a){color:#fff!important}
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero):nth-of-type(even) :is(
  .timeline-list article,
  .next-steps article,
  .challenge-grid article,
  .capability-grid article,
  .sticky-note
) :is(p,li){color:var(--rp-c-on-dark)!important}

/* Service item chips intentionally remain light cards on dark category bands. */
body.rp-standardized-page .service-item-list li{
  color:var(--rp-c-ink)!important;
  background:#fff!important;
  border-color:rgba(19,34,58,.16)!important;
}

/* Explicit navy sections and their cards. */
body.rp-standardized-page .section--navy{color:#fff!important}
body.rp-standardized-page .section--navy .section-heading :is(h1,h2,h3,strong,a){color:#fff!important}
body.rp-standardized-page .section--navy .section-heading p:not(.eyebrow){color:var(--rp-c-on-dark)!important}
body.rp-standardized-page .section--navy .eyebrow,
body.rp-standardized-page .section--navy .card-kicker{color:var(--rp-c-red-light)!important}
body.rp-standardized-page .section--navy .service-card :is(h3,h3 a,.text-link){color:#fff!important}
body.rp-standardized-page .section--navy .service-card p:not(.card-kicker){color:var(--rp-c-on-dark)!important}

/* CTA outer bands are dark, while the approved CTA card itself is light. */
body.rp-standardized-page .section--cta{color:#fff!important}
body.rp-standardized-page .section--cta > .container.cta-panel{
  color:var(--rp-c-ink)!important;
  background:linear-gradient(135deg,#fff 0%,#FAF7F1 54%,#EFE8DC 100%)!important;
}
body.rp-standardized-page .section--cta .cta-panel :is(h1,h2,h3,strong){color:var(--rp-c-ink)!important;text-shadow:none!important}
body.rp-standardized-page .section--cta .cta-panel p:not(.eyebrow){color:var(--rp-c-muted)!important;text-shadow:none!important}
body.rp-standardized-page .section--cta .cta-panel .eyebrow{color:var(--rp-c-red-dark)!important}
body.rp-standardized-page .section--cta .cta-panel .btn--secondary{
  color:var(--rp-c-ink)!important;
  background:#fff!important;
  border-color:rgba(19,34,58,.34)!important;
}

/* Form controls remain legible on both alternating surfaces. */
body.rp-standardized-page :is(input,textarea,select){color:var(--rp-c-ink)!important;background:#fff!important;border-color:rgba(19,34,58,.28)!important}
body.rp-standardized-page main > section:nth-of-type(even) label{color:#fff!important}
body.rp-standardized-page main > section:nth-of-type(odd) label{color:var(--rp-c-ink)!important}

/* Homepage dark sections. */
body:not(.rp-standardized-page) :is(.hero,.services,.reel,.approach,.final-cta){color:#fff!important}
body:not(.rp-standardized-page) :is(.hero,.services,.reel,.approach,.final-cta) :is(h1,h2,h3,strong,a:not(.btn)){color:#fff!important}
body:not(.rp-standardized-page) .hero .hero-copy,
body:not(.rp-standardized-page) .services :is(.services-intro>p,.service-card p),
body:not(.rp-standardized-page) .reel p:not(.kicker),
body:not(.rp-standardized-page) .approach :is(.approach-copy>p:not(.kicker),.steps p),
body:not(.rp-standardized-page) .final-cta p:not(.kicker){color:var(--rp-c-on-dark)!important}
body:not(.rp-standardized-page) :is(.hero,.services,.reel,.approach,.final-cta) .kicker{color:var(--rp-c-red-light)!important}
body:not(.rp-standardized-page) .services .service-card{background:linear-gradient(180deg,rgba(255,255,255,.11),rgba(255,255,255,.055))!important;border-color:rgba(255,255,255,.28)!important}
body:not(.rp-standardized-page) .services .service-card p{color:var(--rp-c-on-dark)!important}
body:not(.rp-standardized-page) .approach .steps h3{color:#fff!important}
body:not(.rp-standardized-page) .approach .steps p{color:var(--rp-c-on-dark)!important}

/* Homepage light sections. */
body:not(.rp-standardized-page) :is(.mission,.testimonials){color:var(--rp-c-ink)!important}
body:not(.rp-standardized-page) :is(.mission,.testimonials) :is(h1,h2,h3,strong,a:not(.btn)){color:var(--rp-c-ink)!important}
body:not(.rp-standardized-page) .mission .mission-copy,
body:not(.rp-standardized-page) .testimonials :is(.testimonial-cards p,.testimonial-cards small){color:var(--rp-c-muted)!important}
body:not(.rp-standardized-page) .testimonial-cards article{background:#fff!important;border-color:rgba(19,34,58,.18)!important}

/* Trusted logos stay readable over glass and video. */
body:not(.rp-standardized-page) .trusted-hero h2{color:#fff!important;text-shadow:0 2px 18px rgba(0,0,0,.72)!important}
body:not(.rp-standardized-page) .trusted-hero .logo-card{color:#E5EDF7!important;background:rgba(7,17,31,.56)!important;border-color:rgba(255,255,255,.20)!important}
body:not(.rp-standardized-page) .trusted-hero .trusted-arrow{color:#fff!important;background:rgba(7,17,31,.72)!important;border-color:rgba(255,255,255,.34)!important}

/* Footer uses the approved dark system on every page. */
html body .site-footer.site-footer--premium{color:#fff!important}
html body .site-footer.site-footer--premium .footer-col h2{color:var(--rp-c-red-light)!important}
html body .site-footer.site-footer--premium :is(.footer-brand p,.footer-col p,.footer-col a,.footer-link-grid a,.footer-contact-mini a,.footer-bottom p,.footer-bottom a){color:var(--rp-c-on-dark)!important}
html body .site-footer.site-footer--premium .footer-newsletter input{color:#fff!important}
html body .site-footer.site-footer--premium .footer-newsletter input::placeholder{color:#D3DDE9!important;opacity:1!important}
html body .site-footer.site-footer--premium .footer-bottom{color:var(--rp-c-on-dark)!important}

/* Avoid low-opacity text on small screens. */
@media (max-width:760px){
  html body :is(p,li,.lead,.footer-col a,.footer-bottom p,.footer-bottom a){opacity:1!important}
  body:not(.rp-standardized-page) .hero .hero-copy{color:#fff!important;text-shadow:0 4px 24px rgba(0,0,0,.72)!important}
  body:not(.rp-standardized-page) .trusted-hero h2{letter-spacing:.16em!important}
}

@media (prefers-contrast:more){
  html body{--rp-c-muted:#2F3B4E;--rp-c-muted-soft:#344154;--rp-c-on-dark:#F0F4F9}
  html body :is(.service-card,.timeline-list article,.values-grid article,.cta-panel,.project-form){border-width:2px!important}
}

/* ===== SOURCE: assets/css/realpro-enterprise-uxui-refinement-final.css ===== */
/* ========================================================================
   REALPRO Studios — Enterprise UX/UI Refinement
   Final, non-destructive visual layer for all pages and viewports.
   ======================================================================== */

:root{
  --rp-enterprise-navy:#07111F;
  --rp-enterprise-navy-2:#0A1726;
  --rp-enterprise-ink:#13223A;
  --rp-enterprise-muted:#465368;
  --rp-enterprise-off:#F5F2EC;
  --rp-enterprise-white:#FFFFFF;
  --rp-enterprise-on-dark:#DCE5F0;
  --rp-enterprise-red:#D32F2F;
  --rp-enterprise-red-soft:#FF8585;
  --rp-enterprise-radius:clamp(18px,1.7vw,28px);
  --rp-enterprise-shadow:0 22px 64px rgba(7,17,31,.12);
  --rp-enterprise-shadow-dark:0 28px 76px rgba(0,0,0,.25);
  --rp-enterprise-ease:cubic-bezier(.22,.61,.36,1);
}

html{
  scroll-padding-top:clamp(78px,7vw,104px);
  overscroll-behavior-y:none;
}

html body{
  overflow-x:clip!important;
  -webkit-text-size-adjust:100%;
}

html body main{
  overflow:clip!important;
}

/* Reliability first: sections must always paint as they enter the viewport. */
html body main > section{
  content-visibility:visible!important;
  contain:none!important;
}

html body :is(h1,h2,h3){
  text-wrap:balance;
  overflow-wrap:normal;
}

html body :is(p,li,figcaption){
  text-wrap:pretty;
  overflow-wrap:break-word;
}

html body :target{
  scroll-margin-top:clamp(88px,8vw,116px);
}

html body img{
  color:transparent;
}

/* Consistent section rhythm without changing the approved structure. */
body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero){
  padding-block:clamp(78px,8vw,132px)!important;
}

body.rp-standardized-page main > section > .container,
body.rp-standardized-page main > section > :is(.service-grid,.gallery-grid){
  position:relative;
  z-index:1;
}

body.rp-standardized-page .section-heading{
  margin-bottom:clamp(34px,4.6vw,66px)!important;
}

body.rp-standardized-page .section-heading > :is(h1,h2),
body.rp-standardized-page .editorial-copy > :is(h1,h2),
body.rp-standardized-page .process-timeline .section-heading > h2{
  max-inline-size:15ch;
}

body.rp-standardized-page .section-heading > p:not(.eyebrow),
body.rp-standardized-page .editorial-copy > p:not(.eyebrow){
  max-inline-size:64ch;
  line-height:1.72!important;
}

/* Hero legibility and framing. */
body.rp-standardized-page :is(.rp-page-hero,main > .hero)::before{
  background:
    radial-gradient(circle at 12% 68%,rgba(211,47,47,.25),transparent 27%),
    linear-gradient(90deg,rgba(7,17,31,.98) 0%,rgba(7,17,31,.90) 36%,rgba(7,17,31,.46) 69%,rgba(7,17,31,.18) 100%),
    linear-gradient(180deg,rgba(0,0,0,.45),rgba(0,0,0,.06) 40%,rgba(0,0,0,.58))!important;
}

body.rp-standardized-page :is(.rp-page-hero,main > .hero) h1{
  max-inline-size:11ch!important;
  font-size:clamp(58px,6.25vw,112px)!important;
  line-height:.92!important;
  letter-spacing:-.035em!important;
  text-shadow:0 20px 58px rgba(0,0,0,.52)!important;
}

body.rp-standardized-page :is(.rp-page-hero,main > .hero) .lead{
  max-inline-size:64ch!important;
  line-height:1.62!important;
}

/* Surface-aware nested components. */
body.rp-standardized-page main > section[data-rp-surface="dark"] :is(
  .timeline-list article,
  .values-grid article,
  .process-cards article,
  .process-step,
  .next-steps article,
  .challenge-grid article,
  .capability-grid article,
  .quote-card,
  .sticky-note,
  .contact-details div,
  .case-facts div,
  .result-grid div
){
  color:#fff!important;
  background:linear-gradient(145deg,rgba(255,255,255,.095),rgba(255,255,255,.045))!important;
  border:1px solid rgba(255,255,255,.18)!important;
  box-shadow:var(--rp-enterprise-shadow-dark),inset 0 1px 0 rgba(255,255,255,.09)!important;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}

body.rp-standardized-page main > section[data-rp-surface="dark"] :is(
  .timeline-list article,
  .values-grid article,
  .process-cards article,
  .process-step,
  .next-steps article,
  .challenge-grid article,
  .capability-grid article,
  .quote-card,
  .sticky-note,
  .contact-details div,
  .case-facts div,
  .result-grid div
) :is(h2,h3,strong,a){color:#fff!important}

body.rp-standardized-page main > section[data-rp-surface="dark"] :is(
  .timeline-list article,
  .values-grid article,
  .process-cards article,
  .process-step,
  .next-steps article,
  .challenge-grid article,
  .capability-grid article,
  .quote-card,
  .sticky-note,
  .contact-details div,
  .case-facts div,
  .result-grid div
) :is(p,li,span:not(.eyebrow)){color:var(--rp-enterprise-on-dark)!important}

body.rp-standardized-page main > section[data-rp-surface="light"] :is(
  .timeline-list article,
  .values-grid article,
  .process-cards article,
  .process-step,
  .next-steps article,
  .challenge-grid article,
  .capability-grid article,
  .quote-card,
  .sticky-note,
  .contact-details div,
  .case-facts div,
  .result-grid div
){
  color:var(--rp-enterprise-ink)!important;
  background:rgba(255,255,255,.94)!important;
  border:1px solid rgba(19,34,58,.12)!important;
  box-shadow:var(--rp-enterprise-shadow)!important;
}

body.rp-standardized-page main > section[data-rp-surface="light"] :is(
  .timeline-list article,
  .values-grid article,
  .process-cards article,
  .process-step,
  .next-steps article,
  .challenge-grid article,
  .capability-grid article,
  .quote-card,
  .sticky-note,
  .contact-details div,
  .case-facts div,
  .result-grid div
) :is(h2,h3,strong,a){color:var(--rp-enterprise-ink)!important}

body.rp-standardized-page main > section[data-rp-surface="light"] :is(
  .timeline-list article,
  .values-grid article,
  .process-cards article,
  .process-step,
  .next-steps article,
  .challenge-grid article,
  .capability-grid article,
  .quote-card,
  .sticky-note,
  .contact-details div,
  .case-facts div,
  .result-grid div
) :is(p,li,span:not(.eyebrow)){color:var(--rp-enterprise-muted)!important}

/* Standardized cards share the same geometry and density. */
body.rp-standardized-page :is(
  .timeline-list article,
  .values-grid article,
  .process-cards article,
  .process-step,
  .next-steps article,
  .challenge-grid article,
  .capability-grid article,
  .quote-card,
  .contact-details div,
  .case-facts div,
  .result-grid div,
  .service-card,
  .project-form
){
  border-radius:var(--rp-enterprise-radius)!important;
}

body.rp-standardized-page :is(.timeline-list,.values-grid,.process-cards,.next-steps,.challenge-grid,.capability-grid,.result-grid){
  gap:clamp(16px,2vw,28px)!important;
}

body.rp-standardized-page :is(.timeline-list article,.values-grid article,.process-cards article,.next-steps article,.challenge-grid article,.capability-grid article){
  padding:clamp(24px,2.5vw,36px)!important;
}

body.rp-standardized-page :is(.timeline-list article,.values-grid article,.capability-grid article) h3{
  font-size:clamp(1.45rem,2vw,2rem)!important;
  line-height:1.04!important;
}

body.rp-standardized-page :is(.timeline-list article,.values-grid article,.capability-grid article) p{
  line-height:1.68!important;
}

body.rp-standardized-page .service-card h3 a,
body.rp-standardized-page :is(.legal-layout,.article-layout) aside a{
  display:flex!important;
  align-items:center!important;
  min-height:44px!important;
  padding-block:5px!important;
}

/* Service item chips remain deliberately light on both surfaces. */
body.rp-standardized-page .service-item-list{
  gap:10px!important;
}

body.rp-standardized-page .service-item-list li{
  min-height:42px;
  display:flex;
  align-items:center;
  color:var(--rp-enterprise-ink)!important;
  background:rgba(255,255,255,.98)!important;
  border:1px solid rgba(19,34,58,.14)!important;
  box-shadow:0 8px 24px rgba(7,17,31,.07)!important;
}

/* Forms use a controlled light surface, even inside a dark band. */
html body.rp-standardized-page main > section[data-rp-surface]:not(.rp-page-hero):not(.hero) .project-form{
  color:var(--rp-enterprise-ink)!important;
  background:linear-gradient(145deg,#FFFFFF,#F7F4EE)!important;
  border:1px solid rgba(255,255,255,.72)!important;
  box-shadow:0 34px 88px rgba(0,0,0,.26)!important;
  padding:clamp(24px,3vw,38px)!important;
}

html body.rp-standardized-page main > section[data-rp-surface]:not(.rp-page-hero):not(.hero) .project-form :is(label,.form-note){
  color:var(--rp-enterprise-ink)!important;
  text-shadow:none!important;
}

html body.rp-standardized-page main > section[data-rp-surface]:not(.rp-page-hero):not(.hero) .project-form .form-note{
  color:var(--rp-enterprise-muted)!important;
}

body.rp-standardized-page .project-form :is(input,textarea,select){
  min-height:54px!important;
  color:var(--rp-enterprise-ink)!important;
  background:#fff!important;
  border:1px solid rgba(19,34,58,.22)!important;
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset!important;
}

body.rp-standardized-page .project-form textarea{
  min-height:156px!important;
  resize:vertical;
}

body.rp-standardized-page .project-form :is(input,textarea,select):focus{
  border-color:var(--rp-enterprise-red)!important;
  box-shadow:0 0 0 4px rgba(211,47,47,.12)!important;
}

/* CTA card is intentionally light against its dark outer band. */
body.rp-standardized-page .section--cta .cta-panel{
  border:1px solid rgba(255,255,255,.72)!important;
  box-shadow:0 34px 96px rgba(0,0,0,.30)!important;
}

body.rp-standardized-page .cta-media,
body.rp-standardized-page .image-frame,
body.rp-standardized-page .gallery-item,
body.rp-standardized-page .media-link{
  border-radius:var(--rp-enterprise-radius)!important;
  overflow:hidden!important;
}

body.rp-standardized-page :is(.cta-media,.image-frame,.gallery-item,.media-link) img{
  transition:transform 850ms var(--rp-enterprise-ease),filter 850ms var(--rp-enterprise-ease)!important;
}

/* Buttons and links: restrained enterprise-grade interaction. */
html body :is(.btn,.btn-red,.services-more,.text-link){
  transition:
    transform 260ms var(--rp-enterprise-ease),
    box-shadow 260ms var(--rp-enterprise-ease),
    color 220ms ease,
    background-color 220ms ease,
    border-color 220ms ease!important;
}

html body :is(.btn,.btn-red){
  min-height:52px;
  touch-action:manipulation;
}

html body :is(.btn,.btn-red):active{
  transform:translateY(1px) scale(.985)!important;
}

html body :is(.text-link,.services-more){
  min-height:44px;
  align-items:center;
}

/* Home: preserve presentation while resolving the real mobile overflow. */
body:not(.rp-standardized-page) .testimonials-grid{
  min-width:0;
}

body:not(.rp-standardized-page) .testimonial-cards{
  min-width:0;
}

body:not(.rp-standardized-page) .testimonial-cards article{
  border-radius:18px;
  transition:transform 320ms var(--rp-enterprise-ease),box-shadow 320ms var(--rp-enterprise-ease),border-color 320ms ease;
}

body:not(.rp-standardized-page) .service-card{
  transition:transform 340ms var(--rp-enterprise-ease),box-shadow 340ms var(--rp-enterprise-ease),border-color 340ms ease!important;
}

body:not(.rp-standardized-page) .approach-grid--copy-only{
  grid-template-columns:minmax(0,1fr)!important;
}

body:not(.rp-standardized-page) .approach-grid--copy-only .approach-copy{
  max-width:1180px;
}

/* Header, menu and footer safe-area details. */
html body .site-header[data-header]{
  padding-left:max(clamp(20px,7vw,138px),env(safe-area-inset-left))!important;
  padding-right:max(clamp(20px,7vw,138px),env(safe-area-inset-right))!important;
}

html body .fullscreen-menu .menu-panel{
  padding-top:max(32px,env(safe-area-inset-top))!important;
  padding-bottom:max(28px,env(safe-area-inset-bottom))!important;
}

html body .site-footer.site-footer--premium{
  padding-bottom:env(safe-area-inset-bottom)!important;
}

html body .footer-social a,
html body .footer-newsletter button{
  min-width:44px!important;
  min-height:44px!important;
}

/* Footer: explicit contrast, collision-free grid and consistent alignment. */
html body .site-footer.site-footer--premium{
  color:#fff!important;
  background:
    radial-gradient(circle at 10% 14%,rgba(211,47,47,.13),transparent 30%),
    radial-gradient(circle at 88% 8%,rgba(42,72,108,.16),transparent 32%),
    linear-gradient(180deg,#07111F 0%,#050B13 100%)!important;
}

html body .site-footer.site-footer--premium .footer-shell{
  width:min(100% - clamp(40px,7vw,140px),1580px)!important;
  max-width:1580px!important;
  margin-inline:auto!important;
}

html body .site-footer.site-footer--premium .footer-main{
  display:grid!important;
  grid-template-columns:minmax(280px,1.08fr) minmax(150px,.58fr) minmax(430px,1.38fr) minmax(300px,1fr)!important;
  grid-template-areas:"brand navigate services newsletter"!important;
  align-items:start!important;
  gap:clamp(42px,3.7vw,76px)!important;
  width:100%!important;
  padding:0!important;
}

html body .site-footer.site-footer--premium .footer-brand{
  grid-area:brand!important;
  min-width:0!important;
  max-width:390px!important;
}

html body .site-footer.site-footer--premium .footer-col--navigate{
  grid-area:navigate!important;
}

html body .site-footer.site-footer--premium .footer-col--services{
  grid-area:services!important;
}

html body .site-footer.site-footer--premium .footer-col--newsletter{
  grid-area:newsletter!important;
}

html body .site-footer.site-footer--premium .footer-col{
  display:block!important;
  min-width:0!important;
  align-self:start!important;
}

html body .site-footer.site-footer--premium .footer-col h2,
html body .site-footer.site-footer--premium nav.footer-col h2{
  display:block!important;
  width:100%!important;
  min-height:32px!important;
  margin:0 0 34px!important;
  padding:0 0 18px!important;
  color:#FF8585!important;
  font-size:clamp(13px,.82vw,16px)!important;
  font-weight:850!important;
  line-height:1!important;
  letter-spacing:.24em!important;
  text-transform:uppercase!important;
  text-shadow:0 0 26px rgba(211,47,47,.12)!important;
  border:0!important;
}

html body .site-footer.site-footer--premium .footer-col h2::before{
  display:none!important;
}

html body .site-footer.site-footer--premium .footer-col h2::after{
  content:""!important;
  display:block!important;
  position:static!important;
  width:54px!important;
  height:3px!important;
  margin-top:17px!important;
  background:#EF3340!important;
  border:0!important;
  border-radius:999px!important;
  transform:none!important;
  opacity:1!important;
}

html body .site-footer.site-footer--premium .footer-brand p,
html body .site-footer.site-footer--premium .footer-col p,
html body .site-footer.site-footer--premium .footer-col a,
html body .site-footer.site-footer--premium .footer-link-grid a,
html body .site-footer.site-footer--premium .footer-contact-mini a{
  color:#DCE5F0!important;
  opacity:1!important;
}

html body .site-footer.site-footer--premium .footer-brand p{
  max-width:38ch!important;
  margin:24px 0 28px!important;
  font-size:clamp(15px,1vw,18px)!important;
  line-height:1.72!important;
}

html body .site-footer.site-footer--premium nav.footer-col.footer-col--navigate > a{
  display:flex!important;
  align-items:center!important;
  min-height:40px!important;
  margin:0 0 4px!important;
  padding:5px 0!important;
  font-size:clamp(14px,.92vw,17px)!important;
  line-height:1.35!important;
}

html body .site-footer.site-footer--premium nav.footer-col.footer-col--navigate > a:last-child{
  margin-bottom:0!important;
}

html body .site-footer.site-footer--premium nav.footer-col.footer-col--navigate:not(.footer-col--services):not(.footer-col--newsletter):not(.newsletter-col):not(.contact-col) > a:not(:last-child){
  margin:0 0 4px!important;
}

html body .site-footer.site-footer--premium .footer-link-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:4px clamp(24px,2.2vw,48px)!important;
  width:100%!important;
  min-width:0!important;
}

html body .site-footer.site-footer--premium .footer-link-grid a{
  display:flex!important;
  align-items:center!important;
  min-width:0!important;
  min-height:40px!important;
  padding:5px 0 5px 18px!important;
  font-size:clamp(14px,.92vw,17px)!important;
  line-height:1.35!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}

html body .site-footer.site-footer--premium .footer-link-grid a::before{
  left:0!important;
  top:50%!important;
  width:6px!important;
  height:6px!important;
  transform:translateY(-50%)!important;
  background:#EF3340!important;
  box-shadow:0 0 0 5px rgba(239,51,64,.08)!important;
}

html body .site-footer.site-footer--premium .footer-col--newsletter > p{
  max-width:34ch!important;
  margin:0 0 26px!important;
  font-size:clamp(15px,1vw,18px)!important;
  line-height:1.65!important;
}

html body .site-footer.site-footer--premium .footer-newsletter{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 64px!important;
  width:100%!important;
  max-width:440px!important;
  height:64px!important;
  margin:0 0 24px!important;
  overflow:hidden!important;
  border:1px solid rgba(220,229,240,.28)!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.065)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06)!important;
}

html body .site-footer.site-footer--premium .footer-newsletter input{
  width:100%!important;
  min-width:0!important;
  height:62px!important;
  padding:0 20px!important;
  color:#fff!important;
  background:transparent!important;
  border:0!important;
  outline:0!important;
}

html body .site-footer.site-footer--premium .footer-newsletter input::placeholder{
  color:#DCE5F0!important;
  opacity:.9!important;
}

html body .site-footer.site-footer--premium .footer-newsletter button{
  position:relative!important;
  display:grid!important;
  place-items:center!important;
  width:64px!important;
  min-width:64px!important;
  height:64px!important;
  min-height:64px!important;
  padding:0!important;
  color:transparent!important;
  font-size:0!important;
  background:linear-gradient(145deg,#EF3340,#C92531)!important;
  border:0!important;
  border-radius:50%!important;
}

html body .site-footer.site-footer--premium .footer-newsletter button::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:13px!important;
  height:13px!important;
  border-top:3px solid #fff!important;
  border-right:3px solid #fff!important;
  transform:translate(-36%,-50%) rotate(45deg)!important;
  opacity:1!important;
  visibility:visible!important;
}

html body .site-footer.site-footer--premium .footer-newsletter button::after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:21px!important;
  height:3px!important;
  background:#fff!important;
  border-radius:999px!important;
  transform:translate(-58%,-50%)!important;
  opacity:1!important;
  visibility:visible!important;
}

html body .site-footer.site-footer--premium .footer-contact-mini{
  display:grid!important;
  gap:6px!important;
  min-width:0!important;
}

html body .site-footer.site-footer--premium .footer-contact-mini a{
  display:grid!important;
  grid-template-columns:22px minmax(0,1fr)!important;
  align-items:center!important;
  gap:12px!important;
  min-width:0!important;
  min-height:38px!important;
  line-height:1.4!important;
}

html body .site-footer.site-footer--premium .footer-contact-mini svg{
  width:20px!important;
  height:20px!important;
  color:#EF3340!important;
  fill:currentColor!important;
}

html body .site-footer.site-footer--premium .footer-contact-mini span{
  min-width:0!important;
  overflow-wrap:anywhere!important;
}

html body .site-footer.site-footer--premium .footer-bottom,
html body .site-footer.site-footer--premium .footer-bottom.footer-bottom--premium{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:24px!important;
  width:100%!important;
  min-height:72px!important;
  margin-top:64px!important;
  padding:24px 88px 0 0!important;
  border-top:1px solid rgba(220,229,240,.16)!important;
}

html body .site-footer.site-footer--premium .footer-bottom p,
html body .site-footer.site-footer--premium .footer-bottom a{
  color:#DCE5F0!important;
  opacity:1!important;
}

html body .site-footer.site-footer--premium .footer-bottom p{
  margin:0!important;
  white-space:normal!important;
}

html body .site-footer.site-footer--premium .footer-bottom > div{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  flex-wrap:wrap!important;
  gap:14px 24px!important;
  min-width:0!important;
}

html body .site-footer.site-footer--premium .footer-bottom > div span[aria-hidden="true"]{
  color:rgba(220,229,240,.42)!important;
}

html body .rp-scroll-top{
  right:max(24px,env(safe-area-inset-right))!important;
  bottom:max(88px,calc(env(safe-area-inset-bottom) + 24px))!important;
  width:56px!important;
  height:56px!important;
  color:transparent!important;
  font-size:0!important;
}

html body .rp-scroll-top::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:13px!important;
  height:13px!important;
  border-top:3px solid #fff!important;
  border-left:3px solid #fff!important;
  transform:translate(-50%,-72%) rotate(45deg)!important;
  opacity:1!important;
  visibility:visible!important;
}

html body .rp-scroll-top::after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:3px!important;
  height:22px!important;
  background:#fff!important;
  border-radius:999px!important;
  transform:translate(-50%,-32%)!important;
  opacity:1!important;
  visibility:visible!important;
}

/* Mobile header and fullscreen navigation: clear in every state. */
@media (max-width:760px){
  html body .site-header[data-header]{
    height:76px!important;
    min-height:76px!important;
    padding-top:max(10px,env(safe-area-inset-top))!important;
    padding-bottom:10px!important;
    padding-left:max(18px,env(safe-area-inset-left))!important;
    padding-right:max(18px,env(safe-area-inset-right))!important;
    background:linear-gradient(180deg,rgba(7,17,31,.94),rgba(7,17,31,.78))!important;
    border-bottom:1px solid rgba(255,255,255,.10)!important;
    box-shadow:0 12px 34px rgba(0,0,0,.18)!important;
    backdrop-filter:blur(16px) saturate(1.12)!important;
    -webkit-backdrop-filter:blur(16px) saturate(1.12)!important;
  }

  html body .site-header[data-header].is-scrolled:not(.is-menu-open){
    height:70px!important;
    min-height:70px!important;
    padding-top:max(8px,env(safe-area-inset-top))!important;
    padding-bottom:8px!important;
    background:rgba(255,255,255,.97)!important;
    border-bottom:1px solid rgba(19,34,58,.13)!important;
    box-shadow:0 14px 38px rgba(7,17,31,.12)!important;
  }

  html body .site-header[data-header] .header-logo{
    width:clamp(132px,38vw,150px)!important;
    max-width:44vw!important;
    max-height:54px!important;
    filter:drop-shadow(0 10px 24px rgba(0,0,0,.28))!important;
  }

  html body .site-header[data-header] .header-logo img{
    width:100%!important;
    height:auto!important;
    max-height:54px!important;
    object-fit:contain!important;
  }

  html body .site-header[data-header].is-scrolled .header-logo{
    width:clamp(126px,36vw,142px)!important;
    max-height:52px!important;
    filter:none!important;
  }

  html body .site-header[data-header] .menu-toggle{
    display:grid!important;
    place-content:center!important;
    width:48px!important;
    min-width:48px!important;
    height:46px!important;
    min-height:46px!important;
    margin:0!important;
    gap:6px!important;
    color:#fff!important;
    background:rgba(255,255,255,.055)!important;
    border:1px solid rgba(255,255,255,.18)!important;
    border-radius:14px!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.08)!important;
  }

  html body .site-header[data-header] .menu-toggle span{
    width:27px!important;
    height:2px!important;
    background:#fff!important;
    box-shadow:none!important;
  }

  html body .site-header[data-header] .menu-toggle span:nth-child(2){
    width:21px!important;
    justify-self:end!important;
  }

  html body .site-header[data-header] .menu-toggle:hover span:nth-child(2),
  html body .site-header[data-header] .menu-toggle:focus-visible span:nth-child(2){
    width:27px!important;
  }

  html body .site-header[data-header].is-scrolled:not(.is-menu-open) .menu-toggle{
    color:var(--rp-enterprise-ink)!important;
    background:rgba(19,34,58,.05)!important;
    border-color:rgba(19,34,58,.16)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.82)!important;
  }

  html body .site-header[data-header].is-scrolled:not(.is-menu-open) .menu-toggle span{
    background:var(--rp-enterprise-ink)!important;
  }

  html body .fullscreen-menu#siteMenu .menu-panel{
    min-height:100dvh!important;
    padding-top:max(18px,env(safe-area-inset-top))!important;
    padding-right:max(20px,env(safe-area-inset-right))!important;
    padding-bottom:max(24px,env(safe-area-inset-bottom))!important;
    padding-left:max(20px,env(safe-area-inset-left))!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    background:
      radial-gradient(circle at 14% 14%,rgba(211,47,47,.15),transparent 31%),
      radial-gradient(circle at 92% 10%,rgba(68,100,138,.17),transparent 30%),
      linear-gradient(155deg,#07111F 0%,#0A1726 62%,#050B13 100%)!important;
  }

  html body .fullscreen-menu#siteMenu .menu-panel::before{
    opacity:.10!important;
    background-size:72px 72px!important;
  }

  html body .fullscreen-menu#siteMenu .menu-top{
    min-height:72px!important;
    align-items:center!important;
  }

  html body .fullscreen-menu#siteMenu .menu-top img{
    width:clamp(148px,43vw,174px)!important;
    max-width:54vw!important;
    max-height:70px!important;
  }

  html body .fullscreen-menu#siteMenu .menu-close{
    display:grid!important;
    place-content:center!important;
    width:48px!important;
    min-width:48px!important;
    height:48px!important;
    min-height:48px!important;
    padding:0!important;
    color:#fff!important;
    background:rgba(255,255,255,.055)!important;
    border:1px solid rgba(255,255,255,.18)!important;
    border-radius:50%!important;
  }

  html body .fullscreen-menu#siteMenu .menu-close span{
    display:none!important;
  }

  html body .fullscreen-menu#siteMenu .menu-close i{
    width:28px!important;
    height:28px!important;
  }

  html body .fullscreen-menu#siteMenu .menu-close i::before,
  html body .fullscreen-menu#siteMenu .menu-close i::after{
    left:1px!important;
    width:26px!important;
    height:2px!important;
    background:#fff!important;
  }

  html body .fullscreen-menu#siteMenu .menu-content{
    display:block!important;
    margin-top:22px!important;
  }

  html body .fullscreen-menu#siteMenu .menu-links{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:0!important;
    width:100%!important;
  }

  html body .fullscreen-menu#siteMenu .menu-links a{
    display:flex!important;
    align-items:center!important;
    width:100%!important;
    min-height:0!important;
    padding:8px 0 9px!important;
    color:#fff!important;
    font-size:clamp(43px,13.8vw,56px)!important;
    font-weight:620!important;
    line-height:.86!important;
    letter-spacing:-.035em!important;
    text-transform:uppercase!important;
    border-bottom:1px solid rgba(255,255,255,.09)!important;
    text-shadow:0 14px 34px rgba(0,0,0,.24)!important;
  }

  html body .fullscreen-menu#siteMenu .menu-links a:last-child{
    border-bottom:0!important;
  }

  html body .fullscreen-menu#siteMenu .menu-links a[aria-current="page"]{
    color:#FF8585!important;
  }

  html body .fullscreen-menu#siteMenu .menu-links a:hover,
  html body .fullscreen-menu#siteMenu .menu-links a:focus-visible{
    color:#FF8585!important;
    padding-left:10px!important;
  }

  html body .fullscreen-menu#siteMenu .menu-signature{
    margin:30px 0 0!important;
    color:#AAB7C8!important;
    font-size:10px!important;
    font-weight:700!important;
    line-height:1.6!important;
    letter-spacing:.34em!important;
    text-transform:uppercase!important;
  }
}

@media (max-width:420px){
  html body .fullscreen-menu#siteMenu .menu-links a{
    font-size:clamp(40px,13.5vw,52px)!important;
  }
}

@media (max-width:1000px) and (max-height:600px){
  html body .site-header[data-header],
  html body .site-header[data-header].is-scrolled:not(.is-menu-open){
    height:66px!important;
    min-height:66px!important;
    padding:7px max(18px,env(safe-area-inset-right)) 7px max(18px,env(safe-area-inset-left))!important;
  }

  html body .site-header[data-header]{
    background:linear-gradient(180deg,rgba(7,17,31,.94),rgba(7,17,31,.80))!important;
    border-bottom:1px solid rgba(255,255,255,.10)!important;
    backdrop-filter:blur(16px)!important;
    -webkit-backdrop-filter:blur(16px)!important;
  }

  html body .site-header[data-header] .header-logo,
  html body .site-header[data-header].is-scrolled .header-logo{
    width:128px!important;
    max-width:34vw!important;
    max-height:52px!important;
  }

  html body .site-header[data-header] .menu-toggle{
    width:46px!important;
    min-width:46px!important;
    height:42px!important;
    min-height:42px!important;
    margin:0!important;
    color:#fff!important;
    background:rgba(255,255,255,.055)!important;
    border:1px solid rgba(255,255,255,.18)!important;
    border-radius:13px!important;
  }

  html body .site-header[data-header] .menu-toggle span{
    width:25px!important;
    height:2px!important;
    background:#fff!important;
  }

  html body .fullscreen-menu#siteMenu .menu-panel{
    padding-top:10px!important;
    padding-right:max(18px,env(safe-area-inset-right))!important;
    padding-bottom:14px!important;
    padding-left:max(18px,env(safe-area-inset-left))!important;
    overflow-x:hidden!important;
    background:
      radial-gradient(circle at 14% 14%,rgba(211,47,47,.15),transparent 31%),
      linear-gradient(155deg,#07111F 0%,#0A1726 62%,#050B13 100%)!important;
  }

  html body .fullscreen-menu#siteMenu .menu-top{
    min-height:58px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
  }

  html body .fullscreen-menu#siteMenu .menu-top img{
    width:128px!important;
    max-height:54px!important;
  }

  html body .fullscreen-menu#siteMenu .menu-close{
    display:grid!important;
    place-content:center!important;
    width:42px!important;
    min-width:42px!important;
    height:42px!important;
    min-height:42px!important;
    padding:0!important;
    background:rgba(255,255,255,.055)!important;
    border:1px solid rgba(255,255,255,.18)!important;
    border-radius:50%!important;
  }

  html body .fullscreen-menu#siteMenu .menu-close span{
    display:none!important;
  }

  html body .fullscreen-menu#siteMenu .menu-close i{
    width:26px!important;
    height:26px!important;
  }

  html body .fullscreen-menu#siteMenu .menu-close i::before,
  html body .fullscreen-menu#siteMenu .menu-close i::after{
    left:1px!important;
    width:24px!important;
    height:2px!important;
    background:#fff!important;
  }

  html body .fullscreen-menu#siteMenu .menu-content{
    margin-top:4px!important;
  }

  html body .fullscreen-menu#siteMenu .menu-links a{
    display:flex!important;
    align-items:center!important;
    width:100%!important;
    min-height:0!important;
    padding:4px 0 5px!important;
    color:#fff!important;
    font-size:clamp(32px,7vh,39px)!important;
    font-weight:620!important;
    line-height:.88!important;
    letter-spacing:-.025em!important;
    border-bottom:1px solid rgba(255,255,255,.08)!important;
  }

  html body .fullscreen-menu#siteMenu .menu-links a[aria-current="page"]{
    color:#FF8585!important;
  }

  html body .fullscreen-menu#siteMenu .menu-signature{
    margin-top:12px!important;
    font-size:9px!important;
  }
}

@media (max-width:1299px){
  html body .site-footer.site-footer--premium .footer-main{
    grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)!important;
    grid-template-areas:"brand navigate" "services newsletter"!important;
    gap:54px clamp(48px,7vw,92px)!important;
  }

  html body .site-footer.site-footer--premium .footer-brand{
    max-width:520px!important;
  }
}

@media (max-width:900px){
  html body .site-footer.site-footer--premium .footer-shell{
    width:calc(100% - 40px)!important;
  }

  html body .site-footer.site-footer--premium .footer-main{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-template-areas:"brand brand" "navigate newsletter" "services services"!important;
    gap:46px 40px!important;
  }

  html body .site-footer.site-footer--premium .footer-col h2,
  html body .site-footer.site-footer--premium nav.footer-col h2{
    margin-bottom:24px!important;
  }

  html body .site-footer.site-footer--premium .footer-bottom,
  html body .site-footer.site-footer--premium .footer-bottom.footer-bottom--premium{
    align-items:flex-start!important;
    flex-direction:column!important;
    padding-right:76px!important;
  }
}

@media (max-width:600px){
  html body .site-footer.site-footer--premium .footer-shell{
    width:calc(100% - 28px)!important;
  }

  html body .site-footer.site-footer--premium .footer-main{
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-areas:"brand" "navigate" "services" "newsletter"!important;
    gap:42px!important;
  }

  html body .site-footer.site-footer--premium .footer-link-grid{
    grid-template-columns:minmax(0,1fr)!important;
    gap:2px!important;
  }

  html body .site-footer.site-footer--premium .footer-newsletter{
    max-width:none!important;
    grid-template-columns:minmax(0,1fr) 58px!important;
    height:58px!important;
  }

  html body .site-footer.site-footer--premium .footer-newsletter input{
    height:56px!important;
    padding-left:16px!important;
  }

  html body .site-footer.site-footer--premium .footer-newsletter button{
    width:58px!important;
    min-width:58px!important;
    height:58px!important;
    min-height:58px!important;
  }

  html body .site-footer.site-footer--premium .footer-bottom,
  html body .site-footer.site-footer--premium .footer-bottom.footer-bottom--premium{
    margin-top:48px!important;
    padding:22px 68px 8px 0!important;
  }

  html body .site-footer.site-footer--premium .footer-bottom > div{
    justify-content:flex-start!important;
    gap:10px 16px!important;
  }

  html body .rp-scroll-top{
    right:max(14px,env(safe-area-inset-right))!important;
    bottom:max(76px,calc(env(safe-area-inset-bottom) + 18px))!important;
    width:50px!important;
    height:50px!important;
  }
}

/* Motion enhancement: content is visible by default and never depends on JS. */
.rp-enterprise-reveal{
  opacity:0;
  transform:translate3d(0,22px,0);
  transition:opacity 680ms var(--rp-enterprise-ease),transform 680ms var(--rp-enterprise-ease);
  transition-delay:var(--rp-enterprise-delay,0ms);
}

.rp-enterprise-reveal.is-visible{
  opacity:1;
  transform:none;
}

@media (hover:hover) and (pointer:fine){
  body.rp-standardized-page :is(
    .timeline-list article,
    .values-grid article,
    .process-cards article,
    .next-steps article,
    .challenge-grid article,
    .capability-grid article,
    .service-card
  ):hover{
    transform:translateY(-6px)!important;
    border-color:rgba(211,47,47,.34)!important;
  }

  body.rp-standardized-page :is(.cta-media,.image-frame,.gallery-item,.media-link):hover img{
    transform:scale(1.035)!important;
    filter:saturate(1.04) contrast(1.04)!important;
  }

  body:not(.rp-standardized-page) :is(.service-card,.testimonial-cards article):hover{
    transform:translateY(-6px)!important;
    border-color:rgba(211,47,47,.42)!important;
    box-shadow:0 30px 76px rgba(7,17,31,.18)!important;
  }
}

@media (max-width:1180px){
  body:not(.rp-standardized-page) .testimonial-dots{
    grid-column:1!important;
  }

  body.rp-standardized-page .section-heading--split{
    grid-template-columns:1fr!important;
    align-items:start!important;
  }

  body.rp-standardized-page .section-heading--split > p{
    justify-self:start!important;
  }
}

@media (max-width:900px){
  body.rp-standardized-page :is(.rp-page-hero,main > .hero){
    min-height:max(720px,100svh)!important;
  }

  body.rp-standardized-page :is(.rp-page-hero,main > .hero)::before{
    background:
      linear-gradient(90deg,rgba(7,17,31,.94),rgba(7,17,31,.72)),
      linear-gradient(180deg,rgba(7,17,31,.28),rgba(7,17,31,.70))!important;
  }

  body.rp-standardized-page :is(.rp-page-hero__content,main > .hero .hero-grid,main > .hero .container){
    width:min(100% - 48px,760px)!important;
  }

  body.rp-standardized-page :is(.rp-page-hero,main > .hero) h1{
    font-size:clamp(50px,9vw,82px)!important;
  }
}

@media (max-width:760px){
  :root{--rp-enterprise-radius:18px}

  html body .container,
  body.rp-standardized-page :is(.service-grid,.gallery-grid){
    width:min(100% - 32px,760px)!important;
  }

  body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero){
    padding-block:clamp(68px,18vw,92px)!important;
  }

  body.rp-standardized-page :is(.rp-page-hero,main > .hero){
    min-height:max(680px,100svh)!important;
    padding:clamp(116px,18vh,150px) 0 clamp(54px,9vh,78px)!important;
    align-items:end!important;
  }

  body.rp-standardized-page :is(.rp-page-hero__content,main > .hero .hero-grid,main > .hero .container){
    width:calc(100% - 34px)!important;
  }

  body.rp-standardized-page :is(.rp-page-hero,main > .hero) h1{
    max-inline-size:10.5ch!important;
    font-size:clamp(42px,12vw,61px)!important;
    line-height:.92!important;
    margin-bottom:18px!important;
  }

  body.rp-standardized-page :is(.rp-page-hero,main > .hero) .lead{
    font-size:clamp(15px,4.05vw,17px)!important;
    line-height:1.56!important;
    margin-bottom:26px!important;
  }

  body.rp-standardized-page .button-row,
  body.rp-standardized-page .button-row .btn{
    width:100%!important;
  }

  body.rp-standardized-page :is(.timeline-list,.values-grid,.process-cards,.next-steps,.challenge-grid,.capability-grid,.result-grid){
    grid-template-columns:1fr!important;
  }

  body.rp-standardized-page :is(.timeline-list article,.values-grid article,.process-cards article,.next-steps article,.challenge-grid article,.capability-grid article){
    padding:24px!important;
  }

  body.rp-standardized-page .project-form{
    grid-template-columns:1fr!important;
    padding:24px 20px!important;
  }

  body.rp-standardized-page .project-form .form-row{
    grid-column:1!important;
  }

  body.rp-standardized-page .cta-panel{
    border-radius:22px!important;
    padding:26px 22px!important;
  }

  body:not(.rp-standardized-page) .testimonials-grid{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:34px!important;
  }

  body:not(.rp-standardized-page) .testimonials-grid > *{
    grid-column:1!important;
    min-width:0!important;
  }

  body:not(.rp-standardized-page) .testimonial-cards{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    width:100%!important;
    min-width:0!important;
    gap:18px!important;
  }

  body:not(.rp-standardized-page) .testimonial-cards article{
    width:100%!important;
    min-width:0!important;
    min-height:0!important;
    padding:28px 24px!important;
  }

  body:not(.rp-standardized-page) .testimonial-dots{
    display:none!important;
  }

  body:not(.rp-standardized-page) .trusted-arrow{
    min-width:44px!important;
    width:44px!important;
    height:44px!important;
  }

  body:not(.rp-standardized-page) .trusted-hero{
    grid-template-columns:44px minmax(0,1fr) 44px!important;
  }

  html body .fullscreen-menu .menu-panel{
    padding-left:max(20px,env(safe-area-inset-left))!important;
    padding-right:max(20px,env(safe-area-inset-right))!important;
  }

  html body .fullscreen-menu .menu-links a{
    min-height:54px;
    display:flex;
    align-items:center;
  }
}

@media (max-width:420px){
  html body .container,
  body.rp-standardized-page :is(.service-grid,.gallery-grid){
    width:calc(100% - 24px)!important;
  }

  body.rp-standardized-page :is(.rp-page-hero__content,main > .hero .hero-grid,main > .hero .container){
    width:calc(100% - 26px)!important;
  }

  body.rp-standardized-page :is(.rp-page-hero,main > .hero) h1{
    font-size:clamp(39px,11.5vw,52px)!important;
  }

  body:not(.rp-standardized-page) .testimonial-cards article{
    padding:25px 20px!important;
  }
}

@media (min-width:1800px){
  body.rp-standardized-page :is(.rp-page-hero,main > .hero) h1{
    font-size:clamp(84px,5.3vw,126px)!important;
  }

  body.rp-standardized-page main > section:not(.rp-page-hero):not(.hero){
    padding-block:clamp(120px,7vw,168px)!important;
  }
}

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

@media (prefers-contrast:more){
  body.rp-standardized-page main > section[data-rp-surface="dark"] :is(
    .timeline-list article,.values-grid article,.capability-grid article,.contact-details div
  ){
    background:#0E1D2E!important;
    border-color:rgba(255,255,255,.42)!important;
  }

  body.rp-standardized-page main > section[data-rp-surface="light"] :is(
    .timeline-list article,.values-grid article,.capability-grid article,.contact-details div
  ){
    background:#fff!important;
    border-color:rgba(19,34,58,.38)!important;
  }
}

body.rp-standardized-page main > section[data-rp-surface="dark"] .contact-details{
  background:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
}

/* Smartphone-first visual refinement: generous media, readable type and reliable touch targets. */
@media (max-width:760px){
  body.rp-standardized-page main :is(
    .editorial-split,
    .editorial-split--reverse,
    .service-category,
    .service-detail-grid,
    .contact-grid,
    .case-overview,
    .capability-grid,
    .section-heading--split,
    .article-hero__grid,
    .image-row
  ){
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:clamp(28px,8.5vw,42px)!important;
    align-items:start!important;
  }

  body.rp-standardized-page main :is(
    .service-category__copy,
    .service-category__media,
    .editorial-copy,
    .image-frame,
    .service-detail-grid > *,
    .contact-grid > *,
    .case-overview > *,
    .section-heading--split > *
  ){
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
  }

  body.rp-standardized-page main :is(
    .service-category__media,
    .image-frame,
    .gallery-item,
    .cta-media,
    .image-row figure
  ){
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:4/3!important;
    border-radius:clamp(18px,6vw,24px)!important;
  }

  body.rp-standardized-page main :is(
    .service-category__media,
    .image-frame,
    .gallery-item,
    .cta-media,
    .image-row figure
  ) > img,
  body.rp-standardized-page main img.contact-side-image{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    object-fit:cover!important;
  }

  body.rp-standardized-page main img.contact-side-image{
    aspect-ratio:4/3!important;
    max-height:none!important;
    border-radius:22px!important;
  }

  body.rp-standardized-page main :is(
    .editorial-copy p,
    .section-heading p:not(.eyebrow),
    .service-lead,
    .card-body p,
    .timeline-list p,
    .values-grid p,
    .capability-grid p,
    .contact-details,
    .legal-copy p,
    .article-body p
  ){
    font-size:clamp(15px,4.15vw,17px)!important;
    line-height:1.68!important;
  }

  html body main :is(.eyebrow,.kicker,.card-kicker){
    font-size:13px!important;
    line-height:1.4!important;
    letter-spacing:.15em!important;
  }

  html body.rp-standardized-page main :is(.rp-page-hero,.hero) .eyebrow,
  html body main > :is(.rp-page-hero,.hero) .eyebrow{
    font-size:13px!important;
    line-height:1.4!important;
    letter-spacing:.15em!important;
  }

  body.rp-standardized-page main section:not(.rp-page-hero):not(.hero) h2{
    font-size:clamp(34px,10.4vw,48px)!important;
    line-height:.97!important;
    letter-spacing:-.038em!important;
  }

  body.rp-standardized-page main section:not(.rp-page-hero):not(.hero) h3{
    font-size:clamp(22px,6.8vw,29px)!important;
    line-height:1.02!important;
  }

  body.rp-standardized-page .service-item-list{
    gap:10px!important;
    margin-top:24px!important;
  }

  body.rp-standardized-page .service-item-list li{
    display:flex!important;
    align-items:center!important;
    min-height:48px!important;
    padding:12px 15px 12px 38px!important;
    font-size:15px!important;
    line-height:1.42!important;
    border-radius:15px!important;
  }

  body.rp-standardized-page .service-category__media figcaption{
    left:12px!important;
    right:12px!important;
    bottom:12px!important;
    padding:11px 13px!important;
    font-size:12.5px!important;
    line-height:1.4!important;
    letter-spacing:.055em!important;
    text-wrap:pretty!important;
  }

  body.rp-standardized-page :is(
    .timeline-list article,
    .values-grid article,
    .process-cards article,
    .next-steps article,
    .challenge-grid article,
    .capability-grid article,
    .contact-details div,
    .case-facts div,
    .result-grid div
  ){
    padding:clamp(22px,6.5vw,28px)!important;
    border-radius:20px!important;
  }

  body.rp-standardized-page :is(.btn,.text-link,.category-band a){
    min-height:48px!important;
  }

  body.rp-standardized-page .text-link{
    display:inline-flex!important;
    align-items:center!important;
    font-size:15px!important;
  }

  body:not(.rp-standardized-page) main :is(.hero-copy,.service-card p,.steps p,.testimonial-cards p){
    font-size:clamp(15px,4.15vw,17px)!important;
    line-height:1.65!important;
  }

  body:not(.rp-standardized-page) main :is(.service-card,.testimonial-cards article){
    border-radius:20px!important;
  }

  body:not(.rp-standardized-page) main .service-card :is(.card-body,.service-card__body){
    padding:24px 21px!important;
  }

  body:not(.rp-standardized-page) main .trusted-hero h2{
    font-size:12px!important;
    line-height:1.4!important;
    letter-spacing:.16em!important;
  }

  body:not(.rp-standardized-page) main .logo-card p{
    font-size:14px!important;
    line-height:1.35!important;
  }

  body:not(.rp-standardized-page) main .logo-card span{
    font-size:12px!important;
    line-height:1.35!important;
  }

  body:not(.rp-standardized-page) main .text-link{
    display:inline-flex!important;
    align-items:center!important;
    min-height:44px!important;
    font-size:15px!important;
  }

  html body .site-footer.site-footer--premium .footer-col h2,
  html body .site-footer.site-footer--premium nav.footer-col h2{
    font-size:14px!important;
    line-height:1.2!important;
  }

  html body .site-footer.site-footer--premium nav.footer-col.footer-col--navigate > a,
  html body .site-footer.site-footer--premium .footer-link-grid a,
  html body .site-footer.site-footer--premium .footer-contact-mini a{
    min-width:45px!important;
    min-height:45px!important;
    font-size:15px!important;
  }

  html body .site-footer.site-footer--premium .footer-bottom p,
  html body .site-footer.site-footer--premium .footer-bottom a{
    font-size:14px!important;
    line-height:1.5!important;
  }

  html body .site-footer.site-footer--premium .footer-bottom a{
    display:inline-flex!important;
    align-items:center!important;
    min-width:44px!important;
    min-height:44px!important;
  }

  html body .site-footer.site-footer--premium .footer-social a{
    flex:0 0 44px!important;
    width:44px!important;
    min-width:44px!important;
    max-width:44px!important;
    height:44px!important;
    min-height:44px!important;
    max-height:44px!important;
  }

  html body .fullscreen-menu#siteMenu .menu-signature{
    font-size:11px!important;
  }
}

@media (max-width:1000px) and (max-height:600px){
  html body .site-header[data-header] .menu-toggle,
  html body .fullscreen-menu#siteMenu .menu-close{
    width:44px!important;
    min-width:44px!important;
    height:44px!important;
    min-height:44px!important;
  }

  html body .fullscreen-menu#siteMenu .menu-links a{
    min-height:44px!important;
    padding-block:3px!important;
  }

  html body .fullscreen-menu#siteMenu .menu-signature{
    font-size:10px!important;
  }

  html body main :is(.eyebrow,.kicker,.card-kicker){
    font-size:13px!important;
    line-height:1.4!important;
    letter-spacing:.15em!important;
  }

  html body .site-footer.site-footer--premium .footer-col h2,
  html body .site-footer.site-footer--premium nav.footer-col h2{
    font-size:14px!important;
    line-height:1.2!important;
  }

  html body .site-footer.site-footer--premium nav.footer-col.footer-col--navigate > a,
  html body .site-footer.site-footer--premium .footer-link-grid a,
  html body .site-footer.site-footer--premium .footer-contact-mini a,
  html body .site-footer.site-footer--premium .footer-bottom a{
    display:flex!important;
    align-items:center!important;
    min-width:44px!important;
    min-height:44px!important;
    font-size:14px!important;
  }

  html body .site-footer.site-footer--premium .footer-bottom p,
  html body .site-footer.site-footer--premium .footer-bottom a{
    font-size:14px!important;
    line-height:1.5!important;
  }

  html body .site-footer.site-footer--premium .footer-social a{
    flex:0 0 44px!important;
    width:44px!important;
    min-width:44px!important;
    max-width:44px!important;
    height:44px!important;
    min-height:44px!important;
    max-height:44px!important;
  }
}

@media (max-width:760px) and (prefers-reduced-motion:no-preference){
  .rp-enterprise-reveal{
    transform:translate3d(0,14px,0);
    transition-duration:520ms;
    will-change:auto;
  }
}

/* Services page: high-contrast light chips on every surface. */
html body.rp-standardized-page main#main > section[data-rp-surface] ul.service-item-list > li{
  color:#1A2B4C!important;
  -webkit-text-fill-color:#1A2B4C!important;
  background:linear-gradient(145deg,#FFFFFF 0%,#F7F9FC 100%)!important;
  border-color:rgba(26,43,76,.17)!important;
  box-shadow:0 10px 28px rgba(7,17,31,.10),inset 0 1px 0 #fff!important;
  opacity:1!important;
}

html body.rp-standardized-page main#main > section[data-rp-surface] ul.service-item-list > li::before{
  background:#E2383F!important;
  box-shadow:0 0 0 5px rgba(226,56,63,.12)!important;
}

/* Services page: progressive, GPU-friendly reveal activated only when JS is ready. */
@media (prefers-reduced-motion:no-preference){
  body.rp-service-motion-ready #main > section[id^="service-category-"] .service-category{
    opacity:0;
    transform:translate3d(0,46px,0) scale(.988);
    transition:
      opacity 760ms var(--rp-enterprise-ease),
      transform 860ms var(--rp-enterprise-ease);
    will-change:opacity,transform;
  }

  body.rp-service-motion-ready #main > section[id^="service-category-"] .service-category > .service-category__copy > :is(.eyebrow,h2,p),
  body.rp-service-motion-ready #main > section[id^="service-category-"] .service-item-list li,
  body.rp-service-motion-ready #main > section[id^="service-category-"] .service-category__media{
    opacity:0!important;
    transform:translate3d(var(--rp-service-reveal-x,0),30px,0);
    transition:
      opacity 620ms var(--rp-enterprise-ease) var(--rp-service-item-delay,80ms),
      transform 760ms var(--rp-enterprise-ease) var(--rp-service-item-delay,80ms),
      box-shadow 360ms ease;
    will-change:opacity,transform;
  }

  body.rp-service-motion-ready #main > section[id^="service-category-"]:nth-of-type(even) .service-category__copy{
    --rp-service-reveal-x:-18px;
  }

  body.rp-service-motion-ready #main > section[id^="service-category-"]:nth-of-type(odd) .service-category__copy{
    --rp-service-reveal-x:18px;
  }

  body.rp-service-motion-ready #main > section[id^="service-category-"] .service-category__media{
    --rp-service-reveal-x:22px;
    transform:translate3d(var(--rp-service-reveal-x),34px,0) scale(.975);
  }

  body.rp-service-motion-ready #main > section[id^="service-category-"]:nth-of-type(odd) .service-category__media{
    --rp-service-reveal-x:-22px;
  }

  body.rp-service-motion-ready #main > section[id^="service-category-"] .service-category.is-service-visible,
  body.rp-service-motion-ready #main > section[id^="service-category-"] .service-category.is-service-visible > .service-category__copy > :is(.eyebrow,h2,p),
  body.rp-service-motion-ready #main > section[id^="service-category-"] .service-category.is-service-visible .service-item-list li,
  body.rp-service-motion-ready #main > section[id^="service-category-"] .service-category.is-service-visible .service-category__media{
    opacity:1!important;
    transform:none!important;
  }

  body.rp-service-motion-ready #main > section[id^="service-category-"] .service-category.is-service-visible{
    will-change:auto;
  }

  body.rp-service-motion-ready #main > section[id^="service-category-"] .service-category.is-service-visible > .service-category__copy > :is(.eyebrow,h2,p),
  body.rp-service-motion-ready #main > section[id^="service-category-"] .service-category.is-service-visible .service-item-list li,
  body.rp-service-motion-ready #main > section[id^="service-category-"] .service-category.is-service-visible .service-category__media{
    will-change:auto;
  }

  body.rp-motion-lite.rp-service-motion-ready #main > section[id^="service-category-"] .service-category,
  body.rp-motion-lite.rp-service-motion-ready #main > section[id^="service-category-"] .service-category > .service-category__copy > :is(.eyebrow,h2,p),
  body.rp-motion-lite.rp-service-motion-ready #main > section[id^="service-category-"] .service-item-list li,
  body.rp-motion-lite.rp-service-motion-ready #main > section[id^="service-category-"] .service-category__media{
    transition-duration:420ms!important;
    transition-delay:0ms!important;
  }
}

@media (max-width:760px) and (prefers-reduced-motion:no-preference){
  body.rp-service-motion-ready #main > section[id^="service-category-"] .service-category,
  body.rp-service-motion-ready #main > section[id^="service-category-"] .service-category > .service-category__copy > :is(.eyebrow,h2,p),
  body.rp-service-motion-ready #main > section[id^="service-category-"] .service-item-list li,
  body.rp-service-motion-ready #main > section[id^="service-category-"] .service-category__media{
    --rp-service-reveal-x:0px!important;
  }

  body.rp-service-motion-ready #main > section[id^="service-category-"] .service-category{
    transform:translate3d(0,28px,0) scale(.993);
  }

  body.rp-service-motion-ready #main > section[id^="service-category-"] .service-category__media{
    transform:translate3d(0,24px,0) scale(.985);
  }
}

@media (prefers-reduced-motion:reduce){
  body.rp-service-motion-ready #main > section[id^="service-category-"] .service-category,
  body.rp-service-motion-ready #main > section[id^="service-category-"] .service-category *{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
    animation:none!important;
  }
}

/* Final editorial title hierarchy: authoritative without excessive visual weight. */
html body.rp-standardized-page main#main :is(.rp-page-hero,.hero) h1,
html body.rp-standardized-page main#main > section:not(.rp-page-hero):not(.hero) :is(h1,h2,h3),
html body:not(.rp-standardized-page) main#main > section:not(.hero) :is(h1,h2,h3){
  font-weight:650!important;
}

html body:not(.rp-standardized-page) main#main > .hero h1{
  font-weight:700!important;
}

html body main#main .service-card h3 a,
html body main#main .text-link,
html body.rp-standardized-page main#main :is(.legal-layout,.article-layout) aside a{
  display:inline-flex!important;
  align-items:center!important;
  min-height:46px!important;
}

/* Sitewide section reveal: stable surfaces with refined content entrance. */
@media (prefers-reduced-motion:no-preference){
  body.rp-site-motion-ready main#main > section.rp-scroll-section > .rp-section-reveal-item{
    opacity:0;
    transform:translate3d(0,42px,0) scale(.99);
    transition:
      opacity 680ms var(--rp-enterprise-ease) var(--rp-section-item-delay,0ms),
      transform 820ms var(--rp-enterprise-ease) var(--rp-section-item-delay,0ms);
    will-change:opacity,transform;
  }

  body.rp-site-motion-ready main#main > section.rp-scroll-section.is-section-visible > .rp-section-reveal-item{
    opacity:1;
    transform:none;
    will-change:auto;
  }

  body.rp-motion-lite.rp-site-motion-ready main#main > section.rp-scroll-section > .rp-section-reveal-item{
    transform:translate3d(0,20px,0);
    transition-duration:380ms!important;
    transition-delay:0ms!important;
  }
}

@media (max-width:760px) and (prefers-reduced-motion:no-preference){
  body.rp-site-motion-ready main#main > section.rp-scroll-section > .rp-section-reveal-item{
    transform:translate3d(0,26px,0) scale(.995);
    transition-duration:560ms,680ms;
  }
}

@media (prefers-reduced-motion:reduce){
  body.rp-site-motion-ready main#main > section.rp-scroll-section > .rp-section-reveal-item{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
    animation:none!important;
  }
}

@media (max-width:760px){
  html body .site-footer.site-footer--premium .footer-social a{
    flex-basis:46px!important;
    width:46px!important;
    min-width:46px!important;
    max-width:46px!important;
    height:46px!important;
    min-height:46px!important;
    max-height:46px!important;
  }
}

@media (max-width:1000px) and (max-height:600px){
  html body .site-footer.site-footer--premium .footer-social a{
    flex-basis:46px!important;
    width:46px!important;
    min-width:46px!important;
    max-width:46px!important;
    height:46px!important;
    min-height:46px!important;
    max-height:46px!important;
  }
}

/* ===== SOURCE: assets/css/realpro-premium-forms.css ===== */
/* REAL.PRO Studios — centralized premium forms */
:root{
  --rp-form-navy: var(--navy, #1a2b4c);
  --rp-form-navy-deep: var(--navy-2, #0e182a);
  --rp-form-red: var(--red, #d32f2f);
  --rp-form-ink: var(--ink, #151923);
  --rp-form-muted: var(--muted, #5c6675);
  --rp-form-line: rgba(26,43,76,.14);
  --rp-form-ease: cubic-bezier(.22,.61,.36,1);
}

body.rp-form-modal-open{overflow:hidden!important;overscroll-behavior:none}

.rp-form-modal[hidden]{display:none!important}
.rp-form-modal{
  position:fixed;
  inset:0;
  z-index:2147483000;
  display:grid;
  place-items:center;
  padding:clamp(12px,3vw,34px);
  isolation:isolate;
}
.rp-form-modal__backdrop{
  position:absolute;
  inset:0;
  border:0;
  padding:0;
  background:rgba(6,12,24,.78);
  backdrop-filter:blur(14px) saturate(120%);
  -webkit-backdrop-filter:blur(14px) saturate(120%);
  cursor:pointer;
}
.rp-form-modal__dialog{
  position:relative;
  width:min(940px,100%);
  max-height:min(900px,calc(100dvh - 28px));
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(330px,.9fr) minmax(0,1.2fr);
  border:1px solid rgba(255,255,255,.18);
  border-radius:clamp(22px,3vw,36px);
  background:#fff;
  box-shadow:0 42px 120px rgba(0,0,0,.46),0 0 0 1px rgba(255,255,255,.06);
  transform-origin:center;
  animation:rpFormEnter .42s var(--rp-form-ease) both;
}
.rp-form-modal__aside{
  position:relative;
  overflow:hidden;
  padding:clamp(28px,4vw,50px);
  color:#fff;
  background:
    radial-gradient(circle at 12% 8%,rgba(255,255,255,.17),transparent 26%),
    radial-gradient(circle at 100% 100%,rgba(211,47,47,.36),transparent 40%),
    linear-gradient(145deg,var(--rp-form-navy),var(--rp-form-navy-deep));
}
.rp-form-modal__aside::after{
  content:"";
  position:absolute;
  width:210px;
  aspect-ratio:1;
  right:-90px;
  bottom:-88px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:50%;
  box-shadow:0 0 0 34px rgba(255,255,255,.035),0 0 0 68px rgba(255,255,255,.025);
}
.rp-form-modal__brand{
  width:min(210px,78%);
  height:auto;
  margin:0 0 clamp(54px,9vh,94px);
  filter:drop-shadow(0 8px 24px rgba(0,0,0,.16));
}
.rp-form-modal__kicker{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 14px;
  font-size:.72rem;
  line-height:1.2;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#fff;
}
.rp-form-modal__kicker::before{content:"";width:30px;height:2px;border-radius:99px;background:var(--rp-form-red)}
.rp-form-modal__aside h2{
  margin:0 0 18px;
  max-width:420px;
  color:#fff!important;
  font-size:clamp(2.3rem,3.6vw,3.35rem)!important;
  line-height:.88!important;
  letter-spacing:-.045em!important;
  text-transform:uppercase;
}
.rp-form-modal__aside p{margin:0;color:rgba(255,255,255,.78);font-size:.96rem;line-height:1.7}
.rp-form-modal__trust{display:grid;gap:10px;margin:30px 0 0;padding:0;list-style:none}
.rp-form-modal__trust li{display:flex;align-items:flex-start;gap:10px;color:rgba(255,255,255,.88);font-size:.84rem;line-height:1.45}
.rp-form-modal__trust li::before{content:"✓";display:grid;place-items:center;flex:0 0 20px;height:20px;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-weight:900}

.rp-form-modal__main{
  position:relative;
  min-width:0;
  max-height:min(900px,calc(100dvh - 28px));
  overflow:auto;
  overscroll-behavior:contain;
  padding:clamp(28px,4vw,52px);
  scrollbar-width:thin;
  scrollbar-color:rgba(26,43,76,.28) transparent;
}
.rp-form-modal__close{
  position:absolute;
  top:18px;
  right:18px;
  z-index:3;
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border:1px solid var(--rp-form-line);
  border-radius:50%;
  background:rgba(255,255,255,.9);
  color:var(--rp-form-navy);
  box-shadow:0 8px 24px rgba(26,43,76,.08);
  cursor:pointer;
  transition:transform .24s var(--rp-form-ease),background .24s ease,color .24s ease;
}
.rp-form-modal__close:hover{transform:rotate(7deg) scale(1.04);background:var(--rp-form-navy);color:#fff}
.rp-form-modal__close svg{width:19px;height:19px;stroke:currentColor;stroke-width:2;fill:none}
.rp-form-modal__heading{padding-right:54px;margin-bottom:28px}
.rp-form-modal__heading .rp-form-modal__kicker{color:var(--rp-form-red)}
.rp-form-modal__heading h3{
  margin:0 0 10px;
  color:var(--rp-form-navy)!important;
  font-size:clamp(2rem,3.5vw,3.25rem)!important;
  line-height:.94!important;
  letter-spacing:-.035em!important;
  text-transform:uppercase;
}
.rp-form-modal__heading p{margin:0;color:var(--rp-form-muted);font-size:.94rem;line-height:1.65}

.rp-premium-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 18px}
.rp-premium-form--newsletter{grid-template-columns:1fr}
.rp-premium-form__field{display:grid;gap:7px;min-width:0}
.rp-premium-form__field--full{grid-column:1/-1}
.rp-premium-form label{color:var(--rp-form-navy);font-size:.78rem;font-weight:850;letter-spacing:.025em}
.rp-premium-form label .rp-required{color:var(--rp-form-red)}
.rp-premium-form input:not([type="checkbox"]),
.rp-premium-form textarea,
.rp-premium-form select{
  width:100%;
  min-width:0;
  min-height:54px;
  margin:0;
  padding:13px 15px;
  border:1px solid var(--rp-form-line);
  border-radius:15px;
  background:#f8fafc;
  color:var(--rp-form-ink);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
  outline:0;
  transition:border-color .22s ease,box-shadow .22s ease,background .22s ease;
}
.rp-premium-form textarea{min-height:126px;resize:vertical;line-height:1.55}
.rp-premium-form select{appearance:auto}
.rp-premium-form input::placeholder,.rp-premium-form textarea::placeholder{color:#8b94a1;opacity:1}
.rp-premium-form input:focus,.rp-premium-form textarea:focus,.rp-premium-form select:focus{
  border-color:rgba(211,47,47,.55);
  background:#fff;
  box-shadow:0 0 0 4px rgba(211,47,47,.1),0 9px 24px rgba(26,43,76,.055);
}
.rp-premium-form [aria-invalid="true"]{border-color:#bd1e2d!important;box-shadow:0 0 0 4px rgba(189,30,45,.1)!important}
.rp-premium-form__consent{grid-column:1/-1;display:flex!important;align-items:flex-start;gap:10px;cursor:pointer;color:var(--rp-form-muted)!important;font-weight:600!important;line-height:1.5}
.rp-premium-form__consent input{width:18px;height:18px;flex:0 0 18px;margin:2px 0 0;accent-color:var(--rp-form-red)}
.rp-premium-form__consent a{color:var(--rp-form-navy);text-decoration:underline;text-underline-offset:3px}
.rp-premium-form__submit{
  grid-column:1/-1;
  min-height:56px;
  width:100%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:14px 22px;
  border:0;
  border-radius:999px;
  color:#fff;
  background:var(--rp-form-red);
  box-shadow:0 14px 30px rgba(211,47,47,.25);
  cursor:pointer;
  font-size:.82rem;
  font-weight:900;
  letter-spacing:.055em;
  text-transform:uppercase;
  transition:transform .24s var(--rp-form-ease),box-shadow .24s ease,opacity .24s ease;
}
.rp-premium-form__submit:hover{transform:translateY(-2px);box-shadow:0 18px 36px rgba(211,47,47,.31)}
.rp-premium-form__submit:disabled{cursor:wait;opacity:.72;transform:none}
.rp-premium-form__spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:rpFormSpin .7s linear infinite}
.rp-premium-form__status{grid-column:1/-1;min-height:0;margin:0;color:#a1192a;font-size:.84rem;font-weight:700;line-height:1.5}
.rp-premium-form__status:empty{display:none}
.rp-premium-form__privacy{grid-column:1/-1;margin:-4px 0 0;color:var(--rp-form-muted);font-size:.73rem;line-height:1.55;text-align:center}
.rp-form-hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}

.rp-form-success{display:grid;place-items:start;min-height:460px;align-content:center;padding:10px 0}
.rp-form-success__icon{display:grid;place-items:center;width:76px;height:76px;margin:0 0 24px;border-radius:50%;background:rgba(26,43,76,.08);color:var(--rp-form-navy)}
.rp-form-success__icon svg{width:37px;height:37px;stroke:currentColor;stroke-width:2;fill:none}
.rp-form-success h3{margin:0 0 14px;color:var(--rp-form-navy)!important;font-size:clamp(2.4rem,5vw,4.8rem)!important;line-height:.88!important;text-transform:uppercase}
.rp-form-success p{max-width:530px;margin:0 0 26px;color:var(--rp-form-muted);font-size:1rem;line-height:1.7}
.rp-form-success__meta{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 30px}
.rp-form-success__meta span{padding:8px 12px;border:1px solid var(--rp-form-line);border-radius:999px;background:#f8fafc;color:var(--rp-form-navy);font-size:.75rem;font-weight:800}
.rp-form-success__close{min-width:190px}

.rp-form-launch-card{
  position:relative;
  overflow:hidden;
  min-height:100%;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  padding:clamp(30px,5vw,58px);
  border:1px solid rgba(255,255,255,.18);
  border-radius:30px;
  color:#fff;
  background:
    radial-gradient(circle at 85% 10%,rgba(211,47,47,.36),transparent 28%),
    linear-gradient(145deg,var(--rp-form-navy),var(--rp-form-navy-deep));
  box-shadow:0 26px 70px rgba(6,12,24,.24);
}
.rp-form-launch-card::after{content:"";position:absolute;right:-96px;bottom:-96px;width:240px;aspect-ratio:1;border:1px solid rgba(255,255,255,.12);border-radius:50%;box-shadow:0 0 0 38px rgba(255,255,255,.025),0 0 0 76px rgba(255,255,255,.018)}
.rp-form-launch-card>*{position:relative;z-index:1}
.rp-form-launch-card__eyebrow{margin:0 0 14px;color:#fff;font-size:.73rem;font-weight:900;letter-spacing:.17em;text-transform:uppercase}
.rp-form-launch-card h3{max-width:520px;margin:0 0 16px;color:#fff!important;font-size:clamp(2.3rem,4vw,4rem)!important;line-height:.9!important;text-transform:uppercase}
.rp-form-launch-card p{max-width:560px;margin:0 0 28px;color:rgba(255,255,255,.78);line-height:1.7}
.rp-form-launch-card .btn{cursor:pointer;border:0}
.rp-form-launch-card__note{display:flex;gap:9px;align-items:center;margin:18px 0 0!important;color:rgba(255,255,255,.68)!important;font-size:.76rem!important}
.rp-form-launch-card__note::before{content:"";width:7px;height:7px;border-radius:50%;background:#70d19b;box-shadow:0 0 0 5px rgba(112,209,155,.12)}

.footer-newsletter[data-rp-modal-ready="true"] input{cursor:pointer}
.footer-newsletter[data-rp-modal-ready="true"] button{cursor:pointer}

@keyframes rpFormEnter{from{opacity:0;transform:translateY(24px) scale(.975)}to{opacity:1;transform:none}}
@keyframes rpFormSpin{to{transform:rotate(360deg)}}

@media (max-width:860px){
  .rp-form-modal{align-items:end;padding:0}
  .rp-form-modal__dialog{width:100%;max-height:100dvh;grid-template-columns:1fr;border-radius:24px 24px 0 0;border-bottom:0;animation-name:rpFormEnterMobile}
  .rp-form-modal__aside{display:none}
  .rp-form-modal__main{max-height:100dvh;padding:26px 18px calc(24px + env(safe-area-inset-bottom))}
  .rp-form-modal__close{position:sticky;float:right;top:0;margin:-4px 0 4px 10px;background:#fff}
  .rp-form-modal__heading{padding-right:0;margin-bottom:24px}
  .rp-form-modal__heading h3{font-size:clamp(2rem,10vw,3rem)!important}
  .rp-premium-form{grid-template-columns:1fr;gap:15px}
  .rp-premium-form__field--full,.rp-premium-form__consent,.rp-premium-form__submit,.rp-premium-form__status,.rp-premium-form__privacy{grid-column:1}
  .rp-premium-form input:not([type="checkbox"]),.rp-premium-form textarea,.rp-premium-form select{font-size:16px;min-height:55px}
  .rp-form-success{min-height:calc(100dvh - 80px);align-content:center}
  .rp-form-success__close{width:100%}
  .rp-form-launch-card{border-radius:24px;padding:30px 22px}
}

@media (max-width:390px){
  .rp-form-modal__main{padding-inline:14px}
  .rp-premium-form{gap:13px}
}

@media (prefers-reduced-motion:reduce){
  .rp-form-modal__dialog,.rp-form-modal__close,.rp-premium-form__submit{animation:none!important;transition:none!important}
  .rp-premium-form__spinner{animation-duration:1.2s}
}

@keyframes rpFormEnterMobile{from{opacity:0;transform:translateY(42px)}to{opacity:1;transform:none}}


/* v3 interaction stability */
html.rp-form-modal-open,body.rp-form-modal-open{overflow:hidden!important;overscroll-behavior:none!important}
.rp-form-modal{touch-action:none;pointer-events:auto}
.rp-form-modal__backdrop{z-index:0;touch-action:none}
.rp-form-modal__dialog{z-index:1;pointer-events:auto;touch-action:pan-y}
.rp-form-modal__main{background:#fff;color:var(--rp-form-ink)}
.rp-form-modal__dialog *{box-sizing:border-box}
.rp-premium-form__status{outline:0}
@media (max-width:860px){
  .rp-form-modal__dialog{min-height:min(100dvh,720px)}
  .rp-form-modal__main{-webkit-overflow-scrolling:touch}
}

/* ===== SOURCE: assets/css/realpro-august-2026-final-update.css ===== */
/* ==========================================================
   REALPRO STUDIOS — AUGUST 2026 FINAL UPDATE
   Isolated final layer: carousel, contact, typography, actions
   ========================================================== */

:root{
  --rp-update-navy:#07111f;
  --rp-update-navy-2:#101f35;
  --rp-update-red:#d32f2f;
  --rp-update-cream:#f4f1ea;
  --rp-update-white:#ffffff;
  --rp-update-muted:#9aa8b9;
  --rp-update-border:rgba(255,255,255,.16);
  --rp-update-ease:cubic-bezier(.22,.76,.24,1);
}

/* Official header statement: invisible in the hero, visible after it. */
.site-header .rp-header-statement{
  position:absolute;
  left:50%;
  top:50%;
  z-index:3;
  width:min(52vw,760px);
  margin:0;
  color:#fff;
  font-size:clamp(10px,.82vw,14px);
  font-weight:560;
  line-height:1.2;
  letter-spacing:.115em;
  text-align:center;
  text-transform:uppercase;
  opacity:0;
  visibility:hidden;
  filter:blur(4px);
  transform:translate(-50%,-38%);
  transition:opacity .55s var(--rp-update-ease),transform .65s var(--rp-update-ease),filter .6s var(--rp-update-ease),visibility 0s linear .65s;
  pointer-events:none;
}
.site-header .rp-header-statement strong,
.site-header .rp-header-statement em{
  font-size:1.08em;
  font-style:normal;
  font-weight:780;
  letter-spacing:.09em;
}
.site-header .rp-header-statement em{color:#ef5350;}
.site-header.is-past-hero .rp-header-statement{
  opacity:1;
  visibility:visible;
  filter:blur(0);
  transform:translate(-50%,-50%);
  transition-delay:0s;
}

/* Stronger, scalable emphasis for the key hero words. */
.hero #hero-title .rp-hero-emphasis{
  display:inline-block;
  font-size:1.065em;
  font-weight:800;
  line-height:.88;
  letter-spacing:-.058em;
  text-wrap:nowrap;
}
.hero #hero-title .rp-hero-emphasis--brands{color:inherit;}
.hero #hero-title .rp-hero-emphasis--growth{color:#ef3f3f;}

/* Home Full Services carousel. */
.services.rp-services-showcase{
  position:relative !important;
  overflow:hidden !important;
  padding:clamp(86px,8vw,148px) 0 clamp(82px,8vw,138px) !important;
  background:
    radial-gradient(circle at 18% 10%,rgba(211,47,47,.13),transparent 28%),
    linear-gradient(145deg,#07111f 0%,#0b1728 52%,#07111f 100%) !important;
  isolation:isolate;
}
.services.rp-services-showcase::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  opacity:.34;
  pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.032) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.032) 1px,transparent 1px);
  background-size:84px 84px;
  mask-image:linear-gradient(to bottom,transparent,black 16%,black 84%,transparent);
}
.rp-services-heading{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(260px,.58fr);
  align-items:end;
  gap:clamp(34px,6vw,96px);
  margin-bottom:clamp(34px,4vw,68px);
}
.rp-services-heading h2{
  max-width:1060px;
  margin:.16em 0 0;
  color:#fff;
  font-size:clamp(48px,6.6vw,116px);
  font-weight:620;
  line-height:.88;
  letter-spacing:-.064em;
  text-wrap:balance;
}
.rp-services-heading > p{
  max-width:520px;
  margin:0;
  color:rgba(255,255,255,.72);
  font-size:clamp(15px,1.1vw,19px);
  line-height:1.68;
}
.rp-service-carousel{position:relative;}
.rp-service-viewport{
  position:relative;
  width:100%;
  overflow:hidden;
  padding:clamp(18px,2vw,34px) 0 clamp(30px,4vw,62px);
  outline:none;
  touch-action:pan-y;
  cursor:grab;
}
.rp-service-viewport:active{cursor:grabbing;}
.rp-service-viewport:focus-visible::after{
  content:"";
  position:absolute;
  inset:6px 12px;
  border:2px solid rgba(255,255,255,.8);
  border-radius:18px;
  pointer-events:none;
}
.rp-service-track{
  display:flex;
  align-items:center;
  gap:clamp(16px,2.1vw,34px);
  width:max-content;
  padding-inline:max(0px,calc(50vw - min(29vw,440px)));
  transform:translate3d(0,0,0);
  transition:transform .78s var(--rp-update-ease);
  will-change:transform;
  user-select:none;
}
.rp-service-track.is-dragging{transition:none;}
.rp-service-slide{
  flex:0 0 min(58vw,880px);
  opacity:.28;
  filter:saturate(.7) brightness(.75);
  transform:scale(.82);
  transform-origin:center;
  transition:transform .78s var(--rp-update-ease),opacity .62s ease,filter .62s ease;
  pointer-events:none;
}
.rp-service-slide.is-adjacent{
  opacity:.72;
  filter:saturate(.9) brightness(.88);
  transform:scale(.91);
}
.rp-service-slide.is-active{
  z-index:2;
  opacity:1;
  filter:none;
  transform:scale(1);
  pointer-events:auto;
}
.rp-service-card{
  display:grid;
  grid-template-rows:minmax(280px,clamp(340px,34vw,620px)) auto;
  min-height:100%;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.16);
  border-radius:clamp(16px,1.5vw,26px);
  color:#fff;
  text-decoration:none;
  background:rgba(9,20,35,.86);
  box-shadow:0 30px 88px rgba(0,0,0,.34);
  transition:border-color .35s ease,box-shadow .45s ease,transform .45s var(--rp-update-ease);
}
.rp-service-slide.is-active .rp-service-card:hover,
.rp-service-slide.is-active .rp-service-card:focus-visible{
  border-color:rgba(255,255,255,.5);
  box-shadow:0 42px 110px rgba(0,0,0,.48);
  transform:translateY(-5px);
  outline:none;
}
.rp-service-card__media{position:relative;overflow:hidden;background:#13233a;}
.rp-service-card__media::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 55%,rgba(5,12,22,.42));
  pointer-events:none;
}
.rp-service-card__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transform:scale(1.01);
  transition:transform 1.1s var(--rp-update-ease),filter .6s ease;
}
.rp-service-slide.is-active .rp-service-card:hover img{transform:scale(1.055);}
.rp-service-card__content{padding:clamp(25px,3.2vw,52px);}
.rp-service-card__meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:clamp(20px,2.3vw,34px);
  color:rgba(255,255,255,.58);
  font-size:11px;
  font-weight:690;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.rp-service-card__meta span:first-child{color:#ef5350;}
.rp-service-card h3{
  margin:0;
  color:#fff;
  font-size:clamp(32px,4vw,68px);
  font-weight:620;
  line-height:.98;
  letter-spacing:-.052em;
}
.rp-service-card p{
  max-width:720px;
  margin:clamp(15px,1.8vw,25px) 0 0;
  color:rgba(255,255,255,.69);
  font-size:clamp(14px,1.03vw,18px);
  line-height:1.62;
}
.rp-service-card__link{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-top:clamp(22px,2.4vw,36px);
  color:#fff;
  font-size:13px;
  font-weight:700;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.rp-service-card__link b{font-size:1.2em;font-weight:500;transition:transform .3s ease;}
.rp-service-card:hover .rp-service-card__link b{transform:translate(3px,-3px);}
.rp-carousel-controls{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:clamp(20px,3vw,50px);
}
.rp-carousel-navigation{display:flex;align-items:center;gap:16px;}
.rp-carousel-arrow{
  display:grid;
  place-items:center;
  width:52px;
  height:52px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:50%;
  color:#fff;
  background:rgba(255,255,255,.035);
  cursor:pointer;
  transition:background .3s ease,border-color .3s ease,transform .3s var(--rp-update-ease),opacity .3s ease;
}
.rp-carousel-arrow:hover:not(:disabled),.rp-carousel-arrow:focus-visible:not(:disabled){background:#fff;color:#07111f;border-color:#fff;transform:translateY(-2px);outline:none;}
.rp-carousel-arrow:disabled{opacity:.24;cursor:not-allowed;}
.rp-carousel-status{display:flex;align-items:center;gap:10px;min-width:84px;color:#fff;}
.rp-carousel-status strong{font-size:18px;font-weight:700;}
.rp-carousel-status span{display:block;width:24px;height:1px;background:rgba(255,255,255,.34);}
.rp-carousel-status small{color:rgba(255,255,255,.5);font-size:12px;font-weight:650;}
.rp-carousel-dots{display:flex;align-items:center;justify-content:center;gap:9px;min-width:0;}
.rp-carousel-dot{
  position:relative;
  width:28px;
  height:18px;
  border:0;
  padding:0;
  background:transparent;
  cursor:pointer;
}
.rp-carousel-dot::before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:100%;
  height:2px;
  border-radius:999px;
  background:rgba(255,255,255,.22);
  transform:translateY(-50%);
  transition:background .3s ease,transform .3s ease;
}
.rp-carousel-dot.is-active::before{background:#ef5350;transform:translateY(-50%) scaleY(1.5);}
.rp-carousel-dot:focus-visible{outline:2px solid #fff;outline-offset:3px;border-radius:4px;}
.rp-services-all{
  display:inline-flex;
  align-items:center;
  gap:10px;
  justify-self:end;
  color:#fff;
  font-size:12px;
  font-weight:700;
  letter-spacing:.1em;
  text-decoration:none;
  text-transform:uppercase;
}
.rp-services-all span{transition:transform .3s ease;}
.rp-services-all:hover span{transform:translate(3px,-3px);}

/* About: the Creative Solutions narrative now exists only here. */
.rp-about-creative{overflow:hidden;background:#f2efe8 !important;}
.rp-about-creative__grid{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr);
  gap:clamp(44px,8vw,132px);
  align-items:center;
}
.rp-about-creative__copy h2{
  max-width:860px;
  margin:.2em 0 .36em;
  color:#101b2a;
  font-size:clamp(48px,6vw,106px);
  font-weight:620;
  line-height:.9;
  letter-spacing:-.064em;
  text-wrap:balance;
}
.rp-about-creative__copy > p:not(.eyebrow){max-width:680px;color:#526071;font-size:clamp(16px,1.12vw,19px);line-height:1.72;}
.rp-about-creative__copy .btn{margin-top:20px;}
.rp-about-creative__media{
  position:relative;
  min-height:clamp(440px,55vw,780px);
  overflow:hidden;
  border-radius:clamp(18px,2vw,30px);
  box-shadow:0 40px 90px rgba(7,17,31,.17);
}
.rp-about-creative__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 58%,rgba(7,17,31,.28));}
.rp-about-creative__media img{width:100%;height:100%;object-fit:cover;display:block;}

/* Services page: remove secondary labels and align direct actions. */
#main .service-category__copy > .rp-service-actions{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:12px;
  max-width:620px;
  margin-top:clamp(28px,3vw,44px);
}
.rp-contact-button{
  min-height:54px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:13px 18px;
  border:1px solid currentColor;
  border-radius:999px;
  font-size:12px;
  font-weight:760;
  line-height:1.15;
  letter-spacing:.075em;
  text-align:center;
  text-decoration:none;
  text-transform:uppercase;
  transition:transform .3s var(--rp-update-ease),background .3s ease,color .3s ease,border-color .3s ease;
}
.rp-contact-button small{font-size:9px;font-weight:650;letter-spacing:.04em;opacity:.72;}
[data-rp-surface="light"] .rp-contact-button--email{color:#fff;background:#d32f2f;border-color:#d32f2f;}
[data-rp-surface="light"] .rp-contact-button--call{color:#14243a;background:transparent;border-color:rgba(20,36,58,.35);}
[data-rp-surface="dark"] .rp-contact-button--email{color:#07111f;background:#fff;border-color:#fff;}
[data-rp-surface="dark"] .rp-contact-button--call{color:#fff;background:transparent;border-color:rgba(255,255,255,.34);}
.rp-contact-button:hover,.rp-contact-button:focus-visible{transform:translateY(-3px);outline:none;}
[data-rp-surface="light"] .rp-contact-button--call:hover,[data-rp-surface="light"] .rp-contact-button--call:focus-visible{color:#fff;background:#14243a;border-color:#14243a;}
[data-rp-surface="dark"] .rp-contact-button--call:hover,[data-rp-surface="dark"] .rp-contact-button--call:focus-visible{color:#07111f;background:#fff;border-color:#fff;}
.services-page .service-category__media figcaption{display:none !important;}
.service-category__media img{display:block;}

/* Contact: one cinematic hero, no secondary sections. */
body:has(.rp-contact-hero) main{background:#07111f;}
.rp-contact-hero{
  position:relative;
  min-height:max(720px,100svh);
  display:grid;
  align-items:center;
  overflow:hidden;
  padding:clamp(150px,17vh,230px) 0 clamp(88px,12vh,150px);
  isolation:isolate;
  background:#07111f;
}
.rp-contact-hero__media,.rp-contact-hero__shade{position:absolute;inset:0;z-index:-2;}
.rp-contact-hero__media img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;filter:saturate(.82) contrast(1.1) brightness(.62);}
.rp-contact-hero__shade{
  z-index:-1;
  background:
    radial-gradient(circle at 74% 35%,rgba(211,47,47,.16),transparent 31%),
    linear-gradient(90deg,rgba(5,13,24,.96) 0%,rgba(5,13,24,.86) 45%,rgba(5,13,24,.42) 100%),
    linear-gradient(180deg,rgba(4,10,18,.42),rgba(4,10,18,.72));
}
.rp-contact-hero__content{max-width:1240px;margin-inline:auto;}
.rp-contact-hero .eyebrow{margin:0 0 22px;color:rgba(255,255,255,.68);}
.rp-contact-hero h1{
  max-width:1160px;
  margin:0;
  color:#fff;
  font-size:clamp(54px,7.4vw,138px);
  font-weight:610;
  line-height:.86;
  letter-spacing:-.068em;
  text-wrap:balance;
}
.rp-contact-hero__content > p:not(.eyebrow){max-width:730px;margin:clamp(26px,3vw,42px) 0 0;color:rgba(255,255,255,.72);font-size:clamp(16px,1.2vw,21px);line-height:1.65;}
.rp-contact-hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:clamp(30px,4vw,54px);}
.rp-contact-hero__button{
  min-height:58px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  padding:16px 26px;
  border:1px solid rgba(255,255,255,.34);
  border-radius:999px;
  color:#fff;
  font-size:12px;
  font-weight:760;
  letter-spacing:.095em;
  text-decoration:none;
  text-transform:uppercase;
  transition:transform .3s var(--rp-update-ease),background .3s ease,color .3s ease,border-color .3s ease;
}
.rp-contact-hero__button--primary{color:#fff;background:#d32f2f;border-color:#d32f2f;}
.rp-contact-hero__button--secondary{background:rgba(255,255,255,.04);backdrop-filter:blur(10px);}
.rp-contact-hero__button:hover,.rp-contact-hero__button:focus-visible{transform:translateY(-3px);outline:none;}
.rp-contact-hero__button--primary:hover,.rp-contact-hero__button--primary:focus-visible{background:#fff;color:#07111f;border-color:#fff;}
.rp-contact-hero__button--secondary:hover,.rp-contact-hero__button--secondary:focus-visible{background:#fff;color:#07111f;border-color:#fff;}
.rp-contact-hero__details{
  display:flex;
  flex-wrap:wrap;
  gap:clamp(24px,5vw,74px);
  margin-top:clamp(44px,6vw,82px);
  padding-top:clamp(25px,3vw,38px);
  border-top:1px solid rgba(255,255,255,.18);
}
.rp-contact-hero__details a{display:grid;gap:7px;color:#fff;text-decoration:none;}
.rp-contact-hero__details span{color:rgba(255,255,255,.5);font-size:10px;font-weight:680;letter-spacing:.16em;text-transform:uppercase;}
.rp-contact-hero__details strong{font-size:clamp(14px,1.18vw,18px);font-weight:560;letter-spacing:-.01em;overflow-wrap:anywhere;}

/* Global safeguards for the updated elements. */
.rp-service-card,.rp-contact-button,.rp-contact-hero__button,.rp-services-all{ -webkit-tap-highlight-color:transparent; }
.rp-contact-button:focus-visible,.rp-contact-hero__button:focus-visible,.rp-services-all:focus-visible{outline:2px solid currentColor;outline-offset:4px;}

@media (max-width:1100px){
  .site-header .rp-header-statement{width:min(48vw,570px);font-size:10px;letter-spacing:.085em;}
  .rp-services-heading{grid-template-columns:1fr;align-items:start;gap:22px;}
  .rp-services-heading > p{max-width:680px;}
  .rp-service-track{padding-inline:14vw;}
  .rp-service-slide{flex-basis:min(72vw,760px);}
  .rp-carousel-controls{grid-template-columns:auto 1fr;}
  .rp-services-all{grid-column:2;justify-self:end;}
  .rp-carousel-dots{grid-column:1/-1;grid-row:2;justify-content:flex-start;overflow:hidden;}
  .rp-about-creative__grid{grid-template-columns:1fr;}
  .rp-about-creative__media{min-height:min(74vw,690px);}
}

@media (max-width:760px){
  .site-header .rp-header-statement{
    top:calc(100% + 7px);
    width:calc(100vw - 30px);
    max-width:none;
    padding:9px 13px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:999px;
    font-size:8px;
    letter-spacing:.065em;
    line-height:1.25;
    background:rgba(7,17,31,.88);
    box-shadow:0 10px 30px rgba(0,0,0,.22);
    backdrop-filter:blur(14px);
    transform:translate(-50%,-10px);
  }
  .site-header.is-past-hero .rp-header-statement{transform:translate(-50%,0);}
  .hero #hero-title .rp-hero-emphasis{font-size:1.04em;letter-spacing:-.055em;}
  .services.rp-services-showcase{padding:76px 0 82px !important;}
  .rp-services-heading{margin-bottom:22px;}
  .rp-services-heading h2{font-size:clamp(43px,13vw,65px);line-height:.91;}
  .rp-services-heading > p{font-size:15px;line-height:1.58;}
  .rp-service-viewport{padding:14px 0 30px;}
  .rp-service-track{padding-inline:8vw;}
  .rp-service-slide{flex-basis:84vw;transform:scale(.88);}
  .rp-service-slide.is-adjacent{transform:scale(.93);opacity:.54;}
  .rp-service-card{grid-template-rows:235px auto;border-radius:18px;}
  .rp-service-card__content{padding:25px 23px 27px;}
  .rp-service-card h3{font-size:clamp(31px,9vw,44px);}
  .rp-service-card p{font-size:14px;line-height:1.55;}
  .rp-service-card__link{margin-top:22px;font-size:11px;}
  .rp-carousel-controls{grid-template-columns:1fr auto;gap:24px 14px;}
  .rp-carousel-navigation{gap:10px;}
  .rp-carousel-arrow{width:46px;height:46px;}
  .rp-carousel-status{display:none;}
  .rp-carousel-dots{grid-column:1/-1;grid-row:2;justify-content:center;gap:5px;}
  .rp-carousel-dot{width:20px;}
  .rp-services-all{grid-column:2;grid-row:1;font-size:10px;}
  .rp-about-creative__copy h2{font-size:clamp(43px,13vw,64px);}
  .rp-about-creative__media{min-height:108vw;max-height:620px;}
  #main .service-category__copy > .rp-service-actions{grid-template-columns:1fr;}
  .rp-contact-button{width:100%;min-height:56px;}
  .rp-contact-hero{min-height:max(680px,100svh);padding:146px 0 76px;}
  .rp-contact-hero__shade{background:linear-gradient(90deg,rgba(5,13,24,.94),rgba(5,13,24,.72)),linear-gradient(180deg,rgba(5,13,24,.4),rgba(5,13,24,.82));}
  .rp-contact-hero__media img{object-position:60% center;}
  .rp-contact-hero h1{font-size:clamp(47px,14vw,72px);line-height:.89;}
  .rp-contact-hero__content > p:not(.eyebrow){font-size:15px;line-height:1.58;}
  .rp-contact-hero__actions{display:grid;grid-template-columns:1fr;width:100%;}
  .rp-contact-hero__button{width:100%;min-height:56px;}
  .rp-contact-hero__details{display:grid;grid-template-columns:1fr;gap:20px;}
}

@media (max-width:390px){
  .site-header .rp-header-statement{font-size:7.4px;padding-inline:10px;}
  .rp-service-slide{flex-basis:88vw;}
  .rp-service-card{grid-template-rows:210px auto;}
  .rp-service-card__content{padding:22px 20px 24px;}
  .rp-services-all{max-width:116px;text-align:right;line-height:1.35;}
}

@media (min-width:2200px){
  .rp-service-track{padding-inline:max(0px,calc(50vw - min(22vw,520px)));}
  .rp-service-slide{flex-basis:min(44vw,1040px);}
  .rp-service-card{grid-template-rows:minmax(520px,610px) auto;}
  .rp-services-heading{max-width:1900px;}
}

@media (prefers-reduced-motion:reduce){
  .site-header .rp-header-statement,
  .rp-service-track,
  .rp-service-slide,
  .rp-service-card,
  .rp-service-card__media img,
  .rp-carousel-arrow,
  .rp-contact-button,
  .rp-contact-hero__button{transition:none !important;scroll-behavior:auto !important;}
  .site-header .rp-header-statement{filter:none !important;}
}

/* ===== SOURCE: assets/css/realpro-viewport-visibility-final.css ===== */
/* ==========================================================
   REALPRO STUDIOS — VIEWPORT VISIBILITY FINAL
   2026-08-05
   Final non-destructive layer for header contrast, carousel
   fit and cross-device content visibility.
   ========================================================== */

:root{
  --rp-visibility-blue:#19365f;
  --rp-visibility-red:#d32f2f;
  --rp-visibility-ease:cubic-bezier(.22,.76,.24,1);
}

/* Structural safeguards: no page-level horizontal clipping. */
html,
body{
  width:100%;
  max-width:100%;
  overflow-x:clip;
}

main,
main > section,
.container,
[class*="__grid"],
[class*="-grid"]{
  min-width:0;
  max-width:100%;
}

main > section{
  scroll-margin-top:clamp(92px,7vw,118px);
}

img,
picture,
video,
svg,
iframe{
  max-width:100%;
}

h1,
h2,
h3,
h4,
p,
a,
strong,
span{
  min-width:0;
}

h1,
h2,
h3,
h4{
  overflow-wrap:break-word;
}

/* Header statement: legible navy on the light header after the hero. */
.site-header.is-past-hero .rp-header-statement,
.site-header.is-scrolled .rp-header-statement{
  color:var(--rp-visibility-blue) !important;
  text-shadow:none !important;
}

.site-header .rp-header-statement strong{
  color:inherit !important;
}

.site-header .rp-header-statement em{
  color:var(--rp-visibility-red) !important;
}

/* Full Services carousel: preserve the approved structure while ensuring
   the complete active card can be seen on common laptop and desktop heights. */
.services.rp-services-showcase{
  overflow:hidden !important;
  padding-top:clamp(70px,7vw,118px) !important;
  padding-bottom:clamp(70px,7vw,112px) !important;
}

.rp-services-heading{
  margin-bottom:clamp(24px,3vw,48px);
}

.rp-service-viewport{
  overflow:hidden;
  padding-top:clamp(12px,1.7vh,20px);
  padding-bottom:clamp(20px,2.8vh,34px);
}

.rp-service-track{
  align-items:flex-start;
  gap:clamp(14px,1.65vw,28px);
  padding-inline:max(24px,calc(50vw - min(27vw,410px)));
}

.rp-service-slide{
  flex-basis:min(54vw,820px);
}

.rp-service-card{
  grid-template-rows:clamp(250px,32svh,420px) auto;
  height:auto;
  min-height:0;
}

.rp-service-card__content{
  padding:clamp(22px,2vw,34px);
}

.rp-service-card__meta{
  margin-bottom:clamp(13px,1.25vw,20px);
}

.rp-service-card h3{
  font-size:clamp(34px,3.15vw,54px);
  line-height:.96;
  letter-spacing:-.048em;
  text-wrap:balance;
}

.rp-service-card p{
  margin-top:clamp(10px,1vw,15px);
  font-size:clamp(13px,.92vw,16px);
  line-height:1.5;
}

.rp-service-card__link{
  margin-top:clamp(15px,1.35vw,22px);
  font-size:clamp(10px,.68vw,12px);
}

.rp-carousel-controls{
  gap:clamp(16px,2.3vw,36px);
}

/* Short landscape screens and standard notebooks. */
@media (min-width:1101px) and (max-height:900px){
  .services.rp-services-showcase{
    padding-top:clamp(58px,7vh,78px) !important;
    padding-bottom:clamp(58px,7vh,78px) !important;
  }

  .rp-services-heading{
    margin-bottom:20px;
  }

  .rp-services-heading h2{
    font-size:clamp(46px,5.2vw,88px);
    line-height:.9;
  }

  .rp-services-heading > p{
    font-size:clamp(14px,.95vw,17px);
    line-height:1.55;
  }

  .rp-service-card{
    grid-template-rows:clamp(235px,31svh,310px) auto;
  }

  .rp-service-card__content{
    padding:clamp(20px,1.65vw,28px);
  }

  .rp-service-card__meta{
    margin-bottom:12px;
  }

  .rp-service-card h3{
    font-size:clamp(32px,2.8vw,48px);
  }

  .rp-service-card p{
    margin-top:9px;
    line-height:1.45;
  }

  .rp-service-card__link{
    margin-top:14px;
  }

  .rp-service-viewport{
    padding-top:10px;
    padding-bottom:20px;
  }
}

@media (max-width:1100px){
  .rp-service-track{
    padding-inline:12vw;
  }

  .rp-service-slide{
    flex-basis:min(76vw,720px);
  }

  .rp-service-card{
    grid-template-rows:clamp(230px,30svh,340px) auto;
  }

  .rp-service-card__content{
    padding:clamp(21px,3vw,30px);
  }

  .rp-service-card h3{
    font-size:clamp(32px,5vw,48px);
  }

  .rp-carousel-dots{
    overflow:visible;
    flex-wrap:wrap;
  }
}

@media (max-width:760px){
  /* Keep the statement inside the mobile header so it never floats over
     section titles or carousel content. */
  .site-header{
    display:grid !important;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center !important;
    gap:8px;
  }

  .site-header .header-logo{
    grid-column:1;
  }

  .site-header .menu-toggle{
    grid-column:3;
  }

  .site-header .rp-header-statement{
    position:static !important;
    grid-column:2;
    grid-row:1;
    align-self:center;
    width:auto !important;
    max-width:100%;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    color:var(--rp-visibility-blue) !important;
    font-size:clamp(6.2px,1.75vw,7.2px) !important;
    line-height:1.22 !important;
    letter-spacing:.045em !important;
    white-space:normal;
    background:transparent !important;
    box-shadow:none !important;
    backdrop-filter:none !important;
    transform:none !important;
  }

  .site-header.is-past-hero .rp-header-statement,
  .site-header.is-scrolled .rp-header-statement{
    color:var(--rp-visibility-blue) !important;
    transform:none !important;
  }

  .services.rp-services-showcase{
    padding:66px 0 72px !important;
  }

  .rp-services-heading{
    margin-bottom:18px;
  }

  .rp-services-heading h2{
    font-size:clamp(40px,12vw,58px);
    line-height:.92;
  }

  .rp-services-heading > p{
    font-size:14px;
    line-height:1.55;
  }

  .rp-service-viewport{
    padding:10px 0 20px;
  }

  .rp-service-track{
    gap:14px;
    padding-inline:5vw;
  }

  .rp-service-slide,
  .rp-service-slide.is-adjacent,
  .rp-service-slide.is-active{
    flex-basis:90vw;
  }

  .rp-service-slide{
    transform:scale(.94);
  }

  .rp-service-slide.is-adjacent{
    transform:scale(.96);
  }

  .rp-service-card{
    grid-template-rows:clamp(190px,30svh,250px) auto;
    border-radius:17px;
  }

  .rp-service-card__content{
    padding:21px 20px 23px;
  }

  .rp-service-card__meta{
    margin-bottom:12px;
    font-size:10px;
  }

  .rp-service-card h3{
    font-size:clamp(29px,8.6vw,40px);
    line-height:.97;
  }

  .rp-service-card p{
    margin-top:10px;
    font-size:13.5px;
    line-height:1.48;
  }

  .rp-service-card__link{
    margin-top:15px;
    font-size:10px;
  }

  .rp-carousel-controls{
    gap:18px 12px;
  }

  .rp-carousel-dots{
    gap:4px;
    overflow:visible;
    flex-wrap:nowrap;
  }

  .rp-carousel-dot{
    width:18px;
  }
}

@media (max-width:390px){
  .rp-service-track{
    padding-inline:4vw;
  }

  .rp-service-slide,
  .rp-service-slide.is-adjacent,
  .rp-service-slide.is-active{
    flex-basis:92vw;
  }

  .rp-service-card{
    grid-template-rows:clamp(180px,28svh,220px) auto;
  }

  .rp-service-card__content{
    padding:19px 18px 21px;
  }

  .rp-service-card h3{
    font-size:clamp(28px,8.5vw,36px);
  }

  .rp-services-all{
    max-width:128px;
  }
}

@media (max-height:700px) and (max-width:760px){
  .rp-service-card{
    grid-template-rows:170px auto;
  }

  .rp-service-card__content{
    padding-top:17px;
    padding-bottom:18px;
  }

  .rp-service-card p{
    line-height:1.42;
  }
}

@media (min-width:2200px){
  .rp-service-slide{
    flex-basis:min(42vw,980px);
  }

  .rp-service-track{
    padding-inline:max(32px,calc(50vw - min(21vw,490px)));
  }

  .rp-service-card{
    grid-template-rows:clamp(380px,29svh,500px) auto;
  }

  .rp-service-card h3{
    font-size:clamp(50px,2.6vw,70px);
  }
}

@media (prefers-reduced-motion:reduce){
  .rp-service-track,
  .rp-service-slide,
  .rp-service-card{
    transition:none !important;
  }
}

/* ===== SOURCE: assets/css/realpro-final-visibility-contrast-20260805.css ===== */
/* ================================================================
   REALPRO STUDIOS — FINAL VISIBILITY + CONTRAST CORRECTIONS
   2026-08-05 · Loaded last on every page
   ================================================================ */

:root{
  --rp-final-navy:#07111f;
  --rp-final-blue:#19365f;
  --rp-final-red:#d32f2f;
  --rp-final-red-hover:#b8242a;
  --rp-final-white:#ffffff;
  --rp-final-cream:#f7f4ee;
  --rp-final-ease:cubic-bezier(.22,.76,.24,1);
}

/* The page must expand with its content. No section is allowed to crop copy,
   actions, media or navigation because of a fixed viewport height. */
html,
body{
  width:100%;
  max-width:100%;
  overflow-x:clip !important;
}

*,
*::before,
*::after{
  box-sizing:border-box;
}

main,
main > section,
.hero,
.article-hero,
.rp-page-hero,
.rp-contact-hero,
.hero-grid,
.article-hero__grid,
.rp-page-hero__content,
.rp-contact-hero__content{
  height:auto !important;
  max-height:none !important;
}

main > section,
.hero,
.article-hero,
.rp-page-hero,
.rp-contact-hero{
  min-width:0;
}

main > section:not(.services):not(.rp-services-showcase){
  overflow-y:visible !important;
}

.container,
[class*="__content"],
[class*="__grid"],
[class*="-grid"],
.button-row,
.rp-service-actions{
  min-width:0;
  max-width:100%;
}

img,
picture,
video,
iframe,
svg{
  max-width:100%;
}

h1,
h2,
h3,
h4,
p,
a,
strong,
em,
span{
  min-width:0;
}

h1,
h2,
h3,
h4{
  overflow-wrap:normal;
  word-break:normal;
  text-wrap:balance;
}

p,
a{
  overflow-wrap:anywhere;
}

/* Home hero: both strategic words use the REALPRO red. */
html body .hero #hero-title .rp-hero-emphasis--brands,
html body .hero #hero-title .rp-hero-emphasis--growth{
  color:var(--rp-final-red) !important;
  -webkit-text-fill-color:var(--rp-final-red) !important;
  text-shadow:none !important;
}

/* One approved header statement across the full website. */
html body .site-header[data-header] .rp-header-statement{
  color:var(--rp-final-blue) !important;
  -webkit-text-fill-color:var(--rp-final-blue) !important;
  text-shadow:none !important;
}

html body .site-header[data-header] .rp-header-statement strong{
  color:inherit !important;
  -webkit-text-fill-color:currentColor !important;
}

html body .site-header[data-header] .rp-header-statement em{
  color:var(--rp-final-red) !important;
  -webkit-text-fill-color:var(--rp-final-red) !important;
}

/* Full Services: complete active card, restrained neighboring previews and a
   soft transition. The card height responds to both width and screen height. */
html body .services.rp-services-showcase{
  height:auto !important;
  max-height:none !important;
  overflow:hidden !important;
  padding-top:clamp(64px,7vw,112px) !important;
  padding-bottom:clamp(64px,7vw,108px) !important;
}

html body .rp-services-heading{
  margin-bottom:clamp(22px,2.7vw,44px) !important;
}

html body .rp-service-viewport{
  height:auto !important;
  max-height:none !important;
  overflow:hidden !important;
  padding:clamp(10px,1.5vh,18px) 0 clamp(18px,2.5vh,30px) !important;
}

html body .rp-service-track{
  align-items:flex-start !important;
  gap:clamp(14px,1.55vw,26px) !important;
  transition:transform .92s var(--rp-final-ease) !important;
}

html body .rp-service-track.is-dragging{
  transition:none !important;
}

html body .rp-service-slide{
  flex-basis:min(54vw,820px) !important;
  transform:scale(.90) !important;
  transition:transform .92s var(--rp-final-ease),opacity .72s ease,filter .72s ease !important;
}

html body .rp-service-slide.is-adjacent{
  opacity:.62 !important;
  transform:scale(.95) !important;
}

html body .rp-service-slide.is-active{
  opacity:1 !important;
  filter:none !important;
  transform:scale(1) !important;
}

html body .rp-service-card{
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  grid-template-rows:clamp(230px,31svh,410px) auto !important;
}

html body .rp-service-card__content{
  padding:clamp(21px,2vw,34px) !important;
}

html body .rp-service-card__meta{
  margin-bottom:clamp(12px,1.2vw,19px) !important;
}

html body .rp-service-card h3{
  font-size:clamp(32px,3.1vw,54px) !important;
  line-height:.97 !important;
}

html body .rp-service-card p{
  margin-top:clamp(9px,1vw,15px) !important;
  font-size:clamp(13px,.9vw,16px) !important;
  line-height:1.5 !important;
}

html body .rp-service-card__link{
  margin-top:clamp(14px,1.3vw,21px) !important;
}

/* Contrast system. Text and icons inherit the button foreground so no CTA can
   become navy-on-navy or transparent-on-image after cascade conflicts. */
html body .btn,
html body .rp-contact-button,
html body .rp-contact-hero__button{
  opacity:1 !important;
  text-shadow:none !important;
}

html body .btn *,
html body .rp-contact-button *,
html body .rp-contact-hero__button *{
  color:inherit !important;
  -webkit-text-fill-color:currentColor !important;
  opacity:1 !important;
}

html body .btn-red,
html body .btn.btn-red,
html body .btn--primary,
html body .button-row .btn--primary,
html body .rp-contact-button--email,
html body [data-rp-surface="light"] .rp-contact-button--email,
html body [data-rp-surface="dark"] .rp-contact-button--email,
html body .rp-contact-hero__button--primary{
  color:var(--rp-final-white) !important;
  -webkit-text-fill-color:var(--rp-final-white) !important;
  background:var(--rp-final-red) !important;
  border-color:var(--rp-final-red) !important;
  box-shadow:0 12px 30px rgba(211,47,47,.24) !important;
}

html body .btn-red:hover,
html body .btn-red:focus-visible,
html body .btn--primary:hover,
html body .btn--primary:focus-visible,
html body .rp-contact-button--email:hover,
html body .rp-contact-button--email:focus-visible,
html body .rp-contact-hero__button--primary:hover,
html body .rp-contact-hero__button--primary:focus-visible{
  color:var(--rp-final-white) !important;
  -webkit-text-fill-color:var(--rp-final-white) !important;
  background:var(--rp-final-red-hover) !important;
  border-color:var(--rp-final-red-hover) !important;
}

html body [data-rp-surface="dark"] .btn--secondary,
html body [data-rp-surface="dark"] .button-row .btn:not(.btn-red):not(.btn--primary),
html body [data-rp-surface="dark"] .rp-contact-button--call,
html body .rp-contact-hero__button--secondary{
  color:var(--rp-final-white) !important;
  -webkit-text-fill-color:var(--rp-final-white) !important;
  background:rgba(7,17,31,.34) !important;
  border-color:rgba(255,255,255,.72) !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.05) !important;
  backdrop-filter:blur(12px);
}

html body [data-rp-surface="dark"] .btn--secondary:hover,
html body [data-rp-surface="dark"] .btn--secondary:focus-visible,
html body [data-rp-surface="dark"] .button-row .btn:not(.btn-red):not(.btn--primary):hover,
html body [data-rp-surface="dark"] .button-row .btn:not(.btn-red):not(.btn--primary):focus-visible,
html body [data-rp-surface="dark"] .rp-contact-button--call:hover,
html body [data-rp-surface="dark"] .rp-contact-button--call:focus-visible,
html body .rp-contact-hero__button--secondary:hover,
html body .rp-contact-hero__button--secondary:focus-visible{
  color:var(--rp-final-navy) !important;
  -webkit-text-fill-color:var(--rp-final-navy) !important;
  background:var(--rp-final-white) !important;
  border-color:var(--rp-final-white) !important;
}

html body [data-rp-surface="light"] .btn--secondary,
html body [data-rp-surface="light"] .button-row .btn:not(.btn-red):not(.btn--primary),
html body [data-rp-surface="light"] .rp-contact-button--call{
  color:var(--rp-final-navy) !important;
  -webkit-text-fill-color:var(--rp-final-navy) !important;
  background:var(--rp-final-white) !important;
  border-color:rgba(7,17,31,.42) !important;
}

html body [data-rp-surface="light"] .btn--secondary:hover,
html body [data-rp-surface="light"] .btn--secondary:focus-visible,
html body [data-rp-surface="light"] .button-row .btn:not(.btn-red):not(.btn--primary):hover,
html body [data-rp-surface="light"] .button-row .btn:not(.btn-red):not(.btn--primary):focus-visible,
html body [data-rp-surface="light"] .rp-contact-button--call:hover,
html body [data-rp-surface="light"] .rp-contact-button--call:focus-visible{
  color:var(--rp-final-white) !important;
  -webkit-text-fill-color:var(--rp-final-white) !important;
  background:var(--rp-final-navy) !important;
  border-color:var(--rp-final-navy) !important;
}

html body .rp-contact-button small{
  color:inherit !important;
  -webkit-text-fill-color:currentColor !important;
  opacity:.82 !important;
}

/* Contact: restrained title scale, strong contrast and compact vertical rhythm
   so title, description, actions and official contact details remain visible. */
html body .rp-contact-hero{
  min-height:100svh !important;
  padding:clamp(112px,13vh,148px) 0 clamp(38px,5vh,64px) !important;
  align-items:center !important;
  overflow:hidden !important;
}

html body .rp-contact-hero__shade{
  background:
    radial-gradient(circle at 74% 35%,rgba(211,47,47,.18),transparent 31%),
    linear-gradient(90deg,rgba(5,13,24,.98) 0%,rgba(5,13,24,.91) 47%,rgba(5,13,24,.58) 100%),
    linear-gradient(180deg,rgba(4,10,18,.52),rgba(4,10,18,.82)) !important;
}

html body .rp-contact-hero__content{
  width:min(1240px,calc(100% - 64px)) !important;
  margin-inline:auto !important;
}

html body .rp-contact-hero .eyebrow{
  margin-bottom:clamp(12px,1.7vh,20px) !important;
  color:rgba(255,255,255,.78) !important;
  -webkit-text-fill-color:rgba(255,255,255,.78) !important;
}

html body .rp-contact-hero h1,
html body .rp-contact-hero #rp-contact-title{
  max-width:980px !important;
  color:var(--rp-final-cream) !important;
  -webkit-text-fill-color:var(--rp-final-cream) !important;
  font-size:clamp(42px,min(5.05vw,8.2vh),84px) !important;
  font-weight:620 !important;
  line-height:.95 !important;
  letter-spacing:-.052em !important;
  text-shadow:0 8px 34px rgba(0,0,0,.26) !important;
}

html body .rp-contact-hero__content > p:not(.eyebrow){
  max-width:700px !important;
  margin:clamp(16px,2.2vh,26px) 0 0 !important;
  color:rgba(255,255,255,.82) !important;
  -webkit-text-fill-color:rgba(255,255,255,.82) !important;
  font-size:clamp(15px,1vw,18px) !important;
  line-height:1.55 !important;
}

html body .rp-contact-hero__actions{
  gap:12px !important;
  margin-top:clamp(20px,2.8vh,32px) !important;
}

html body .rp-contact-hero__button{
  min-height:54px !important;
  padding:14px 25px !important;
}

html body .rp-contact-hero__details{
  gap:clamp(22px,4vw,64px) !important;
  margin-top:clamp(26px,3.8vh,44px) !important;
  padding-top:clamp(18px,2.4vh,28px) !important;
  border-color:rgba(255,255,255,.28) !important;
}

html body .rp-contact-hero__details a,
html body .rp-contact-hero__details strong{
  color:var(--rp-final-white) !important;
  -webkit-text-fill-color:var(--rp-final-white) !important;
}

html body .rp-contact-hero__details span{
  color:rgba(255,255,255,.68) !important;
  -webkit-text-fill-color:rgba(255,255,255,.68) !important;
}

/* Standard inner-page heroes remain readable and expand naturally when copy
   wraps on compact devices or translated browser settings. */
html body.rp-standardized-page .rp-page-hero,
html body.rp-standardized-page main > .hero,
html body .article-hero{
  min-height:min(100svh,980px) !important;
  height:auto !important;
  max-height:none !important;
  padding-top:clamp(112px,13vh,160px) !important;
  padding-bottom:clamp(52px,7vh,92px) !important;
}

html body.rp-standardized-page .rp-page-hero__content,
html body.rp-standardized-page main > .hero .hero-grid,
html body.rp-standardized-page main > .hero > .container{
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
}

@media (max-height:820px) and (min-width:761px){
  html body .rp-contact-hero{
    padding-top:104px !important;
    padding-bottom:28px !important;
  }

  html body .rp-contact-hero h1,
  html body .rp-contact-hero #rp-contact-title{
    max-width:900px !important;
    font-size:clamp(40px,min(4.55vw,7.2vh),68px) !important;
  }

  html body .rp-contact-hero__content > p:not(.eyebrow){
    margin-top:14px !important;
    line-height:1.46 !important;
  }

  html body .rp-contact-hero__actions{
    margin-top:18px !important;
  }

  html body .rp-contact-hero__details{
    margin-top:22px !important;
    padding-top:17px !important;
  }

  html body .services.rp-services-showcase{
    padding-top:54px !important;
    padding-bottom:58px !important;
  }

  html body .rp-service-card{
    grid-template-rows:clamp(205px,29svh,285px) auto !important;
  }
}

@media (max-width:1100px){
  html body .rp-service-slide{
    flex-basis:min(76vw,720px) !important;
  }

  html body .rp-service-card{
    grid-template-rows:clamp(220px,30svh,335px) auto !important;
  }
}

@media (max-width:760px){
  html body .site-header[data-header] .rp-header-statement{
    color:var(--rp-final-blue) !important;
    -webkit-text-fill-color:var(--rp-final-blue) !important;
  }

  html body .services.rp-services-showcase{
    padding:62px 0 68px !important;
  }

  html body .rp-service-track{
    gap:12px !important;
    padding-inline:5vw !important;
  }

  html body .rp-service-slide,
  html body .rp-service-slide.is-adjacent,
  html body .rp-service-slide.is-active{
    flex-basis:90vw !important;
  }

  html body .rp-service-card{
    grid-template-rows:clamp(180px,28svh,245px) auto !important;
  }

  html body .rp-service-card__content{
    padding:20px 19px 22px !important;
  }

  html body .rp-service-card h3{
    font-size:clamp(28px,8.5vw,39px) !important;
  }

  html body .rp-service-card p{
    font-size:13px !important;
    line-height:1.46 !important;
  }

  html body .rp-contact-hero{
    min-height:100svh !important;
    padding:112px 0 36px !important;
    align-items:start !important;
    overflow:hidden !important;
  }

  html body .rp-contact-hero__content{
    width:calc(100% - 34px) !important;
  }

  html body .rp-contact-hero h1,
  html body .rp-contact-hero #rp-contact-title{
    max-width:15ch !important;
    font-size:clamp(36px,10.8vw,54px) !important;
    line-height:.96 !important;
    letter-spacing:-.045em !important;
  }

  html body .rp-contact-hero__content > p:not(.eyebrow){
    margin-top:16px !important;
    font-size:14px !important;
    line-height:1.5 !important;
  }

  html body .rp-contact-hero__actions{
    display:grid !important;
    grid-template-columns:1fr !important;
    width:100% !important;
    margin-top:20px !important;
  }

  html body .rp-contact-hero__button{
    width:100% !important;
    min-height:52px !important;
  }

  html body .rp-contact-hero__details{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:16px !important;
    margin-top:24px !important;
    padding-top:18px !important;
  }

  html body.rp-standardized-page .rp-page-hero,
  html body.rp-standardized-page main > .hero,
  html body .article-hero{
    min-height:100svh !important;
    padding-top:108px !important;
    padding-bottom:48px !important;
  }

  html body .button-row,
  html body .rp-service-actions{
    width:100% !important;
  }

  html body .button-row .btn,
  html body .rp-service-actions .rp-contact-button{
    width:100% !important;
  }
}

@media (max-width:390px){
  html body .rp-contact-hero{
    padding-top:104px !important;
    padding-bottom:28px !important;
  }

  html body .rp-contact-hero h1,
  html body .rp-contact-hero #rp-contact-title{
    font-size:clamp(34px,10.4vw,45px) !important;
  }

  html body .rp-service-slide,
  html body .rp-service-slide.is-adjacent,
  html body .rp-service-slide.is-active{
    flex-basis:92vw !important;
  }

  html body .rp-service-card{
    grid-template-rows:clamp(168px,27svh,210px) auto !important;
  }
}

@media (prefers-reduced-motion:reduce){
  html body .rp-service-track,
  html body .rp-service-slide{
    transition:none !important;
  }
}

/* Explicit light CTA used in dark end-of-page panels. */
html body [data-rp-surface="dark"] .btn--light,
html body .section--navy .btn--light{
  color:var(--rp-final-navy) !important;
  -webkit-text-fill-color:var(--rp-final-navy) !important;
  background:var(--rp-final-white) !important;
  border-color:var(--rp-final-white) !important;
}

html body [data-rp-surface="dark"] .btn--light:hover,
html body [data-rp-surface="dark"] .btn--light:focus-visible,
html body .section--navy .btn--light:hover,
html body .section--navy .btn--light:focus-visible{
  color:var(--rp-final-white) !important;
  -webkit-text-fill-color:var(--rp-final-white) !important;
  background:var(--rp-final-red) !important;
  border-color:var(--rp-final-red) !important;
}

@media (max-width:760px) and (max-height:740px){
  html body .rp-contact-hero{
    padding-top:96px !important;
    padding-bottom:22px !important;
  }

  html body .rp-contact-hero .eyebrow{
    margin-bottom:9px !important;
  }

  html body .rp-contact-hero h1,
  html body .rp-contact-hero #rp-contact-title{
    max-width:16ch !important;
    font-size:clamp(31px,9.6vw,42px) !important;
    line-height:.95 !important;
  }

  html body .rp-contact-hero__content > p:not(.eyebrow){
    margin-top:11px !important;
    font-size:13px !important;
    line-height:1.42 !important;
  }

  html body .rp-contact-hero__actions{
    gap:9px !important;
    margin-top:14px !important;
  }

  html body .rp-contact-hero__button{
    min-height:47px !important;
    padding:11px 20px !important;
  }

  html body .rp-contact-hero__details{
    gap:11px !important;
    margin-top:16px !important;
    padding-top:13px !important;
  }

  html body .rp-contact-hero__details strong{
    font-size:13px !important;
  }
}

/* ===== SOURCE: assets/css/realpro-master-refinement-20260805.css ===== */
/* ========================================================================
   REALPRO STUDIOS — MASTER ALIGNMENT, CONTRAST & RESPONSIVE REFINEMENT
   Final cascade layer. Loaded last on every HTML page.
   ======================================================================== */
:root{
  --rp-master-navy:#07111f;
  --rp-master-blue:#1a2b4c;
  --rp-master-red:#d83232;
  --rp-master-red-hover:#bd2428;
  --rp-master-white:#ffffff;
  --rp-master-cream:#f7f4ee;
  --rp-master-ink:#14243a;
  --rp-master-muted:#536276;
  --rp-master-on-dark:rgba(255,255,255,.82);
  --rp-master-line-dark:rgba(255,255,255,.48);
  --rp-master-line-light:rgba(7,17,31,.22);
  --rp-master-container:1320px;
  --rp-master-ease:cubic-bezier(.22,.76,.24,1);
}

/* ---------- Global geometry: no clipped page content ---------- */
html{
  overflow-x:clip;
  scroll-padding-top:clamp(72px,7vw,94px);
}
body{
  max-width:100%;
  overflow-x:clip;
}
main,
main > section,
main > article{
  width:100%;
  max-width:100%;
}
main > section,
main > article{
  height:auto !important;
  max-height:none !important;
  scroll-margin-top:clamp(72px,7vw,94px);
}
.container{
  width:min(calc(100% - 64px),var(--rp-master-container)) !important;
  margin-inline:auto !important;
}
img,
video,
iframe,
svg{
  max-width:100%;
}
img,
video{
  display:block;
}
h1,h2,h3,h4,h5,h6{
  min-width:0;
  max-width:100%;
  overflow-wrap:break-word;
  word-break:normal;
  hyphens:none;
  text-wrap:balance;
}
p,li,a,strong,small,span{
  min-width:0;
}
.button-row,
.rp-service-actions,
.rp-contact-hero__actions{
  max-width:100%;
}

/* ---------- Single approved header statement ---------- */
.site-header .rp-header-union-message{
  display:none !important;
  visibility:hidden !important;
  opacity:0 !important;
}
.site-header[data-header] .rp-header-statement{
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  z-index:6 !important;
  display:block !important;
  width:min(58vw,780px) !important;
  max-width:calc(100% - 430px) !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
  color:var(--rp-master-blue) !important;
  -webkit-text-fill-color:var(--rp-master-blue) !important;
  font-size:clamp(10px,.82vw,14px) !important;
  font-weight:650 !important;
  line-height:1.16 !important;
  letter-spacing:.105em !important;
  text-align:center !important;
  text-transform:uppercase !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  opacity:0 !important;
  visibility:hidden !important;
  filter:blur(4px) !important;
  transform:translate(-50%,-34%) !important;
  transition:opacity .42s ease,transform .58s var(--rp-master-ease),filter .5s ease,visibility 0s linear .55s !important;
  pointer-events:none !important;
  text-shadow:none !important;
}
.site-header[data-header] .rp-header-statement strong{
  color:var(--rp-master-blue) !important;
  -webkit-text-fill-color:var(--rp-master-blue) !important;
  font:inherit !important;
  font-weight:820 !important;
}
.site-header[data-header] .rp-header-statement em{
  color:var(--rp-master-red) !important;
  -webkit-text-fill-color:var(--rp-master-red) !important;
  font:inherit !important;
  font-style:normal !important;
  font-weight:850 !important;
}
.site-header[data-header].is-past-hero{
  background:rgba(255,255,255,.97) !important;
  border-bottom-color:rgba(26,43,76,.12) !important;
  box-shadow:0 12px 38px rgba(7,17,31,.09) !important;
  backdrop-filter:blur(18px) saturate(1.08) !important;
}
.site-header[data-header].is-past-hero .rp-header-statement{
  opacity:1 !important;
  visibility:visible !important;
  filter:none !important;
  transform:translate(-50%,-50%) !important;
  transition-delay:0s !important;
}
/* Never reveal the statement merely because a few pixels were scrolled. */
.site-header[data-header].is-scrolled:not(.is-past-hero) .rp-header-statement{
  opacity:0 !important;
  visibility:hidden !important;
}

/* Home strategic words. */
.hero #hero-title .rp-hero-emphasis--brands,
.hero #hero-title .rp-hero-emphasis--growth{
  color:var(--rp-master-red) !important;
  -webkit-text-fill-color:var(--rp-master-red) !important;
  text-shadow:none !important;
}

/* ---------- Deterministic surface contrast ---------- */
/* Actual light surfaces. Some legacy pages had an incorrect dark data flag on
   section--soft, so class semantics intentionally win here. */
main > section.section--soft,
main > section[data-rp-surface="light"]{
  color:var(--rp-master-ink);
}
main > section.section--soft :is(.section-heading,.editorial-copy,.process-timeline) :is(h1,h2,h3,h4,strong),
main > section[data-rp-surface="light"] :is(.section-heading,.editorial-copy,.process-timeline) :is(h1,h2,h3,h4,strong){
  color:var(--rp-master-ink) !important;
  -webkit-text-fill-color:var(--rp-master-ink) !important;
}
main > section.section--soft :is(.section-heading,.editorial-copy,.process-timeline) :is(p,li),
main > section[data-rp-surface="light"] :is(.section-heading,.editorial-copy,.process-timeline) :is(p,li){
  color:var(--rp-master-muted) !important;
  -webkit-text-fill-color:var(--rp-master-muted) !important;
}

/* Actual dark/cinematic surfaces. */
main > :is(.hero,.rp-page-hero,.rp-contact-hero,.section--navy,.section--cta,.trust-strip,.services.rp-services-showcase),
.site-footer{
  color:var(--rp-master-white) !important;
}
main > :is(.hero,.rp-page-hero,.rp-contact-hero,.section--navy,.section--cta,.trust-strip,.services.rp-services-showcase) :is(h1,h2,h3,h4,strong),
.site-footer :is(h2,h3,h4,strong){
  color:var(--rp-master-white) !important;
  -webkit-text-fill-color:var(--rp-master-white) !important;
}
main > :is(.hero,.rp-page-hero,.rp-contact-hero,.section--navy,.section--cta,.trust-strip,.services.rp-services-showcase) :is(p,li),
.site-footer p{
  color:var(--rp-master-on-dark) !important;
  -webkit-text-fill-color:var(--rp-master-on-dark) !important;
}
main > :is(.hero,.rp-page-hero,.rp-contact-hero,.section--navy,.section--cta,.trust-strip,.services.rp-services-showcase) :is(.eyebrow,.kicker){
  color:#ff6666 !important;
  -webkit-text-fill-color:#ff6666 !important;
}

/* ---------- Buttons: foreground always inherits and always contrasts ---------- */
:is(.btn,.rp-contact-button,.rp-contact-hero__button,.rp-services-all){
  position:relative;
  isolation:isolate;
  min-height:52px;
  max-width:100%;
  opacity:1 !important;
  text-decoration:none !important;
  text-shadow:none !important;
  -webkit-text-fill-color:currentColor !important;
}
:is(.btn,.rp-contact-button,.rp-contact-hero__button,.rp-services-all) :is(span,small,strong,b,em,svg){
  color:inherit !important;
  -webkit-text-fill-color:currentColor !important;
  opacity:1 !important;
  fill:currentColor;
  stroke:currentColor;
}
:is(.btn,.rp-contact-button,.rp-contact-hero__button,.rp-services-all):focus-visible{
  outline:3px solid rgba(255,255,255,.94) !important;
  outline-offset:3px !important;
}

/* Primary actions remain REALPRO red on every surface. */
:is(.btn-red,.btn--primary,.rp-contact-button--email,.rp-contact-hero__button--primary){
  color:var(--rp-master-white) !important;
  -webkit-text-fill-color:var(--rp-master-white) !important;
  background:var(--rp-master-red) !important;
  border-color:var(--rp-master-red) !important;
  box-shadow:0 12px 30px rgba(216,50,50,.24) !important;
}
:is(.btn-red,.btn--primary,.rp-contact-button--email,.rp-contact-hero__button--primary):is(:hover,:focus-visible){
  color:var(--rp-master-white) !important;
  -webkit-text-fill-color:var(--rp-master-white) !important;
  background:var(--rp-master-red-hover) !important;
  border-color:var(--rp-master-red-hover) !important;
}

/* Direct-call actions on light backgrounds: light pill, navy copy.
   The button itself remains visually light, so every label and phone number
   uses the approved dark foreground. */
[data-rp-button-surface="light"].rp-contact-button--call,
.section--soft .rp-contact-button--call,
[data-rp-surface="light"] .rp-contact-button--call{
  color:var(--rp-master-blue) !important;
  -webkit-text-fill-color:var(--rp-master-blue) !important;
  background:var(--rp-master-white) !important;
  border-color:rgba(26,43,76,.38) !important;
  box-shadow:0 12px 28px rgba(26,43,76,.12) !important;
}
[data-rp-button-surface="light"].rp-contact-button--call:is(:hover,:focus-visible),
.section--soft .rp-contact-button--call:is(:hover,:focus-visible),
[data-rp-surface="light"] .rp-contact-button--call:is(:hover,:focus-visible){
  color:var(--rp-master-white) !important;
  -webkit-text-fill-color:var(--rp-master-white) !important;
  background:var(--rp-master-blue) !important;
  border-color:var(--rp-master-blue) !important;
}

/* Secondary/call actions on dark backgrounds: light copy with a strong border. */
[data-rp-button-surface="dark"].rp-contact-button--call,
[data-rp-button-surface="dark"].btn:not(.btn--primary):not(.btn-red),
main > :is(.hero,.rp-page-hero,.rp-contact-hero,.section--navy,.section--cta,.trust-strip,.services.rp-services-showcase) :is(.rp-contact-button--call,.btn--secondary,.btn--light),
.rp-contact-hero__button--secondary{
  color:var(--rp-master-white) !important;
  -webkit-text-fill-color:var(--rp-master-white) !important;
  background:rgba(7,17,31,.44) !important;
  border-color:rgba(255,255,255,.72) !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.06) !important;
  backdrop-filter:blur(12px);
}
[data-rp-button-surface="dark"].rp-contact-button--call:is(:hover,:focus-visible),
[data-rp-button-surface="dark"].btn:not(.btn--primary):not(.btn-red):is(:hover,:focus-visible),
main > :is(.hero,.rp-page-hero,.rp-contact-hero,.section--navy,.section--cta,.trust-strip,.services.rp-services-showcase) :is(.rp-contact-button--call,.btn--secondary,.btn--light):is(:hover,:focus-visible),
.rp-contact-hero__button--secondary:is(:hover,:focus-visible){
  color:var(--rp-master-navy) !important;
  -webkit-text-fill-color:var(--rp-master-navy) !important;
  background:var(--rp-master-white) !important;
  border-color:var(--rp-master-white) !important;
}
.rp-contact-button small{
  display:block;
  font-size:9px !important;
  font-weight:700 !important;
  line-height:1.1 !important;
  letter-spacing:.035em !important;
}

/* ---------- Home services carousel: deliberate 3-second movement ---------- */
.rp-service-track{
  transition:transform .88s var(--rp-master-ease) !important;
}
.rp-service-slide{
  transition:transform .88s var(--rp-master-ease),opacity .7s ease,filter .7s ease !important;
}
.rp-service-card{
  height:auto !important;
  max-height:none !important;
}
.rp-service-card__content{
  height:auto !important;
  min-height:0 !important;
}

/* ---------- Contact: site-standard title scale and complete viewport layout ---------- */
body.rp-page-contact main{
  background:var(--rp-master-navy) !important;
}
body.rp-page-contact .rp-contact-hero{
  min-height:100svh !important;
  height:auto !important;
  max-height:none !important;
  align-items:center !important;
  overflow:hidden !important;
  padding:clamp(116px,13vh,146px) 0 clamp(40px,5vh,62px) !important;
}
body.rp-page-contact .rp-contact-hero__content{
  width:min(calc(100% - 64px),var(--rp-master-container)) !important;
  max-width:var(--rp-master-container) !important;
  margin-inline:auto !important;
}
body.rp-page-contact .rp-contact-hero .eyebrow{
  margin:0 0 clamp(12px,1.5vh,18px) !important;
  color:#ff6666 !important;
  -webkit-text-fill-color:#ff6666 !important;
}
body.rp-page-contact .rp-contact-hero h1,
body.rp-page-contact #rp-contact-title{
  max-width:18ch !important;
  margin:0 !important;
  color:var(--rp-master-cream) !important;
  -webkit-text-fill-color:var(--rp-master-cream) !important;
  font-size:clamp(48px,min(4.75vw,8.3vh),82px) !important;
  font-weight:650 !important;
  line-height:.96 !important;
  letter-spacing:-.052em !important;
  text-wrap:balance !important;
  text-shadow:0 10px 38px rgba(0,0,0,.34) !important;
}
body.rp-page-contact .rp-contact-hero__content > p:not(.eyebrow){
  max-width:720px !important;
  margin:clamp(16px,2.2vh,25px) 0 0 !important;
  color:rgba(255,255,255,.84) !important;
  -webkit-text-fill-color:rgba(255,255,255,.84) !important;
  font-size:clamp(15px,1.03vw,18px) !important;
  line-height:1.54 !important;
}
body.rp-page-contact .rp-contact-hero__actions{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:12px !important;
  margin-top:clamp(20px,2.7vh,31px) !important;
}
body.rp-page-contact .rp-contact-hero__button{
  min-width:190px !important;
  min-height:54px !important;
  padding:14px 25px !important;
}
body.rp-page-contact .rp-contact-hero__details{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:clamp(24px,5vw,72px) !important;
  max-width:900px !important;
  margin-top:clamp(26px,3.7vh,42px) !important;
  padding-top:clamp(18px,2.3vh,26px) !important;
  border-top:1px solid rgba(255,255,255,.3) !important;
}
body.rp-page-contact .rp-contact-hero__details a,
body.rp-page-contact .rp-contact-hero__details strong{
  color:var(--rp-master-white) !important;
  -webkit-text-fill-color:var(--rp-master-white) !important;
}
body.rp-page-contact .rp-contact-hero__details span{
  color:rgba(255,255,255,.68) !important;
  -webkit-text-fill-color:rgba(255,255,255,.68) !important;
}

/* ---------- Process: shared grid, rhythm and alignment standard ---------- */
body.rp-page-process .rp-page-hero__content,
body.rp-page-process .trust-strip > .container,
body.rp-page-process main > .section > .container,
body.rp-page-process .gallery-grid{
  width:min(calc(100% - 64px),var(--rp-master-container)) !important;
  max-width:var(--rp-master-container) !important;
  margin-inline:auto !important;
}
body.rp-page-process .rp-page-hero{
  min-height:min(100svh,900px) !important;
  height:auto !important;
  max-height:none !important;
  padding-top:clamp(124px,14vh,168px) !important;
  padding-bottom:clamp(60px,8vh,96px) !important;
}
body.rp-page-process .rp-page-hero__copy{
  width:min(100%,980px) !important;
  max-width:980px !important;
  margin:0 !important;
}
body.rp-page-process .rp-page-hero h1{
  max-width:12ch !important;
  font-size:clamp(58px,6vw,104px) !important;
  line-height:.93 !important;
  letter-spacing:-.052em !important;
}
body.rp-page-process .rp-page-hero .lead{
  max-width:720px !important;
  margin-top:clamp(18px,2.4vw,30px) !important;
  font-size:clamp(16px,1.15vw,20px) !important;
  line-height:1.62 !important;
}
body.rp-page-process .trust-strip__grid{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  align-items:stretch !important;
}
body.rp-page-process .trust-strip__grid > div{
  min-width:0 !important;
  height:100% !important;
  padding:clamp(18px,2vw,28px) clamp(14px,1.7vw,24px) !important;
}
body.rp-page-process main > .section{
  padding-top:clamp(78px,7.5vw,124px) !important;
  padding-bottom:clamp(78px,7.5vw,124px) !important;
}
body.rp-page-process .section-heading{
  max-width:940px !important;
  margin:0 0 clamp(34px,4vw,62px) !important;
}
body.rp-page-process .section-heading--split{
  max-width:none !important;
  display:grid !important;
  grid-template-columns:minmax(0,1.1fr) minmax(300px,.62fr) !important;
  align-items:end !important;
  gap:clamp(34px,5vw,78px) !important;
}
body.rp-page-process .section-heading h2{
  max-width:18ch !important;
  font-size:clamp(46px,5vw,82px) !important;
  line-height:.95 !important;
  letter-spacing:-.052em !important;
}
body.rp-page-process .section-heading > p:not(.eyebrow),
body.rp-page-process .section-heading--split > p{
  max-width:58ch !important;
  margin:0 !important;
  font-size:clamp(15px,1.05vw,18px) !important;
  line-height:1.68 !important;
}
body.rp-page-process .timeline-list{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:clamp(16px,1.8vw,26px) !important;
}
body.rp-page-process .timeline-list article{
  min-width:0 !important;
  min-height:270px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  padding:clamp(24px,2.2vw,34px) !important;
  border:1px solid rgba(26,43,76,.11) !important;
  border-radius:24px !important;
  background:#fff !important;
  box-shadow:0 18px 52px rgba(7,17,31,.07) !important;
}
body.rp-page-process .timeline-list article span{
  color:var(--rp-master-red) !important;
  -webkit-text-fill-color:var(--rp-master-red) !important;
}
body.rp-page-process .timeline-list article h3{
  margin:0 0 14px !important;
  color:var(--rp-master-ink) !important;
  -webkit-text-fill-color:var(--rp-master-ink) !important;
  font-size:clamp(25px,2vw,34px) !important;
  line-height:1 !important;
}
body.rp-page-process .timeline-list article p{
  margin:0 !important;
  color:var(--rp-master-muted) !important;
  -webkit-text-fill-color:var(--rp-master-muted) !important;
  line-height:1.62 !important;
}
body.rp-page-process .gallery-grid--detail{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:clamp(16px,1.8vw,26px) !important;
}
body.rp-page-process .gallery-grid--detail .gallery-item{
  min-height:0 !important;
  aspect-ratio:4/5 !important;
  border-radius:24px !important;
}
body.rp-page-process .gallery-grid--detail .gallery-item img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
}
body.rp-page-process .cta-panel{
  width:100% !important;
  display:grid !important;
  grid-template-columns:minmax(0,1.1fr) minmax(320px,.58fr) !important;
  align-items:center !important;
  gap:clamp(32px,5vw,76px) !important;
  padding:clamp(32px,4.5vw,64px) !important;
}
body.rp-page-process .cta-panel h2{
  font-size:clamp(44px,4.5vw,76px) !important;
  line-height:.95 !important;
}
body.rp-page-process .cta-media{
  width:100% !important;
  height:clamp(280px,28vw,420px) !important;
}

/* ---------- Responsive refinements ---------- */
@media (max-width:1100px){
  .container{
    width:min(calc(100% - 48px),var(--rp-master-container)) !important;
  }
  .site-header[data-header] .rp-header-statement{
    max-width:calc(100% - 390px) !important;
    font-size:9px !important;
    letter-spacing:.075em !important;
  }
  body.rp-page-contact .rp-contact-hero__content,
  body.rp-page-process .rp-page-hero__content,
  body.rp-page-process .trust-strip > .container,
  body.rp-page-process main > .section > .container,
  body.rp-page-process .gallery-grid{
    width:calc(100% - 48px) !important;
  }
  body.rp-page-process .timeline-list{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  body.rp-page-process .section-heading--split{
    grid-template-columns:1fr !important;
    align-items:start !important;
    gap:22px !important;
  }
  body.rp-page-process .gallery-grid--detail{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  body.rp-page-process .gallery-grid--detail .gallery-item:last-child{
    grid-column:1/-1 !important;
    aspect-ratio:16/8 !important;
  }
}

@media (max-width:760px){
  html{scroll-padding-top:104px;}
  .container{
    width:calc(100% - 32px) !important;
  }
  main > section,
  main > article{
    scroll-margin-top:104px;
  }

  /* On compact screens the statement becomes one slim bar below the menu.
     This prevents the logo, sentence and menu icon from ever overlapping. */
  .site-header[data-header] .rp-header-statement{
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    top:70px !important;
    width:100% !important;
    max-width:none !important;
    min-height:34px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding:6px 14px !important;
    background:rgba(255,255,255,.98) !important;
    border-top:1px solid rgba(26,43,76,.08) !important;
    border-bottom:1px solid rgba(26,43,76,.12) !important;
    box-shadow:0 8px 22px rgba(7,17,31,.08) !important;
    font-size:clamp(7px,2.15vw,9px) !important;
    line-height:1.18 !important;
    letter-spacing:.055em !important;
    white-space:normal !important;
    text-overflow:clip !important;
    transform:translateY(-8px) !important;
  }
  .site-header[data-header].is-past-hero .rp-header-statement{
    transform:none !important;
  }
  .rp-service-slide,
  .rp-service-slide.is-adjacent,
  .rp-service-slide.is-active{
    flex-basis:90vw !important;
  }
  .rp-service-card{
    grid-template-rows:clamp(190px,29svh,260px) auto !important;
  }
  #main .rp-service-actions{
    display:grid !important;
    grid-template-columns:1fr !important;
    width:100% !important;
    max-width:none !important;
  }
  #main .rp-contact-button{
    width:100% !important;
    min-height:54px !important;
  }

  body.rp-page-contact .rp-contact-hero{
    min-height:100svh !important;
    align-items:start !important;
    padding:112px 0 34px !important;
  }
  body.rp-page-contact .rp-contact-hero__content{
    width:calc(100% - 32px) !important;
  }
  body.rp-page-contact .rp-contact-hero h1,
  body.rp-page-contact #rp-contact-title{
    max-width:15ch !important;
    font-size:clamp(36px,10.5vw,54px) !important;
    line-height:.97 !important;
  }
  body.rp-page-contact .rp-contact-hero__actions{
    display:grid !important;
    grid-template-columns:1fr !important;
    width:100% !important;
  }
  body.rp-page-contact .rp-contact-hero__button{
    width:100% !important;
    min-width:0 !important;
  }
  body.rp-page-contact .rp-contact-hero__details{
    grid-template-columns:1fr !important;
    gap:15px !important;
    margin-top:22px !important;
  }

  body.rp-page-process .rp-page-hero__content,
  body.rp-page-process .trust-strip > .container,
  body.rp-page-process main > .section > .container,
  body.rp-page-process .gallery-grid{
    width:calc(100% - 32px) !important;
  }
  body.rp-page-process .rp-page-hero{
    min-height:100svh !important;
    padding-top:112px !important;
    padding-bottom:48px !important;
  }
  body.rp-page-process .rp-page-hero h1{
    max-width:11ch !important;
    font-size:clamp(43px,12.8vw,66px) !important;
    line-height:.95 !important;
  }
  body.rp-page-process .trust-strip__grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  body.rp-page-process main > .section{
    padding-top:70px !important;
    padding-bottom:70px !important;
  }
  body.rp-page-process .section-heading h2{
    max-width:16ch !important;
    font-size:clamp(40px,11.5vw,58px) !important;
  }
  body.rp-page-process .timeline-list,
  body.rp-page-process .gallery-grid--detail{
    grid-template-columns:1fr !important;
  }
  body.rp-page-process .timeline-list article{
    min-height:0 !important;
    padding:26px 24px !important;
  }
  body.rp-page-process .gallery-grid--detail .gallery-item,
  body.rp-page-process .gallery-grid--detail .gallery-item:last-child{
    grid-column:auto !important;
    aspect-ratio:4/5 !important;
  }
  body.rp-page-process .cta-panel{
    grid-template-columns:1fr !important;
    padding:26px 22px !important;
    border-radius:24px !important;
  }
  body.rp-page-process .cta-media{
    height:260px !important;
  }
}

@media (max-width:390px){
  .container{width:calc(100% - 28px) !important;}
  body.rp-page-contact .rp-contact-hero{
    padding-top:106px !important;
    padding-bottom:26px !important;
  }
  body.rp-page-contact .rp-contact-hero h1,
  body.rp-page-contact #rp-contact-title{
    font-size:clamp(33px,10.2vw,43px) !important;
  }
  body.rp-page-contact .rp-contact-hero__content > p:not(.eyebrow){
    font-size:13.5px !important;
    line-height:1.46 !important;
  }
  body.rp-page-process .trust-strip__grid{
    grid-template-columns:1fr !important;
  }
}

@media (max-height:760px) and (min-width:761px){
  body.rp-page-contact .rp-contact-hero{
    padding-top:102px !important;
    padding-bottom:26px !important;
  }
  body.rp-page-contact .rp-contact-hero h1,
  body.rp-page-contact #rp-contact-title{
    max-width:19ch !important;
    font-size:clamp(42px,min(4.25vw,7.1vh),64px) !important;
  }
  body.rp-page-contact .rp-contact-hero__content > p:not(.eyebrow){margin-top:13px !important;}
  body.rp-page-contact .rp-contact-hero__actions{margin-top:17px !important;}
  body.rp-page-contact .rp-contact-hero__details{margin-top:20px !important;padding-top:15px !important;}
  .rp-service-card{grid-template-rows:clamp(205px,29svh,285px) auto !important;}
}

@media (prefers-reduced-motion:reduce){
  .site-header[data-header] .rp-header-statement,
  .rp-service-track,
  .rp-service-slide{
    transition:none !important;
  }
}

/* Highest-specificity foreground lock against legacy color declarations. */
html body :is(.btn,.rp-contact-button,.rp-contact-hero__button,.rp-services-all){
  -webkit-text-fill-color:currentColor !important;
}
html body :is(.btn-red,.btn--primary,.rp-contact-button--email,.rp-contact-hero__button--primary){
  color:var(--rp-master-white) !important;
  -webkit-text-fill-color:var(--rp-master-white) !important;
}
html body :is(.btn-red,.btn--primary,.rp-contact-button--email,.rp-contact-hero__button--primary) :is(span,small,strong,b,em,svg),
html body [data-rp-button-surface="dark"] :is(span,small,strong,b,em,svg),
html body [data-rp-button-surface="light"].rp-contact-button--call :is(span,small,strong,b,em,svg),
html body .rp-contact-hero__button--secondary :is(span,small,strong,b,em,svg){
  color:inherit !important;
  -webkit-text-fill-color:currentColor !important;
  opacity:1 !important;
}
html body [data-rp-button-surface="dark"].rp-contact-button--call,
html body [data-rp-button-surface="dark"].btn:not(.btn--primary):not(.btn-red),
html body .rp-contact-hero__button--secondary{
  color:var(--rp-master-white) !important;
  -webkit-text-fill-color:var(--rp-master-white) !important;
}
html body [data-rp-button-surface="light"].rp-contact-button--call{
  color:var(--rp-master-blue) !important;
  -webkit-text-fill-color:var(--rp-master-blue) !important;
}

/* Contact icon foreground: exact white, never inherited from legacy dark ink. */
html body .rp-contact-hero__button--primary :is(span,small,strong,b,em,svg),
html body .rp-contact-hero__button--secondary :is(span,small,strong,b,em,svg){
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  fill:#fff !important;
  stroke:#fff !important;
}

@media (max-width:760px){
  body.rp-page-contact .rp-contact-hero__actions{
    gap:9px !important;
    margin-top:17px !important;
  }
  body.rp-page-contact .rp-contact-hero__button{
    min-height:50px !important;
    padding-block:12px !important;
  }
  body.rp-page-contact .rp-contact-hero__details{
    gap:10px !important;
    margin-top:16px !important;
    padding-top:14px !important;
  }
}

/* ===== SOURCE: assets/css/realpro-ultimate-contrast-responsive-20260805.css ===== */
/* ========================================================================
   REALPRO STUDIOS — ULTIMATE CONTRAST, HERO & RESPONSIVE ALIGNMENT PATCH
   2026-08-05 · Loaded after every previous stylesheet
   Purpose: deterministic surface contrast, readable CTA panels, contact hero
   parity with the home hero, and no clipped page copy/actions at any viewport.
   ======================================================================== */
:root{
  --rp-u-navy:#07111f;
  --rp-u-navy-2:#0b1929;
  --rp-u-blue:#1a2b4c;
  --rp-u-ink:#14243a;
  --rp-u-muted:#526176;
  --rp-u-red:#d83232;
  --rp-u-red-hover:#b9252a;
  --rp-u-white:#ffffff;
  --rp-u-cream:#f7f4ee;
  --rp-u-soft:#f3f0ea;
  --rp-u-line-light:rgba(20,36,58,.18);
  --rp-u-line-dark:rgba(255,255,255,.48);
  --rp-u-container:1320px;
  --rp-u-radius:clamp(20px,1.65vw,30px);
  --rp-u-ease:cubic-bezier(.22,.76,.24,1);
}

/* ---------- Global geometry: content must grow instead of being cropped ---------- */
html,
body{
  width:100%;
  max-width:100%;
  overflow-x:clip !important;
}
html{scroll-padding-top:clamp(78px,7vw,108px);}
body main{
  width:100%;
  max-width:100%;
  overflow:visible !important;
}
body main > :is(section,article){
  position:relative;
  width:100%;
  max-width:100%;
  height:auto !important;
  max-height:none !important;
  min-width:0;
  overflow-x:clip !important;
  overflow-y:visible !important;
  isolation:isolate;
}
body .container{
  width:min(calc(100% - 64px),var(--rp-u-container)) !important;
  max-width:var(--rp-u-container) !important;
  margin-inline:auto !important;
}
body :is(.container,[class*="__content"],[class*="__copy"],[class*="__grid"],[class*="-grid"],.editorial-split,.section-heading,.button-row,.rp-service-actions){
  min-width:0;
  max-width:100%;
}
body :is(img,picture,video,iframe,svg){max-width:100%;}
body :is(h1,h2,h3,h4,h5,h6,p,li,a,strong,span,small){min-width:0;}
body :is(h1,h2,h3,h4,h5,h6){
  max-width:100%;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
  text-wrap:balance;
}
body :is(p,li,a){overflow-wrap:anywhere;}
body .reveal{
  visibility:visible !important;
}
html:not(.js) body .reveal{
  opacity:1 !important;
  transform:none !important;
}

/* ---------- Deterministic surfaces: explicit HTML semantics always win ---------- */
html body main > section[data-rp-surface="light"]{
  color:var(--rp-u-ink) !important;
  background:
    radial-gradient(circle at 86% 10%,rgba(26,43,76,.055),transparent 28%),
    linear-gradient(180deg,#fff 0%,var(--rp-u-soft) 100%) !important;
}
html body main > section[data-rp-surface="light"].section--soft{
  background:
    radial-gradient(circle at 8% 14%,rgba(216,50,50,.045),transparent 24%),
    linear-gradient(180deg,#f7f4ee 0%,#eee9e1 100%) !important;
}
html body main > section[data-rp-surface="light"] :is(h1,h2,h3,h4,h5,h6,strong){
  color:var(--rp-u-ink) !important;
  -webkit-text-fill-color:var(--rp-u-ink) !important;
  text-shadow:none !important;
}
html body main > section[data-rp-surface="light"] :is(p,li,.lead){
  color:var(--rp-u-muted) !important;
  -webkit-text-fill-color:var(--rp-u-muted) !important;
  text-shadow:none !important;
}
html body main > section[data-rp-surface="light"] :is(.eyebrow,.kicker,.card-kicker){
  color:#b52429 !important;
  -webkit-text-fill-color:#b52429 !important;
}
html body main > section[data-rp-surface="light"] a:not(.btn):not(.rp-contact-button):not(.rp-contact-hero__button){
  color:var(--rp-u-blue) !important;
  -webkit-text-fill-color:var(--rp-u-blue) !important;
}

html body main > section[data-rp-surface="dark"]{
  color:var(--rp-u-white) !important;
}
html body main > section[data-rp-surface="dark"]:not(.hero):not(.rp-page-hero):not(.rp-contact-hero):not(.section--cta):not(.services):not(.reel):not(.approach):not(.final-cta){
  background:
    radial-gradient(circle at 12% 12%,rgba(216,50,50,.14),transparent 29%),
    radial-gradient(circle at 88% 16%,rgba(54,85,122,.18),transparent 32%),
    linear-gradient(180deg,var(--rp-u-navy) 0%,var(--rp-u-navy-2) 100%) !important;
}
html body main > section[data-rp-surface="dark"] :is(h1,h2,h3,h4,h5,h6,strong){
  color:var(--rp-u-white) !important;
  -webkit-text-fill-color:var(--rp-u-white) !important;
}
html body main > section[data-rp-surface="dark"] :is(p,li,.lead){
  color:rgba(255,255,255,.82) !important;
  -webkit-text-fill-color:rgba(255,255,255,.82) !important;
}
html body main > section[data-rp-surface="dark"] :is(.eyebrow,.kicker,.card-kicker){
  color:#ff7070 !important;
  -webkit-text-fill-color:#ff7070 !important;
}
html body main > section[data-rp-surface="dark"] a:not(.btn):not(.rp-contact-button):not(.rp-contact-hero__button){
  color:var(--rp-u-white) !important;
  -webkit-text-fill-color:var(--rp-u-white) !important;
}

/* Captions and media overlays are dark nested surfaces even inside light bands. */
html body :is(.service-category__media figcaption,.image-frame figcaption,.gallery-item figcaption,.media-caption){
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
}

/* ---------- Light CTA card inside a dark cinematic end band ---------- */
html body main > section.section--cta{
  color:var(--rp-u-white) !important;
  background:
    radial-gradient(circle at 14% 0%,rgba(216,50,50,.22),transparent 31%),
    linear-gradient(135deg,var(--rp-u-navy),var(--rp-u-navy-2) 64%,#050b13) !important;
}
html body main > section.section--cta > .container.cta-panel,
html body main > section.section--cta .cta-panel{
  color:var(--rp-u-ink) !important;
  background:
    radial-gradient(circle at 8% 8%,rgba(255,255,255,.96),transparent 35%),
    linear-gradient(135deg,#fff 0%,#f8f4ed 60%,#eee7dc 100%) !important;
  border:1px solid rgba(255,255,255,.54) !important;
  border-radius:var(--rp-u-radius) !important;
  box-shadow:0 34px 100px rgba(0,0,0,.26),inset 0 1px 0 rgba(255,255,255,.92) !important;
  overflow:hidden !important;
}
html body main > section.section--cta .cta-panel :is(h1,h2,h3,h4,h5,h6,strong){
  color:var(--rp-u-ink) !important;
  -webkit-text-fill-color:var(--rp-u-ink) !important;
  text-shadow:none !important;
}
html body main > section.section--cta .cta-panel :is(p,li,.lead){
  color:var(--rp-u-muted) !important;
  -webkit-text-fill-color:var(--rp-u-muted) !important;
  text-shadow:none !important;
}
html body main > section.section--cta .cta-panel :is(.eyebrow,.kicker){
  color:#b52429 !important;
  -webkit-text-fill-color:#b52429 !important;
}
html body .cta-panel{
  display:grid !important;
  grid-template-columns:minmax(0,1.08fr) minmax(320px,.62fr) !important;
  align-items:center !important;
  gap:clamp(32px,5vw,76px) !important;
  padding:clamp(34px,4.6vw,68px) !important;
}
html body .cta-panel > div{min-width:0;}
html body .cta-panel h2{
  max-width:15ch !important;
  font-size:clamp(44px,4.6vw,78px) !important;
  line-height:.95 !important;
  letter-spacing:-.05em !important;
}
html body .cta-panel > div > p:not(.eyebrow){
  max-width:62ch !important;
  font-size:clamp(15px,1vw,18px) !important;
  line-height:1.65 !important;
}
html body .cta-media{
  width:100% !important;
  height:clamp(300px,31vw,500px) !important;
  min-height:0 !important;
  border-radius:clamp(18px,1.4vw,26px) !important;
  overflow:hidden !important;
}
html body .cta-media img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
}

/* ---------- Buttons: the foreground follows the actual button surface ---------- */
html body :is(.btn,.rp-contact-button,.rp-contact-hero__button,.rp-services-all){
  position:relative;
  isolation:isolate;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:10px !important;
  min-height:54px !important;
  max-width:100%;
  opacity:1 !important;
  visibility:visible !important;
  text-decoration:none !important;
  text-shadow:none !important;
  -webkit-text-fill-color:currentColor !important;
}
html body :is(.btn,.rp-contact-button,.rp-contact-hero__button,.rp-services-all) :is(span,small,strong,b,em,svg){
  color:inherit !important;
  -webkit-text-fill-color:currentColor !important;
  fill:currentColor !important;
  stroke:currentColor !important;
  opacity:1 !important;
}
html body :is(.btn-red,.btn--primary,.rp-contact-button--email,.rp-contact-hero__button--primary){
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  background:var(--rp-u-red) !important;
  border-color:var(--rp-u-red) !important;
  box-shadow:0 14px 34px rgba(216,50,50,.26) !important;
}
html body :is(.btn-red,.btn--primary,.rp-contact-button--email,.rp-contact-hero__button--primary):is(:hover,:focus-visible){
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  background:var(--rp-u-red-hover) !important;
  border-color:var(--rp-u-red-hover) !important;
}

html body [data-rp-button-surface="light"]:is(.btn,.rp-contact-button,.rp-contact-hero__button):not(.btn-red):not(.btn--primary):not(.rp-contact-button--email):not(.rp-contact-hero__button--primary),
html body main > section[data-rp-surface="light"] :is(.btn--secondary,.rp-contact-button--call),
html body .cta-panel :is(.btn--secondary,.rp-contact-button--call,.btn--light){
  color:var(--rp-u-blue) !important;
  -webkit-text-fill-color:var(--rp-u-blue) !important;
  background:#fff !important;
  border:1.5px solid rgba(26,43,76,.55) !important;
  box-shadow:0 12px 30px rgba(20,36,58,.10) !important;
  backdrop-filter:none !important;
}
html body [data-rp-button-surface="light"]:is(.btn,.rp-contact-button,.rp-contact-hero__button):not(.btn-red):not(.btn--primary):not(.rp-contact-button--email):not(.rp-contact-hero__button--primary):is(:hover,:focus-visible),
html body main > section[data-rp-surface="light"] :is(.btn--secondary,.rp-contact-button--call):is(:hover,:focus-visible),
html body .cta-panel :is(.btn--secondary,.rp-contact-button--call,.btn--light):is(:hover,:focus-visible){
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  background:var(--rp-u-blue) !important;
  border-color:var(--rp-u-blue) !important;
}

html body [data-rp-button-surface="dark"]:is(.btn,.rp-contact-button,.rp-contact-hero__button):not(.btn-red):not(.btn--primary):not(.rp-contact-button--email):not(.rp-contact-hero__button--primary),
html body main > section[data-rp-surface="dark"] :is(.btn--secondary,.rp-contact-button--call,.btn--light),
html body .rp-contact-hero__button--secondary{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  background:rgba(5,13,24,.54) !important;
  border:1.5px solid rgba(255,255,255,.76) !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.05),0 12px 30px rgba(0,0,0,.18) !important;
  backdrop-filter:blur(12px) !important;
}
html body [data-rp-button-surface="dark"]:is(.btn,.rp-contact-button,.rp-contact-hero__button):not(.btn-red):not(.btn--primary):not(.rp-contact-button--email):not(.rp-contact-hero__button--primary):is(:hover,:focus-visible),
html body main > section[data-rp-surface="dark"] :is(.btn--secondary,.rp-contact-button--call,.btn--light):is(:hover,:focus-visible),
html body .rp-contact-hero__button--secondary:is(:hover,:focus-visible){
  color:var(--rp-u-navy) !important;
  -webkit-text-fill-color:var(--rp-u-navy) !important;
  background:#fff !important;
  border-color:#fff !important;
}
html body .rp-contact-button--call span,
html body .rp-contact-button--call small{
  color:inherit !important;
  -webkit-text-fill-color:currentColor !important;
  opacity:1 !important;
}
html body .rp-contact-button--call small{
  font-size:clamp(9px,.72vw,11px) !important;
  font-weight:760 !important;
  line-height:1.1 !important;
  letter-spacing:.025em !important;
}
html body :is(.btn,.rp-contact-button,.rp-contact-hero__button):focus-visible{
  outline:3px solid var(--rp-u-red) !important;
  outline-offset:4px !important;
}

/* ---------- Inner-page heroes: same visual grammar, never clipped ---------- */
html body.rp-standardized-page .rp-page-hero,
html body .article-hero{
  min-height:min(100svh,940px) !important;
  height:auto !important;
  max-height:none !important;
  display:flex !important;
  align-items:center !important;
  padding:clamp(124px,14vh,172px) 0 clamp(58px,8vh,96px) !important;
  overflow:hidden !important;
  color:#fff !important;
  background-color:var(--rp-u-navy) !important;
}
html body.rp-standardized-page .rp-page-hero__content,
html body .article-hero__grid{
  position:relative !important;
  z-index:4 !important;
  width:min(calc(100% - 64px),var(--rp-u-container)) !important;
  max-width:var(--rp-u-container) !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  margin-inline:auto !important;
}
html body.rp-standardized-page .rp-page-hero__copy{
  width:min(100%,980px) !important;
  max-width:980px !important;
  min-height:0 !important;
  padding:0 !important;
  margin:0 !important;
}
html body.rp-standardized-page .rp-page-hero h1,
html body .article-hero h1{
  max-width:12ch !important;
  margin:0 !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  font-size:clamp(54px,min(6vw,10vh),104px) !important;
  line-height:.93 !important;
  letter-spacing:-.052em !important;
  text-shadow:0 18px 54px rgba(0,0,0,.46) !important;
}
html body.rp-standardized-page .rp-page-hero :is(.lead,p:not(.eyebrow)),
html body .article-hero :is(.lead,p:not(.eyebrow)){
  max-width:700px !important;
  color:rgba(255,255,255,.86) !important;
  -webkit-text-fill-color:rgba(255,255,255,.86) !important;
  font-size:clamp(16px,1.12vw,20px) !important;
  line-height:1.62 !important;
}
html body.rp-standardized-page .rp-page-hero .button-row,
html body .article-hero .button-row{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:12px !important;
  margin-top:clamp(22px,3vh,34px) !important;
}

/* ---------- Contact hero: home-hero scale, framing and readability ---------- */
html body.rp-page-contact main{background:var(--rp-u-navy) !important;}
html body.rp-page-contact .rp-contact-hero{
  min-height:100svh !important;
  height:auto !important;
  max-height:none !important;
  display:flex !important;
  align-items:center !important;
  padding:clamp(126px,14vh,170px) 0 clamp(50px,7vh,84px) !important;
  overflow:hidden !important;
  background-color:var(--rp-u-navy) !important;
}
html body.rp-page-contact .rp-contact-hero__media,
html body.rp-page-contact .rp-contact-hero__shade{
  position:absolute !important;
  inset:0 !important;
}
html body.rp-page-contact .rp-contact-hero__media img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center !important;
  filter:brightness(.86) contrast(1.05) saturate(.96) !important;
}
html body.rp-page-contact .rp-contact-hero__shade{
  z-index:1 !important;
  background:
    radial-gradient(circle at 16% 74%,rgba(216,50,50,.18),transparent 28%),
    linear-gradient(90deg,rgba(5,13,24,.985) 0%,rgba(5,13,24,.93) 42%,rgba(5,13,24,.54) 72%,rgba(5,13,24,.28) 100%),
    linear-gradient(180deg,rgba(0,0,0,.46),rgba(0,0,0,.06) 42%,rgba(0,0,0,.64)) !important;
}
html body.rp-page-contact .rp-contact-hero__content{
  position:relative !important;
  z-index:3 !important;
  width:min(calc(100% - 64px),var(--rp-u-container)) !important;
  max-width:var(--rp-u-container) !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  margin-inline:auto !important;
}
html body.rp-page-contact .rp-contact-hero .eyebrow{
  margin:0 0 clamp(14px,1.8vh,22px) !important;
  color:#ff7070 !important;
  -webkit-text-fill-color:#ff7070 !important;
}
html body.rp-page-contact .rp-contact-hero h1,
html body.rp-page-contact #rp-contact-title{
  max-width:17ch !important;
  margin:0 !important;
  color:var(--rp-u-cream) !important;
  -webkit-text-fill-color:var(--rp-u-cream) !important;
  font-size:clamp(52px,min(5.7vw,9.2vh),96px) !important;
  font-weight:760 !important;
  line-height:.94 !important;
  letter-spacing:-.055em !important;
  text-transform:uppercase !important;
  text-shadow:0 18px 54px rgba(0,0,0,.48) !important;
}
html body.rp-page-contact .rp-contact-hero__content > p:not(.eyebrow){
  max-width:760px !important;
  margin:clamp(18px,2.5vh,30px) 0 0 !important;
  color:rgba(255,255,255,.86) !important;
  -webkit-text-fill-color:rgba(255,255,255,.86) !important;
  font-size:clamp(16px,1.15vw,20px) !important;
  line-height:1.62 !important;
}
html body.rp-page-contact .rp-contact-hero__actions{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:12px !important;
  margin-top:clamp(22px,3vh,34px) !important;
}
html body.rp-page-contact .rp-contact-hero__button{
  min-width:205px !important;
  min-height:56px !important;
  padding:14px 28px !important;
}
html body.rp-page-contact .rp-contact-hero__details{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:clamp(26px,5vw,78px) !important;
  max-width:930px !important;
  margin-top:clamp(30px,4.2vh,48px) !important;
  padding-top:clamp(20px,2.7vh,30px) !important;
  border-top:1px solid rgba(255,255,255,.34) !important;
}
html body.rp-page-contact .rp-contact-hero__details :is(a,strong){
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
}
html body.rp-page-contact .rp-contact-hero__details span{
  color:rgba(255,255,255,.68) !important;
  -webkit-text-fill-color:rgba(255,255,255,.68) !important;
}

/* ---------- Consistent alignment and title density across content pages ---------- */
html body.rp-standardized-page main > section:not(.rp-page-hero):not(.rp-contact-hero):not(.trust-strip){
  padding-top:clamp(76px,7.5vw,124px) !important;
  padding-bottom:clamp(76px,7.5vw,124px) !important;
}
html body.rp-standardized-page :is(.editorial-split,.section-heading--split){
  display:grid !important;
  grid-template-columns:minmax(0,1.04fr) minmax(320px,.82fr) !important;
  align-items:center !important;
  gap:clamp(38px,5.5vw,84px) !important;
}
html body.rp-standardized-page .section-heading--split{align-items:end !important;}
html body.rp-standardized-page :is(.section-heading,.editorial-copy,.service-category__copy) > h2,
html body.rp-standardized-page .process-timeline .section-heading > h2{
  max-width:17ch !important;
  font-size:clamp(44px,4.8vw,82px) !important;
  line-height:.95 !important;
  letter-spacing:-.052em !important;
}
html body.rp-standardized-page :is(.section-heading,.editorial-copy,.service-category__copy) > p:not(.eyebrow){
  max-width:64ch !important;
  font-size:clamp(15px,1.03vw,18px) !important;
  line-height:1.68 !important;
}
html body.rp-standardized-page .image-frame{
  min-height:0 !important;
  overflow:hidden !important;
  border-radius:var(--rp-u-radius) !important;
}
html body.rp-standardized-page .image-frame img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
}
html body.rp-standardized-page .rp-service-actions{
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:stretch !important;
  gap:12px !important;
  margin-top:clamp(24px,3vw,38px) !important;
}
html body.rp-standardized-page .rp-service-actions .rp-contact-button{
  flex:1 1 210px !important;
  min-width:0 !important;
}

/* Process page: clean grid and readable light Behind the Process section. */
html body.rp-page-process .section-heading--split{
  grid-template-columns:minmax(0,1.05fr) minmax(300px,.62fr) !important;
  align-items:end !important;
}
html body.rp-page-process .timeline-list{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:clamp(18px,2vw,28px) !important;
}
html body.rp-page-process .timeline-list article{
  min-height:260px !important;
  padding:clamp(25px,2.4vw,36px) !important;
  color:var(--rp-u-ink) !important;
  background:#fff !important;
  border:1px solid rgba(20,36,58,.12) !important;
  border-radius:var(--rp-u-radius) !important;
  box-shadow:0 18px 54px rgba(7,17,31,.08) !important;
}
html body.rp-page-process .timeline-list article h3{
  color:var(--rp-u-ink) !important;
  -webkit-text-fill-color:var(--rp-u-ink) !important;
}
html body.rp-page-process .timeline-list article p{
  color:var(--rp-u-muted) !important;
  -webkit-text-fill-color:var(--rp-u-muted) !important;
}
html body.rp-page-process .gallery-grid--detail{
  width:min(calc(100% - 64px),var(--rp-u-container)) !important;
  max-width:var(--rp-u-container) !important;
  margin-inline:auto !important;
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:clamp(18px,2vw,28px) !important;
}
html body.rp-page-process .gallery-grid--detail .gallery-item{
  aspect-ratio:4/5 !important;
  min-height:0 !important;
  overflow:hidden !important;
  border-radius:var(--rp-u-radius) !important;
}
html body.rp-page-process .gallery-grid--detail img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
}

/* ---------- Responsive and low-height safeguards ---------- */
@media (max-width:1100px){
  html body .container,
  html body.rp-standardized-page .rp-page-hero__content,
  html body .article-hero__grid,
  html body.rp-page-contact .rp-contact-hero__content,
  html body.rp-page-process .gallery-grid--detail{
    width:calc(100% - 48px) !important;
  }
  html body.rp-standardized-page :is(.editorial-split,.section-heading--split),
  html body.rp-page-process .section-heading--split{
    grid-template-columns:1fr !important;
    align-items:start !important;
    gap:26px !important;
  }
  html body .cta-panel{
    grid-template-columns:minmax(0,1fr) minmax(280px,.72fr) !important;
    gap:34px !important;
  }
  html body.rp-page-process .timeline-list{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  html body.rp-page-process .gallery-grid--detail{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  html body.rp-page-process .gallery-grid--detail .gallery-item:last-child{
    grid-column:1/-1 !important;
    aspect-ratio:16/8 !important;
  }
}

@media (max-width:760px){
  html{scroll-padding-top:104px;}
  html body .container,
  html body.rp-standardized-page .rp-page-hero__content,
  html body .article-hero__grid,
  html body.rp-page-contact .rp-contact-hero__content,
  html body.rp-page-process .gallery-grid--detail{
    width:calc(100% - 32px) !important;
  }
  html body.rp-standardized-page .rp-page-hero,
  html body .article-hero{
    min-height:100svh !important;
    align-items:flex-end !important;
    padding:118px 0 48px !important;
  }
  html body.rp-standardized-page .rp-page-hero h1,
  html body .article-hero h1{
    max-width:11.5ch !important;
    font-size:clamp(42px,12.2vw,64px) !important;
    line-height:.95 !important;
  }
  html body.rp-standardized-page .rp-page-hero :is(.lead,p:not(.eyebrow)),
  html body .article-hero :is(.lead,p:not(.eyebrow)){
    font-size:14px !important;
    line-height:1.52 !important;
  }
  html body.rp-standardized-page .rp-page-hero .button-row,
  html body .article-hero .button-row{
    display:grid !important;
    grid-template-columns:1fr !important;
    width:100% !important;
  }
  html body.rp-standardized-page .rp-page-hero .button-row .btn,
  html body .article-hero .button-row .btn{
    width:100% !important;
  }

  html body.rp-page-contact .rp-contact-hero{
    min-height:100svh !important;
    align-items:flex-end !important;
    padding:118px 0 34px !important;
  }
  html body.rp-page-contact .rp-contact-hero h1,
  html body.rp-page-contact #rp-contact-title{
    max-width:14ch !important;
    font-size:clamp(38px,10.8vw,56px) !important;
    line-height:.96 !important;
  }
  html body.rp-page-contact .rp-contact-hero__content > p:not(.eyebrow){
    margin-top:15px !important;
    font-size:14px !important;
    line-height:1.5 !important;
  }
  html body.rp-page-contact .rp-contact-hero__actions{
    display:grid !important;
    grid-template-columns:1fr !important;
    width:100% !important;
    gap:10px !important;
    margin-top:18px !important;
  }
  html body.rp-page-contact .rp-contact-hero__button{
    width:100% !important;
    min-width:0 !important;
    min-height:51px !important;
  }
  html body.rp-page-contact .rp-contact-hero__details{
    grid-template-columns:1fr !important;
    gap:12px !important;
    margin-top:18px !important;
    padding-top:15px !important;
  }
  html body.rp-standardized-page main > section:not(.rp-page-hero):not(.rp-contact-hero):not(.trust-strip){
    padding-top:68px !important;
    padding-bottom:68px !important;
  }
  html body.rp-standardized-page :is(.section-heading,.editorial-copy,.service-category__copy) > h2,
  html body.rp-standardized-page .process-timeline .section-heading > h2{
    max-width:15ch !important;
    font-size:clamp(38px,11vw,58px) !important;
    line-height:.96 !important;
  }
  html body .cta-panel{
    grid-template-columns:1fr !important;
    gap:28px !important;
    padding:26px 22px !important;
    border-radius:24px !important;
  }
  html body .cta-panel h2{
    max-width:14ch !important;
    font-size:clamp(38px,10.5vw,56px) !important;
  }
  html body .cta-media{height:260px !important;}
  html body.rp-standardized-page .rp-service-actions{
    display:grid !important;
    grid-template-columns:1fr !important;
    width:100% !important;
  }
  html body.rp-standardized-page .rp-service-actions .rp-contact-button{width:100% !important;}
  html body.rp-page-process .timeline-list,
  html body.rp-page-process .gallery-grid--detail{grid-template-columns:1fr !important;}
  html body.rp-page-process .timeline-list article{min-height:0 !important;}
  html body.rp-page-process .gallery-grid--detail .gallery-item,
  html body.rp-page-process .gallery-grid--detail .gallery-item:last-child{
    grid-column:auto !important;
    aspect-ratio:4/5 !important;
  }
}

@media (max-width:390px){
  html body .container,
  html body.rp-standardized-page .rp-page-hero__content,
  html body .article-hero__grid,
  html body.rp-page-contact .rp-contact-hero__content,
  html body.rp-page-process .gallery-grid--detail{
    width:calc(100% - 28px) !important;
  }
  html body.rp-page-contact .rp-contact-hero{padding-top:108px !important;padding-bottom:26px !important;}
  html body.rp-page-contact .rp-contact-hero h1,
  html body.rp-page-contact #rp-contact-title{font-size:clamp(34px,10.2vw,46px) !important;}
}

@media (max-height:780px) and (min-width:761px){
  html body.rp-standardized-page .rp-page-hero,
  html body .article-hero{
    min-height:auto !important;
    padding-top:112px !important;
    padding-bottom:54px !important;
  }
  html body.rp-standardized-page .rp-page-hero h1,
  html body .article-hero h1{
    font-size:clamp(44px,min(5vw,8vh),76px) !important;
  }
  html body.rp-page-contact .rp-contact-hero{
    min-height:auto !important;
    padding-top:106px !important;
    padding-bottom:30px !important;
  }
  html body.rp-page-contact .rp-contact-hero h1,
  html body.rp-page-contact #rp-contact-title{
    max-width:18ch !important;
    font-size:clamp(42px,min(4.65vw,7.6vh),68px) !important;
  }
  html body.rp-page-contact .rp-contact-hero__content > p:not(.eyebrow){margin-top:13px !important;line-height:1.48 !important;}
  html body.rp-page-contact .rp-contact-hero__actions{margin-top:17px !important;}
  html body.rp-page-contact .rp-contact-hero__details{margin-top:20px !important;padding-top:15px !important;}
}

@media (prefers-reduced-motion:reduce){
  html body *,
  html body *::before,
  html body *::after{
    scroll-behavior:auto !important;
    transition-duration:.01ms !important;
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
  }
}

/* Prevent a low-contrast color interpolation flash while the final surface
   hooks are resolved. Motion remains on transform and shadow only. */
html body :is(.btn,.rp-contact-button,.rp-contact-hero__button,.rp-services-all){
  transition:transform .24s var(--rp-u-ease),box-shadow .24s ease,border-color .24s ease !important;
}

/* Absolute primary-action foreground lock against high-specificity legacy
   nth-of-type and contact-page declarations. */
html body main a.btn.btn--primary,
html body main a.btn.btn-red,
html body main a.rp-contact-button.rp-contact-button--email,
html body main a.rp-contact-hero__button.rp-contact-hero__button--primary,
html body main button.btn.btn--primary,
html body main button.btn.btn-red{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  background-color:var(--rp-u-red) !important;
  border-color:var(--rp-u-red) !important;
}
html body main :is(a.btn.btn--primary,a.btn.btn-red,a.rp-contact-button.rp-contact-button--email,a.rp-contact-hero__button.rp-contact-hero__button--primary,button.btn.btn--primary,button.btn.btn-red) :is(span,small,strong,b,em,svg){
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  fill:#fff !important;
  stroke:#fff !important;
}

/* ID-level surface lock: legacy nth-of-type selectors carry unusually high
   specificity. The explicit data-rp-surface value is the final source of truth. */
html body main#main > section[data-rp-surface="light"],
html body main#main > article[data-rp-surface="light"]{
  color:var(--rp-u-ink) !important;
  background-color:#f7f4ee !important;
  background-image:
    radial-gradient(circle at 86% 10%,rgba(26,43,76,.055),transparent 28%),
    linear-gradient(180deg,#fff 0%,var(--rp-u-soft) 100%) !important;
}
html body main#main > section.section--soft[data-rp-surface="light"]{
  background-color:#eee9e1 !important;
  background-image:
    radial-gradient(circle at 8% 14%,rgba(216,50,50,.045),transparent 24%),
    linear-gradient(180deg,#f7f4ee 0%,#eee9e1 100%) !important;
}
html body main#main > :is(section,article)[data-rp-surface="light"] :is(h1,h2,h3,h4,h5,h6,strong){
  color:var(--rp-u-ink) !important;
  -webkit-text-fill-color:var(--rp-u-ink) !important;
  text-shadow:none !important;
}
html body main#main > :is(section,article)[data-rp-surface="light"] :is(p,li,.lead,span:not(.eyebrow):not(.card-kicker)){
  color:var(--rp-u-muted) !important;
  -webkit-text-fill-color:var(--rp-u-muted) !important;
  text-shadow:none !important;
}
html body main#main > :is(section,article)[data-rp-surface="light"] :is(.eyebrow,.kicker,.card-kicker){
  color:#b52429 !important;
  -webkit-text-fill-color:#b52429 !important;
}
html body main#main > :is(section,article)[data-rp-surface="light"] a:not(.btn):not(.rp-contact-button):not(.rp-contact-hero__button){
  color:var(--rp-u-blue) !important;
  -webkit-text-fill-color:var(--rp-u-blue) !important;
}
/* Nested media captions remain white on their dark overlays. */
html body main#main > :is(section,article)[data-rp-surface="light"] :is(.service-category__media figcaption,.image-frame figcaption,.gallery-item figcaption,.media-caption){
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
}
/* Button foregrounds are controlled by button-surface rules, never by the
   surrounding light-section text rule. */
html body main#main > :is(section,article)[data-rp-surface="light"] :is(.btn,.rp-contact-button,.rp-contact-hero__button) :is(span,small,strong,b,em,svg){
  color:inherit !important;
  -webkit-text-fill-color:currentColor !important;
}

/* Compact-screen viewport accounting: internal heroes begin below the fixed
   header, so their minimum height subtracts that occupied header area. */
@media (max-width:760px){
  html body.rp-standardized-page main#main > section.rp-page-hero,
  html body .article-hero{
    min-height:calc(100svh - 92px) !important;
    padding-top:88px !important;
    padding-bottom:34px !important;
  }
  html body.rp-page-contact main#main > section.rp-contact-hero{
    min-height:calc(100svh - 92px) !important;
    padding:24px 0 20px !important;
    align-items:center !important;
  }
  html body .site-header[data-header] .rp-header-statement{
    min-height:36px !important;
    padding:7px 12px !important;
    font-size:clamp(7.6px,2.18vw,9px) !important;
    line-height:1.2 !important;
    letter-spacing:.035em !important;
  }
  html body .site-header[data-header] .rp-header-statement strong{
    margin-inline:.24em !important;
  }
  html body .site-header[data-header] .rp-header-statement em{
    margin-left:.24em !important;
  }
}

@media (max-width:760px) and (max-height:760px){
  html body.rp-page-contact main#main > section.rp-contact-hero{
    min-height:calc(100svh - 92px) !important;
    padding:18px 0 16px !important;
  }
  html body.rp-page-contact .rp-contact-hero .eyebrow{margin-bottom:9px !important;}
  html body.rp-page-contact .rp-contact-hero h1,
  html body.rp-page-contact #rp-contact-title{
    max-width:15ch !important;
    font-size:clamp(32px,9.3vw,40px) !important;
    line-height:.94 !important;
  }
  html body.rp-page-contact .rp-contact-hero__content > p:not(.eyebrow){
    margin-top:10px !important;
    font-size:13px !important;
    line-height:1.42 !important;
  }
  html body.rp-page-contact .rp-contact-hero__actions{
    gap:8px !important;
    margin-top:12px !important;
  }
  html body.rp-page-contact .rp-contact-hero__button{
    min-height:46px !important;
    padding:10px 18px !important;
  }
  html body.rp-page-contact .rp-contact-hero__details{
    gap:9px !important;
    margin-top:12px !important;
    padding-top:11px !important;
  }
  html body.rp-page-contact .rp-contact-hero__details :is(a,strong){font-size:13px !important;}
}

/* ========================================================================
   COMPACT VIEWPORT HERO FIT — 320–390px / short mobile screens
   Keeps the complete title, supporting copy and primary actions inside the
   first visible viewport without clipping or forcing unreadably small type.
   ======================================================================== */
@media (max-width:390px) and (max-height:700px){
  /* Standard inner-page cinematic heroes */
  html body.rp-standardized-page main#main > section.rp-page-hero{
    min-height:calc(100svh - 92px) !important;
    padding:50px 0 14px !important;
    align-items:flex-end !important;
  }
  html body.rp-standardized-page main#main > section.rp-page-hero .rp-page-hero__content{
    width:calc(100% - 26px) !important;
    min-height:0 !important;
    padding:18px 16px 14px !important;
    margin-inline:auto !important;
  }
  html body.rp-standardized-page main#main > section.rp-page-hero .rp-page-hero__copy{
    min-height:0 !important;
    gap:0 !important;
  }
  html body.rp-standardized-page main#main > section.rp-page-hero .eyebrow{
    margin:0 0 12px !important;
    font-size:10px !important;
    line-height:1.2 !important;
    letter-spacing:.18em !important;
  }
  html body.rp-standardized-page main#main > section.rp-page-hero h1{
    max-width:13ch !important;
    margin:0 !important;
    font-size:clamp(33px,10.7vw,38px) !important;
    line-height:.94 !important;
    letter-spacing:-.045em !important;
  }
  html body.rp-standardized-page main#main > section.rp-page-hero .lead{
    max-width:38ch !important;
    margin:12px 0 0 !important;
    font-size:12.75px !important;
    line-height:1.43 !important;
  }
  html body.rp-standardized-page main#main > section.rp-page-hero .button-row{
    width:100% !important;
    gap:8px !important;
    margin-top:14px !important;
  }
  html body.rp-standardized-page main#main > section.rp-page-hero .button-row .btn{
    width:100% !important;
    min-height:44px !important;
    padding:10px 16px !important;
    font-size:12.5px !important;
  }

  /* Legacy/support-page heroes use .hero + .hero-grid. Normalize them to the
     same compact editorial system instead of retaining oversized old padding. */
  html body.rp-standardized-page:not(.home-model-page) main#main > section.hero{
    min-height:calc(100svh - 92px) !important;
    padding:14px 0 12px !important;
    display:flex !important;
    align-items:flex-end !important;
  }
  html body.rp-standardized-page:not(.home-model-page) main#main > section.hero > .container.hero-grid,
  html body.rp-standardized-page:not(.home-model-page) main#main > section.hero .hero-grid{
    width:calc(100% - 26px) !important;
    min-height:calc(100svh - 118px) !important;
    height:auto !important;
    padding:20px 0 10px !important;
    margin-inline:auto !important;
    display:flex !important;
    align-items:flex-end !important;
  }
  html body.rp-standardized-page:not(.home-model-page) main#main > section.hero .hero-copy{
    width:100% !important;
    max-width:100% !important;
    min-height:0 !important;
    padding:18px 0 0 !important;
    margin:0 !important;
  }
  html body.rp-standardized-page:not(.home-model-page) main#main > section.hero .eyebrow{
    margin:0 0 11px !important;
    font-size:9.5px !important;
    line-height:1.2 !important;
    letter-spacing:.17em !important;
  }
  html body.rp-standardized-page:not(.home-model-page) main#main > section.hero h1{
    max-width:13ch !important;
    margin:0 !important;
    font-size:clamp(31px,10.2vw,36px) !important;
    line-height:.94 !important;
    letter-spacing:-.045em !important;
  }
  html body.rp-standardized-page:not(.home-model-page) main#main > section.hero .lead{
    max-width:38ch !important;
    margin:12px 0 0 !important;
    font-size:12.5px !important;
    line-height:1.4 !important;
  }
  html body.rp-standardized-page:not(.home-model-page) main#main > section.hero .button-row{
    width:100% !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:7px !important;
    margin-top:13px !important;
  }
  html body.rp-standardized-page:not(.home-model-page) main#main > section.hero .button-row .btn{
    width:100% !important;
    min-height:43px !important;
    padding:9px 15px !important;
    font-size:12.25px !important;
  }

  /* Contact is the home-style cinematic hero, but its contact details also
     belong in the first viewport on short phones. */
  html body.rp-page-contact main#main > section.rp-contact-hero{
    min-height:calc(100svh - 92px) !important;
    padding:12px 0 10px !important;
  }
  html body.rp-page-contact .rp-contact-hero__content{
    width:calc(100% - 26px) !important;
  }
  html body.rp-page-contact .rp-contact-hero .eyebrow{margin-bottom:7px !important;}
  html body.rp-page-contact .rp-contact-hero h1,
  html body.rp-page-contact #rp-contact-title{
    max-width:15ch !important;
    font-size:clamp(29px,8.9vw,34px) !important;
    line-height:.93 !important;
  }
  html body.rp-page-contact .rp-contact-hero__content > p:not(.eyebrow){
    margin-top:8px !important;
    font-size:12px !important;
    line-height:1.38 !important;
  }
  html body.rp-page-contact .rp-contact-hero__actions{
    gap:7px !important;
    margin-top:10px !important;
  }
  html body.rp-page-contact .rp-contact-hero__button{
    min-height:42px !important;
    padding:8px 14px !important;
    font-size:11.75px !important;
  }
  html body.rp-page-contact .rp-contact-hero__details{
    gap:7px !important;
    margin-top:10px !important;
    padding-top:9px !important;
  }
  html body.rp-page-contact .rp-contact-hero__details :is(a,strong){font-size:12px !important;}
  html body.rp-page-contact .rp-contact-hero__details :is(span,small){font-size:9px !important;}
}

/* Short notebooks: long support-page hero headlines must never push their
   subtitle or actions below the fold. The home and contact heroes keep their
   dedicated cinematic scales. */
@media (min-width:761px) and (max-height:800px){
  html body.rp-standardized-page:not(.home-model-page):not(.rp-page-contact) main#main > section.hero{
    min-height:100svh !important;
    padding:82px 0 28px !important;
    align-items:center !important;
  }
  html body.rp-standardized-page:not(.home-model-page):not(.rp-page-contact) main#main > section.hero > .container.hero-grid,
  html body.rp-standardized-page:not(.home-model-page):not(.rp-page-contact) main#main > section.hero .hero-grid{
    min-height:calc(100svh - 110px) !important;
    height:auto !important;
    padding:24px 0 22px !important;
    align-items:center !important;
  }
  html body.rp-standardized-page:not(.home-model-page):not(.rp-page-contact) main#main > section.hero .hero-copy{
    max-width:min(650px,52vw) !important;
  }
  html body.rp-standardized-page:not(.home-model-page):not(.rp-page-contact) main#main > section.hero h1{
    max-width:13ch !important;
    margin-bottom:18px !important;
    font-size:clamp(50px,7.7vh,64px) !important;
    line-height:.94 !important;
    letter-spacing:-.045em !important;
  }
  html body.rp-standardized-page:not(.home-model-page):not(.rp-page-contact) main#main > section.hero .lead{
    margin-bottom:22px !important;
    font-size:15.5px !important;
    line-height:1.5 !important;
  }
  html body.rp-standardized-page:not(.home-model-page):not(.rp-page-contact) main#main > section.hero .button-row{
    margin-top:16px !important;
  }
  html body.rp-standardized-page:not(.home-model-page):not(.rp-page-contact) main#main > section.hero .button-row .btn{
    min-height:50px !important;
    padding:12px 22px !important;
  }
}

/* ===== SOURCE: assets/css/realpro-contrast-hero-system-final-20260805.css ===== */
/* ========================================================================
   REALPRO STUDIOS — DEFINITIVE CONTRAST + HERO + ALIGNMENT SYSTEM
   2026-08-05 · v20260805-6 · must be loaded last
   ======================================================================== */
:root{
  --rp-final-navy:#071321;
  --rp-final-navy-2:#0b1a2b;
  --rp-final-blue:#1a2b4c;
  --rp-final-ink:#14243a;
  --rp-final-copy:#526176;
  --rp-final-copy-dark:#d6dee8;
  --rp-final-red:#d83232;
  --rp-final-red-dark:#b8242a;
  --rp-final-white:#ffffff;
  --rp-final-cream:#f7f4ee;
  --rp-final-soft:#eee9e1;
  --rp-final-container:1320px;
  --rp-final-gutter:clamp(20px,4vw,64px);
  --rp-final-section-space:clamp(76px,8vw,132px);
  --rp-final-radius:clamp(20px,1.7vw,32px);
  --rp-final-ease:cubic-bezier(.22,.76,.24,1);
}

/* ---------- Geometry and permanent visibility ---------- */
html,body{
  width:100%;
  max-width:100%;
  overflow-x:clip !important;
}
html{scroll-padding-top:clamp(78px,8vw,112px);}
body main#main{
  width:100%;
  max-width:100%;
  overflow:visible !important;
}
body main#main > :is(section,article){
  width:100%;
  max-width:100%;
  min-width:0;
  height:auto !important;
  max-height:none !important;
  overflow-x:clip !important;
  overflow-y:visible !important;
}
body main#main > :is(.hero,.rp-page-hero,.rp-contact-hero,.reel,.final-cta){
  overflow:hidden !important;
}
body .container{
  width:min(calc(100% - (var(--rp-final-gutter) * 2)),var(--rp-final-container)) !important;
  max-width:var(--rp-final-container) !important;
  margin-inline:auto !important;
}
body main#main :is(.reveal,.rp-visibility-guard){
  visibility:visible !important;
}
html.rp-final-ui-ready body main#main :is(.reveal,.rp-visibility-guard){
  opacity:1 !important;
}
body main#main :is(h1,h2,h3,h4,h5,h6,p,li,a,strong,span,small){
  min-width:0;
  max-width:100%;
}
body main#main :is(h1,h2,h3,h4,h5,h6){
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
  text-wrap:balance;
}
body main#main :is(p,li,a,strong,span,small){overflow-wrap:anywhere;}
body main#main :is(img,picture,video,iframe,svg){max-width:100%;}

/* ---------- Explicit surfaces are the final source of truth ---------- */
html body main#main > :is(section,article)[data-rp-surface="light"]{
  color:var(--rp-final-ink) !important;
  background-color:var(--rp-final-cream) !important;
  background-image:
    radial-gradient(circle at 88% 8%,rgba(26,43,76,.055),transparent 29%),
    linear-gradient(180deg,#fff 0%,var(--rp-final-cream) 100%) !important;
}
html body main#main > :is(section,article).section--soft[data-rp-surface="light"]{
  background-color:var(--rp-final-soft) !important;
  background-image:
    radial-gradient(circle at 8% 10%,rgba(216,50,50,.045),transparent 24%),
    linear-gradient(180deg,#f7f4ee 0%,var(--rp-final-soft) 100%) !important;
}
html body main#main > :is(section,article)[data-rp-surface="light"] :is(h1,h2,h3,h4,h5,h6,strong){
  color:var(--rp-final-ink) !important;
  -webkit-text-fill-color:var(--rp-final-ink) !important;
  text-shadow:none !important;
  background-image:none !important;
}
html body main#main > :is(section,article)[data-rp-surface="light"] :is(p,li,.lead){
  color:var(--rp-final-copy) !important;
  -webkit-text-fill-color:var(--rp-final-copy) !important;
  text-shadow:none !important;
}
html body main#main > :is(section,article)[data-rp-surface="light"] :is(.eyebrow,.kicker,.card-kicker){
  color:#b52429 !important;
  -webkit-text-fill-color:#b52429 !important;
}
html body main#main > :is(section,article)[data-rp-surface="light"] a:not(.btn):not(.rp-contact-button):not(.rp-contact-hero__button){
  color:var(--rp-final-blue) !important;
  -webkit-text-fill-color:var(--rp-final-blue) !important;
}

html body main#main > :is(section,article)[data-rp-surface="dark"]{
  color:var(--rp-final-white) !important;
}
html body main#main > :is(section,article)[data-rp-surface="dark"]:not(.hero):not(.rp-page-hero):not(.rp-contact-hero):not(.reel):not(.approach):not(.services):not(.final-cta):not(.section--cta){
  background-color:var(--rp-final-navy) !important;
  background-image:
    radial-gradient(circle at 10% 12%,rgba(216,50,50,.13),transparent 28%),
    radial-gradient(circle at 88% 10%,rgba(63,95,132,.17),transparent 32%),
    linear-gradient(180deg,var(--rp-final-navy) 0%,var(--rp-final-navy-2) 100%) !important;
}
html body main#main > :is(section,article)[data-rp-surface="dark"] :is(h1,h2,h3,h4,h5,h6,strong){
  color:var(--rp-final-white) !important;
  -webkit-text-fill-color:var(--rp-final-white) !important;
  background-image:none !important;
  text-shadow:0 8px 28px rgba(0,0,0,.26) !important;
}
html body main#main > :is(section,article)[data-rp-surface="dark"] :is(p,li,.lead){
  color:var(--rp-final-copy-dark) !important;
  -webkit-text-fill-color:var(--rp-final-copy-dark) !important;
}
html body main#main > :is(section,article)[data-rp-surface="dark"] :is(.eyebrow,.kicker,.card-kicker){
  color:#ff7070 !important;
  -webkit-text-fill-color:#ff7070 !important;
}
html body main#main > :is(section,article)[data-rp-surface="dark"] a:not(.btn):not(.rp-contact-button):not(.rp-contact-hero__button){
  color:var(--rp-final-white) !important;
  -webkit-text-fill-color:var(--rp-final-white) !important;
}

/* Nested media captions stay light regardless of the parent section. */
html body main#main :is(.service-category__media figcaption,.image-frame figcaption,.gallery-item figcaption,.media-caption){
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
}

/* ---------- Button contrast: button surface, not section assumptions ---------- */
html body main#main :is(.btn,.rp-contact-button,.rp-contact-hero__button,.rp-services-all){
  position:relative;
  isolation:isolate;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:10px !important;
  min-height:54px !important;
  max-width:100%;
  padding:14px 24px !important;
  border:1.5px solid transparent !important;
  border-radius:999px !important;
  font-weight:800 !important;
  line-height:1.1 !important;
  letter-spacing:.025em !important;
  text-align:center !important;
  text-decoration:none !important;
  opacity:1 !important;
  visibility:visible !important;
  text-shadow:none !important;
  -webkit-text-fill-color:currentColor !important;
  transition:transform .24s var(--rp-final-ease),background-color .24s ease,color .24s ease,border-color .24s ease,box-shadow .24s ease !important;
}
html body main#main :is(.btn,.rp-contact-button,.rp-contact-hero__button,.rp-services-all) :is(span,small,strong,b,em,svg){
  color:inherit !important;
  -webkit-text-fill-color:currentColor !important;
  fill:currentColor !important;
  stroke:currentColor !important;
  opacity:1 !important;
}
html body main#main :is(.btn--primary,.btn-red,.rp-contact-button--email,.rp-contact-hero__button--primary){
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  background:var(--rp-final-red) !important;
  border-color:var(--rp-final-red) !important;
  box-shadow:0 14px 32px rgba(216,50,50,.28) !important;
}
html body main#main :is(.btn--primary,.btn-red,.rp-contact-button--email,.rp-contact-hero__button--primary):is(:hover,:focus-visible){
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  background:var(--rp-final-red-dark) !important;
  border-color:var(--rp-final-red-dark) !important;
  transform:translateY(-2px) !important;
}

/* Every secondary / Call Now action on a light section is visibly light with navy copy. */
html body main#main > :is(section,article)[data-rp-surface="light"] :is(a.btn:not(.btn--primary):not(.btn-red),a.rp-contact-button--call,a.rp-contact-hero__button--secondary),
html body main#main [data-rp-ui-surface="light"] :is(a.btn:not(.btn--primary):not(.btn-red),a.rp-contact-button--call,a.rp-contact-hero__button--secondary),
html body main#main .cta-panel :is(a.btn:not(.btn--primary):not(.btn-red),a.rp-contact-button--call,a.rp-contact-hero__button--secondary){
  color:var(--rp-final-blue) !important;
  -webkit-text-fill-color:var(--rp-final-blue) !important;
  background:#fff !important;
  border-color:rgba(26,43,76,.72) !important;
  box-shadow:0 12px 28px rgba(20,36,58,.12) !important;
  backdrop-filter:none !important;
}
html body main#main > :is(section,article)[data-rp-surface="light"] :is(a.btn:not(.btn--primary):not(.btn-red),a.rp-contact-button--call,a.rp-contact-hero__button--secondary):is(:hover,:focus-visible),
html body main#main [data-rp-ui-surface="light"] :is(a.btn:not(.btn--primary):not(.btn-red),a.rp-contact-button--call,a.rp-contact-hero__button--secondary):is(:hover,:focus-visible),
html body main#main .cta-panel :is(a.btn:not(.btn--primary):not(.btn-red),a.rp-contact-button--call,a.rp-contact-hero__button--secondary):is(:hover,:focus-visible){
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  background:var(--rp-final-blue) !important;
  border-color:var(--rp-final-blue) !important;
  transform:translateY(-2px) !important;
}

/* Every secondary / Call Now action on a dark section has white copy and border. */
html body main#main > :is(section,article)[data-rp-surface="dark"] :is(a.btn:not(.btn--primary):not(.btn-red),a.rp-contact-button--call,a.rp-contact-hero__button--secondary),
html body main#main [data-rp-ui-surface="dark"] :is(a.btn:not(.btn--primary):not(.btn-red),a.rp-contact-button--call,a.rp-contact-hero__button--secondary){
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  background:rgba(7,19,33,.56) !important;
  border-color:rgba(255,255,255,.82) !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04) !important;
  backdrop-filter:blur(12px) !important;
}
html body main#main > :is(section,article)[data-rp-surface="dark"] :is(a.btn:not(.btn--primary):not(.btn-red),a.rp-contact-button--call,a.rp-contact-hero__button--secondary):is(:hover,:focus-visible),
html body main#main [data-rp-ui-surface="dark"] :is(a.btn:not(.btn--primary):not(.btn-red),a.rp-contact-button--call,a.rp-contact-hero__button--secondary):is(:hover,:focus-visible){
  color:var(--rp-final-navy) !important;
  -webkit-text-fill-color:var(--rp-final-navy) !important;
  background:#fff !important;
  border-color:#fff !important;
  transform:translateY(-2px) !important;
}

/* Absolute lock for Services Call Now labels and phone numbers. */
html body.rp-page-services main#main > section[data-rp-surface="light"] a.rp-contact-button.rp-contact-button--call,
html body main#main > section[data-rp-surface="light"] a.rp-contact-button.rp-contact-button--call{
  color:var(--rp-final-blue) !important;
  -webkit-text-fill-color:var(--rp-final-blue) !important;
  background:#fff !important;
  border-color:rgba(26,43,76,.72) !important;
}
html body.rp-page-services main#main > section[data-rp-surface="light"] a.rp-contact-button.rp-contact-button--call :is(span,small,strong),
html body main#main > section[data-rp-surface="light"] a.rp-contact-button.rp-contact-button--call :is(span,small,strong){
  color:var(--rp-final-blue) !important;
  -webkit-text-fill-color:var(--rp-final-blue) !important;
}
html body.rp-page-services main#main > section[data-rp-surface="light"] a.rp-contact-button.rp-contact-button--call:is(:hover,:focus-visible) :is(span,small,strong),
html body main#main > section[data-rp-surface="light"] a.rp-contact-button.rp-contact-button--call:is(:hover,:focus-visible) :is(span,small,strong){
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
}
html body main#main .rp-contact-button--call{
  flex-direction:column !important;
  gap:4px !important;
}
html body main#main .rp-contact-button--call small{
  display:block !important;
  font-size:10px !important;
  font-weight:800 !important;
  line-height:1.1 !important;
  letter-spacing:.025em !important;
}
html body main#main :is(.btn,.rp-contact-button,.rp-contact-hero__button):focus-visible{
  outline:3px solid #ff6b6b !important;
  outline-offset:4px !important;
}

/* ---------- Light CTA panel nested in a dark cinematic band ---------- */
html body main#main > section.section--cta[data-rp-surface="dark"]{
  padding:var(--rp-final-section-space) 0 !important;
  background:
    radial-gradient(circle at 12% 0%,rgba(216,50,50,.22),transparent 31%),
    linear-gradient(135deg,var(--rp-final-navy),var(--rp-final-navy-2) 64%,#050b13) !important;
}
html body main#main > section.section--cta[data-rp-surface="dark"] .cta-panel{
  display:grid !important;
  grid-template-columns:minmax(0,1.08fr) minmax(320px,.62fr) !important;
  align-items:center !important;
  gap:clamp(34px,5vw,76px) !important;
  padding:clamp(34px,4.7vw,68px) !important;
  color:var(--rp-final-ink) !important;
  background:
    radial-gradient(circle at 8% 8%,rgba(255,255,255,.98),transparent 35%),
    linear-gradient(135deg,#fff 0%,#f8f4ed 60%,#eee7dc 100%) !important;
  border:1px solid rgba(255,255,255,.58) !important;
  border-radius:var(--rp-final-radius) !important;
  box-shadow:0 34px 100px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.94) !important;
  overflow:hidden !important;
}
html body main#main > section.section--cta[data-rp-surface="dark"] .cta-panel :is(h1,h2,h3,h4,h5,h6,strong){
  color:var(--rp-final-ink) !important;
  -webkit-text-fill-color:var(--rp-final-ink) !important;
  text-shadow:none !important;
  background-image:none !important;
}
html body main#main > section.section--cta[data-rp-surface="dark"] .cta-panel :is(p,li,.lead){
  color:var(--rp-final-copy) !important;
  -webkit-text-fill-color:var(--rp-final-copy) !important;
  text-shadow:none !important;
}
html body main#main > section.section--cta[data-rp-surface="dark"] .cta-panel :is(.eyebrow,.kicker){
  color:#b52429 !important;
  -webkit-text-fill-color:#b52429 !important;
}
html body main#main > section.section--cta[data-rp-surface="dark"] .cta-panel h2{
  max-width:15ch !important;
  margin:0 !important;
  font-size:clamp(44px,4.6vw,78px) !important;
  line-height:.95 !important;
  letter-spacing:-.05em !important;
}
html body main#main > section.section--cta[data-rp-surface="dark"] .cta-panel > div > p:not(.eyebrow){
  max-width:60ch !important;
  margin-top:clamp(16px,1.8vw,24px) !important;
  font-size:clamp(15px,1vw,18px) !important;
  line-height:1.62 !important;
}
html body main#main > section.section--cta[data-rp-surface="dark"] .cta-panel .button-row{
  margin-top:clamp(22px,2.4vw,34px) !important;
}
html body main#main > section.section--cta[data-rp-surface="dark"] .cta-media{
  width:100% !important;
  height:clamp(300px,31vw,500px) !important;
  min-height:0 !important;
  margin:0 !important;
  border-radius:clamp(18px,1.5vw,26px) !important;
  overflow:hidden !important;
  background:var(--rp-final-navy) !important;
}
html body main#main > section.section--cta[data-rp-surface="dark"] .cta-media img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  min-height:100% !important;
  object-fit:cover !important;
  object-position:center !important;
}

/* ---------- Internal page heroes: full content, same cinematic grammar ---------- */
html body.rp-standardized-page main#main > section.rp-page-hero[data-rp-surface="dark"]{
  display:flex !important;
  align-items:center !important;
  min-height:max(660px,100svh) !important;
  height:auto !important;
  max-height:none !important;
  padding:clamp(126px,13vh,164px) 0 clamp(54px,7vh,84px) !important;
  color:#fff !important;
  background:var(--rp-final-navy) !important;
}
html body.rp-standardized-page main#main > section.rp-page-hero .rp-page-hero__media,
html body.rp-standardized-page main#main > section.rp-page-hero .rp-page-hero__cloud{
  position:absolute !important;
  inset:0 !important;
}
html body.rp-standardized-page main#main > section.rp-page-hero .rp-page-hero__media img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center !important;
  filter:brightness(.70) contrast(1.09) saturate(1.03) !important;
}
html body.rp-standardized-page main#main > section.rp-page-hero .rp-page-hero__cloud{
  background:
    radial-gradient(circle at 12% 70%,rgba(216,50,50,.16),transparent 29%),
    linear-gradient(90deg,rgba(7,19,33,.97) 0%,rgba(7,19,33,.90) 37%,rgba(7,19,33,.50) 66%,rgba(7,19,33,.20) 100%),
    linear-gradient(180deg,rgba(0,0,0,.30),rgba(0,0,0,.10) 45%,rgba(0,0,0,.62)) !important;
}
html body.rp-standardized-page main#main > section.rp-page-hero .rp-page-hero__content{
  position:relative !important;
  z-index:3 !important;
  width:min(calc(100% - (var(--rp-final-gutter) * 2)),var(--rp-final-container)) !important;
  max-width:var(--rp-final-container) !important;
  margin-inline:auto !important;
  padding:0 !important;
}
html body.rp-standardized-page main#main > section.rp-page-hero .rp-page-hero__copy{
  width:min(100%,820px) !important;
  max-width:820px !important;
  padding:0 !important;
  margin:0 !important;
}
html body.rp-standardized-page main#main > section.rp-page-hero .eyebrow{
  margin:0 0 clamp(14px,1.6vh,20px) !important;
  color:#ff7070 !important;
  -webkit-text-fill-color:#ff7070 !important;
}
html body.rp-standardized-page main#main > section.rp-page-hero h1{
  max-width:15ch !important;
  margin:0 !important;
  color:var(--rp-final-cream) !important;
  -webkit-text-fill-color:var(--rp-final-cream) !important;
  font-size:clamp(48px,min(5.4vw,9vh),88px) !important;
  font-weight:670 !important;
  line-height:.95 !important;
  letter-spacing:-.052em !important;
  text-shadow:0 12px 40px rgba(0,0,0,.38) !important;
}
html body.rp-standardized-page main#main > section.rp-page-hero .lead{
  max-width:690px !important;
  margin:clamp(18px,2.3vh,28px) 0 0 !important;
  color:var(--rp-final-copy-dark) !important;
  -webkit-text-fill-color:var(--rp-final-copy-dark) !important;
  font-size:clamp(15px,1.08vw,19px) !important;
  line-height:1.58 !important;
}
html body.rp-standardized-page main#main > section.rp-page-hero .button-row{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:12px !important;
  margin-top:clamp(22px,3vh,34px) !important;
}

/* Legacy support-page heroes use the same visible hierarchy. */
html body.rp-standardized-page:not(.home-model-page) main#main > section.hero[data-rp-surface="dark"]{
  min-height:max(640px,100svh) !important;
  height:auto !important;
  max-height:none !important;
  padding:clamp(124px,13vh,160px) 0 clamp(48px,6vh,76px) !important;
  display:flex !important;
  align-items:center !important;
  overflow:hidden !important;
}
html body.rp-standardized-page:not(.home-model-page) main#main > section.hero .hero-copy{
  max-width:min(760px,70vw) !important;
}
html body.rp-standardized-page:not(.home-model-page) main#main > section.hero h1{
  max-width:15ch !important;
  color:var(--rp-final-cream) !important;
  -webkit-text-fill-color:var(--rp-final-cream) !important;
  font-size:clamp(46px,min(5.2vw,8.6vh),84px) !important;
  line-height:.95 !important;
  letter-spacing:-.05em !important;
}
html body.rp-standardized-page:not(.home-model-page) main#main > section.hero .lead,
html body.rp-standardized-page:not(.home-model-page) main#main > section.hero .hero-copy > p:not(.eyebrow){
  max-width:680px !important;
  color:var(--rp-final-copy-dark) !important;
  -webkit-text-fill-color:var(--rp-final-copy-dark) !important;
  font-size:clamp(15px,1.05vw,18px) !important;
  line-height:1.58 !important;
}

/* ---------- Contact hero: same cinematic logic as Home, compact enough for details ---------- */
html body.rp-page-contact main#main{
  background:var(--rp-final-navy) !important;
}
html body.rp-page-contact main#main > section.rp-contact-hero[data-rp-surface="dark"]{
  position:relative !important;
  display:flex !important;
  align-items:center !important;
  min-height:max(700px,100svh) !important;
  height:auto !important;
  max-height:none !important;
  padding:clamp(128px,13vh,164px) 0 clamp(44px,5.8vh,70px) !important;
  background:var(--rp-final-navy) !important;
  overflow:hidden !important;
}
html body.rp-page-contact .rp-contact-hero__media,
html body.rp-page-contact .rp-contact-hero__shade{
  position:absolute !important;
  inset:0 !important;
}
html body.rp-page-contact .rp-contact-hero__media img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center !important;
  filter:brightness(.70) contrast(1.10) saturate(1.03) !important;
}
html body.rp-page-contact .rp-contact-hero__shade{
  z-index:1 !important;
  background:
    radial-gradient(circle at 16% 76%,rgba(216,50,50,.15),transparent 28%),
    linear-gradient(90deg,rgba(7,19,33,.98) 0%,rgba(7,19,33,.92) 38%,rgba(7,19,33,.56) 66%,rgba(7,19,33,.22) 100%),
    linear-gradient(180deg,rgba(0,0,0,.28),rgba(0,0,0,.08) 46%,rgba(0,0,0,.68)) !important;
}
html body.rp-page-contact .rp-contact-hero__content{
  position:relative !important;
  z-index:3 !important;
  width:min(calc(100% - (var(--rp-final-gutter) * 2)),var(--rp-final-container)) !important;
  max-width:var(--rp-final-container) !important;
  margin-inline:auto !important;
  padding:0 !important;
}
html body.rp-page-contact .rp-contact-hero .eyebrow{
  margin:0 0 clamp(13px,1.6vh,19px) !important;
  color:#ff7070 !important;
  -webkit-text-fill-color:#ff7070 !important;
}
html body.rp-page-contact .rp-contact-hero h1,
html body.rp-page-contact #rp-contact-title{
  max-width:20ch !important;
  margin:0 !important;
  color:var(--rp-final-cream) !important;
  -webkit-text-fill-color:var(--rp-final-cream) !important;
  font-size:clamp(46px,min(4.9vw,8.2vh),82px) !important;
  font-weight:670 !important;
  line-height:.96 !important;
  letter-spacing:-.052em !important;
  text-shadow:0 12px 40px rgba(0,0,0,.40) !important;
  background-image:none !important;
}
html body.rp-page-contact .rp-contact-hero__content > p:not(.eyebrow){
  max-width:720px !important;
  margin:clamp(16px,2.1vh,24px) 0 0 !important;
  color:var(--rp-final-copy-dark) !important;
  -webkit-text-fill-color:var(--rp-final-copy-dark) !important;
  font-size:clamp(15px,1.02vw,18px) !important;
  line-height:1.56 !important;
}
html body.rp-page-contact .rp-contact-hero__actions{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:12px !important;
  margin-top:clamp(20px,2.6vh,30px) !important;
}
html body.rp-page-contact .rp-contact-hero__button{
  min-width:190px !important;
  min-height:54px !important;
}
html body.rp-page-contact .rp-contact-hero__details{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:clamp(24px,5vw,72px) !important;
  max-width:900px !important;
  margin-top:clamp(26px,3.5vh,40px) !important;
  padding-top:clamp(18px,2.2vh,25px) !important;
  border-top:1px solid rgba(255,255,255,.34) !important;
}
html body.rp-page-contact .rp-contact-hero__details a{
  display:flex !important;
  flex-direction:column !important;
  gap:8px !important;
  text-decoration:none !important;
}
html body.rp-page-contact .rp-contact-hero__details span{
  color:#aeb9c6 !important;
  -webkit-text-fill-color:#aeb9c6 !important;
  font-size:11px !important;
  font-weight:800 !important;
  letter-spacing:.14em !important;
  text-transform:uppercase !important;
}
html body.rp-page-contact .rp-contact-hero__details strong{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  font-size:clamp(16px,1.2vw,21px) !important;
  line-height:1.3 !important;
}

/* ---------- Sitewide section alignment ---------- */
html body.rp-standardized-page main#main > section.section:not(.section--cta){
  padding:var(--rp-final-section-space) 0 !important;
}
html body.rp-standardized-page main#main .section-heading{
  max-width:100% !important;
  margin-bottom:clamp(34px,4vw,60px) !important;
}
html body.rp-standardized-page main#main .section-heading h2,
html body.rp-standardized-page main#main .editorial-copy h2,
html body.rp-standardized-page main#main .process-timeline .section-heading > h2{
  max-width:16ch !important;
  margin:0 !important;
  font-size:clamp(42px,4.5vw,76px) !important;
  line-height:.98 !important;
  letter-spacing:-.045em !important;
}
html body.rp-standardized-page main#main .section-heading--split{
  display:grid !important;
  grid-template-columns:minmax(0,1.18fr) minmax(280px,.62fr) !important;
  align-items:end !important;
  gap:clamp(34px,6vw,92px) !important;
}
html body.rp-standardized-page main#main .section-heading--split > p{
  max-width:48ch !important;
  margin:0 !important;
  font-size:clamp(15px,1.05vw,18px) !important;
  line-height:1.62 !important;
}
html body.rp-standardized-page main#main .editorial-split,
html body.rp-standardized-page main#main .service-detail-grid,
html body.rp-standardized-page main#main .service-category{
  gap:clamp(38px,6vw,94px) !important;
  align-items:center !important;
}
html body.rp-standardized-page main#main :is(.image-frame,.gallery-item,.service-category__media){
  overflow:hidden !important;
}
html body.rp-standardized-page main#main :is(.image-frame,.gallery-item,.service-category__media) img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
}

/* Process receives the same container and rhythm as every other page. */
html body.rp-page-process main#main .process-timeline,
html body.rp-page-process main#main .section-heading--split,
html body.rp-page-process main#main .gallery-grid--detail{
  width:min(calc(100% - (var(--rp-final-gutter) * 2)),var(--rp-final-container)) !important;
  max-width:var(--rp-final-container) !important;
  margin-inline:auto !important;
}
html body.rp-page-process main#main .timeline-list{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:clamp(18px,2vw,28px) !important;
}
html body.rp-page-process main#main .timeline-list article{
  min-height:260px !important;
  padding:clamp(24px,2.4vw,34px) !important;
  border:1px solid rgba(20,36,58,.14) !important;
  border-radius:clamp(18px,1.35vw,24px) !important;
  background:rgba(255,255,255,.72) !important;
  box-shadow:0 18px 48px rgba(20,36,58,.08) !important;
}
html body.rp-page-process main#main .timeline-list article > span{
  color:var(--rp-final-red) !important;
  -webkit-text-fill-color:var(--rp-final-red) !important;
}
html body.rp-page-process main#main .timeline-list h3{
  margin:clamp(24px,3vw,42px) 0 12px !important;
  font-size:clamp(24px,2vw,32px) !important;
  line-height:1.08 !important;
}
html body.rp-page-process main#main .timeline-list p{
  margin:0 !important;
  font-size:15px !important;
  line-height:1.58 !important;
}
html body.rp-page-process main#main .gallery-grid--detail{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:clamp(18px,2vw,28px) !important;
}
html body.rp-page-process main#main .gallery-grid--detail .gallery-item{
  min-height:clamp(280px,28vw,430px) !important;
  border-radius:clamp(18px,1.5vw,26px) !important;
}

/* ---------- Responsive refinements ---------- */
@media (max-width:1100px){
  html body main#main > section.section--cta[data-rp-surface="dark"] .cta-panel{
    grid-template-columns:1fr 1fr !important;
  }
  html body.rp-page-process main#main .timeline-list{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  html body.rp-page-process main#main .gallery-grid--detail{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  html body.rp-page-process main#main .gallery-grid--detail .gallery-item:last-child{grid-column:1/-1 !important;}
}

@media (max-width:820px){
  :root{--rp-final-gutter:clamp(18px,4.5vw,32px);--rp-final-section-space:clamp(64px,10vw,88px);}
  html body main#main > section.section--cta[data-rp-surface="dark"] .cta-panel{
    grid-template-columns:1fr !important;
  }
  html body main#main > section.section--cta[data-rp-surface="dark"] .cta-media{
    height:clamp(260px,58vw,430px) !important;
  }
  html body.rp-standardized-page main#main .section-heading--split{
    grid-template-columns:1fr !important;
    align-items:start !important;
    gap:22px !important;
  }
  html body.rp-page-process main#main .timeline-list,
  html body.rp-page-process main#main .gallery-grid--detail{
    grid-template-columns:1fr !important;
  }
  html body.rp-page-process main#main .gallery-grid--detail .gallery-item:last-child{grid-column:auto !important;}
}

@media (max-width:760px){
  html body.rp-standardized-page main#main > section.rp-page-hero[data-rp-surface="dark"],
  html body.rp-standardized-page:not(.home-model-page) main#main > section.hero[data-rp-surface="dark"]{
    min-height:max(600px,100svh) !important;
    padding:clamp(104px,14vh,124px) 0 38px !important;
    align-items:flex-end !important;
  }
  html body.rp-standardized-page main#main > section.rp-page-hero .rp-page-hero__copy,
  html body.rp-standardized-page:not(.home-model-page) main#main > section.hero .hero-copy{
    width:100% !important;
    max-width:100% !important;
  }
  html body.rp-standardized-page main#main > section.rp-page-hero h1,
  html body.rp-standardized-page:not(.home-model-page) main#main > section.hero h1{
    max-width:15ch !important;
    font-size:clamp(38px,11.5vw,58px) !important;
    line-height:.95 !important;
  }
  html body.rp-standardized-page main#main > section.rp-page-hero .lead,
  html body.rp-standardized-page:not(.home-model-page) main#main > section.hero .lead,
  html body.rp-standardized-page:not(.home-model-page) main#main > section.hero .hero-copy > p:not(.eyebrow){
    max-width:42ch !important;
    font-size:14px !important;
    line-height:1.52 !important;
  }
  html body.rp-standardized-page main#main > section.rp-page-hero .button-row,
  html body.rp-standardized-page:not(.home-model-page) main#main > section.hero .button-row{
    width:100% !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:9px !important;
  }
  html body.rp-standardized-page main#main > section.rp-page-hero .button-row .btn,
  html body.rp-standardized-page:not(.home-model-page) main#main > section.hero .button-row .btn{
    width:100% !important;
  }

  html body.rp-page-contact main#main > section.rp-contact-hero[data-rp-surface="dark"]{
    min-height:max(640px,100svh) !important;
    padding:clamp(104px,13vh,120px) 0 30px !important;
    align-items:flex-end !important;
  }
  html body.rp-page-contact .rp-contact-hero__media img{object-position:62% center !important;}
  html body.rp-page-contact .rp-contact-hero__shade{
    background:
      radial-gradient(circle at 15% 78%,rgba(216,50,50,.16),transparent 28%),
      linear-gradient(90deg,rgba(7,19,33,.98) 0%,rgba(7,19,33,.90) 64%,rgba(7,19,33,.42) 100%),
      linear-gradient(180deg,rgba(0,0,0,.34),rgba(0,0,0,.10) 44%,rgba(0,0,0,.76)) !important;
  }
  html body.rp-page-contact .rp-contact-hero h1,
  html body.rp-page-contact #rp-contact-title{
    max-width:15ch !important;
    font-size:clamp(36px,10.7vw,52px) !important;
  }
  html body.rp-page-contact .rp-contact-hero__content > p:not(.eyebrow){font-size:14px !important;line-height:1.5 !important;}
  html body.rp-page-contact .rp-contact-hero__actions{
    display:grid !important;
    grid-template-columns:1fr !important;
    width:100% !important;
  }
  html body.rp-page-contact .rp-contact-hero__button{width:100% !important;min-width:0 !important;}
  html body.rp-page-contact .rp-contact-hero__details{
    grid-template-columns:1fr !important;
    gap:14px !important;
  }

  html body main#main > section.section--cta[data-rp-surface="dark"] .cta-panel{
    padding:28px !important;
  }
  html body main#main > section.section--cta[data-rp-surface="dark"] .cta-panel h2,
  html body.rp-standardized-page main#main .section-heading h2,
  html body.rp-standardized-page main#main .editorial-copy h2,
  html body.rp-standardized-page main#main .process-timeline .section-heading > h2{
    font-size:clamp(38px,11vw,54px) !important;
  }
  html body.rp-standardized-page main#main .rp-service-actions{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
    width:100% !important;
  }
  html body.rp-standardized-page main#main .rp-service-actions .rp-contact-button{width:100% !important;}
}

@media (max-width:390px){
  :root{--rp-final-gutter:14px;}
  html body.rp-page-contact .rp-contact-hero h1,
  html body.rp-page-contact #rp-contact-title,
  html body.rp-standardized-page main#main > section.rp-page-hero h1,
  html body.rp-standardized-page:not(.home-model-page) main#main > section.hero h1{
    font-size:clamp(32px,10.2vw,42px) !important;
  }
  html body.rp-page-contact .rp-contact-hero__details strong{font-size:14px !important;}
  html body main#main :is(.btn,.rp-contact-button,.rp-contact-hero__button,.rp-services-all){
    min-height:48px !important;
    padding:12px 18px !important;
    font-size:12px !important;
  }
}

@media (min-width:761px) and (max-height:820px){
  html body.rp-standardized-page main#main > section.rp-page-hero[data-rp-surface="dark"],
  html body.rp-standardized-page:not(.home-model-page) main#main > section.hero[data-rp-surface="dark"]{
    min-height:100svh !important;
    padding:108px 0 34px !important;
  }
  html body.rp-standardized-page main#main > section.rp-page-hero h1,
  html body.rp-standardized-page:not(.home-model-page) main#main > section.hero h1{
    font-size:clamp(46px,7.6vh,66px) !important;
  }
  html body.rp-page-contact main#main > section.rp-contact-hero[data-rp-surface="dark"]{
    min-height:100svh !important;
    padding:104px 0 28px !important;
  }
  html body.rp-page-contact .rp-contact-hero h1,
  html body.rp-page-contact #rp-contact-title{
    max-width:18ch !important;
    font-size:clamp(44px,7.2vh,64px) !important;
  }
  html body.rp-page-contact .rp-contact-hero__content > p:not(.eyebrow){margin-top:14px !important;}
  html body.rp-page-contact .rp-contact-hero__actions{margin-top:18px !important;}
  html body.rp-page-contact .rp-contact-hero__details{margin-top:22px !important;padding-top:16px !important;}
}

@media (prefers-reduced-motion:reduce){
  html body main#main *,html body main#main *::before,html body main#main *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}

/* Final mobile Contact fit: center the complete content block so title,
   supporting copy, actions, email and phone remain visible in one viewport. */
@media (max-width:760px){
  html body.rp-page-contact main#main > section.rp-contact-hero[data-rp-surface="dark"]{
    align-items:center !important;
  }
}
@media (max-width:760px){
  html body.rp-page-contact .rp-contact-hero h1,
  html body.rp-page-contact #rp-contact-title{
    font-size:clamp(31px,9vw,38px) !important;
    line-height:.94 !important;
  }
  html body.rp-page-contact .rp-contact-hero__content > p:not(.eyebrow){
    margin-top:12px !important;
  }
  html body.rp-page-contact .rp-contact-hero__actions{
    margin-top:16px !important;
  }
  html body.rp-page-contact .rp-contact-hero__details{
    margin-top:18px !important;
    padding-top:14px !important;
    gap:10px !important;
  }
}

/* Final first-viewport fit for inner-page heroes on phones. The visual image
   remains visible, while the complete title, supporting copy and CTA move into
   the initial viewport instead of falling below it. */
@media (max-width:760px){
  html body.rp-standardized-page main#main > section.rp-page-hero .rp-page-hero__content{
    transform:translateY(clamp(-68px,-7vh,-44px)) !important;
  }
  html body.rp-standardized-page:not(.home-model-page):not(.rp-page-contact) main#main > section.hero .hero-grid{
    transform:translateY(-20px) !important;
  }
  html body.rp-page-contact .rp-contact-hero__details{
    margin-top:14px !important;
    padding-top:12px !important;
  }
}

/* Ultra-compact phones: preserve every Contact item inside 320×640-class
   screens without hiding information or reducing tap-target reliability. */
@media (max-width:390px) and (max-height:700px){
  html body.rp-page-contact .rp-contact-hero__content{
    transform:translateY(-14px) !important;
  }
  html body.rp-page-contact .rp-contact-hero .eyebrow{
    margin-bottom:6px !important;
    font-size:9px !important;
  }
  html body.rp-page-contact .rp-contact-hero h1,
  html body.rp-page-contact #rp-contact-title{
    max-width:16ch !important;
    font-size:clamp(27px,8.6vw,31px) !important;
    line-height:.93 !important;
  }
  html body.rp-page-contact .rp-contact-hero__content > p:not(.eyebrow){
    margin-top:8px !important;
    font-size:11.25px !important;
    line-height:1.34 !important;
  }
  html body.rp-page-contact .rp-contact-hero__actions{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:7px !important;
    margin-top:10px !important;
  }
  html body.rp-page-contact .rp-contact-hero__button{
    min-height:42px !important;
    padding:8px 8px !important;
    font-size:10px !important;
    letter-spacing:.015em !important;
  }
  html body.rp-page-contact .rp-contact-hero__details{
    gap:4px !important;
    margin-top:8px !important;
    padding-top:7px !important;
  }
  html body.rp-page-contact .rp-contact-hero__details a{
    gap:2px !important;
  }
  html body.rp-page-contact .rp-contact-hero__details span{
    font-size:8px !important;
    letter-spacing:.11em !important;
  }
  html body.rp-page-contact .rp-contact-hero__details strong{
    font-size:11.5px !important;
    line-height:1.2 !important;
  }
}
@media (max-width:760px){
  html body.rp-standardized-page main#main > section.rp-page-hero .rp-page-hero__content{
    transform:translateY(clamp(-82px,-8.5vh,-64px)) !important;
  }
  html body.rp-page-contact .rp-contact-hero__details{
    margin-top:12px !important;
    padding-top:10px !important;
  }
}
html body main#main :is(.btn,.rp-contact-button,.rp-contact-hero__button,.rp-services-all){
  white-space:nowrap !important;
}

/* ===== SOURCE: assets/css/realpro-hero-title-scale-final-20260805.css ===== */
/*
 * REALPRO Studios — hero titles aligned to the ORIGINAL Home scale
 * Revision 2026-08-05 / v9.
 *
 * Important: the Home hero is deliberately excluded from every rule below.
 * Its original typography remains untouched and is the visual reference used
 * by all internal pages.
 */

:root{
  /* Original Home desktop scale */
  --rp-home-reference-title-size:clamp(66px,6.35vw,112px);
  --rp-home-reference-title-line:.93;
  --rp-home-reference-title-tracking:-.028em;
  --rp-home-reference-title-weight:700;
}

/*
 * Apply the Home reference only to internal-page primary hero titles.
 * The class exists once per page and never changes the Home hero itself.
 */
html body.rp-standardized-page:not(.rp-page-index) main#main > section.rp-page-hero .rp-page-hero__copy h1.rp-unified-hero-title,
html body.rp-standardized-page:not(.rp-page-index) main#main > section.hero .hero-copy h1.rp-unified-hero-title,
html body.rp-standardized-page.rp-page-contact main#main > section.rp-contact-hero h1.rp-unified-hero-title#rp-contact-title{
  width:auto !important;
  max-width:min(100%,1120px) !important;
  margin:0 !important;
  font-size:var(--rp-home-reference-title-size) !important;
  font-weight:var(--rp-home-reference-title-weight) !important;
  line-height:var(--rp-home-reference-title-line) !important;
  letter-spacing:var(--rp-home-reference-title-tracking) !important;
  text-transform:uppercase !important;
  text-wrap:balance !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
}

/* Give longer internal headlines enough line length without changing size. */
html body.rp-standardized-page main#main > section.rp-page-hero[data-rp-surface="dark"] .rp-page-hero__content > .rp-page-hero__copy{
  width:min(100%,1050px) !important;
  max-width:1050px !important;
}
html body.rp-standardized-page:not(.home-model-page):not(.rp-page-contact) main#main > section.hero[data-rp-surface="dark"] .hero-grid > .hero-copy{
  width:min(100%,900px) !important;
  max-width:900px !important;
}
html body.rp-standardized-page.rp-page-contact main#main > section.rp-contact-hero[data-rp-surface="dark"] .rp-contact-hero__content{
  width:min(calc(100% - (var(--rp-final-gutter,clamp(20px,4vw,72px)) * 2)),var(--rp-final-container,1540px)) !important;
  max-width:var(--rp-final-container,1540px) !important;
}

/* Internal heroes may expand vertically instead of clipping long headlines. */
html body:not(.rp-page-index) main#main > section.hero,
html body:not(.rp-page-index) main#main > section.rp-page-hero,
html body:not(.rp-page-index) main#main > section.rp-contact-hero{
  height:auto !important;
  max-height:none !important;
  overflow:hidden !important;
}
html body.rp-standardized-page:not(.rp-page-index) main#main > section.rp-page-hero[data-rp-surface="dark"],
html body.rp-standardized-page:not(.rp-page-index):not(.home-model-page) main#main > section.hero[data-rp-surface="dark"],
html body.rp-standardized-page.rp-page-contact main#main > section.rp-contact-hero[data-rp-surface="dark"]{
  min-height:100svh !important;
}

/* 1366px and compact notebooks: original Home scale at this breakpoint. */
@media (max-width:1399px){
  :root{
    --rp-home-reference-title-size:clamp(66px,5.85vw,91.44px);
    --rp-home-reference-title-line:.93;
    --rp-home-reference-title-tracking:-.028em;
  }
}

/* Tablets use the original Home minimum, preserving hierarchy without growth. */
@media (max-width:1024px){
  :root{
    --rp-home-reference-title-size:66px;
    --rp-home-reference-title-line:.93;
    --rp-home-reference-title-tracking:-.022em;
  }
}

/* Smartphones reproduce the original Home mobile scale exactly. */
@media (max-width:760px){
  :root{
    --rp-home-reference-title-size:clamp(42px,12.4vw,66px);
    --rp-home-reference-title-line:.94;
    --rp-home-reference-title-tracking:-.018em;
  }

  html body.rp-standardized-page:not(.rp-page-index) main#main > section.rp-page-hero .rp-page-hero__copy h1.rp-unified-hero-title,
  html body.rp-standardized-page:not(.rp-page-index) main#main > section.hero .hero-copy h1.rp-unified-hero-title,
  html body.rp-standardized-page.rp-page-contact main#main > section.rp-contact-hero h1.rp-unified-hero-title#rp-contact-title{
    width:100% !important;
    max-width:100% !important;
  }

  html body.rp-standardized-page main#main > section.rp-page-hero[data-rp-surface="dark"] .rp-page-hero__content > .rp-page-hero__copy,
  html body.rp-standardized-page:not(.home-model-page):not(.rp-page-contact) main#main > section.hero[data-rp-surface="dark"] .hero-grid > .hero-copy{
    width:100% !important;
    max-width:100% !important;
  }

  html body.rp-standardized-page:not(.rp-page-index) main#main > section.rp-page-hero[data-rp-surface="dark"],
  html body.rp-standardized-page:not(.rp-page-index):not(.home-model-page) main#main > section.hero[data-rp-surface="dark"],
  html body.rp-standardized-page.rp-page-contact main#main > section.rp-contact-hero[data-rp-surface="dark"]{
    min-height:100svh !important;
    height:auto !important;
    max-height:none !important;
  }
}

/* ===== SOURCE: assets/css/realpro-adaptive-section-rhythm-performance-final-20260805.css ===== */
/* ========================================================================== 
   REALPRO Studios — Adaptive Section Rhythm + Performance Final
   Revision: 2026-08-05 / v10

   Purpose
   - Establish one premium vertical rhythm across every direct page section.
   - Keep every heading, paragraph, image and CTA visible at any viewport size.
   - Scale gracefully from 320px phones to 8K+ displays without oversized gaps.
   - Preserve the approved Home hero typography and all validated components.
   - Progressively simplify nonessential effects on modest hardware.
   ========================================================================== */

:root{
  --rp-section-y:clamp(84px,7.15vw,148px);
  --rp-section-y-feature:clamp(96px,8.1vw,168px);
  --rp-section-y-cta:clamp(78px,6.8vw,136px);
  --rp-section-y-compact:clamp(28px,3vw,52px);
  --rp-section-gap:clamp(34px,4.4vw,76px);
  --rp-section-heading-gap:clamp(32px,4.1vw,68px);
  --rp-section-item-gap:clamp(20px,2.2vw,36px);
  --rp-safe-inline:clamp(18px,4vw,72px);
  --rp-readable-copy:68ch;
  --rp-section-ease:cubic-bezier(.22,.61,.36,1);
}

html{
  scroll-padding-top:calc(var(--rp-header-live,96px) + 18px);
}

html,
body,
main{
  max-width:100%;
}

body main{
  overflow-x:clip !important;
  overflow-y:visible !important;
}

/* Premium section rhythm. Heroes are deliberately excluded so the approved
   first-screen composition and original Home title scale remain untouched. */
body main > section.rp-adaptive-section:not(.hero):not(.rp-page-hero):not(.rp-contact-hero):not(.trust-strip):not(.trusted-hero){
  position:relative;
  box-sizing:border-box;
  height:auto !important;
  max-height:none !important;
  min-height:0;
  padding-block:var(--rp-section-y) !important;
  scroll-margin-top:calc(var(--rp-header-live,96px) + 18px);
}

/* Home sections receive the same editorial rhythm while retaining their
   cinematic visual identities. */
body.rp-page-index main > :is(.services,.approach,.testimonials){
  padding-block:var(--rp-section-y) !important;
}

body.rp-page-index main > .reel{
  height:auto !important;
  max-height:none !important;
  min-height:clamp(620px,86svh,980px) !important;
  padding-block:var(--rp-section-y-feature) !important;
}

body.rp-page-index main > .final-cta{
  height:auto !important;
  max-height:none !important;
  min-height:clamp(560px,72svh,820px) !important;
  padding-block:var(--rp-section-y-cta) !important;
}

/* Compact trust/logo bands should feel intentional rather than oversized. */
body main > :is(.trust-strip,.trusted-hero),
body main > .hero > .trusted-hero{
  box-sizing:border-box;
}

body main > .trust-strip{
  height:auto !important;
  max-height:none !important;
  min-height:0 !important;
  padding-block:var(--rp-section-y-compact) !important;
}

/* CTA sections keep generous breathing room but never force content outside
   short laptop screens. */
body main > section.section--cta,
body main > section[class*="cta"]:not(.final-cta):not(.rp-contact-hero){
  padding-block:var(--rp-section-y-cta) !important;
}

/* Every direct section container follows one width system. This preserves
   readable line lengths on notebooks while using 4K/8K space with restraint. */
body main > section > :is(.container,[class$="__container"],[class*="__content"],[class*="__inner"]),
body main > section > .rp-home-container{
  min-width:0;
  max-width:100%;
}

body .container{
  width:min(calc(100% - (var(--rp-safe-inline) * 2)),var(--rp-final-container,1320px)) !important;
  margin-inline:auto !important;
}

/* Consistent internal spacing and alignment across editorial, grid and process
   compositions. Gaps remain fluid, but capped to avoid empty 8K canvases. */
body :is(
  .section-heading,
  .rp-services-heading,
  .services-intro,
  .rp-section-heading
){
  margin-bottom:var(--rp-section-heading-gap) !important;
}

body :is(
  .editorial-split,
  .contact-grid,
  .case-overview,
  .article-hero__grid,
  .approach-grid,
  .testimonials-grid,
  .project-layout,
  .rp-contact-hero__content,
  .rp-page-hero__content
){
  column-gap:var(--rp-section-gap) !important;
  row-gap:clamp(28px,3.4vw,58px) !important;
  min-width:0;
}

body :is(
  .service-grid,
  .service-grid--compact,
  .gallery-grid,
  .gallery-grid--detail,
  .values-grid,
  .quote-grid,
  .process-map,
  .timeline-list,
  .challenge-grid,
  .result-grid,
  .related-grid,
  .next-steps,
  .process-cards,
  .capability-grid,
  .testimonial-cards,
  .steps
){
  gap:var(--rp-section-item-gap) !important;
  min-width:0;
}

/* Text must never be clipped by fixed line boxes or narrow grid columns. */
body main > section :is(h1,h2,h3,h4,p,li,a,span,strong,em){
  min-width:0;
}

body main > section :is(h1,h2,h3,h4){
  max-height:none !important;
  overflow:visible !important;
  text-wrap:balance;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}

body main > section :is(p,li,figcaption){
  text-wrap:pretty;
  overflow-wrap:break-word;
}

body main > section :is(
  .section-heading p:not(.eyebrow),
  .editorial-copy p,
  .hero-copy,
  .lead,
  .rp-lead,
  .rp-page-hero__lead,
  .rp-contact-hero__lead
){
  max-width:var(--rp-readable-copy) !important;
}

/* Flexible media prevents fixed-height crops from hiding information. */
body main > section :is(img,picture,video,iframe,svg){
  max-width:100%;
}

body main > section img,
body main > section video{
  display:block;
}

body main > section :is(
  .image-frame,
  .image-frame--tall,
  .gallery-item,
  .cta-media,
  .contact-side-image,
  .rp-service-card__media,
  .work-card a,
  .portfolio-tile a
){
  max-width:100%;
}

/* Buttons stay fully readable and touch-safe even when labels wrap. */
body main > section :is(
  .btn,
  .rp-btn,
  .rp-contact-button,
  .rp-service-contact,
  .red-pill,
  button,
  [role="button"]
){
  min-height:48px;
  max-height:none !important;
  white-space:normal !important;
  line-height:1.2 !important;
  text-align:center;
  overflow:visible !important;
  text-overflow:clip !important;
}

/* Section content can grow naturally. Only media masks and carousels retain
   clipping, which is necessary for their approved visual effect. */
body main > section :is(
  .section-heading,
  .editorial-split,
  .editorial-copy,
  .service-category,
  .process-timeline,
  .process-map,
  .contact-grid,
  .cta-panel,
  .result-panel,
  .legal-layout,
  .article-layout
){
  height:auto !important;
  max-height:none !important;
  min-width:0;
}

/* Progressive rendering: selected below-fold sections receive content-visibility
   through an explicit class. Unsupported browsers simply ignore it. */
@supports (content-visibility:auto){
  body main > section.rp-render-deferred{
    content-visibility:auto !important;
    contain-intrinsic-size:auto 900px;
  }
}

/* Short notebooks and landscape tablets: reduce only empty space, never type. */
@media (min-width:761px) and (max-height:820px){
  :root{
    --rp-section-y:clamp(58px,8.5vh,78px);
    --rp-section-y-feature:clamp(66px,10vh,92px);
    --rp-section-y-cta:clamp(56px,8vh,76px);
    --rp-section-heading-gap:clamp(26px,5vh,42px);
  }

  body.rp-page-index main > .reel,
  body.rp-page-index main > .final-cta{
    min-height:auto !important;
  }
}

/* Tablets. */
@media (max-width:1100px){
  :root{
    --rp-section-y:clamp(72px,10vw,108px);
    --rp-section-y-feature:clamp(78px,11vw,118px);
    --rp-section-y-cta:clamp(68px,9.5vw,100px);
    --rp-section-gap:clamp(30px,5.6vw,56px);
    --rp-section-heading-gap:clamp(30px,5vw,52px);
    --rp-safe-inline:clamp(22px,4.5vw,48px);
  }

  body :is(
    .editorial-split,
    .contact-grid,
    .case-overview,
    .article-hero__grid,
    .approach-grid,
    .testimonials-grid,
    .project-layout
  ){
    grid-template-columns:1fr !important;
  }
}

/* Smartphones. */
@media (max-width:760px){
  :root{
    --rp-section-y:clamp(64px,18vw,92px);
    --rp-section-y-feature:clamp(70px,20vw,102px);
    --rp-section-y-cta:clamp(62px,17vw,88px);
    --rp-section-y-compact:clamp(22px,7vw,34px);
    --rp-section-gap:clamp(26px,9vw,42px);
    --rp-section-heading-gap:clamp(26px,8vw,42px);
    --rp-section-item-gap:clamp(16px,5vw,24px);
    --rp-safe-inline:clamp(14px,4.4vw,22px);
  }

  body main > section.rp-adaptive-section:not(.hero):not(.rp-page-hero):not(.rp-contact-hero):not(.trust-strip):not(.trusted-hero){
    padding-block:var(--rp-section-y) !important;
  }

  body.rp-page-index main > .reel,
  body.rp-page-index main > .final-cta{
    min-height:auto !important;
  }

  body main > section :is(.button-row,.rp-contact-hero__actions,.rp-service-contact-actions){
    width:100%;
    align-items:stretch !important;
  }

  body main > section :is(.button-row,.rp-contact-hero__actions,.rp-service-contact-actions) > :is(a,button){
    width:100% !important;
  }

  body main > section :is(.cta-panel,.project-form,.footer-main){
    padding:clamp(22px,6vw,30px) !important;
  }
}

/* Very narrow phones. */
@media (max-width:380px){
  :root{
    --rp-section-y:clamp(58px,17vw,72px);
    --rp-section-heading-gap:clamp(24px,7vw,32px);
    --rp-safe-inline:12px;
  }
}

/* Large desktop and 4K displays: expand deliberately, not proportionally to the
   entire screen, preserving editorial focus and image quality. */
@media (min-width:1800px){
  :root{
    --rp-final-container:1540px;
    --rp-section-y:clamp(132px,7vw,176px);
    --rp-section-y-feature:clamp(146px,7.8vw,196px);
    --rp-section-y-cta:clamp(118px,6.4vw,158px);
  }
}

@media (min-width:2560px){
  :root{
    --rp-final-container:1780px;
    --rp-section-y:176px;
    --rp-section-y-feature:204px;
    --rp-section-y-cta:164px;
    --rp-section-gap:92px;
    --rp-section-heading-gap:78px;
    --rp-section-item-gap:40px;
  }
}

@media (min-width:3840px){
  :root{
    --rp-final-container:2080px;
    --rp-section-y:204px;
    --rp-section-y-feature:232px;
    --rp-section-y-cta:188px;
    --rp-safe-inline:96px;
  }
}

@media (min-width:6000px){
  :root{
    --rp-final-container:2400px;
    --rp-section-y:232px;
    --rp-section-y-feature:264px;
    --rp-section-y-cta:210px;
  }
}

/* Performance tiers supplied by the existing capability audit and the final
   adaptive runtime. Low-power mode removes expensive paint work while keeping
   the exact content, hierarchy and contrast. */
body:is(.rp-low-power,.rp-motion-lite,[data-rp-performance="low"]) :is(
  .site-header,
  .fullscreen-menu,
  .menu-panel,
  .cta-panel,
  .service-card,
  .rp-service-card,
  .image-frame,
  .gallery-item
){
  -webkit-backdrop-filter:none !important;
  backdrop-filter:none !important;
  box-shadow:none !important;
}

body:is(.rp-low-power,.rp-motion-lite,[data-rp-performance="low"]) :is(
  .reveal,
  .ux-reveal,
  .reveal-stagger,
  .rp-enterprise-reveal,
  .rp-section-reveal-item
){
  opacity:1 !important;
  transform:none !important;
  transition:none !important;
  animation:none !important;
}

body:is(.rp-low-power,.rp-motion-lite,[data-rp-performance="low"]) :is(
  img,
  video,
  .service-card,
  .rp-service-card,
  .work-card,
  .gallery-item
){
  transition:none !important;
  animation:none !important;
}

body:is(.rp-low-power,.rp-motion-lite,[data-rp-performance="low"]) :is(
  .image-frame:hover img,
  .gallery-item:hover img,
  .service-card:hover img,
  .rp-service-card:hover img,
  .work-card:hover img,
  .portfolio-tile:hover img
){
  transform:none !important;
  filter:none !important;
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto !important;}
  body main > section *{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}

@media print{
  body main > section{
    content-visibility:visible !important;
    contain:none !important;
    padding-block:32px !important;
  }
}

/* ==========================================================================
   REALPRO Studios — Refined Section Breathing v11
   Moderate increase in top/bottom breathing room across all page sections.
   The approved Home hero dimensions remain untouched.
   ========================================================================== */
:root{
  --rp-section-y:clamp(96px,8vw,164px);
  --rp-section-y-feature:clamp(110px,9.1vw,188px);
  --rp-section-y-cta:clamp(90px,7.5vw,150px);
  --rp-section-y-compact:clamp(34px,3.4vw,60px);
  --rp-section-heading-gap:clamp(36px,4.6vw,76px);
}

/* Short notebooks and landscape tablets keep a premium rhythm without
   pushing important content outside the viewport. */
@media (min-width:761px) and (max-height:820px){
  :root{
    --rp-section-y:clamp(64px,9.2vh,86px);
    --rp-section-y-feature:clamp(74px,11vh,100px);
    --rp-section-y-cta:clamp(62px,8.8vh,84px);
    --rp-section-heading-gap:clamp(28px,5.5vh,46px);
  }
}

@media (max-width:1100px){
  :root{
    --rp-section-y:clamp(82px,11vw,122px);
    --rp-section-y-feature:clamp(90px,12vw,132px);
    --rp-section-y-cta:clamp(76px,10.5vw,112px);
    --rp-section-heading-gap:clamp(34px,5.6vw,58px);
  }
}

@media (max-width:760px){
  :root{
    --rp-section-y:clamp(72px,20vw,104px);
    --rp-section-y-feature:clamp(80px,22vw,114px);
    --rp-section-y-cta:clamp(70px,19vw,100px);
    --rp-section-y-compact:clamp(26px,8vw,38px);
    --rp-section-heading-gap:clamp(30px,9vw,46px);
  }
}

@media (max-width:380px){
  :root{
    --rp-section-y:clamp(64px,19vw,80px);
    --rp-section-heading-gap:clamp(27px,8vw,36px);
  }
}

@media (min-width:1800px){
  :root{
    --rp-section-y:clamp(148px,7.8vw,196px);
    --rp-section-y-feature:clamp(164px,8.7vw,220px);
    --rp-section-y-cta:clamp(132px,7vw,178px);
  }
}

@media (min-width:2560px){
  :root{
    --rp-section-y:196px;
    --rp-section-y-feature:226px;
    --rp-section-y-cta:184px;
    --rp-section-heading-gap:86px;
  }
}

@media (min-width:3840px){
  :root{
    --rp-section-y:226px;
    --rp-section-y-feature:258px;
    --rp-section-y-cta:210px;
  }
}

@media (min-width:6000px){
  :root{
    --rp-section-y:252px;
    --rp-section-y-feature:286px;
    --rp-section-y-cta:234px;
  }
}

/* ==========================================================================
   REALPRO Studios — Home Editorial Luxury Rhythm v12
   Inspired by high-end editorial brand layouts: generous but controlled
   optical breathing, vertically centered compositions and safe content flow.
   Scope: Home only. The approved Hero composition and typography are untouched.
   ========================================================================== */
html body.rp-page-index.rp-home-luxury-spacing{
  --rp-home-section-top:clamp(96px,10svh,140px);
  --rp-home-section-bottom:clamp(112px,12svh,160px);
  --rp-home-feature-top:clamp(104px,11svh,150px);
  --rp-home-feature-bottom:clamp(118px,12.5svh,172px);
  --rp-home-heading-space:clamp(42px,4.8vw,78px);
  --rp-home-content-space:clamp(28px,3.2vw,54px);
}

/* Each Home chapter becomes an editorial stage. min-height creates the same
   composed, premium feeling as the reference while height:auto guarantees that
   no heading, image, carousel, testimonial or CTA can ever be clipped. */
html body.rp-page-index.rp-home-luxury-spacing main > :is(
  .services.rp-services-showcase,
  .approach,
  .testimonials
){
  box-sizing:border-box !important;
  width:100% !important;
  height:auto !important;
  max-height:none !important;
  min-height:100svh !important;
  padding-block-start:var(--rp-home-section-top) !important;
  padding-block-end:var(--rp-home-section-bottom) !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}

html body.rp-page-index.rp-home-luxury-spacing main > .reel{
  box-sizing:border-box !important;
  height:auto !important;
  max-height:none !important;
  min-height:max(760px,94svh) !important;
  padding-block-start:var(--rp-home-feature-top) !important;
  padding-block-end:var(--rp-home-feature-bottom) !important;
  align-items:center !important;
}

html body.rp-page-index.rp-home-luxury-spacing main > .final-cta{
  box-sizing:border-box !important;
  height:auto !important;
  max-height:none !important;
  min-height:max(680px,82svh) !important;
  padding-block-start:var(--rp-home-feature-top) !important;
  padding-block-end:var(--rp-home-feature-bottom) !important;
  align-items:center !important;
}

/* Optical spacing inside the sections. */
html body.rp-page-index.rp-home-luxury-spacing .rp-services-heading{
  margin-bottom:var(--rp-home-heading-space) !important;
}
html body.rp-page-index.rp-home-luxury-spacing .rp-services-heading > p{
  align-self:end;
  margin-bottom:clamp(2px,.7vw,12px) !important;
}
html body.rp-page-index.rp-home-luxury-spacing .rp-service-viewport{
  padding-top:clamp(14px,1.8vh,24px) !important;
  padding-bottom:clamp(26px,3.4vh,48px) !important;
}
html body.rp-page-index.rp-home-luxury-spacing .rp-carousel-controls{
  margin-top:clamp(18px,2.2vw,34px) !important;
}
html body.rp-page-index.rp-home-luxury-spacing .rp-services-all{
  margin-top:clamp(26px,3vw,48px) !important;
}

html body.rp-page-index.rp-home-luxury-spacing .reel-content,
html body.rp-page-index.rp-home-luxury-spacing .final-cta-content{
  align-self:center;
}
html body.rp-page-index.rp-home-luxury-spacing .reel-content h2,
html body.rp-page-index.rp-home-luxury-spacing .final-cta-content h2{
  margin-bottom:clamp(24px,2.4vw,38px) !important;
}
html body.rp-page-index.rp-home-luxury-spacing .reel-content > p:not(.kicker),
html body.rp-page-index.rp-home-luxury-spacing .final-cta-content > p:not(.kicker){
  margin-top:0 !important;
  margin-bottom:clamp(28px,3vw,44px) !important;
}

html body.rp-page-index.rp-home-luxury-spacing .approach-grid,
html body.rp-page-index.rp-home-luxury-spacing .testimonials-grid{
  width:min(calc(100% - (var(--rp-safe-inline) * 2)),var(--rp-final-container,1320px)) !important;
  margin-inline:auto !important;
  align-content:center !important;
}
html body.rp-page-index.rp-home-luxury-spacing .approach h2,
html body.rp-page-index.rp-home-luxury-spacing .testimonials h2{
  margin-bottom:clamp(24px,2.4vw,38px) !important;
}
html body.rp-page-index.rp-home-luxury-spacing .approach-copy > p:not(.kicker){
  margin-top:0 !important;
}
html body.rp-page-index.rp-home-luxury-spacing .steps{
  margin-top:clamp(42px,4vw,68px) !important;
  margin-bottom:clamp(30px,3vw,48px) !important;
}
html body.rp-page-index.rp-home-luxury-spacing .testimonial-cards{
  align-items:stretch !important;
}
html body.rp-page-index.rp-home-luxury-spacing .testimonial-dots{
  margin-top:clamp(22px,2.4vw,38px) !important;
}

/* Short laptops retain the luxury hierarchy without hiding the next action. */
@media (min-width:761px) and (max-height:900px){
  html body.rp-page-index.rp-home-luxury-spacing{
    --rp-home-section-top:clamp(70px,9vh,84px);
    --rp-home-section-bottom:clamp(82px,10.5vh,98px);
    --rp-home-feature-top:clamp(72px,9.5vh,88px);
    --rp-home-feature-bottom:clamp(84px,11vh,102px);
    --rp-home-heading-space:clamp(34px,4.5vh,48px);
  }
  html body.rp-page-index.rp-home-luxury-spacing main > :is(
    .services.rp-services-showcase,
    .approach,
    .testimonials,
    .reel,
    .final-cta
  ){
    min-height:auto !important;
  }
}

/* Tablets and phones: premium breathing remains visible, but content flow wins. */
@media (max-width:1100px){
  html body.rp-page-index.rp-home-luxury-spacing{
    --rp-home-section-top:clamp(82px,12vw,112px);
    --rp-home-section-bottom:clamp(94px,14vw,126px);
    --rp-home-feature-top:clamp(86px,13vw,118px);
    --rp-home-feature-bottom:clamp(98px,15vw,134px);
    --rp-home-heading-space:clamp(34px,6vw,54px);
  }
  html body.rp-page-index.rp-home-luxury-spacing main > :is(
    .services.rp-services-showcase,
    .approach,
    .testimonials
  ){
    min-height:auto !important;
  }
}

@media (max-width:760px){
  html body.rp-page-index.rp-home-luxury-spacing{
    --rp-home-section-top:clamp(76px,21vw,96px);
    --rp-home-section-bottom:clamp(88px,24vw,110px);
    --rp-home-feature-top:clamp(80px,22vw,100px);
    --rp-home-feature-bottom:clamp(92px,25vw,116px);
    --rp-home-heading-space:clamp(30px,9vw,44px);
    --rp-home-content-space:clamp(24px,7vw,34px);
  }
  html body.rp-page-index.rp-home-luxury-spacing main > :is(
    .services.rp-services-showcase,
    .approach,
    .testimonials,
    .reel,
    .final-cta
  ){
    min-height:auto !important;
  }
  html body.rp-page-index.rp-home-luxury-spacing main > .reel{
    min-height:82svh !important;
  }
  html body.rp-page-index.rp-home-luxury-spacing main > .final-cta{
    min-height:72svh !important;
  }
  html body.rp-page-index.rp-home-luxury-spacing .rp-services-heading{
    gap:var(--rp-home-content-space) !important;
  }
  html body.rp-page-index.rp-home-luxury-spacing .steps{
    margin-top:clamp(34px,10vw,46px) !important;
  }
}

@media (max-width:380px){
  html body.rp-page-index.rp-home-luxury-spacing{
    --rp-home-section-top:68px;
    --rp-home-section-bottom:82px;
    --rp-home-feature-top:72px;
    --rp-home-feature-bottom:88px;
  }
}


/* Final cascade protection for short notebooks and landscape tablets. */
@media (min-width:761px) and (max-height:900px){
  html body.rp-page-index.rp-home-luxury-spacing{
    --rp-home-section-top:clamp(70px,9vh,84px);
    --rp-home-section-bottom:clamp(82px,10.5vh,98px);
    --rp-home-feature-top:clamp(72px,9.5vh,88px);
    --rp-home-feature-bottom:clamp(84px,11vh,102px);
    --rp-home-heading-space:clamp(34px,4.5vh,48px);
  }
  html body.rp-page-index.rp-home-luxury-spacing main > :is(
    .services.rp-services-showcase,
    .approach,
    .testimonials,
    .reel,
    .final-cta
  ){
    min-height:auto !important;
  }
}

/* 4K and 8K+: increase breathing deliberately while retaining a controlled
   editorial content width. */
@media (min-width:2560px) and (min-height:1300px){
  html body.rp-page-index.rp-home-luxury-spacing{
    --rp-home-section-top:160px;
    --rp-home-section-bottom:190px;
    --rp-home-feature-top:172px;
    --rp-home-feature-bottom:204px;
    --rp-home-heading-space:92px;
  }
}
@media (min-width:3840px) and (min-height:1800px){
  html body.rp-page-index.rp-home-luxury-spacing{
    --rp-home-section-top:190px;
    --rp-home-section-bottom:224px;
    --rp-home-feature-top:204px;
    --rp-home-feature-bottom:238px;
    --rp-home-heading-space:108px;
  }
}
@media (min-width:6000px) and (min-height:2800px){
  html body.rp-page-index.rp-home-luxury-spacing{
    --rp-home-section-top:228px;
    --rp-home-section-bottom:268px;
    --rp-home-feature-top:242px;
    --rp-home-feature-bottom:284px;
    --rp-home-heading-space:126px;
  }
}

/* REAL.PRO V45 — explicit form submission confirmation */
.rp-form-success__receipt{
  margin:14px 0 0;
  padding:13px 15px;
  border:1px solid rgba(30,126,86,.22);
  border-radius:12px;
  background:rgba(30,126,86,.08);
  color:#315f4e;
  font-weight:650;
  line-height:1.55;
}
