
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&family=Playfair+Display:wght@600;700&family=Space+Grotesk:wght@500;600;700&display=swap');
:root{--red:#a40f18;--red2:#cf202a;--black:#111214;--dark:#191a1d;--cream:#f6f3ee;--text:#25282c;--muted:#5d6268;--line:#dedad3;--max:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"DM Sans",Arial,sans-serif;color:var(--text);line-height:1.6;background:#fff}a{text-decoration:none;color:inherit}img{display:block;max-width:100%}.container{width:min(92%,var(--max));margin:auto}
.top{background:#0d0e10;color:#ddd;font-size:12px}.top .container{min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}
header{background:#fff;border-bottom:1px solid #e7e3dd;position:sticky;top:0;z-index:50;box-shadow:0 4px 18px rgba(0,0,0,.04)}.nav{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:25px}.logo{height:61px;width:auto;object-fit:contain}
.navlinks{display:flex;align-items:center;gap:26px}.navlinks a{font-size:13px;font-weight:800;color:#161719;position:relative;padding:30px 0}.navlinks a.active,.navlinks a:hover{color:var(--red)}.navlinks a.active:after{content:"";position:absolute;left:0;right:0;bottom:21px;height:2px;background:var(--red)}.quote{background:var(--red)!important;color:#fff!important;padding:11px 16px!important;border-radius:3px}.quote:after{display:none!important}
.menu{display:none;border:0;background:#111;color:#fff;border-radius:3px;padding:9px 12px;font-size:20px}
.hero{min-height:650px;display:flex;align-items:center;color:#fff;background:linear-gradient(90deg,rgba(7,8,9,.84),rgba(7,8,9,.54) 50%,rgba(7,8,9,.12)),url("../images/hero.jpg") center/cover}.hero-content{max-width:770px;padding:95px 0}.eyebrow{color:var(--red);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:3px;margin-bottom:12px}.hero .eyebrow{color:#f0aeb3}.hero h1{font:700 clamp(45px,6.6vw,82px)/1.02 "Playfair Display",serif;margin:0 0 20px;color:#fff}.hero h1 span{color:#e82b35}.hero p{font-size:18px;color:#f1f1f1;max-width:680px;margin:0 0 28px}.buttons{display:flex;gap:12px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 20px;border-radius:3px;font-size:13px;font-weight:800}.btn.red{background:var(--red);color:#fff}.btn.red:hover{background:var(--red2)}.btn.white{background:#fff;color:#111}.btn.outline{border:1px solid #bbb;color:#111;background:#fff}
.stats{background:#101113;color:#fff}.statsgrid{display:grid;grid-template-columns:repeat(4,1fr)}.stat{padding:19px 20px;border-left:1px solid #38393c}.stat:first-child{border-left:0}.stat b{display:block;font-size:14px}.stat span{font-size:11px;color:#bbb}
section{padding:72px 0}.sectionhead{text-align:center;max-width:760px;margin:0 auto 38px}.sectionhead h2{font:700 clamp(34px,4.2vw,52px)/1.08 "Playfair Display",serif;margin:0 0 10px;color:#111}.sectionhead h2 span{color:var(--red)}.sectionhead p{font-size:14px;color:#3f444a;margin:0}
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:55px;align-items:center}.photo{border-radius:5px;overflow:hidden;box-shadow:0 20px 55px rgba(0,0,0,.13)}.photo img{width:100%;aspect-ratio:4/3;object-fit:cover}.copy h2{font:700 38px/1.1 "Playfair Display",serif;color:#111;margin:0 0 15px}.copy p{font-size:14px;color:#34393f}.checks{list-style:none;padding:0;margin:22px 0;display:grid;grid-template-columns:1fr 1fr;gap:9px}.checks li{font-size:13px;font-weight:700}.checks li:before{content:"✓";color:var(--red);margin-right:8px}
.cream{background:var(--cream)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.card{background:#fff;border:1px solid var(--line);border-radius:5px;padding:26px;box-shadow:0 5px 20px rgba(0,0,0,.04)}.card:hover{box-shadow:0 16px 38px rgba(0,0,0,.09);transform:translateY(-3px);transition:.2s}.icon{width:46px;height:46px;border-radius:50%;background:#f6dfe1;color:var(--red);display:grid;place-items:center;font-weight:800;font-size:20px;margin-bottom:15px}.card h3{font-size:18px;margin:0 0 7px;color:#121416}.card p{font-size:13px;color:#3d4248;margin:0}
.gallery{display:grid;grid-template-columns:1.4fr .8fr .8fr;grid-template-rows:245px 245px;gap:12px}.tile{position:relative;overflow:hidden;border-radius:5px}.tile:first-child{grid-row:1/3}.tile img{width:100%;height:100%;object-fit:cover;transition:.45s}.tile:hover img{transform:scale(1.05)}.tile:after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.82))}.tiletext{position:absolute;left:18px;bottom:16px;z-index:2;color:#fff}.tiletext small{font-size:9px;letter-spacing:2px;text-transform:uppercase;color:#efb1b5}.tiletext b{display:block;font:700 22px "Playfair Display",serif}
.process{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.step{background:#fff;border:1px solid var(--line);border-top:3px solid var(--red);padding:20px}.num{font:800 29px "Manrope";color:var(--red)}.step h3{font-size:17px;margin:7px 0 4px;color:#111}.step p{font-size:12px;color:#444;margin:0}
.cta{background:#111214;color:#fff}.ctagrid{display:flex;align-items:center;justify-content:space-between;gap:30px}.cta h2{font:700 clamp(35px,4vw,54px)/1.08 "Playfair Display",serif;margin:0}.cta p{color:#d1d1d1}
.pagehero{background:linear-gradient(100deg,#101113,#292b2f);color:#fff;padding:65px 0}.pagehero h1{font:700 clamp(44px,6vw,68px)/1 "Playfair Display",serif;margin:0;color:#fff}.pagehero p{color:#ddd;margin:10px 0 0;font-size:14px}
.contactgrid{display:grid;grid-template-columns:.9fr 1.1fr;gap:20px}.box{border:1px solid var(--line);padding:29px;border-radius:5px}.box h2{font:700 33px "Playfair Display",serif;color:#111;margin:0 0 17px}.item{padding:13px 0;border-bottom:1px solid #e7e4df;font-size:13px;color:#30353a}.item:last-child{border-bottom:0}.item strong{display:block;font-size:10px;letter-spacing:2px;color:var(--red);text-transform:uppercase}.form{display:grid;gap:11px}.form input,.form select,.form textarea{width:100%;padding:12px 13px;border:1px solid #d5d1ca;border-radius:3px;font:inherit}.form textarea{min-height:130px}
footer{background:#0d0e10;color:#ddd;padding:46px 0 22px}.footgrid{display:grid;grid-template-columns:1.4fr .8fr 1fr;gap:40px}.footgrid h3{font:700 22px "Playfair Display";color:#fff}.footgrid p,.footgrid li{font-size:12px;color:#c1c1c1}.footgrid ul{list-style:none;padding:0;display:grid;gap:6px}.copyr{text-align:center;border-top:1px solid #333;margin-top:27px;padding-top:16px;color:#999;font-size:11px}
.float{position:fixed;right:18px;bottom:18px;width:54px;height:54px;border-radius:50%;background:#19b955;color:#fff;display:grid;place-items:center;z-index:100;box-shadow:0 10px 25px rgba(0,0,0,.25)}
@media(max-width:900px){.navlinks{display:none;position:absolute;left:0;right:0;top:82px;background:#fff;padding:18px 5%;flex-direction:column;align-items:stretch;gap:8px;border-bottom:1px solid #ddd}.navlinks.open{display:flex}.navlinks a{padding:11px 0}.navlinks a.active:after{display:none}.menu{display:block}.split,.contactgrid{grid-template-columns:1fr}.cards{grid-template-columns:1fr 1fr}.gallery{grid-template-columns:1fr 1fr;grid-template-rows:250px 250px 250px}.tile:first-child{grid-column:1/3;grid-row:auto}.process{grid-template-columns:1fr 1fr}.statsgrid{grid-template-columns:1fr 1fr}.footgrid{grid-template-columns:1fr 1fr}.ctagrid{flex-direction:column;align-items:flex-start}}
@media(max-width:560px){.top .container{justify-content:center;text-align:center}.nav{min-height:74px}.logo{height:53px}.hero{min-height:650px}.hero-content{padding:70px 0}.hero p{font-size:16px}section{padding:55px 0}.checks{grid-template-columns:1fr}.cards,.process,.statsgrid,.footgrid{grid-template-columns:1fr}.gallery{grid-template-columns:1fr;grid-template-rows:270px 270px 270px 270px 270px}.tile:first-child{grid-column:auto}.tile{height:270px}.pagehero{padding:48px 0}}

/* V8 typography refinement */
body{font-family:"DM Sans",Arial,sans-serif}
.navlinks a,.eyebrow,.top,.stat,.btn,.quote,.card h3,.step h3,.item strong,.tiletext small{
  font-family:"Space Grotesk","DM Sans",Arial,sans-serif;
}
.hero h1,.sectionhead h2,.copy h2,.pagehero h1,.pagehero h2,.cta h2,.box h2,.footgrid h3{
  font-family:"Playfair Display",Georgia,serif;
}
.card p,.step p,.sectionhead p,.copy p,.pagehero p,.hero p,.item,.footgrid p,.footgrid li{
  font-family:"DM Sans",Arial,sans-serif;
}

/* V9 project gallery lightbox */
.project-open{cursor:pointer}
.project-open:focus{outline:3px solid #e52b35;outline-offset:3px}
.lightbox{position:fixed;inset:0;background:rgba(5,6,7,.94);z-index:1000;display:none;align-items:center;justify-content:center;padding:30px}
.lightbox.open{display:flex}
.lb-stage{width:min(88vw,1100px);height:min(82vh,760px);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}
.lb-stage img{max-width:100%;max-height:calc(100% - 52px);width:auto;height:auto;object-fit:contain;border-radius:4px;box-shadow:0 20px 70px rgba(0,0,0,.5)}
.lb-caption{width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;color:#fff;padding:12px 2px 0;font-family:"Space Grotesk",sans-serif}
.lb-caption span{font-size:11px;color:#bbb;letter-spacing:1px}
.lb-caption strong{font-size:15px}
.lb-close,.lb-prev,.lb-next{position:absolute;border:0;background:rgba(255,255,255,.10);color:#fff;width:48px;height:48px;border-radius:50%;cursor:pointer;font-size:38px;line-height:1;display:grid;place-items:center;transition:.2s}
.lb-close:hover,.lb-prev:hover,.lb-next:hover{background:var(--red)}
.lb-close{right:25px;top:20px;font-size:32px}
.lb-prev{left:25px;top:50%;transform:translateY(-50%)}
.lb-next{right:25px;top:50%;transform:translateY(-50%)}
body.lb-lock{overflow:hidden}
@media(max-width:600px){
 .lightbox{padding:15px}
 .lb-stage{width:94vw;height:78vh}
 .lb-prev{left:8px}.lb-next{right:8px}.lb-close{right:12px;top:8px}
 .lb-caption{align-items:flex-start;flex-direction:column;gap:2px}
}

/* V10: polished About brand panel */
.about-brand{background:#fff;border:1px solid var(--line);border-radius:6px;min-height:430px;padding:42px 48px;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 20px 55px rgba(0,0,0,.10)}
.about-brand img{width:100%;max-width:470px;height:auto;max-height:260px;object-fit:contain}
.brand-caption{margin-top:24px;font-family:"Space Grotesk",sans-serif;font-size:12px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--red);text-align:center}
@media(max-width:560px){.about-brand{min-height:300px;padding:28px 22px}.about-brand img{max-height:190px}.brand-caption{margin-top:16px;font-size:10px;letter-spacing:2px}}

/* V10: true same-page project slider */
.lightbox{background:rgba(6,7,9,.96)}
.lb-stage{width:min(86vw,1120px);height:min(82vh,780px)}
.lb-stage img{max-width:100%;max-height:calc(100% - 58px);object-fit:contain;transition:opacity .18s ease,transform .18s ease}
.lb-stage img.slide-in-left{animation:slideInLeft .22s ease}
.lb-stage img.slide-in-right{animation:slideInRight .22s ease}
@keyframes slideInLeft{from{opacity:.2;transform:translateX(-28px)}to{opacity:1;transform:translateX(0)}}
@keyframes slideInRight{from{opacity:.2;transform:translateX(28px)}to{opacity:1;transform:translateX(0)}}
.lb-prev,.lb-next{width:58px;height:58px;background:rgba(255,255,255,.14);font-family:Arial,sans-serif;font-size:42px}
.lb-prev:hover,.lb-next:hover{background:var(--red)}
.lb-caption{border-top:1px solid rgba(255,255,255,.15);margin-top:8px;padding-top:11px}
.lb-hint{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);color:#aaa;font:11px "Space Grotesk",sans-serif;letter-spacing:1px;white-space:nowrap}
@media(max-width:600px){.lb-stage{width:92vw;height:76vh}.lb-prev,.lb-next{width:44px;height:44px;font-size:32px}.lb-hint{display:none}}

/* V11 - V2-style same-page project carousel */
.carousel{position:fixed;inset:0;z-index:2000;display:none;align-items:center;justify-content:center;padding:20px}
.carousel.open{display:flex}
.carousel-backdrop{position:absolute;inset:0;background:rgba(5,6,8,.93)}
.carousel-window{position:relative;z-index:2;width:min(94vw,1180px);height:min(90vh,820px);display:flex;align-items:center;justify-content:center}
.carousel-main{width:min(82vw,1000px);height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}
.carousel-main img{max-width:100%;max-height:calc(100% - 70px);object-fit:contain;border-radius:5px;box-shadow:0 25px 80px rgba(0,0,0,.6);background:#111}
.carousel-info{width:100%;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:13px 3px 0;font-family:"Space Grotesk",sans-serif}
.carousel-info strong{display:block;font-size:17px;margin-top:2px}
.carousel-info span{font-size:11px;color:#bbb;letter-spacing:1px}
.carousel-help{font-size:10px;color:#aaa;letter-spacing:.8px}
.carousel-arrow,.carousel-close{border:0;cursor:pointer;color:#fff;background:rgba(255,255,255,.13);position:absolute;z-index:4;border-radius:50%;display:grid;place-items:center;transition:.2s}
.carousel-arrow{width:62px;height:62px;font:50px/1 Arial,sans-serif;top:50%;transform:translateY(-50%)}
.carousel-left{left:4px}.carousel-right{right:4px}
.carousel-arrow:hover,.carousel-close:hover{background:var(--red)}
.carousel-close{right:4px;top:5px;width:48px;height:48px;font:32px/1 Arial,sans-serif}
body.carousel-lock{overflow:hidden}
@media(max-width:650px){
 .carousel{padding:8px}
 .carousel-window{width:100%;height:88vh}
 .carousel-main{width:90vw}
 .carousel-main img{max-height:calc(100% - 80px)}
 .carousel-arrow{width:48px;height:48px;font-size:38px}
 .carousel-left{left:-2px}.carousel-right{right:-2px}
 .carousel-info{padding-left:42px;padding-right:42px;display:block}
 .carousel-help{margin-top:5px}
 .carousel-close{right:2px;top:0}
}

/* V12: robust full-screen project viewer */
.project-card{border:0;padding:0;margin:0;width:100%;text-align:left;font:inherit;background:none;cursor:pointer}
.project-card:focus{outline:3px solid var(--red);outline-offset:3px}
.project-modal{display:none;position:fixed;inset:0;z-index:9999}
.project-modal.open{display:block}
.project-modal-bg{position:absolute;inset:0;background:rgba(0,0,0,.94)}
.project-viewer{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:55px 85px}
.viewer-content{width:min(86vw,1150px);height:min(82vh,820px);display:flex;flex-direction:column;justify-content:center;align-items:center}
.viewer-content img{display:block;max-width:100%;max-height:calc(100% - 62px);width:auto;height:auto;object-fit:contain;border-radius:5px;background:#111;box-shadow:0 30px 100px rgba(0,0,0,.7)}
.viewer-bottom{width:100%;color:#fff;padding-top:14px;display:flex;justify-content:space-between;align-items:center;font-family:"Space Grotesk",sans-serif;border-top:1px solid rgba(255,255,255,.16);margin-top:10px}
.viewer-bottom span{display:block;font-size:11px;color:#aaa;letter-spacing:1px}
.viewer-bottom strong{display:block;font-size:18px;margin-top:3px}
.viewer-controls{font-size:11px;color:#aaa;letter-spacing:.5px}
.viewer-prev,.viewer-next,.viewer-close{position:absolute;z-index:2;border:0;color:#fff;background:rgba(255,255,255,.16);cursor:pointer;border-radius:50%;display:grid;place-items:center;transition:background .2s,transform .2s}
.viewer-prev,.viewer-next{width:70px;height:70px;top:50%;transform:translateY(-50%);font:56px/1 Arial,sans-serif}
.viewer-prev{left:18px}.viewer-next{right:18px}
.viewer-prev:hover,.viewer-next:hover,.viewer-close:hover{background:var(--red)}
.viewer-close{width:52px;height:52px;right:22px;top:18px;font:35px/1 Arial,sans-serif}
body.viewer-lock{overflow:hidden}
@media(max-width:650px){
 .project-viewer{padding:55px 8px 30px}
 .viewer-content{width:92vw;height:78vh}
 .viewer-content img{max-height:calc(100% - 80px)}
 .viewer-prev,.viewer-next{width:50px;height:50px;font-size:40px}
 .viewer-prev{left:5px}.viewer-next{right:5px}
 .viewer-close{right:8px;top:8px;width:44px;height:44px;font-size:29px}
 .viewer-bottom{padding-left:44px;padding-right:44px;display:block}
 .viewer-controls{margin-top:5px}
}

.project-card video{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
