/*
Theme Name: Ryan Surveyors Property Pro
Author: OpenAI
Description: Premium UK property, EPC, surveying and retrofit WordPress theme with realistic photography and 3D visual accents.
Version: 5.0.0
Requires at least: 6.0
Requires PHP: 7.4
*/
:root{--navy:#061d35;--navy2:#0a3657;--orange:#f5a019;--green:#6ca83d;--ink:#132637;--muted:#60707c;--soft:#f4f7f8;--line:#dce4e7;--white:#fff;--max:1200px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);line-height:1.55;background:#fff}a{text-decoration:none;color:inherit}.wrap{width:min(var(--max),calc(100% - 40px));margin:auto}
.top{background:#04182b;color:#d8e5ec;font-size:11px}.top .wrap{display:flex;justify-content:space-between;padding:8px 0}.header{background:#071e36;color:#fff;position:sticky;top:0;z-index:50;box-shadow:0 5px 22px #00152525}.nav{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:22px}.brand{font-size:26px;font-weight:950}.brand span{color:var(--orange)}.brand small{display:block;font-size:9px;color:var(--orange);letter-spacing:1.5px}.menu{display:flex;align-items:center;gap:26px;font-size:12px;font-weight:850}.btn{display:inline-block;background:var(--orange);color:#142436;padding:13px 20px;border-radius:6px;font-size:12px;font-weight:900;box-shadow:0 8px 22px #f5a01935;transition:.3s}.btn:hover{transform:translateY(-2px)}.btn.outline{background:transparent;border:1px solid #fff;color:#fff;box-shadow:none}
.hero{min-height:610px;color:#fff;display:flex;align-items:center;background:linear-gradient(90deg,#061d35f5 0%,#061d35d0 43%,#061d3540 72%),url('https://images.unsplash.com/photo-1600585154340-be6161a56a0c?auto=format&fit=crop&w=1900&q=90') center/cover;position:relative;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1fr .85fr;align-items:center;gap:30px}.hero h1{font-size:clamp(44px,5.5vw,68px);line-height:1.02;margin:0 0 18px}.hero p{font-size:17px;color:#e2edf2;max-width:650px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:25px}.hero-trust{display:flex;gap:22px;flex-wrap:wrap;margin-top:28px;font-size:11px;font-weight:800}.hero-trust span:before{content:"✓";color:var(--orange);margin-right:7px}
.epc-card{justify-self:end;width:300px;background:#f7f7f4;color:#152b39;border-radius:20px;padding:22px;box-shadow:0 30px 60px #00101f88;transform:rotate(3deg);animation:float 5s ease-in-out infinite;border:7px solid #fff}.epc-card h3{margin:0 0 12px}.bar{height:27px;margin:5px 0;color:#fff;font-weight:900;padding-left:10px;line-height:27px;clip-path:polygon(0 0,88% 0,100% 50%,88% 100%,0 100%)}.a{width:55%;background:#258b43}.b{width:63%;background:#65a93e}.c{width:72%;background:#a4ba36}.d{width:81%;background:#e4c228}.e{width:89%;background:#e59a21}.f{width:96%;background:#dd6425}.g{width:100%;background:#c92c27}@keyframes float{50%{transform:translateY(-13px) rotate(-2deg)}}
.trust{margin-top:-34px;position:relative;z-index:4}.trustgrid{display:grid;grid-template-columns:repeat(5,1fr);background:#fff;border-radius:12px;box-shadow:0 16px 45px #0a2b3b25;overflow:hidden}.trustitem{padding:20px 14px;border-right:1px solid var(--line);display:flex;gap:10px;align-items:center}.trustitem:last-child{border:0}.trustitem i{font-style:normal;font-size:27px}.trustitem b{display:block;font-size:12px}.trustitem small{color:var(--muted);font-size:9px}
.section{padding:75px 0}.soft{background:var(--soft)}.title{text-align:center;max-width:760px;margin:0 auto 38px}.eyebrow{color:var(--orange);font-size:10px;text-transform:uppercase;letter-spacing:2px;font-weight:900}.title h2,.copy h2{font-size:37px;line-height:1.12;color:var(--navy);margin:7px 0 11px}.title p,.copy p{color:var(--muted)}
.about{display:grid;grid-template-columns:.9fr 1.1fr .65fr;gap:30px;align-items:center}.photo{width:100%;height:360px;object-fit:cover;border-radius:15px;box-shadow:0 15px 35px #0a30401f}.housecut{height:330px;position:relative;perspective:800px}.housebox{position:absolute;inset:40px 15px 20px;background:linear-gradient(145deg,#fff4df,#dfe9e5);border-radius:12px;box-shadow:25px 28px 40px #092d3b2b;transform:rotateY(-10deg)}.housebox:before{content:"";position:absolute;width:180px;height:180px;left:50%;top:-80px;transform:translateX(-50%) rotate(45deg);background:#263e4c;border-radius:8px}.housebox:after{content:"";position:absolute;width:55px;height:95px;left:50%;bottom:0;transform:translateX(-50%);background:#14394a;border:7px solid #fff}.solar{position:absolute;width:130px;height:65px;left:35px;top:25px;background:repeating-linear-gradient(90deg,#153b56 0 25px,#79a8bb 26px 27px);border:3px solid #d7ecf3;transform:skewY(-18deg) rotate(-5deg);z-index:3}
.services{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.service{background:#071f38;color:#fff;border-radius:12px;overflow:hidden;box-shadow:0 10px 30px #082a3c20;transition:.35s}.service:hover{transform:translateY(-8px)}.service img{width:100%;height:150px;object-fit:cover}.servicebody{padding:20px}.service h3{font-size:17px;margin:0 0 8px}.service p{font-size:11px;color:#d2e0e6;min-height:53px}.service a{font-size:11px;font-weight:900;color:#fff}
.stats{display:grid;grid-template-columns:1.1fr repeat(4,.65fr) 1.2fr;gap:14px;align-items:stretch}.van{background:url('https://images.unsplash.com/photo-1560179707-f14e90ef3623?auto=format&fit=crop&w=700&q=80') center/cover;border-radius:12px;min-height:160px}.stat,.testimonial{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;display:grid;place-items:center;text-align:center}.stat strong{font-size:28px;color:var(--navy)}.stat span{font-size:10px}.testimonial{display:block;text-align:left;font-size:11px}.stars{color:var(--orange);letter-spacing:2px}
.process{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.step{text-align:center;padding:20px}.step i{font-style:normal;width:70px;height:70px;margin:auto;display:grid;place-items:center;border-radius:50%;background:#fff;border:3px solid var(--orange);font-size:26px;box-shadow:0 10px 25px #0b304019}.step b{display:block;margin:12px 0 5px}.step p{font-size:11px;color:var(--muted)}
.gallery{display:grid;grid-template-columns:1.3fr 1fr 1fr;grid-template-rows:220px 220px;gap:14px}.gallery img{width:100%;height:100%;object-fit:cover;border-radius:12px}.gallery img:first-child{grid-row:1/3}
.cta{background:linear-gradient(90deg,#061d35,#0b3c5b);color:#fff;padding:35px;border-radius:15px;display:flex;align-items:center;justify-content:space-between;gap:25px}.cta h2{margin:0;font-size:30px}.cta p{margin:5px 0 0;color:#d8e6ec}
.pagehero{padding:85px 0;color:#fff;background:linear-gradient(90deg,#061d35ee,#0b3c5ba8),url('https://images.unsplash.com/photo-1564013799919-ab600027ffc6?auto=format&fit=crop&w=1800&q=85') center/cover}.pagehero h1{font-size:48px;margin:0 0 10px}.content{max-width:900px}.content h2{font-size:36px;color:var(--navy)}.content h3{color:var(--navy);font-size:24px}.ticks{list-style:none;padding:0}.ticks li{margin:10px 0}.ticks li:before{content:"✓";color:var(--green);font-weight:900;margin-right:10px}.quote{display:grid;grid-template-columns:1fr 1fr;gap:13px}.quote input,.quote select,.quote textarea{padding:13px;border:1px solid #cbd6da;border-radius:6px;font:inherit}.quote textarea{grid-column:1/-1;min-height:120px}.quote button{border:0}
footer{background:#04182b;color:#cbdce4;padding:45px 0 15px}.foot{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:30px}.foot h4{color:#fff}.foot a{display:block;font-size:10px;margin:6px 0}.copyright{border-top:1px solid #ffffff1b;margin-top:25px;padding-top:12px;font-size:9px}
.reveal{opacity:0;transform:translateY(25px);transition:.65s}.reveal.on{opacity:1;transform:none}
@media(max-width:950px){.menu{display:none}.hero-grid,.about{grid-template-columns:1fr}.epc-card{justify-self:start}.trustgrid,.services{grid-template-columns:1fr 1fr}.stats{grid-template-columns:1fr 1fr 1fr}.gallery{grid-template-columns:1fr 1fr}.foot{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.hero h1,.pagehero h1{font-size:38px}.trustgrid,.services,.stats,.process,.gallery,.foot,.quote{grid-template-columns:1fr}.gallery{grid-template-rows:auto}.gallery img,.gallery img:first-child{height:220px;grid-row:auto}.quote textarea{grid-column:auto}.section{padding:55px 0}}

/* V1.1 — animated 3D hero */
.hero3d{min-height:680px;background:
radial-gradient(circle at 75% 30%,#18c8c33b,transparent 23%),
radial-gradient(circle at 88% 75%,#f5a01925,transparent 25%),
linear-gradient(115deg,#04182b 0%,#072b47 56%,#07535d 100%);overflow:hidden;isolation:isolate}
.hero3d:before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(90deg,transparent,#000)}
.hero-copy3d{position:relative;z-index:8}.hero-tag{display:inline-block;padding:8px 12px;border:1px solid #65e8df65;border-radius:30px;color:#77eee5;font-size:9px;font-weight:900;letter-spacing:2px;margin-bottom:16px;animation:tagpulse 3s ease-in-out infinite}
.hero-copy3d h1 span{display:inline-block;animation:titlein .8s ease both}.hero-copy3d h1 em{font-style:normal;color:#74e6dc;display:inline-block;animation:titlein .8s .18s ease both}
.hero-copy3d p{animation:titlein .8s .35s ease both}
.hero-visual3d{height:540px;position:relative;perspective:1200px;transform-style:preserve-3d}
.ground3d{position:absolute;width:450px;height:280px;left:50%;top:57%;transform:translate(-50%,-50%) rotateX(68deg) rotateZ(-7deg);background:linear-gradient(145deg,#d5eee8,#78afa9);border-radius:45%;box-shadow:35px 50px 65px #00131e70}
.home3d{position:absolute;width:310px;height:300px;left:49%;top:48%;transform:translate(-50%,-50%);filter:drop-shadow(28px 35px 30px #00131e66);animation:homefloat 5s ease-in-out infinite;transform-style:preserve-3d}
.roof3d{position:absolute;width:218px;height:218px;left:46px;top:1px;background:linear-gradient(145deg,#365362,#102838);transform:rotate(45deg);border-radius:10px}
.wall3d{position:absolute;left:22px;right:22px;bottom:8px;height:185px;background:linear-gradient(145deg,#fff7e9,#dce9e4);border-radius:7px;padding:54px 22px 17px;display:grid;grid-template-columns:1fr .85fr 1fr;gap:14px;box-shadow:inset -22px -12px 28px #adc3bd50}
.win3d{background:linear-gradient(135deg,#4cb8d0,#dffaff);border:6px solid #fff;box-shadow:inset 0 0 15px #07516d55}.door3d{background:linear-gradient(145deg,#16495b,#071d2d);border:6px solid #fff}
.solar3d{position:absolute;width:145px;height:74px;left:45px;top:57px;z-index:4;background:repeating-linear-gradient(90deg,#143b57 0 30px,#71a6ba 31px 32px);border:4px solid #d8eef3;transform:skewY(-18deg) rotate(-4deg);box-shadow:10px 12px 20px #00162155}.solar3d:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 25%,#ffffff70 45%,transparent 60%);animation:solarshine 3.5s linear infinite}
.data-card{position:absolute;background:#ffffffed;color:#17303c;padding:14px 16px;border-radius:14px;box-shadow:0 20px 40px #00141e65;backdrop-filter:blur(10px);z-index:6;animation:cardfloat 4.8s ease-in-out infinite}.data-card small{display:block;font-size:8px;color:#718089}.dc-epc{right:0;top:48px;width:145px}.dc-epc strong{font-size:37px;color:#4ca34e}.mini-meter{height:7px;background:#dce5e4;border-radius:10px;overflow:hidden}.mini-meter i{display:block;width:76%;height:100%;background:linear-gradient(90deg,#54b95e,#efb62e);animation:meterload 2.4s ease both}.dc-survey{left:-5px;bottom:65px;animation-delay:-1.5s}.dc-retro{right:5px;bottom:32px;animation-delay:-3s}
.energy-orb{position:absolute;width:62px;height:62px;right:85px;top:205px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#f9ca52,#f39416);font-size:25px;box-shadow:0 0 0 10px #f5a01918,0 0 35px #f5a01980;animation:orb 4s ease-in-out infinite}
.glow-ring{position:absolute;border:1px solid #6ce9e65c;border-radius:50%;animation:ringrotate 12s linear infinite}.r1{width:420px;height:420px;left:10%;top:10%}.r2{width:310px;height:310px;left:21%;top:20%;animation-direction:reverse;animation-duration:9s}.glow-ring:after{content:"";position:absolute;width:11px;height:11px;border-radius:50%;background:#72e7df;top:22px;left:70px;box-shadow:0 0 20px #72e7df}
.hero-particles i{position:absolute;width:5px;height:5px;border-radius:50%;background:#70e7df;box-shadow:0 0 15px #70e7df;animation:particle 6s ease-in-out infinite}.hero-particles i:nth-child(1){left:8%;top:20%}.hero-particles i:nth-child(2){left:45%;top:15%;animation-delay:-2s}.hero-particles i:nth-child(3){left:35%;top:75%;animation-delay:-4s}.hero-particles i:nth-child(4){right:8%;top:15%;animation-delay:-1s}.hero-particles i:nth-child(5){right:4%;bottom:20%;animation-delay:-3s}.hero-particles i:nth-child(6){left:15%;bottom:12%;animation-delay:-5s}
@keyframes titlein{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:none}}@keyframes tagpulse{50%{box-shadow:0 0 25px #65e8df35}}@keyframes homefloat{50%{transform:translate(-50%,-55%) rotate(1deg)}}@keyframes cardfloat{50%{transform:translateY(-13px) rotate(1.5deg)}}@keyframes solarshine{from{transform:translateX(-140%)}to{transform:translateX(140%)}}@keyframes meterload{from{width:8%}}@keyframes orb{50%{transform:translateY(-12px) scale(1.08)}}@keyframes ringrotate{to{transform:rotate(360deg)}}@keyframes particle{50%{transform:translateY(-30px);opacity:.3}}
@media(max-width:950px){.hero3d .hero-grid{grid-template-columns:1fr}.hero-visual3d{height:480px}.dc-survey{left:8%}.dc-epc{right:8%}.dc-retro{right:10%}}
@media(max-width:600px){.hero3d{min-height:900px}.hero-copy3d h1{font-size:43px}.hero-visual3d{height:430px;transform:scale(.82);margin:-25px -45px}.data-card{font-size:10px}}
@media(prefers-reduced-motion:reduce){.hero3d *{animation:none!important}}

/* V1.2 realistic-image refinement */
.hero3d:after{
 content:"";position:absolute;inset:0;z-index:-2;
 background:
 linear-gradient(90deg,#04182bf2 0%,#05243dd9 45%,#06424da8 100%),
 url('https://images.unsplash.com/photo-1600585154340-be6161a56a0c?auto=format&fit=crop&w=1900&q=90') center/cover no-repeat;
 opacity:.72
}
.service img,.gallery img,.photo{filter:none}
.service img{height:175px}
.gallery img{transition:transform .45s ease,filter .45s ease}
.gallery img:hover{transform:scale(1.025)}

/* V1.3 — replace remaining artificial property renders with real photography */
.hero-visual-real{height:540px;position:relative;perspective:1200px}
.hero-photo-frame{position:absolute;width:430px;height:390px;left:50%;top:50%;transform:translate(-50%,-50%) rotateY(-5deg);border:8px solid #ffffffd9;border-radius:24px;overflow:hidden;box-shadow:30px 35px 60px #00131e75;animation:realphotofloat 6s ease-in-out infinite}
.hero-photo-frame img{width:100%;height:100%;object-fit:cover;display:block}
.photo-shade{position:absolute;inset:0;background:linear-gradient(145deg,transparent 45%,#05243d70)}
.hero-visual-real .dc-epc{right:-5px;top:55px}
.hero-visual-real .dc-survey{left:-5px;bottom:78px}
.hero-visual-real .dc-retro{right:8px;bottom:35px}
.real-property-card{height:350px;position:relative;border-radius:18px;overflow:hidden;box-shadow:0 18px 40px #092d3b2b}
.real-property-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}
.real-property-card:hover img{transform:scale(1.045)}
.real-property-label{position:absolute;left:16px;right:16px;bottom:16px;padding:15px 17px;border-radius:12px;background:#061d35e8;color:#fff;backdrop-filter:blur(8px);box-shadow:0 10px 25px #00121e45}
.real-property-label b,.real-property-label span{display:block}.real-property-label b{font-size:13px}.real-property-label span{font-size:9px;color:#d9e7ec;margin-top:3px}
@keyframes realphotofloat{50%{transform:translate(-50%,-53%) rotateY(4deg)}}
@media(max-width:950px){.hero-visual-real{height:500px}.hero-photo-frame{width:min(430px,78vw)}}
@media(max-width:600px){.hero-visual-real{height:430px}.hero-photo-frame{width:330px;height:310px}.hero-visual-real .dc-survey{left:0}.hero-visual-real .dc-epc{right:0}}

/* V2 complete service pages */
.service-hero{padding:75px 0;background:radial-gradient(circle at 80% 15%,#18b8b526,transparent 25%),linear-gradient(115deg,#04182b,#083957);color:#fff;overflow:hidden}.service-hero-grid{display:grid;grid-template-columns:1fr .9fr;gap:60px;align-items:center}.service-hero-copy h1{font-size:clamp(42px,5vw,60px);line-height:1.04;margin:10px 0 18px}.service-hero-copy p{font-size:16px;color:#dbe8ed}.service-badges{display:flex;gap:15px;flex-wrap:wrap;margin-top:24px;font-size:10px;font-weight:800}
.service-photo-wrap{height:430px;position:relative}.service-photo-wrap>img{width:100%;height:100%;object-fit:cover;border-radius:22px;border:7px solid #ffffffd8;box-shadow:28px 32px 55px #00121f80;animation:svcfloat 6s ease-in-out infinite}.service-float-card{position:absolute;left:-25px;bottom:25px;background:#fff;color:var(--navy);border-radius:13px;padding:14px 17px;box-shadow:0 18px 40px #00131e55}.service-float-card b,.service-float-card small{display:block}.service-float-card small{font-size:9px;color:var(--muted)}
.service-intro-grid,.service-feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.service-check-panel{background:linear-gradient(145deg,#071f38,#0a4560);color:#fff;padding:30px;border-radius:18px;box-shadow:0 18px 40px #092d3d28}.service-check-panel h3{font-size:24px;margin-top:0}.service-check-panel ul{list-style:none;padding:0}.service-check-panel li{padding:11px 0;border-bottom:1px solid #ffffff18;font-size:12px}.service-check-panel li:before{content:"✓";color:#76e1d7;font-weight:900;margin-right:10px}
.service-process{display:grid;grid-template-columns:repeat(4,1fr);gap:17px}.service-step{background:#fff;border:1px solid var(--line);border-radius:15px;padding:25px;box-shadow:0 9px 25px #092e3d0e}.service-step-num{font-size:28px;font-weight:950;color:var(--orange)}.service-step h3{color:var(--navy);margin:9px 0}.service-step p{font-size:11px;color:var(--muted)}
.service-real-photo{height:430px;position:relative;border-radius:18px;overflow:hidden;box-shadow:0 18px 40px #092d3b22}.service-real-photo img{width:100%;height:100%;object-fit:cover;transition:.6s}.service-real-photo:hover img{transform:scale(1.04)}.photo-caption{position:absolute;left:18px;right:18px;bottom:18px;background:#04182be8;color:#fff;padding:15px;border-radius:11px}.photo-caption b,.photo-caption span{display:block}.photo-caption span{font-size:9px;color:#d6e4e9}
.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:23px}.why-grid div{padding:16px;border:1px solid var(--line);border-radius:10px}.why-grid b{color:var(--orange);font-size:18px;margin-right:7px}.why-grid span{font-size:11px;font-weight:850}
.faq-layout{display:grid;grid-template-columns:.7fr 1.3fr;gap:60px}.faq-layout h2{font-size:35px;color:var(--navy)}.faq-list{display:grid;gap:10px}.faq-item{background:#fff;border:1px solid var(--line);border-radius:10px;padding:0 18px}.faq-item summary{cursor:pointer;list-style:none;padding:17px 0;font-size:13px;font-weight:900;color:var(--navy);display:flex;justify-content:space-between}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary span{color:var(--orange);font-size:20px}.faq-item p{margin:0;padding-bottom:18px;color:var(--muted);font-size:11px}
.quote-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:50px}.quote-copy h2{font-size:37px;color:var(--navy);margin:7px 0}.contact-cards{display:grid;gap:10px;margin-top:23px}.contact-cards div{border-left:4px solid var(--orange);background:var(--soft);padding:13px}.contact-cards b,.contact-cards span{display:block;font-size:11px}.contact-cards span{color:var(--muted)}
.service-quote-form{display:grid;grid-template-columns:1fr 1fr;gap:13px;padding:26px;border:1px solid var(--line);border-radius:15px;box-shadow:0 15px 40px #092e3d16}.service-quote-form label{display:block;font-size:9px;font-weight:900;margin-bottom:5px}.service-quote-form input,.service-quote-form textarea{width:100%;padding:13px;border:1px solid #cbd7da;border-radius:6px;font:inherit}.service-quote-form textarea{min-height:120px}.service-quote-form .full{grid-column:1/-1}.service-quote-form button{border:0}
.service-bottom-cta{padding:40px 0;background:linear-gradient(100deg,#061d35,#0a4660);color:#fff}.service-bottom-cta .wrap{display:flex;justify-content:space-between;align-items:center}.service-bottom-cta h2{margin:0;font-size:29px}.service-bottom-cta p{margin:4px 0;color:#d6e5ea;font-size:12px}
@keyframes svcfloat{50%{transform:translateY(-7px)}}
@media(max-width:950px){.service-hero-grid,.service-intro-grid,.service-feature-grid,.faq-layout,.quote-layout{grid-template-columns:1fr}.service-process{grid-template-columns:1fr 1fr}.service-float-card{left:15px}}
@media(max-width:600px){.service-process,.why-grid,.service-quote-form{grid-template-columns:1fr}.service-quote-form .full{grid-column:auto}.service-photo-wrap{height:330px}.service-bottom-cta .wrap{display:block}.service-bottom-cta .btn{margin-top:15px}}

/* V2.1 Services landing-page repair */
.services-main-hero{padding:75px 0;background:linear-gradient(110deg,#04182b,#083d58);color:#fff}.services-main-grid{display:grid;grid-template-columns:1fr 1fr;gap:55px;align-items:center}.services-main-hero h1{font-size:clamp(43px,5vw,62px);line-height:1.03;margin:8px 0 16px}.services-main-hero p{color:#dce8ed;font-size:16px;max-width:600px}.services-hero-photo{height:390px;border:7px solid #ffffffd8;border-radius:22px;overflow:hidden;box-shadow:25px 30px 55px #00121f70}.services-hero-photo img{width:100%;height:100%;object-fit:cover}
.services-overview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.overview-card{background:#fff;border:1px solid var(--line);border-radius:15px;overflow:hidden;box-shadow:0 12px 30px #092d3c14;transition:.35s}.overview-card:hover{transform:translateY(-7px);box-shadow:0 22px 42px #092d3c24}.overview-card img{width:100%;height:205px;object-fit:cover}.overview-card-body{padding:22px}.overview-card h3{font-size:20px;color:var(--navy);margin:0 0 8px}.overview-card p{font-size:11px;color:var(--muted);min-height:52px}.overview-card a{font-size:11px;font-weight:900;color:#0b6271}
@media(max-width:950px){.services-main-grid{grid-template-columns:1fr}.services-overview-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.services-overview-grid{grid-template-columns:1fr}.services-hero-photo{height:300px}}

.service-quote-form select{width:100%;padding:13px;border:1px solid #cbd7da;border-radius:6px;background:#fff;font:inherit}

/* V3.0 expanded menu pages */
.long-hero{min-height:520px;display:flex;align-items:center;color:#fff;background:linear-gradient(90deg,#04182bf5,#052d49c8 55%,#052d4950),var(--bg) center/cover no-repeat}.long-hero .wrap{padding-top:55px;padding-bottom:55px}.long-hero h1{font-size:clamp(43px,5.5vw,66px);line-height:1.03;max-width:820px;margin:8px 0 18px}.long-hero p{max-width:700px;font-size:16px;color:#e1edf1}.split-long{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.uk-feature{width:100%;height:440px;object-fit:cover;border-radius:18px;box-shadow:0 18px 42px #092d3b25}.info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:17px}.info-grid article{background:#fff;border:1px solid var(--line);border-radius:14px;padding:25px;box-shadow:0 10px 25px #092d3b10}.info-grid article>b{font-size:25px;color:var(--orange)}.info-grid h3{color:var(--navy);font-size:18px;margin:10px 0 7px}.info-grid p{font-size:11px;color:var(--muted)}
@media(max-width:950px){.split-long{grid-template-columns:1fr}.info-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.long-hero{min-height:440px}.info-grid{grid-template-columns:1fr}.uk-feature{height:320px}}

/* V4.0 dedicated full service pages */
.full-service-hero{min-height:570px;display:flex;align-items:center;color:#fff;background:linear-gradient(90deg,#031629f7 0%,#052b46d8 52%,#052b4660 100%),var(--svc-bg) center/cover no-repeat}.full-service-hero .wrap{padding-top:65px;padding-bottom:65px}.full-service-hero h1{font-size:clamp(44px,5.7vw,70px);line-height:1.01;max-width:850px;margin:9px 0 18px}.full-service-hero p{max-width:700px;font-size:17px;color:#e3edf1}.service-story{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.service-story.reverse{grid-template-columns:1fr 1fr}.detail-panel{max-width:1000px;margin:auto;background:#fff;border:1px solid var(--line);padding:28px 34px;border-radius:16px;box-shadow:0 12px 32px #092d3b10}.big-ticks{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:12px 25px}.big-ticks li{font-size:12px;font-weight:750;color:var(--navy);padding:12px 12px 12px 39px;background:#f7faf9;border-radius:9px;position:relative}.big-ticks li:before{content:"✓";position:absolute;left:13px;color:#15958d;font-weight:950}.service-two-col{display:grid;grid-template-columns:1fr 1fr;gap:22px}.detail-card{padding:34px;border:1px solid var(--line);border-radius:17px;background:#fff;box-shadow:0 12px 30px #092d3b10}.detail-card.dark{background:linear-gradient(145deg,#061d35,#0a4960);color:#fff}.detail-card h2{font-size:30px;color:var(--navy)}.detail-card.dark h2{color:#fff}.detail-card.dark .big-ticks li{background:#ffffff0c;color:#fff}.service-process.six{grid-template-columns:repeat(3,1fr)}
@media(max-width:950px){.service-story,.service-story.reverse,.service-two-col{grid-template-columns:1fr}.service-process.six{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.full-service-hero{min-height:500px}.big-ticks,.service-process.six{grid-template-columns:1fr}}

/* V4.1 Ryan Surveyors supplied logo */
.brand-logo{display:flex!important;align-items:center;width:250px;height:66px;overflow:hidden;border-radius:5px;background:#0a0e12;flex:0 0 auto}
.brand-logo img{width:100%;height:100%;display:block;object-fit:contain;object-position:center}
@media(max-width:1050px){.brand-logo{width:205px;height:58px}}
@media(max-width:600px){.brand-logo{width:175px;height:52px}}

/* V4.2 same Ryan Surveyors logo in footer */
.footer-brand-logo{display:block;width:285px;max-width:100%;height:76px;margin:0 0 18px;overflow:hidden;border-radius:5px;background:#0a0e12}
.footer-brand-logo img{width:100%;height:100%;display:block;object-fit:contain;object-position:center}
@media(max-width:600px){.footer-brand-logo{width:225px;height:62px}}

/* V5.0 — site-wide 3D motion system */
:root{--mx:0deg;--my:0deg}
body{overflow-x:hidden}
header{backdrop-filter:blur(14px);transform-style:preserve-3d}
.brand-logo,.footer-brand-logo{transform:translateZ(0);transition:transform .45s cubic-bezier(.2,.8,.2,1),filter .45s}
.brand-logo:hover{transform:perspective(700px) rotateY(-6deg) rotateX(3deg) scale(1.035);filter:drop-shadow(0 13px 18px #00111e55)}
.menu a:not(.btn){position:relative;transition:transform .3s,color .3s}.menu a:not(.btn):hover{transform:translateY(-2px)}
.btn{transform:translateZ(0);transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s!important}.btn:hover{transform:translateY(-4px) scale(1.025);box-shadow:0 15px 28px #001a2850!important}

/* cinematic hero depth */
.hero3d,.long-hero,.full-service-hero,.services-main-hero{position:relative;isolation:isolate;overflow:hidden}
.hero3d:before,.long-hero:after,.full-service-hero:after,.services-main-hero:after{content:"";position:absolute;width:520px;height:520px;border:1px solid #69e8e433;border-radius:50%;right:-180px;top:-210px;z-index:-1;animation:orbitSlow 18s linear infinite;box-shadow:0 0 70px #26b8bd12}
.long-hero .wrap,.full-service-hero .wrap,.services-main-hero .wrap{position:relative;z-index:2;animation:heroEnter .85s ease both}
.long-hero h1,.full-service-hero h1,.services-main-hero h1{text-shadow:0 14px 28px #00131f55;transform:translateZ(25px)}
.long-hero{background-attachment:fixed}
.full-service-hero{background-attachment:fixed}

/* universal 3D cards */
.card,.service,.overview-card,.info-grid article,.service-step,.detail-card,.faq-item,.service-check-panel,.contact-cards div,.why-grid div,.service-quote-form{transform-style:preserve-3d;backface-visibility:hidden;transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s,border-color .45s}
.card:hover,.service:hover,.overview-card:hover,.info-grid article:hover,.service-step:hover,.detail-card:hover,.why-grid div:hover{transform:perspective(900px) translateY(-9px) rotateX(2.5deg) rotateY(-2deg);box-shadow:0 24px 48px #062b3a28!important}
.info-grid article b,.service-step-num{display:inline-block;transform:translateZ(28px);transition:transform .35s}
.info-grid article:hover b,.service-step:hover .service-step-num{transform:translateZ(45px) scale(1.08)}

/* photography with perspective depth */
.uk-feature,.service-real-photo,.services-hero-photo,.service-photo-wrap,.hero-photo-frame,.real-property-card{transform-style:preserve-3d;transition:transform .6s cubic-bezier(.2,.8,.2,1),box-shadow .6s}
.uk-feature:hover,.services-hero-photo:hover,.real-property-card:hover{transform:perspective(1100px) rotateY(-3deg) rotateX(2deg) translateY(-7px) scale(1.015);box-shadow:28px 32px 55px #001c2d35}
.service-real-photo:hover{transform:perspective(1000px) rotateY(3deg) translateY(-6px)}
.service-story .uk-feature{animation:photoFloat 7s ease-in-out infinite}
.service-story.reverse .uk-feature{animation-delay:-3.5s}

/* floating decorative 3D energy nodes */
.section{position:relative}
.section:nth-of-type(3n):before{content:"";position:absolute;width:14px;height:14px;border-radius:4px;background:linear-gradient(145deg,#27c8c1,#087089);right:4%;top:18%;transform:rotate(45deg);box-shadow:0 0 0 8px #1fb8b812,0 10px 25px #063e4b35;animation:nodeFloat 5s ease-in-out infinite;pointer-events:none}
.section:nth-of-type(4n):after{content:"";position:absolute;width:32px;height:32px;border:1px solid #f5a01970;border-radius:50%;left:3%;bottom:15%;box-shadow:inset 0 0 15px #f5a01925,0 0 20px #f5a01918;animation:nodeSpin 8s linear infinite;pointer-events:none}

/* reveal system controlled by JS */
.motion-ready .reveal3d{opacity:0;transform:perspective(900px) translateY(38px) rotateX(7deg) scale(.98);transition:opacity .75s ease,transform .85s cubic-bezier(.16,.8,.24,1)}
.motion-ready .reveal3d.in-view{opacity:1;transform:perspective(900px) translateY(0) rotateX(0) scale(1)}
.motion-ready .reveal3d:nth-child(2){transition-delay:.08s}.motion-ready .reveal3d:nth-child(3){transition-delay:.16s}.motion-ready .reveal3d:nth-child(4){transition-delay:.24s}

/* process connecting glow */
.service-process{position:relative}.service-process:before{content:"";position:absolute;height:2px;left:5%;right:5%;top:49px;background:linear-gradient(90deg,transparent,#21b7b5,#f4a21b,#21b7b5,transparent);opacity:.28;animation:processGlow 4s ease-in-out infinite}.service-step{z-index:1}

/* FAQ / form depth */
.faq-item[open]{transform:translateX(5px);box-shadow:0 13px 30px #082f4015}
.service-quote-form:focus-within{transform:perspective(1200px) translateY(-4px);box-shadow:0 25px 55px #082d3d22}
.service-quote-form input:focus,.service-quote-form textarea:focus,.service-quote-form select:focus{outline:none;border-color:#159b9a;box-shadow:0 0 0 3px #159b9a15}

/* footer depth */
footer{position:relative;overflow:hidden}
footer:after{content:"";position:absolute;width:380px;height:380px;border:1px solid #39c9c520;border-radius:50%;right:-160px;bottom:-230px;animation:orbitSlow 20s linear infinite}
.footer-brand-logo:hover{transform:perspective(700px) rotateY(6deg) scale(1.025)}

/* pointer parallax for capable devices */
@media (hover:hover) and (pointer:fine){
 .motion-tilt{transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(var(--lift,0px));will-change:transform}
}
@keyframes heroEnter{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes orbitSlow{to{transform:rotate(360deg)}}
@keyframes photoFloat{0%,100%{transform:perspective(1000px) translateY(0) rotateY(0)}50%{transform:perspective(1000px) translateY(-8px) rotateY(1.5deg)}}
@keyframes nodeFloat{50%{transform:translateY(-18px) rotate(135deg)}}
@keyframes nodeSpin{to{transform:rotate(360deg)}}
@keyframes processGlow{50%{opacity:.6;filter:drop-shadow(0 0 8px #26bbb7)}}
@media(max-width:950px){.long-hero,.full-service-hero{background-attachment:scroll}.service-process:before{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.motion-ready .reveal3d{opacity:1!important;transform:none!important}}
