/* DAFIM / Creative direction: charcoal, warm white, signal red.
   Photos: illustrative images with visible captions. */
:root{--ink:#182025;--paper:#f5f5f2;--brand:#e52329;--line:#d3d7d5}
body{background:var(--paper)}.nav{height:96px}.logo{width:172px;height:auto}.links a:not(.btn){position:relative}.links a:not(.btn):after{content:'';position:absolute;bottom:-8px;left:0;width:0;height:2px;background:var(--brand);transition:width .25s}.links a:hover:after,.links a.active:after{width:100%}.btn{min-height:52px;border-radius:2px;transition:background .2s,transform .2s,box-shadow .2s}.btn:hover{transform:translateY(-3px);box-shadow:0 9px 22px #0002}.btn span{transition:transform .2s}.btn:hover span{transform:translate(3px,-3px)}
/* Full-width photographic opening. Text has its own opaque gradient. */
.editorial-hero{position:relative;isolation:isolate;background:#161d22;color:#fff;min-height:650px}.hero-photo,.hero-shade{position:absolute;inset:0;z-index:-2}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 45%}.hero-shade{z-index:-1;background:linear-gradient(90deg,rgba(12,19,24,.96) 0%,rgba(12,19,24,.88) 28%,rgba(12,19,24,.44) 58%,rgba(12,19,24,.06) 100%),linear-gradient(0deg,#10171bcc,transparent 30%)}.hero-content{padding-top:65px;padding-bottom:95px}.hero-content .eyebrow{font-size:10px;letter-spacing:2px;color:#e7e9e9}.hero-content h1{font-size:clamp(52px,5.4vw,78px);line-height:1.02;letter-spacing:-3px;margin:32px 0 25px;max-width:740px}.hero-content h1 span{color:#fff}.hero-content h1 span:after{content:'';display:block;background:var(--brand);width:70px;height:5px;margin-top:25px}.hero-content>p{color:#d2d7d9;font-size:16px;line-height:1.75;max-width:490px}.hero-link{display:inline-flex;align-items:center;gap:18px;font-size:13px;border-bottom:1px solid #ffffff60;padding:12px 0;margin-left:14px}.hero-link:hover{border-color:white}.hero-location{font:10px monospace;letter-spacing:1.2px;display:flex;align-items:center;gap:10px;color:#c0c8ce;margin-top:35px}.location-dot{width:6px;height:6px;background:var(--brand);border-radius:50%}.hero-caption{position:absolute;right:32px;bottom:28px;color:#d6dcdf;font:9px monospace;letter-spacing:1px;background:#152027a8;padding:7px 10px}.hero-scroll{position:absolute;bottom:27px;left:max(48px,calc((100vw - 1184px)/2));font:9px monospace;letter-spacing:1.5px;color:#bcc6cd;display:flex;gap:30px}.hero-scroll span{color:white}.benefits{border-bottom:1px solid var(--line)}.benefit{padding:28px 0}.benefit:not(:first-child){padding-left:25px}.benefit b{font-size:15px}.benefit .number{border:1px solid var(--line);width:39px;height:39px;display:grid;place-items:center;border-radius:50%;font-size:10px!important}.section{scroll-margin-top:20px}.section-head h2{font-size:46px}.eyebrow{font-size:10px}.cards{gap:0;background:white;border-color:var(--line)}.card{position:relative;overflow:hidden;padding:35px 30px;display:flex;flex-direction:column}.card:before{content:'';position:absolute;bottom:0;left:0;width:0;height:4px;background:var(--brand);transition:width .4s}.card:hover:before{width:100%}.card:hover{background:#eff0eb}.service-icon{position:absolute;width:59px;height:59px;top:25px;right:28px;color:#7e898c;transition:color .2s,transform .4s}.card:hover .service-icon{color:var(--brand);transform:translateY(-3px)}.card h3{margin-top:65px}.card p{flex:1}.arrow{border-top:1px solid var(--line);padding-top:20px}.arrow span{font-size:22px;color:var(--brand);transition:transform .2s}.card:hover .arrow span{transform:translate(4px,-4px)}
/* Editorial gallery: one tall composition and two detail photographs. */
.showcase{background:#e9ece7;border-top:1px solid #d5dad4}.gallery-intro{max-width:385px}.text-link{display:inline-flex;gap:25px;padding:8px 0;border-bottom:1px solid #9aa5a4;font-size:13px;font-weight:bold}.text-link:hover{color:var(--brand)}.gallery-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:28px;margin-top:40px}.gallery-item{margin:0;min-width:0}.gallery-item:first-child{grid-row:span 2}.gallery-open{position:relative;display:block;border:0;padding:0;background:#1c252b;width:100%;overflow:hidden;cursor:zoom-in;color:white;text-align:left}.gallery-open img{display:block;width:100%;height:235px;object-fit:cover;transition:transform .65s cubic-bezier(.2,.6,.3,1),filter .4s}.gallery-item:first-child .gallery-open img{height:585px}.gallery-open:hover img{transform:scale(1.045);filter:brightness(.9)}.gallery-open:focus-visible{outline-offset:5px}.image-tag{position:absolute;left:15px;bottom:15px;background:#151e25cc;color:#fff;font:9px monospace;letter-spacing:1px;padding:7px 10px;pointer-events:none}.zoom{position:absolute;top:16px;right:16px;border:1px solid #ffffff75;border-radius:50%;width:38px;height:38px;display:grid;place-items:center;background:#17202966;transition:background .3s}.gallery-open:hover .zoom{background:var(--brand)}figcaption{padding:18px 0 2px}figcaption>span{font:9px monospace;letter-spacing:1.5px;color:#59666b}figcaption h3{font-size:21px;margin:6px 0 0;letter-spacing:-.4px}.gallery-disclosure{font-size:11px;margin:25px 0 0;color:#626e72;max-width:700px}.about-editorial{position:relative;overflow:hidden}.about-editorial:before{content:'';position:absolute;width:380px;height:500px;border:1px solid #ffffff09;transform:skew(-30deg);right:12%;top:-90px;pointer-events:none}.about-editorial:after{content:'';position:absolute;width:80px;height:500px;background:#ffffff03;transform:skew(-30deg);right:22%;top:-90px;pointer-events:none}.about-editorial .wrap{position:relative;z-index:1}.bigtype{font-size:57px}.step{position:relative;padding-top:26px}.step:before{content:'';position:absolute;top:-4px;left:0;height:7px;width:7px;background:var(--brand)}.cta{position:relative;overflow:hidden}.cta:before{content:'';position:absolute;right:20%;top:-100px;width:120px;height:400px;transform:skew(-30deg);border:1px solid #ffffff25;pointer-events:none}.cta .wrap{position:relative}.page-intro{position:relative;overflow:hidden}.page-intro:after{content:'';position:absolute;right:8%;top:-80px;width:180px;height:700px;border:1px solid #bbc4bd66;transform:skew(-30deg);pointer-events:none}.page-intro .wrap{position:relative;z-index:1}.service-banner{height:360px;position:relative;margin-top:45px;overflow:hidden}.service-banner img{width:100%;height:100%;object-fit:cover;object-position:center 55%;display:block}.service-banner .image-tag{left:65px;bottom:20px}.service-row{scroll-margin-top:30px}.footer{padding-top:65px}.footer-top strong{font-size:38px;letter-spacing:-1.5px}
/* Accessible dialog, native focus trap + Escape. */
.lightbox{border:0;padding:0;background:#111a20;color:#fff;max-width:min(1100px,92vw);width:1100px;max-height:92vh;overflow:auto;box-shadow:0 25px 100px #0008}.lightbox::backdrop{background:#071017e8;backdrop-filter:blur(8px)}.lightbox img{display:block;width:100%;height:auto;max-height:77vh;object-fit:contain}.lightbox-caption{padding:10px 25px 20px;color:#c8d0d5;font-size:12px;margin:0}.lightbox-close{position:absolute;top:15px;right:15px;z-index:1;width:44px;height:44px;border:1px solid #ffffff66;background:#152027e8;color:#fff;cursor:pointer;font-size:20px}.lightbox-close:hover{background:var(--brand)}
/* Motion never conceals content; reduced-motion users get a static layout. */
@keyframes arrive{from{transform:translateY(18px);opacity:.6}to{transform:translateY(0);opacity:1}}.revealed{animation:arrive .65s ease both}
@media(min-width:1600px){.hero-photo img{object-position:center 40%}.hero-content{padding-top:85px;padding-bottom:110px}}
@media(max-width:900px){.hero-content h1{font-size:61px}.hero-shade{background:linear-gradient(90deg,#10181ff2,#10181fa8 55%,#10181f35)}.hero-scroll{left:24px}.gallery-item:first-child .gallery-open img{height:535px}.gallery-open img{height:210px}.bigtype{font-size:44px}.benefit:not(:first-child){padding-left:10px}.section-head h2{font-size:38px}}
@media(max-width:650px){.nav{height:80px}.logo{width:150px}.links.open{top:112px}.links a:after{display:none}.editorial-hero{min-height:640px}.hero-content{padding-top:42px;padding-bottom:100px}.hero-content .eyebrow{font-size:9px;letter-spacing:1px;max-width:270px;line-height:1.8}.hero-content h1{font-size:clamp(43px,10.7vw,65px);letter-spacing:-2px;margin-top:26px;max-width:100%}.hero-content>p{font-size:15px;max-width:310px}.hero-photo img{object-position:62% center}.hero-shade{background:linear-gradient(90deg,#0c1318ed,#0c1318a8 80%),linear-gradient(0deg,#0c1318,transparent)}.hero-content .actions{gap:18px;align-items:center}.hero-link{margin-left:0;font-size:12px;gap:10px}.hero-content .btn{padding:14px 18px}.hero-location{font-size:8px;letter-spacing:.6px;gap:7px;margin-top:25px}.hero-caption{left:24px;right:auto;bottom:22px;font-size:8px}.hero-scroll{display:none}.desktop-break{display:none}.benefit,.benefit:not(:first-child){padding:20px 0}.section-head h2{font-size:35px}.gallery-grid{grid-template-columns:1fr;gap:30px;margin-top:25px}.gallery-item:first-child{grid-row:auto}.gallery-open img,.gallery-item:first-child .gallery-open img{height:auto;aspect-ratio:4/3;object-fit:cover}.gallery-item:first-child .gallery-open img{aspect-ratio:1.15}.gallery-disclosure{font-size:11px}.showcase .section-head{margin-bottom:20px}.bigtype{font-size:42px}.service-banner{height:260px;padding:0;margin-top:0}.service-banner .image-tag{left:20px}.lightbox-caption{padding:14px 15px;font-size:11px}.lightbox{max-width:96vw}.page-intro:after{opacity:.5}.hero-content .actions{flex-wrap:wrap}.cta h2{font-size:31px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.gallery-open:hover img{transform:none}.btn:hover{transform:none}}

/* Persistent navigation; the compact information strip scrolls away. */
.site-header { position:sticky; top:0; z-index:100; background:var(--paper); box-shadow:0 2px 14px #15202712; }
.site-header .nav { position:relative; }
html { scroll-padding-top:112px; }
.section, .service-row { scroll-margin-top:112px; }
.footer-brand { display:inline-block; background:var(--paper); padding:16px 18px; border-radius:2px; }
.footer-logo { display:block; width:172px; height:auto; mix-blend-mode:multiply; }
@media(max-width:650px) {
 .site-header .links.open { top:100%; max-height:calc(100dvh - 80px); overflow-y:auto; }
 html { scroll-padding-top:96px; }
 .section, .service-row { scroll-margin-top:96px; }
 .footer-logo { width:150px; }
}
