/* Figma FINAL layouts, preserving readable content flow and keyboard controls. */
.section-title{line-height:1.3}
.hero-display{line-height:1.3}
.hero-actions .hero-more{font-size:24px;border-width:2px}
.divider{height:auto;background:none;width:720px;max-width:100%;margin:28px auto}
.divider picture,.divider img{display:block}
#about .divider{margin-block:22px}
.services .divider{margin-block:26px}
.stats-period{font-size:14px;line-height:1.55;margin:12px 0 0}
.stats article{padding:16px 12px;min-height:146px}
.stats strong{line-height:1.3}
.services-bg{background-size:auto,cover;background-position:center,center 32.6%}
.process-card{gap:8px}
.process-card strong{line-height:1.3}
.process-card h3,.principles-panel h3{margin:0;line-height:1.3}
.process-card p,.principles-panel p{line-height:1.3}
.principles-panel article{gap:6px}
#principles,#testimonials{padding-bottom:90px}
.testimonial{gap:10px}
.testimonial p{line-height:1.3}
.testimonial strong{margin:0;line-height:1.3}
.quote{margin:0}
.form-status:empty{min-height:0}
.contact-form{margin-inline:auto}
.contact-form label{text-align:center}
.contact-form input,.contact-form input[type=tel],.contact-form input[type=email]{text-align:center;color:#bdbdbd;font-weight:400}
.submit-button{justify-self:center;width:100%;max-width:314px}
@media(min-width:901px){
 .testimonials-carousel{position:relative;padding-inline:9.32%}
 .testimonial-viewport{padding-top:33px}
 .testimonial-track{gap:clamp(24px,3.77vw,54.3px);align-items:stretch}
 .testimonial-track .testimonial{position:relative;flex-basis:calc((100% - 2 * clamp(24px,3.77vw,54.3px))/3);min-height:139px;padding:20px 12px 18px;border-width:.75px;justify-content:space-between}
 .testimonial p{font-size:13.51px}
 .testimonial strong{font-size:18.01px}
 .testimonial .quote{position:absolute;top:-33px;left:50%;transform:translateX(-50%);width:41%;height:48px;background:#fff;font-size:75.05px;line-height:1;pointer-events:none}
 .carousel-controls{margin:0}
 .carousel-controls button{position:absolute;top:50%;transform:translateY(-50%);width:67px;height:67px;border:0;padding:0;background:transparent;font-size:0}
 .carousel-prev{right:2.13%;background-image:url('/assets/arrow-right.svg')!important}
 .carousel-next{left:2.19%;background-image:url('/assets/arrow-left.svg')!important}
 .carousel-controls button:hover{background-color:#f2f2f2;border-radius:50%}
 .contact-form{align-items:center}
 .submit-button{align-self:center}
}
@media(max-width:900px){
 .section.dark{padding-block:57px}
 .section.light,.services{padding-block:57px 63px}
 #principles,#testimonials{padding-bottom:63px}
 .contact-section.section.dark{padding-bottom:51px}
 .divider,#about .divider,.services .divider{width:300px;max-width:100%;margin:18px auto}
 .service-grid{gap:18px}
 .service-card p{margin-top:12px}
 .principles-panel article{border-color:rgba(255,255,255,.35)}
 .testimonial-track .testimonial{min-height:282px}
 .carousel-controls{margin-top:22px}
 .contact-form{padding-inline:18px}
}
@media(max-width:520px){
 .hero-copy{min-height:430px}
 .hero-portrait{overflow:hidden;max-width:100%;height:auto;aspect-ratio:950/1252;align-self:center}
 .hero-portrait img{display:block;transform:none;object-fit:contain;object-position:center bottom;-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 88%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0%,#000 88%,transparent 100%)}
 .stats article{min-height:0;padding:18px 12px}
 .testimonial-track .testimonial{min-height:264px}
}
@media(forced-colors:active){
 .carousel-controls button{background-image:none!important;border:1px solid ButtonText;font-size:28px}
}

.process-card::after{display:none}
.contact-section .privacy-notice{margin:28px 0 0;text-align:center}
.contact-section .form-status:empty{display:none}
.contact-section .form-status:not(:empty){margin-top:16px}
@media(max-width:900px){.contact-section .privacy-notice{margin-top:18px}}

/* Mobile: centered containers and shrinkable tracks, including narrow phones. */
@media(max-width:520px){
 .content-width{width:calc(100% - 40px);min-width:0;margin-inline:auto}
 .hero-inner{width:100%;padding-inline:20px}
 .hero-copy{width:100%;max-width:350px;min-width:0;margin-inline:auto;text-align:center;min-height:0}
 .hero-actions{margin-inline:auto;text-align:center}
 .motion-stop{margin-inline:auto}
 .section-title{font-size:clamp(40px,14.36vw,56px)}
 .hero-display{font-size:clamp(40px,14.36vw,56px)}
 .service-grid,.process-grid,.principles-panel,.contact-form{grid-template-columns:minmax(0,1fr);min-width:0;width:100%}
 .service-card,.process-card,.principles-panel article{min-width:0;max-width:100%;margin-inline:auto;text-align:center}
 .service-card{width:100%}
 .contact-form label,.contact-form input{min-width:0;max-width:100%}
 .stats{width:100%;margin-inline:auto}
 .stats .stat-number{font-size:clamp(40px,14.36vw,56px);min-width:0;max-width:100%}
 .testimonials-carousel,.testimonial-viewport{min-width:0;max-width:100%;margin-inline:auto}
 .contact-details a{max-width:100%;overflow-wrap:anywhere}
}
/* The spam trap must not create a 10,000px RTL scrollable overflow area. */
.contact-form{position:relative}
.contact-form .hp{left:0!important;top:0;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;border:0!important;clip-path:inset(50%);overflow:hidden;pointer-events:none}

/* Keep the full portrait and its soft edges inside the hero on wide screens. */
@media(min-width:901px){.hero-portrait{right:4.167%}.hero-portrait img{object-fit:contain}}
@media(min-width:521px) and (max-width:900px){.hero-portrait{right:2.865%}.hero-portrait img{object-fit:contain}}

/* Pointer feedback mirrors keyboard focus; content never depends on hover. */
.js .process-grid .process-card{transition:opacity .7s ease,transform .3s ease,background-color .25s ease,color .25s ease,box-shadow .25s ease}
.process-card:focus-visible{background:#1a1a1a;color:#fff;outline:3px solid #555;outline-offset:4px}
:is(.header-contact,.outline-button,.submit-button){transition:background-color .2s ease,color .2s ease,box-shadow .2s ease}
:is(.header-contact,.outline-button,.submit-button):focus-visible{background:#fff;color:#1a1a1a}
:is(.menu-close,.menu-toggle,.motion-stop):focus-visible{background:#333;color:#fff}
.carousel-controls button:focus-visible{background-color:#e6e6e6;border-radius:50%}
@media(hover:hover){
 .process-card:hover{background:#1a1a1a;color:#fff;box-shadow:0 8px 22px #0002}
 .js .process-grid:not(.is-pending) .process-card:hover,.js .process-grid.is-pending .process-card.is-revealed:hover{transform:translateY(-4px)}
 :is(.header-contact,.outline-button,.submit-button):not(:disabled):hover{background:#fff;color:#1a1a1a;box-shadow:0 0 0 1px #fff}
 :is(.menu-close,.menu-toggle,.motion-stop):hover{background:#333;color:#fff}
 .carousel-controls button:not(:disabled):hover{background-color:#e6e6e6;border-radius:50%}
 .desktop-nav a:hover,.mobile-menu nav a:hover{text-decoration:underline;text-underline-offset:6px;opacity:1}
}
:is(.header-contact,.outline-button,.submit-button):not(:disabled):active{background:#ddd;color:#1a1a1a}
@media(prefers-reduced-motion:reduce){
 .js .process-grid .process-card{transition:none!important}
 .js .process-grid .process-card.is-revealed:hover{transform:none!important}
}
.motion-stopped .process-grid .process-card{transition:none!important;transform:none!important}
