/* Grad Surveying: approved Concept 3. Editable CSS, no framework required. */
:root{--navy:#0c2644;--blue:#0063da;--gold:#ae894a;--text:#142b47;--muted:#53647a;--line:#dce5ee;--wash:#f5f8fb;--max:1280px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;font:15px/1.45 Arial,Helvetica,sans-serif;color:var(--text);background:#fff}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.65}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #2973bf;outline-offset:4px}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.1}h1{font-size:clamp(42px,4.25vw,63px);letter-spacing:-2.6px;font-weight:750}h2{font-size:clamp(28px,2.7vw,37px);letter-spacing:-1.2px;font-weight:700}h3{font-size:17px;letter-spacing:-.2px}.wrap{width:min(var(--max),92%);margin-inline:auto}.icon{width:22px;height:22px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.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:-100px;left:12px;z-index:50;padding:12px 20px;color:white;background:var(--navy)}.skip-link:focus{top:8px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:12px 20px;border:1px solid transparent;border-radius:4px;background:var(--navy);color:#fff;font-size:13px;line-height:1.2;font-weight:700;text-align:center;transition:background .15s,box-shadow .15s}.button .icon{width:17px;height:17px}.button.gold{background:linear-gradient(115deg,#96723e,#ad8b4d);color:white}.button.outline{background:#fffffff0;border-color:#b0c0cf;color:var(--navy)}.button.white{background:#fff;color:var(--navy)}.button.blue{background:var(--blue)}.button.small{min-height:38px;padding:10px 16px;font-size:12px}.actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.text-link{color:var(--blue);font-size:12px;font-weight:700;display:inline-flex;gap:7px;align-items:center}.text-link .icon{width:15px;height:15px}.eyebrow{margin-bottom:8px;text-transform:uppercase;letter-spacing:1.35px;font-size:10px;line-height:1.3;font-weight:700;color:#405a78}.eyebrow.light{color:#edf2f8}.eyebrow.brand-case{text-transform:none}
/* Header and navigation */
.site-header{position:sticky;top:0;z-index:20;background:#fffffff5;border-bottom:1px solid #eaf0f4;backdrop-filter:blur(14px)}.header-inner{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:22px}.brand{display:flex;align-items:center;gap:8px;white-space:nowrap}.brand img{width:43px;height:43px;object-fit:contain}.brand span{font-size:19px;letter-spacing:-.65px;font-weight:400}.brand b{font-weight:700}#navigation{display:flex;align-items:center;gap:26px;margin-left:auto}#navigation a{font-size:12px;font-weight:700;padding-block:20px}.header-actions{display:flex;gap:22px;align-items:center;margin-left:30px}.contact-link{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;white-space:nowrap}.contact-link .icon{width:15px;height:15px}.menu-toggle{display:none;background:none;color:var(--navy);border:1px solid var(--line);border-radius:4px;min-width:42px;min-height:42px;align-items:center;justify-content:center}
/* Hero. The trust strip is part of the hero, not a separate full-width card. */
.hero{position:relative;overflow:hidden;min-height:462px;background:#f1eee6}.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 46%}.hero-wash{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.9) 19%,rgba(255,255,255,.60) 36%,rgba(255,255,255,.14) 56%,transparent 72%)}.hero-inner{position:relative;padding-top:51px;padding-bottom:160px}.hero-copy{max-width:715px}.hero-copy h1 span{color:var(--gold)}.hero-copy p{margin-top:13px;max-width:600px;font-size:17px;line-height:1.45;font-weight:600}.hero-copy .actions{margin-top:24px}.trust-strip{position:absolute;left:0;bottom:0;width:100%;padding:20px 0}.trust-strip:before{position:absolute;content:'';inset:0;background:linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.92) 50%,rgba(255,255,255,.75) 69%,transparent 88%)}.trust-items{display:grid;grid-template-columns:1.2fr 1fr 1.12fr;max-width:1030px;position:relative}.trust-item{display:flex;align-items:center;gap:17px;padding-inline:28px;min-height:60px;border-left:1px solid #bdc8d3b3}.trust-item:first-child{padding-left:0;border:0}.trust-item .icon{width:43px;height:43px;color:var(--navy);stroke-width:1.6}.trust-item strong{display:block;font-size:14px;line-height:1.2}.trust-item small{display:block;font-size:12px;line-height:1.4;margin-top:4px}.association img{width:70px;height:57px;object-fit:contain}
/* Services */
.section{padding-top:32px;padding-bottom:34px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:25px}.section-heading .text-link{white-space:nowrap}.section-intro{color:var(--muted);margin:10px 0 22px;font-size:14px}.service-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}.service-card{display:flex;flex-direction:column;border:1px solid #edf0f4;border-radius:6px;overflow:hidden;box-shadow:0 4px 15px #122b4510;background:white;transition:box-shadow .15s,border-color .15s}.service-card>img{width:100%;aspect-ratio:1.6;height:auto;object-fit:cover}.service-body{padding:13px 13px 12px;display:flex;flex-direction:column;flex:1}.service-body h3{min-height:37px;font-size:16px;line-height:1.13}.service-body p{font-size:13px;line-height:1.35;margin:9px 0 13px;color:#40546c}.card-link{margin-top:auto;display:inline-flex}.card-link .icon{width:20px;height:20px}
/* Quotation preview: delivery is intentionally disabled. */
.quote-band{position:relative;background:#0b2947 url('assets/contours.svg') center/cover;color:white;padding:29px 0}.quote-grid{display:grid;grid-template-columns:.86fr 1.14fr;gap:70px;align-items:center}.quote-copy h2{font-size:40px;letter-spacing:-1.3px}.quote-copy h2 span{color:#d5ab61}.quote-copy>p:last-child{max-width:420px;margin-top:15px;font-size:16px;line-height:1.4}.quote-form{padding:20px 23px 15px;background:white;color:var(--navy);border:1px solid #dce4ed;border-radius:5px;box-shadow:0 3px 12px #00182c30}.field{min-width:0}.field label{display:block;font-size:12px;font-weight:700;margin-bottom:5px}.field label span{color:var(--muted);font-size:11px;font-weight:400}input,select{width:100%;min-width:0;height:39px;padding:8px 10px;border:1px solid #cbd8e5;border-radius:3px;color:var(--navy);background:white;font-size:12px}input::placeholder{color:#718094;opacity:1}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:12px 0}.quote-form>.button{width:100%;min-height:39px;padding:10px}.form-note{display:flex;justify-content:center;gap:6px;align-items:center;text-align:center;font-size:10px;margin-top:10px;color:var(--muted)}.form-note .icon{width:12px;height:12px}#form-status{margin-top:10px;padding:10px 12px;border-left:3px solid var(--blue);background:#eef6ff;font-size:12px}
/* Benefits and project types */
.benefit-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;margin-top:23px}.benefit-grid article{padding-right:25px}.benefit-grid article+article{border-left:1px solid var(--line);padding-left:25px}.benefit-grid .icon{width:32px;height:32px;color:var(--blue);margin-bottom:9px}.benefit-grid h3{font-size:17px;margin-bottom:8px}.benefit-grid p{color:#40546c;font-size:13px;line-height:1.4;max-width:245px}.project-section{position:relative;overflow:hidden;background:#182c2e}.project-photo{position:absolute;left:21%;top:0;width:79%;height:100%;max-width:none;object-fit:cover;object-position:center}.project-shade{position:absolute;inset:0;background:linear-gradient(90deg,#081813 0%,#081813e6 17%,#071b12a8 34%,#08181308 65%,#fffffff0 100%)}.project-inner{position:relative;display:flex;justify-content:space-between;align-items:center;gap:40px;padding-top:36px;padding-bottom:36px;min-height:339px}.project-copy{max-width:470px;color:white}.project-copy h2{font-size:37px}.project-copy>p:not(.eyebrow){margin:15px 0 20px;max-width:380px;font-size:16px}.project-types{width:230px;flex:0 0 230px;background:#fffffff5;border-radius:5px;padding:6px 20px;box-shadow:0 3px 20px #06162c13}.project-types a{display:flex;gap:20px;align-items:center;min-height:67px;font-size:13px;line-height:1.3;font-weight:700}.project-types a+a{border-top:1px solid #e3eaf1}.project-types .icon{width:34px;height:34px;color:var(--blue)}
/* Service-area illustration */
.area-section{padding:25px 0;background:#f8fafc;overflow:hidden}.area-grid{position:relative;display:grid;grid-template-columns:1fr 1.05fr .34fr;gap:16px;align-items:center}.area-copy{position:relative;z-index:1}.area-copy h2{font-size:32px}.area-copy p:not(.eyebrow){margin:11px 0 16px;font-size:13px;max-width:360px}.area-copy .button{font-size:12px;padding:10px 15px;min-height:38px}.map-panel{position:relative;min-width:0;align-self:stretch;display:flex;align-items:center}.map-panel img{width:130%;max-width:none;margin-left:-15%;height:240px;object-fit:cover}.map-panel small{position:absolute;bottom:-9px;right:0;font-size:9px;color:#52657e}.area-list{position:relative;z-index:1;background:#fffffff2;padding:14px 12px;border-radius:4px}.area-list ul{padding:0;margin:0 0 10px;list-style:none}.area-list li{display:flex;gap:9px;align-items:center;font-size:11px;margin-bottom:5px}.area-list .icon{width:13px;height:13px;color:var(--blue)}.area-list .text-link{font-size:10px}
/* Genuine reviews are required before launch; these are layout placeholders. */
.reviews-section{padding-top:27px;padding-bottom:26px}.pending-note{color:var(--muted);font-size:11px}.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:18px}.review-card{border:1px solid #f0f3f6;border-radius:5px;padding:18px 22px;box-shadow:0 4px 18px #13304b09}.review-card>.icon{color:var(--gold);width:29px;height:29px;margin-bottom:7px}.review-card p{font-size:13px;color:#4e6177;margin-bottom:13px}.review-card strong,.review-card small{display:block}.review-card strong{font-size:12px}.review-card small{font-size:11px;color:var(--muted);margin-top:3px}.linkedin-section{padding:18px 0;background:#edf7ff}.social-grid{display:grid;grid-template-columns:56px 1fr 1.15fr;gap:18px;align-items:center}.linkedin-mark{color:white;background:#086bce;border-radius:5px;font:bold 45px/1 Arial,sans-serif;padding:2px 7px 4px;width:55px;text-align:center;align-self:start}.social-copy h3{font-size:17px}.social-copy p{font-size:12px;margin:4px 0 9px}.social-copy .button{min-height:33px;padding:8px 14px;font-size:10px}.small-status{font-size:11px!important;max-width:330px;color:var(--muted)}.social-images{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.social-images img{width:100%;height:84px;object-fit:cover;border-radius:4px}.social-images img:first-child{object-position:88% center}
/* FAQs, closing CTA and footer */
.faq-section{padding-top:23px;padding-bottom:23px}.faq-section h2{font-size:29px}.faq-list{margin-top:15px}.faq-list details{border:1px solid #e5ecf3;border-radius:3px;margin-bottom:4px}.faq-list summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:9px 14px;min-height:40px;cursor:pointer;font-size:13px;list-style:none}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{font-size:20px;line-height:1;transition:transform .15s}.faq-list details[open] summary{font-weight:700;color:var(--blue)}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details p{color:#4b5e75;font-size:14px;line-height:1.55;padding:4px 14px 15px;max-width:920px}.final-cta{position:relative;background:linear-gradient(90deg,#061b31 0%,#0b2748ef 31%,#193857b0 57%,#eaf0f2df 90%,#fff 100%),url('assets/hero-toronto.avif') center 60%/cover}.final-inner{position:relative;display:flex;justify-content:space-between;align-items:center;padding-top:27px;padding-bottom:27px;gap:32px}.final-inner>div:first-child{color:white}.final-inner .eyebrow{font-size:9px;margin-bottom:5px}.final-inner h2{font-size:28px}.final-inner p:last-child{font-size:12px;margin-top:9px;color:#e5edf6}.final-inner .actions{flex-shrink:0;margin-right:4%;gap:14px}.site-footer{border-top:1px solid var(--line);padding:13px 0}.footer-inner{display:flex;gap:24px;align-items:center;justify-content:space-between}.footer-logo{width:130px;height:auto}.footer-inner p{font-size:10px;color:var(--muted);text-align:center}.footer-inner p>span:not(#year){display:block;margin-top:3px}.footer-inner .text-link{font-size:10px}[hidden]{display:none!important}
@media(min-width:1750px){.hero-photo{object-position:center 47%}.hero-inner{padding-top:63px;padding-bottom:175px}}
@media(max-width:1150px){#navigation{gap:17px}.header-actions{margin-left:0;gap:14px}.header-actions .contact-link{display:none}.trust-items{max-width:920px}.trust-item{padding-inline:20px;gap:11px}.trust-item strong{font-size:12px}.trust-item small{font-size:11px}.service-grid{gap:12px}.service-body{padding:10px}.service-body h3{font-size:14px}.service-body p{font-size:12px}.quote-grid{gap:35px}.quote-copy h2{font-size:36px}.benefit-grid{gap:15px}.benefit-grid article{padding-right:12px}.benefit-grid article+article{padding-left:15px}.area-copy h2{font-size:28px}}
@media(max-width:900px){.wrap{width:92%}.header-inner{min-height:65px;gap:14px}.brand span{font-size:18px}.brand img{width:37px;height:37px}.menu-toggle{display:flex}.header-actions{margin-left:auto}#navigation{display:none;position:absolute;top:65px;left:0;right:0;padding:14px 4%;flex-direction:column;align-items:stretch;background:#fff;box-shadow:0 10px 18px #1232;gap:0}#navigation.open{display:flex}#navigation a{padding:14px 5px;font-size:15px}.hero-photo{object-position:65% center}.hero-inner{padding-top:42px;padding-bottom:146px}.hero-copy{max-width:580px}.hero-copy h1{font-size:51px}.hero-copy p{max-width:485px;font-size:16px}.trust-items{grid-template-columns:1.15fr 1fr 1fr}.association img{width:48px;height:48px}.trust-item{gap:8px;padding-inline:13px}.trust-item .icon{width:30px;height:30px}.trust-strip:before{background:linear-gradient(90deg,#fffffff5 0%,#fffffff0 55%,#ffffffb5 86%,#ffffff70 100%)}.service-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.service-body{padding:14px}.service-body h3{font-size:17px}.service-body p{font-size:14px}.quote-grid{grid-template-columns:.85fr 1.15fr;gap:25px}.quote-copy h2{font-size:32px}.quote-copy>p:last-child{font-size:14px}.quote-form{padding:18px}.form-row{gap:12px}input,select{font-size:16px}.benefit-grid h3{font-size:15px}.benefit-grid p{font-size:12px}.project-copy{max-width:430px}.project-copy h2{font-size:32px}.project-types{width:200px;flex-basis:200px;padding-inline:15px}.project-types a{gap:14px}.area-grid{grid-template-columns:1fr 1fr;gap:10px}.area-list{grid-column:1/-1;padding:14px}.area-list ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:8px;gap:3px}.area-list li{font-size:12px}.map-panel img{height:235px}.map-panel small{bottom:3px}.review-grid{gap:14px}.review-card{padding:16px}.social-grid{grid-template-columns:50px 1fr 1fr;gap:13px}.linkedin-mark{font-size:38px;width:48px}.social-images{gap:6px}.social-images img{height:73px}.final-inner{gap:20px}.final-inner h2{font-size:25px}.final-inner .actions{margin-right:0;flex-direction:column;align-items:stretch;gap:8px}.final-inner .actions .button{min-height:38px;font-size:12px}}
@media(max-width:620px){html{scroll-padding-top:80px}.wrap{width:90%}.header-inner{min-height:66px;gap:9px}.brand{gap:5px}.brand span{font-size:17px;letter-spacing:-.5px}.brand img{width:33px;height:33px}.header-actions .button{font-size:10px;min-height:35px;padding:9px 10px;gap:5px}.header-actions .button .icon{display:none}.menu-toggle{min-width:37px;min-height:37px}#navigation{top:66px}.hero{min-height:0}.hero-photo{height:387px;object-position:73% center;opacity:.62}.hero-wash{height:387px;background:linear-gradient(90deg,#fffffff4 0%,#ffffffcc 45%,#ffffff25 100%)}.hero-inner{padding-top:38px;padding-bottom:39px;min-height:352px}.hero-copy h1{font-size:clamp(38px,9.75vw,54px);letter-spacing:-1.8px}.hero-copy p{font-size:15px;line-height:1.45;max-width:350px;font-weight:500;margin-top:15px}.desktop-break{display:none}.hero-copy .actions{gap:10px;margin-top:25px}.hero-copy .button{padding:12px 13px;font-size:11px;gap:8px}.trust-strip{position:relative;padding:18px 0;background:#f7f8f9}.trust-strip:before{display:none}.trust-items{grid-template-columns:1fr;gap:13px}.trust-item,.trust-item:first-child{padding:0;border:0;gap:14px;min-height:44px}.trust-item strong{font-size:13px}.trust-item small{font-size:12px}.trust-item small br{display:none}.trust-item .icon{width:33px;height:33px;margin-inline:8px}.association img{width:50px;height:43px}.association strong br{display:none}.section{padding-top:29px;padding-bottom:29px}h2{font-size:28px;letter-spacing:-.9px}.section-heading{align-items:start;gap:10px}.section-heading>.text-link{font-size:10px;max-width:83px;white-space:normal;text-align:right;flex-shrink:0;padding-top:4px}.section-heading .text-link .icon{display:none}.section-intro{font-size:13px;margin-bottom:19px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px}.service-card>img{aspect-ratio:1.4}.service-body{padding:12px}.service-body h3{font-size:16px;min-height:37px}.service-body p{font-size:13px;line-height:1.45}.quote-band{padding:30px 0}.quote-grid{grid-template-columns:1fr;gap:23px}.quote-copy h2{font-size:37px}.quote-copy>p:last-child{max-width:370px;font-size:15px}.quote-form{padding:18px 15px}input,select{min-height:44px}.form-row{grid-template-columns:1fr;gap:12px}.form-note{font-size:10px;align-items:flex-start}.quote-form>.button{min-height:44px}.benefit-grid{grid-template-columns:1fr 1fr;gap:25px 20px;margin-top:24px}.benefit-grid article,.benefit-grid article+article{padding:0;border:0}.benefit-grid h3{font-size:16px;line-height:1.2}.benefit-grid p{font-size:13px}.project-inner{flex-direction:column;align-items:stretch;padding:33px 0;gap:25px}.project-photo{left:0;width:100%;object-position:57% center}.project-shade{background:linear-gradient(90deg,#061812df,#08181380),linear-gradient(0deg,#061b3177,transparent)}.project-copy{max-width:390px}.project-copy h2{font-size:32px}.project-copy>p:not(.eyebrow){font-size:15px}.project-types{width:100%;flex-basis:auto;display:grid;grid-template-columns:1fr 1fr;padding:8px 14px}.project-types a{padding:8px 4px;min-height:67px;font-size:12px;gap:12px}.project-types a+a{border:0}.project-types a:nth-child(n+3){border-top:1px solid var(--line)}.project-types .icon{width:28px;height:28px}.area-section{padding:30px 0}.area-grid{grid-template-columns:1fr;gap:10px}.area-copy h2{font-size:29px}.area-copy p:not(.eyebrow){font-size:14px}.map-panel img{width:100%;height:auto;margin:0}.map-panel small{bottom:0}.area-list{grid-column:auto;padding:16px;margin-top:10px}.area-list ul{grid-template-columns:1fr 1fr;gap:5px}.pending-note{font-size:10px;max-width:75px;text-align:right;flex-shrink:0}.review-grid{grid-template-columns:1fr;gap:12px}.review-card{padding:17px 20px}.review-card p{font-size:14px}.social-grid{grid-template-columns:42px 1fr;gap:13px}.linkedin-mark{width:42px;font-size:33px;padding-inline:6px}.social-copy h3{font-size:17px}.social-images{grid-column:1/-1;gap:8px;margin-top:4px}.social-images img{height:76px}.faq-section h2{font-size:27px}.faq-list summary{font-size:14px;padding:12px;min-height:48px}.final-cta{background:linear-gradient(90deg,#061b31fa,#193857de),url('assets/hero-toronto.avif') center/cover}.final-inner{display:block;padding:30px 0}.final-inner h2{font-size:28px}.final-inner p:last-child{font-size:13px}.final-inner p br{display:none}.final-inner .actions{flex-direction:row;margin-top:22px;flex-wrap:wrap;gap:12px}.footer-inner{flex-wrap:wrap;justify-content:space-between;gap:12px}.footer-logo{width:115px}.footer-inner p{order:3;width:100%;text-align:left}}
@media(max-width:360px){.brand span{font-size:15px}.brand img{width:30px;height:30px}.header-actions .button{padding-inline:7px;font-size:9px}.hero-copy h1{font-size:37px}.service-body{padding:10px}.service-body h3{font-size:14px}.service-body p{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Interaction polish. Layout, imagery and the fading trust strip stay unchanged.
   Hover motion is only enabled for a fine pointer that can actually hover. */
:root {
  --motion-fast: 180ms;
  --motion-medium: 260ms;
  --motion-ease: cubic-bezier(.2, .7, .2, 1);
}
.button {
  transition: transform var(--motion-fast) var(--motion-ease),
    background-color var(--motion-fast) ease,
    border-color var(--motion-fast) ease,
    box-shadow var(--motion-fast) ease;
}
.button .icon,
.text-link .icon,
.card-link .icon,
.project-types .icon {
  transition: transform var(--motion-fast) var(--motion-ease),
    color var(--motion-fast) ease;
}
#navigation a,
.contact-link,
.text-link,
.menu-toggle,
.project-types a,
.faq-list summary {
  transition: color var(--motion-fast) ease,
    background-color var(--motion-fast) ease,
    border-color var(--motion-fast) ease;
}
#navigation a { position: relative; }
#navigation a::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 11px;
  height: 2px;
  border-radius: 2px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--motion-fast) var(--motion-ease);
  pointer-events: none;
}
.service-card {
  transition: transform var(--motion-medium) var(--motion-ease),
    box-shadow var(--motion-medium) ease,
    border-color var(--motion-fast) ease;
}
.service-card > img {
  transition: transform 380ms var(--motion-ease);
  transform-origin: center;
}
/* The opaque body masks the zoomed image without changing card dimensions. */
.service-body { position: relative; background: #fff; }
.service-body h3 { transition: color var(--motion-fast) ease; }
.project-photo { transition: transform 600ms var(--motion-ease); }
.social-images img { transition: transform var(--motion-medium) var(--motion-ease); }
.quote-form { transition: box-shadow var(--motion-medium) ease; }
.field input,
.field select {
  transition: border-color var(--motion-fast) ease,
    box-shadow var(--motion-fast) ease;
}

/* Keyboard users receive the same visual emphasis as pointer users.
   Existing focus outlines are retained, including around the entire card. */
.button:not(:disabled):not([aria-disabled="true"]):focus-visible {
  background: #21476b;
  box-shadow: 0 7px 18px #0c264429;
  transform: translateY(-2px);
}
.button.gold:not(:disabled):not([aria-disabled="true"]):focus-visible {
  background: linear-gradient(115deg, #806032, #98733c);
}
.button.blue:not(:disabled):not([aria-disabled="true"]):focus-visible { background: #004ea9; }
.button.outline:not(:disabled):not([aria-disabled="true"]):focus-visible,
.button.white:not(:disabled):not([aria-disabled="true"]):focus-visible {
  background: #edf4fc;
  color: var(--navy);
  border-color: #8cabc8;
}
.button:not(:disabled):not([aria-disabled="true"]):focus-visible .icon,
.text-link:focus-visible .icon,
.service-card:focus-visible .card-link .icon { transform: translateX(3px); }
#navigation a:focus-visible,
.contact-link:focus-visible { color: var(--blue); }
#navigation a:focus-visible::after { transform: scaleX(1); }
.text-link:focus-visible {
  color: var(--navy);
  text-decoration: underline;
  text-underline-offset: 4px;
}
.service-card:focus-visible {
  transform: translateY(-5px);
  border-color: #76a9db;
  box-shadow: 0 12px 26px #122b4526;
}
.service-card:focus-visible > img { transform: scale(1.04); }
.service-card:focus-visible h3 { color: var(--blue); }
.project-types a:focus-visible,
.faq-list summary:focus-visible,
.menu-toggle:focus-visible { color: var(--blue); background-color: #edf4fc; }
.project-types a:focus-visible .icon { transform: translateX(3px); }
.project-section:focus-within .project-photo { transform: scale(1.025); }
.field input:focus-visible,
.field select:focus-visible { border-color: var(--blue); box-shadow: 0 0 0 3px #0063da14; }
.quote-form:focus-within { box-shadow: 0 6px 22px #00182c40; }

@media (hover: hover) and (pointer: fine) {
  .button:not(:disabled):not([aria-disabled="true"]):hover {
    background: #21476b;
    box-shadow: 0 7px 18px #0c264429;
    transform: translateY(-2px);
  }
  .button.gold:not(:disabled):not([aria-disabled="true"]):hover {
    background: linear-gradient(115deg, #806032, #98733c);
  }
  .button.blue:not(:disabled):not([aria-disabled="true"]):hover { background: #004ea9; }
  .button.outline:not(:disabled):not([aria-disabled="true"]):hover,
  .button.white:not(:disabled):not([aria-disabled="true"]):hover {
    background: #edf4fc;
    color: var(--navy);
    border-color: #8cabc8;
  }
  .button:not(:disabled):not([aria-disabled="true"]):hover .icon,
  .text-link:hover .icon,
  .service-card:hover .card-link .icon { transform: translateX(3px); }
  #navigation a:hover,
  .contact-link:hover { color: var(--blue); }
  #navigation a:hover::after { transform: scaleX(1); }
  .text-link:hover {
    color: var(--navy);
    text-decoration: underline;
    text-underline-offset: 4px;
  }
  .service-card:hover {
    transform: translateY(-5px);
    border-color: #76a9db;
    box-shadow: 0 12px 26px #122b4526;
  }
  .service-card:hover > img { transform: scale(1.04); }
  .service-card:hover h3 { color: var(--blue); }
  .project-types a:hover,
  .faq-list summary:hover,
  .menu-toggle:hover { color: var(--blue); background-color: #edf4fc; }
  .project-types a:hover .icon { transform: translateX(3px); }
  .project-section:hover .project-photo { transform: scale(1.025); }
  /* These thumbnails remain decorative images, not misleading new links. */
  .social-images img:hover { transform: scale(1.035); }
  .field input:not(:disabled):hover,
  .field select:not(:disabled):hover { border-color: #76a9db; }
  .button:not(:disabled):not([aria-disabled="true"]):active { transform: translateY(0); }
}

/* Keep focus/colour feedback, but remove decorative movement when requested. */
@media (prefers-reduced-motion: reduce) {
  .button,
  .button .icon,
  .text-link .icon,
  .service-card,
  .service-card > img,
  .card-link .icon,
  .project-photo,
  .project-types .icon,
  .social-images img { transform: none !important; }
}
