:root{
 --luxa-bg:#f7f8f6;
 --luxa-panel:#ffffff;
 --luxa-text:#071c31;
 --luxa-accent:#10a9aa;
 --luxa-muted:#6a7780;
 --max:1440px;
}
body.theme-dark,
body.theme-cinematic,
body.theme-custom{
 color:var(--luxa-text);
 background:var(--luxa-bg);
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--luxa-text);background:var(--luxa-bg)}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.site-header{height:84px;display:flex;align-items:center;padding:0 clamp(24px,5vw,72px);background:var(--luxa-panel);position:sticky;top:0;z-index:50;border-bottom:1px solid rgba(7,28,49,.08)}.brand{display:flex;flex-direction:column;line-height:.8;letter-spacing:.04em;font-size:17px;min-width:145px}.brand strong{font-size:21px}.brand span{letter-spacing:.16em;font-size:11px;margin-top:7px}.desktop-nav{margin-left:auto;display:flex;gap:34px;text-transform:uppercase;font-size:11px;letter-spacing:.1em;font-weight:700}.desktop-nav a{position:relative}.desktop-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-7px;height:2px;background:var(--luxa-accent);transition:.25s}.desktop-nav a:hover:after{right:0}.menu-toggle,.mobile-nav{display:none}.hero{position:relative;min-height:690px;height:min(73vw,760px);overflow:hidden;background:var(--deep);color:#fff}.hero-media,.hero-video,.hero-placeholder,.hero-scrim{position:absolute;inset:0;width:100%;height:100%}.hero-video{object-fit:cover}.hero-placeholder{background:linear-gradient(135deg,#eef7f6 0%,#dce7e8 30%,#aec9ca 70%,#31586b 100%)}.oxford-silhouette{position:absolute;inset:auto 0 0;height:48%;opacity:.45;background:linear-gradient(to top,#0d3144,transparent),radial-gradient(circle at 69% 29%,transparent 0 3%,#173f50 3.2% 4%,transparent 4.2%),linear-gradient(125deg,transparent 0 62%,#173f50 62% 63%,transparent 63%)}.hero-scrim{background:transparent}.hero-copy{position:absolute;z-index:2;left:clamp(30px,6vw,92px);top:50%;transform:translateY(-48%);max-width:680px}.eyebrow{text-transform:uppercase;letter-spacing:.19em;font-size:12px;font-weight:800;margin:0 0 24px;color:var(--teal2)}.eyebrow.dark{color:var(--luxa-accent)}.eyebrow.light{color:#7fe2dc}.hero h1{font-size:clamp(54px,6.8vw,104px);line-height:.89;letter-spacing:-.055em;margin:0;max-width:970px}.hero-text{max-width:570px;font-size:clamp(17px,1.45vw,22px);line-height:1.55;margin:30px 0 0;color:#e6f0f1}.video-line{position:absolute;z-index:2;left:clamp(30px,6vw,92px);right:clamp(30px,6vw,92px);bottom:32px;height:2px;background:rgba(255,255,255,.25)}.video-line span{display:block;width:34%;height:2px;background:var(--teal2)}.service-strip{background:var(--deep);color:#fff;border-top:1px solid rgba(255,255,255,.1)}.service-strip-inner{max-width:var(--max);margin:auto;display:grid;grid-template-columns:repeat(6,1fr);padding:0 clamp(22px,4vw,64px)}.service-pill{padding:24px 14px 22px;text-align:center;border-right:1px solid rgba(255,255,255,.12);min-width:0}.service-pill:first-child{border-left:1px solid rgba(255,255,255,.12)}.service-icon{width:30px;height:30px;margin:0 auto 10px;border:1.5px solid var(--teal2);border-radius:9px;display:grid;place-items:center;font-size:12px;color:var(--teal2)}.service-pill h3{font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin:0;white-space:nowrap}.work-section{max-width:var(--max);margin:auto;padding:100px clamp(24px,5vw,72px) 120px}.section-top{display:grid;grid-template-columns:1.35fr .65fr;gap:70px;align-items:end;margin-bottom:58px}.section-top h2,.about-section h2,.contact-section h2{font-size:clamp(42px,4.5vw,72px);letter-spacing:-.045em;line-height:.98;margin:0}.section-intro{font-size:18px;line-height:1.6;color:#52616a;margin:0}.project-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:22px}.project-card{grid-column:span 4;background:var(--luxa-panel);border:1px solid var(--line);overflow:hidden;transition:transform .25s,border-color .25s}.project-card:hover{transform:translateY(-4px);border-color:#a9c9cb}.project-media{aspect-ratio:16/10;background:#dfe8e9;position:relative;overflow:hidden}.project-media video,.project-media img{width:100%;height:100%;display:block;object-fit:cover}.project-fallback{position:absolute;inset:0;background:linear-gradient(145deg,#b9d7d5,#133f54);display:grid;place-items:center;color:#fff;font-size:12px;letter-spacing:.15em;text-transform:uppercase}.project-copy{padding:23px 24px 27px}.project-meta{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--luxa-accent);font-weight:800}.project-copy h3{font-size:25px;line-height:1.04;margin:12px 0}.project-copy p{line-height:1.6;color:#5e6b72;margin:0}.about-section{background:linear-gradient(130deg,#06243b,#0c5261);color:#fff;display:grid;grid-template-columns:.55fr 1.45fr;gap:60px;padding:110px clamp(24px,5vw,72px);align-items:start}.about-kicker{font-weight:800;font-size:30px;line-height:.88;letter-spacing:-.03em}.about-kicker span{color:var(--teal2)}.about-main p{font-size:18px;line-height:1.65;color:#d5e4e5}.contact-section{padding:115px clamp(24px,5vw,72px);max-width:var(--max);margin:auto}.contact-section h2{margin-bottom:45px}.contact-section a{font-size:clamp(24px,3vw,44px);font-weight:700;border-bottom:2px solid var(--luxa-accent);padding-bottom:7px}.contact-section a span{color:var(--luxa-accent)}.footer{background:#031725;color:#d8e1e5;padding:38px clamp(24px,5vw,72px);display:grid;grid-template-columns:1fr auto auto;gap:30px;align-items:end;font-size:13px}.inverse{color:#fff}.footer p{margin:0}.empty-state{grid-column:1/-1;border:1px dashed #a7b8bd;padding:48px;text-align:center;color:#65767d;background:#fff}
@media(max-width:950px){.site-header{height:72px}.desktop-nav{display:none}.menu-toggle{display:flex;margin-left:auto;width:42px;height:42px;border:0;background:var(--deep);border-radius:50%;align-items:center;justify-content:center;flex-direction:column;gap:5px}.menu-toggle span{width:15px;height:1.5px;background:#fff}.mobile-nav{position:fixed;top:72px;left:0;right:0;background:var(--luxa-panel);padding:22px 28px 30px;display:none;flex-direction:column;gap:22px;border-bottom:1px solid var(--line);font-weight:750}.mobile-nav.open{display:flex}.hero{height:720px;min-height:0}.hero-copy{top:auto;bottom:86px;transform:none;right:30px}.hero h1{font-size:clamp(52px,9vw,78px)}.service-strip-inner{grid-template-columns:repeat(3,1fr)}.service-pill:nth-child(4){border-left:1px solid rgba(255,255,255,.12)}.section-top{grid-template-columns:1fr;gap:24px}.project-card{grid-column:span 6}.about-section{grid-template-columns:1fr 1.5fr}.footer{grid-template-columns:1fr 1fr}.footer p:last-child{grid-column:2}}
@media(max-width:620px){.brand strong{font-size:17px}.site-header{padding:0 20px}.hero{height:78svh;min-height:620px}.hero-scrim{background:transparent}.hero-copy{left:22px;right:22px;bottom:72px}.hero h1{font-size:clamp(46px,13vw,68px)}.hero-text{font-size:16px;margin-top:20px}.eyebrow{margin-bottom:17px}.video-line{left:22px;right:22px;bottom:28px}.service-strip-inner{grid-template-columns:repeat(2,1fr);padding:0 14px}.service-pill{padding:19px 8px}.service-pill:nth-child(odd){border-left:1px solid rgba(255,255,255,.12)}.service-pill h3{font-size:10px}.work-section{padding:70px 20px 80px}.section-top{margin-bottom:36px}.section-top h2,.about-section h2,.contact-section h2{font-size:43px}.project-grid{display:block}.project-card{margin-bottom:18px}.project-copy{padding:20px}.about-section{display:block;padding:75px 22px}.about-kicker{margin-bottom:62px}.about-main{margin-bottom:52px}.contact-section{padding:75px 22px 90px}.footer{padding:36px 22px;display:block}.footer p{margin-top:22px}.footer p:last-child{margin-top:8px}}
/* Portfolio + pricing pages */
.dark-page{background:#04192a;color:#fff}.dark-header{background:#071d31;color:#fff;border-color:rgba(255,255,255,.08)}.dark-header .mobile-nav{background:#071d31;color:#fff;border-color:rgba(255,255,255,.12)}.dark-header .desktop-nav a.active:after{right:0}.portfolio-page,.prices-page{min-height:80vh;background:radial-gradient(circle at 50% 10%,#103e55 0,#071e32 34%,#041727 72%)}.portfolio-hero{text-align:center;padding:70px 24px 52px;background:linear-gradient(rgba(4,24,40,.62),rgba(4,24,40,.88))}.portfolio-hero .eyebrow,.prices-hero .eyebrow{margin-bottom:15px}.portfolio-hero h1,.prices-hero h1{font-size:clamp(42px,5vw,72px);line-height:.95;margin:0;letter-spacing:-.04em}.portfolio-hero p:last-child,.prices-hero p:last-child{font-size:17px;color:#c9d7dd;max-width:680px;margin:18px auto 0;line-height:1.6}.portfolio-tabs{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:repeat(6,1fr);border:1px solid rgba(255,255,255,.12);border-left:0;border-right:0}.portfolio-tab{min-height:82px;display:grid;place-items:center;text-align:center;padding:16px 10px;color:#d9e6eb;border-right:1px solid rgba(255,255,255,.12);font-size:13px;font-weight:700}.portfolio-tab:first-child{border-left:1px solid rgba(255,255,255,.12)}.portfolio-tab.active{color:#54d8d2;background:rgba(19,178,177,.08);box-shadow:inset 0 -2px #32c9c4}.portfolio-grid-wrap{max-width:1400px;margin:auto;padding:28px clamp(18px,3vw,42px) 90px}.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.portfolio-card{background:linear-gradient(160deg,#0b2d47,#071e32);border:1px solid rgba(255,255,255,.16);overflow:hidden}.portfolio-media{aspect-ratio:16/9;background:#020b12;overflow:hidden}.portfolio-media video,.portfolio-media img{display:block;width:100%;height:100%;object-fit:cover;background:#000}.portfolio-media video::-webkit-media-controls-enclosure{background:linear-gradient(transparent,rgba(0,0,0,.75))}.portfolio-copy{padding:16px 18px 20px}.portfolio-label,.portfolio-meta span{display:block;margin:0 0 5px;text-transform:uppercase;letter-spacing:.11em;color:#37d1c9;font-size:10px}.portfolio-copy h2{font-size:19px;margin:0 0 15px}.portfolio-meta{display:grid;grid-template-columns:1fr 1fr;gap:16px}.portfolio-meta strong{font-size:13px;font-weight:500;color:#e0ebee}.portfolio-desc{font-size:13px;line-height:1.5;color:#b7c7ce;margin:15px 0 0}.portfolio-empty{padding:80px;text-align:center;color:#b7c7ce}.prices-page{padding-bottom:80px}.prices-hero{text-align:center;padding:76px 24px 48px}.pricing-cards{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:16px 24px 50px}.price-card{position:relative;border:1px solid rgba(255,255,255,.2);padding:34px 30px 30px;background:linear-gradient(160deg,rgba(11,44,70,.95),rgba(5,27,45,.95));text-align:center}.price-card.popular{border-color:#2fc7c2}.popular-tag{position:absolute;top:0;left:0;right:0;background:#2fc7c2;color:#032036;text-transform:uppercase;font-size:10px;font-weight:800;padding:7px}.price-card.popular{padding-top:48px}.price-card h2{font-size:18px;margin:0 0 15px}.price-description{font-size:13px;color:#bfcdd3;min-height:48px;line-height:1.5}.price{font-size:38px;margin-top:18px}.price-suffix{font-size:12px;color:#aabac2}.price-card ul{list-style:none;padding:18px 0;margin:0;text-align:left;border-top:1px solid rgba(255,255,255,.09)}.price-card li{color:#37d1c9;font-size:13px;margin:10px 0}.price-card li span{color:#dce7ea;margin-left:6px}.quote-button{display:inline-flex;align-items:center;justify-content:center;gap:30px;min-height:48px;border:1px solid #2fc7c2;color:#5be3dd;padding:0 30px;text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:800}.popular .quote-button{background:#2fc7c2;color:#032036}.addons{max-width:1180px;margin:0 auto;padding:0 24px 42px}.section-rule{display:flex;align-items:center;gap:20px;text-transform:uppercase;font-size:12px;margin-bottom:28px}.section-rule:before,.section-rule:after{content:"";height:1px;background:rgba(255,255,255,.22);flex:1}.addon-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}.addon-card{display:flex;gap:12px;align-items:center}.addon-icon{color:#3bd1ca;font-size:20px}.addon-card strong,.addon-card span{display:block}.addon-card strong{font-size:12px}.addon-card span{font-size:11px;color:#aabac2;margin-top:3px}.custom-quote{max-width:1180px;margin:25px auto 0;border:1px solid rgba(255,255,255,.17);background:linear-gradient(135deg,#0c2f48,#071d31);padding:35px;display:grid;grid-template-columns:1fr auto;gap:50px;align-items:center}.custom-quote h2{margin:0;font-size:28px}.custom-quote p{max-width:650px;color:#c0cdd2;line-height:1.6}.custom-quote .eyebrow{margin-bottom:10px}
@media(max-width:950px){.portfolio-tabs{grid-template-columns:repeat(3,1fr)}.portfolio-grid{grid-template-columns:repeat(2,1fr)}.pricing-cards{grid-template-columns:1fr;max-width:650px}.price-description{min-height:0}.addon-grid{grid-template-columns:repeat(2,1fr)}.custom-quote{grid-template-columns:1fr}.dark-header .menu-toggle{background:#0b334e}}
@media(max-width:620px){.portfolio-hero{padding:52px 20px 38px}.portfolio-tabs{grid-template-columns:repeat(2,1fr)}.portfolio-tab{min-height:64px;font-size:11px}.portfolio-grid-wrap{padding:18px 14px 60px}.portfolio-grid{grid-template-columns:1fr}.portfolio-copy{padding:14px 15px 18px}.prices-hero{padding:55px 20px 32px}.pricing-cards{padding:12px 16px 35px}.price-card{padding:28px 22px}.addons{padding:0 18px 30px}.addon-grid{grid-template-columns:1fr}.custom-quote{margin:20px 16px 0;padding:28px 22px}.quote-button{width:100%}}

/* V3 portfolio category banners + live edit */
.service-banner-grid{max-width:1440px;margin:-1px auto 0;padding:18px 28px;display:grid;grid-template-columns:repeat(6,1fr);gap:10px;background:#071a2d}
.service-banner{min-height:118px;position:relative;overflow:hidden;padding:18px 16px;display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(145deg,#0b2b43,#102036);background-size:cover;background-position:center;color:#fff;border:1px solid rgba(255,255,255,.1);text-decoration:none}
.service-banner:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(2,13,24,.88),rgba(2,13,24,.12));z-index:0}.service-banner>*{position:relative;z-index:1}.service-banner-icon{font-size:21px;color:#28d4cf;margin-bottom:auto}.service-banner strong{font-size:15px}.service-banner small{font-size:10px;line-height:1.3;color:#c8d4dd;margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.service-banner.active{outline:2px solid #21c7c4;outline-offset:-2px}
.portfolio-tabs{max-width:1440px!important;margin:0 auto!important;padding:0 28px 22px!important;display:grid!important;grid-template-columns:repeat(6,1fr)!important;gap:0!important;background:#071a2d!important}.portfolio-tab{display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;min-height:56px!important;border:1px solid rgba(255,255,255,.12)!important;border-left:0!important;color:#eef7fb!important;background:#0d2237!important}.portfolio-tab:first-child{border-left:1px solid rgba(255,255,255,.12)!important}.portfolio-tab.active{background:#0c3446!important;color:#31d2ce!important;border-bottom:3px solid #31d2ce!important}.tab-icon{font-size:18px}
.live-edit-bar{position:fixed;right:18px;bottom:18px;z-index:9999;background:var(--luxa-panel);color:#062038;border:1px solid #b6c8d4;box-shadow:0 12px 40px rgba(0,0,0,.3);padding:10px 12px;display:flex;align-items:center;gap:8px;font:13px/1.2 Arial,sans-serif}.live-edit-bar button,.live-edit-bar a{border:1px solid var(--luxa-accent);background:var(--luxa-accent);color:#fff;padding:8px 10px;text-decoration:none;cursor:pointer}.live-editable{outline:2px dashed #36d2ce!important;outline-offset:4px;background:rgba(54,210,206,.08)!important}
@media(max-width:980px){.service-banner-grid{grid-template-columns:repeat(3,1fr)}.portfolio-tabs{grid-template-columns:repeat(3,1fr)!important}}
@media(max-width:620px){.service-banner-grid{grid-template-columns:repeat(2,1fr);padding:12px}.service-banner{min-height:104px}.portfolio-tabs{grid-template-columns:repeat(2,1fr)!important;padding:0 12px 16px!important}.live-edit-bar{left:8px;right:8px;bottom:8px;flex-wrap:wrap}}
/* DOP page */
.dops-page{background:#071a2d;min-height:80vh}.map-section{max-width:1440px;margin:0 auto;padding:52px 42px;display:grid;grid-template-columns:.75fr 1.25fr;gap:50px;align-items:center;background:linear-gradient(120deg,#081b2f,#0b263d)}.map-copy h2{font-size:clamp(30px,4vw,56px);line-height:1.02;color:#fff;margin:.4rem 0 1rem}.map-copy>p:not(.eyebrow){color:#b9c9d5;max-width:540px}.world-map svg{width:100%;height:auto}.world-map .land{fill:#163b52;stroke:#315d71;stroke-width:2}.world-map .hotspot{fill:#28d4cf;stroke:#d8ffff;stroke-width:3;cursor:pointer;opacity:.5}.world-map .hotspot.active{opacity:1;filter:drop-shadow(0 0 10px #28d4cf)}.region-filters{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.region-btn{border:1px solid #315d71;background:transparent;color:#dff;padding:9px 12px;cursor:pointer}.region-btn.active{background:#22bab7;color:#041825;border-color:#22bab7}.dops-list{max-width:1440px;margin:0 auto;padding:28px 42px 70px;display:grid;gap:24px}.dop-card{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);background:#0d2237;border:1px solid rgba(255,255,255,.12)}.dop-media{min-height:320px;background:#020b12}.dop-media video,.dop-media img{display:block;width:100%;height:100%;min-height:320px;object-fit:cover}.dop-copy{position:relative;padding:36px;color:#d4e0e8}.dop-copy h2{font-size:32px;color:#fff;margin:5px 0}.dop-location{color:#28d4cf;font-weight:700}.dop-portrait{width:74px;height:74px;object-fit:cover;border-radius:50%;float:right;margin-left:15px;border:2px solid #28d4cf}
@media(max-width:800px){.map-section{grid-template-columns:1fr;padding:32px 18px}.dops-list{padding:18px}.dop-card{grid-template-columns:1fr}.dop-media video,.dop-media img,.dop-media{min-height:220px}.dop-copy{padding:24px}}

/* V3.1 portfolio stability fixes */
.service-banner{isolation:isolate;background-color:#0b2b43;background-size:cover;background-position:center}
.service-banner:before{display:none!important}
.service-banner-shade{position:absolute!important;z-index:0!important;inset:0;background:linear-gradient(0deg,rgba(2,13,24,.90),rgba(2,13,24,.18));pointer-events:none}
.service-banner-icon,.service-banner strong,.service-banner small{z-index:1!important}
.portfolio-media-inner{width:100%;height:100%;position:relative}
.portfolio-media-inner video,.portfolio-media-inner img{width:100%;height:100%;display:block;object-fit:cover;background:#000}
.portfolio-card{min-width:0}
.portfolio-copy,.portfolio-meta>div{min-width:0}
.portfolio-copy h2,.portfolio-meta strong,.portfolio-desc{overflow-wrap:anywhere}
@media(max-width:620px){.portfolio-hero h1{font-size:clamp(38px,11vw,58px)}.service-banner small{display:none}.service-banner{min-height:88px}.portfolio-tab{padding:10px 6px!important}.tab-icon{font-size:15px}}

/* V3.2 — Services-integrated work pages */
.services-work-page{background:var(--luxa-bg);min-height:80vh;color:var(--luxa-text)}
.services-work-hero{min-height:310px;padding:72px clamp(24px,6vw,92px) 58px;display:flex;align-items:flex-end;background:var(--luxa-panel);border-bottom:1px solid var(--line)}
.services-work-hero>div{max-width:900px}.services-work-hero h1{font-size:clamp(48px,6vw,86px);line-height:.92;letter-spacing:-.05em;margin:0}.services-work-hero p:last-child{font-size:18px;line-height:1.6;color:#53646d;max-width:690px;margin:20px 0 0}
.services-switch-wrap{background:var(--deep);padding:0 clamp(18px,4vw,64px)}
.services-switch{max-width:var(--max);margin:auto;display:grid;grid-template-columns:repeat(6,1fr)}
.service-switch-button{min-height:78px;display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 10px;color:#fff;border-right:1px solid rgba(255,255,255,.12);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;transition:.2s}
.service-switch-button:first-child{border-left:1px solid rgba(255,255,255,.12)}.service-switch-button:hover,.service-switch-button.active{background:var(--luxa-accent);color:var(--luxa-accent);box-shadow:inset 0 -3px var(--teal2)}.service-switch-icon{color:var(--teal2);font-size:18px}
.service-projects{max-width:var(--max);margin:auto;padding:74px clamp(24px,5vw,72px) 110px}.service-projects-head{margin-bottom:36px}.service-projects-head h2{font-size:clamp(34px,4vw,58px);margin:0;letter-spacing:-.04em}.light-grid{grid-template-columns:repeat(3,1fr);gap:22px}.light-card{background:var(--luxa-panel);border:1px solid var(--line);color:var(--luxa-text);box-shadow:0 8px 28px rgba(7,28,49,.045)}.light-card .portfolio-label,.light-card .portfolio-meta span{color:var(--luxa-accent)}.light-card .portfolio-meta strong{color:var(--luxa-text)}.light-card .portfolio-desc{color:#64727a}.light-empty{color:#667780;border:1px dashed #aab9be;background:var(--luxa-panel);margin-top:20px}
@media(max-width:950px){.services-switch{grid-template-columns:repeat(3,1fr)}.service-switch-button:nth-child(4){border-left:1px solid rgba(255,255,255,.12)}.light-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.services-work-hero{min-height:250px;padding:52px 22px 38px}.services-work-hero h1{font-size:50px}.services-switch-wrap{padding:0 12px}.services-switch{grid-template-columns:repeat(2,1fr)}.service-switch-button{min-height:62px;font-size:10px}.service-switch-button:nth-child(odd){border-left:1px solid rgba(255,255,255,.12)}.service-projects{padding:52px 18px 72px}.light-grid{grid-template-columns:1fr}}

/* V3.2 — DOP cards: two columns, compact reels */
.dops-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.dop-card{display:block;min-width:0}.dop-media{height:190px;min-height:0}.dop-media video,.dop-media img{height:190px;min-height:0;object-fit:cover}.dop-copy{padding:24px}.dop-copy h2{font-size:26px}.dop-copy p{font-size:14px;line-height:1.55}.dop-portrait{width:62px;height:62px}
@media(max-width:900px){.dops-list{grid-template-columns:1fr}.dop-media,.dop-media video,.dop-media img{height:210px;min-height:0}}

/* V3.2 — live structured editor */
.live-structured-edit{position:absolute;top:10px;right:10px;z-index:8;border:0;background:var(--luxa-accent);color:#fff;padding:8px 11px;font-size:11px;font-weight:800;cursor:pointer;box-shadow:0 3px 12px rgba(0,0,0,.25)}.portfolio-card,.dop-card{position:relative}.live-editor-modal{position:fixed;inset:0;z-index:10020;background:rgba(2,12,20,.72);display:grid;place-items:center;padding:20px}.live-editor-panel{width:min(650px,100%);max-height:90vh;overflow:auto;background:var(--luxa-panel);color:#082037;padding:24px;box-shadow:0 20px 70px rgba(0,0,0,.4)}.live-editor-panel h3{margin:0 0 18px;font-size:26px}.live-editor-panel label{display:block;font-size:12px;font-weight:800;margin:14px 0 5px}.live-editor-panel input,.live-editor-panel textarea,.live-editor-panel select{width:100%;padding:10px 11px;border:1px solid #b9c8cf;background:var(--luxa-panel);color:#082037}.live-editor-actions{display:flex;gap:8px;margin-top:20px;flex-wrap:wrap}.live-editor-actions button{padding:10px 14px;border:1px solid var(--luxa-accent);background:var(--luxa-accent);color:#fff;cursor:pointer;font-weight:800}.live-editor-actions .secondary{background:var(--luxa-panel);color:#082037;border-color:#b9c8cf}.live-upload-note{font-size:11px;color:#667780;margin-top:6px}

/* V3.4 DOP visual refinements */
.world-map{padding:10px 0}.world-map svg{width:100%;height:auto;overflow:visible}.world-map .graticule path{fill:none;stroke:rgba(255,255,255,.07);stroke-width:1}.world-map .land{fill:#163b52;stroke:#3c6c82;stroke-width:1.5;stroke-linejoin:round}.world-map .small-land{fill:#1b465f}.world-map .map-labels text{fill:#6f98aa;font-size:14px;font-weight:700;letter-spacing:2px;text-anchor:middle}.world-map .hotspot{fill:#28d4cf;stroke:#d8ffff;stroke-width:3;cursor:pointer;opacity:.62}.world-map .hotspot.active{opacity:1;filter:drop-shadow(0 0 10px #28d4cf)}
.dops-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.dop-card{display:block;overflow:hidden}.dop-media{position:relative;width:100%;aspect-ratio:16/9;height:auto;min-height:0;background:#020b12}.dop-media video,.dop-media img{display:block;width:100%;height:100%;min-height:0;object-fit:cover}.dop-copy{min-height:210px;padding:26px}.dop-portrait{width:112px;height:112px;border-radius:12px;float:right;margin:0 0 14px 22px;border:2px solid #28d4cf;object-fit:cover}.dop-copy h2{font-size:30px}.dop-copy p{font-size:14px;line-height:1.6}
@media(max-width:900px){.dops-list{grid-template-columns:1fr}.dop-media{aspect-ratio:16/9;height:auto}.dop-media video,.dop-media img{height:100%}.dop-portrait{width:96px;height:96px}}
@media(max-width:560px){.dop-portrait{width:84px;height:84px;margin-left:14px}.world-map .map-labels text{font-size:11px;letter-spacing:1px}}


/* V3.6 — Services: one heading, description aligned right */
.services-switch-top{margin-top:0}
.services-heading-row{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(280px,.72fr);
  gap:clamp(34px,7vw,110px);
  align-items:end;
  margin-bottom:38px;
}
.services-heading-main h1{
  font-size:clamp(42px,5vw,68px);
  line-height:.96;
  letter-spacing:-.045em;
  margin:0;
}
.services-heading-intro{
  max-width:570px;
  margin:0 0 3px;
  color:#53646d;
  font-size:17px;
  line-height:1.65;
}
.service-projects{padding-top:62px}

/* Clean custom video controls — play + fullscreen only, no browser overflow menu */
.portfolio-media-inner{position:relative;width:100%;height:100%;background:#020b12}
.portfolio-media-inner video{display:block;width:100%;height:100%;object-fit:cover}
.ofh-video-controls{
  position:absolute;
  left:12px;right:12px;bottom:12px;
  display:flex;align-items:center;justify-content:space-between;
  pointer-events:none;
}
.ofh-video-controls button{
  pointer-events:auto;
  width:38px;height:38px;border:1px solid rgba(255,255,255,.6);
  border-radius:50%;background:rgba(3,20,31,.68);backdrop-filter:blur(6px);
  color:#fff;display:grid;place-items:center;cursor:pointer;
  font:700 14px/1 system-ui,sans-serif;
  transition:transform .15s ease,background .15s ease;
}
.ofh-video-controls button:hover{transform:scale(1.06);background:rgba(5,49,61,.88)}
.ofh-fullscreen{font-size:18px!important}
.portfolio-media-inner:fullscreen video{object-fit:contain;background:#000}
.portfolio-media-inner:fullscreen{background:#000;display:grid;place-items:center}
.portfolio-media-inner:fullscreen .ofh-video-controls{z-index:3}

@media(max-width:760px){
  .services-heading-row{grid-template-columns:1fr;gap:18px;align-items:start}
  .services-heading-intro{font-size:15px}
  .service-projects{padding-top:46px}
}


/* V3.7 — Services are part of the homepage and switch in-place */
.home-services{
  background:#f7faf9;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.home-services-inner{
  max-width:var(--max);
  margin:auto;
  padding:82px clamp(24px,5vw,72px) 105px;
}
.home-services-head{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(280px,.75fr);
  gap:clamp(34px,7vw,110px);
  align-items:end;
  margin-bottom:34px;
}
.home-services-head h2{
  font-size:clamp(42px,5vw,68px);
  line-height:.96;
  letter-spacing:-.045em;
  margin:0;
}
.home-service-intro{
  max-width:580px;
  margin:0 0 3px;
  color:#53646d;
  font-size:17px;
  line-height:1.65;
}
.home-service-tabs-wrap{
  margin:0 0 34px;
  background:var(--deep);
}
.home-service-tabs{
  display:grid;
  grid-template-columns:repeat(6,1fr);
}
.home-service-tab{
  min-height:74px;
  border:0;
  border-right:1px solid rgba(255,255,255,.12);
  background:transparent;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  padding:12px 10px;
  font:800 11px/1.25 system-ui,sans-serif;
  text-transform:uppercase;
  letter-spacing:.045em;
  cursor:pointer;
  transition:background .18s ease,color .18s ease,box-shadow .18s ease;
}
.home-service-tab:first-child{border-left:1px solid rgba(255,255,255,.12)}
.home-service-tab:hover,
.home-service-tab.active{
  background:var(--luxa-accent);
  color:var(--luxa-accent);
  box-shadow:inset 0 -3px var(--teal2);
}
.home-service-icon{
  color:var(--teal2);
  font-size:17px;
}
.home-service-work .project-grid{
  margin-top:0;
}
.home-service-work .project-card{
  background:var(--luxa-panel);
  border:1px solid var(--line);
  color:var(--luxa-text);
  box-shadow:0 8px 28px rgba(7,28,49,.045);
}
.home-service-work .project-copy p{
  color:#64727a;
}
.home-service-work .project-meta{
  color:var(--luxa-accent);
}
.home-service-work .project-media{
  aspect-ratio:16/9;
}
.home-service-work .project-media:fullscreen{
  background:#000;
  display:grid;
  place-items:center;
}
.home-service-work .project-media:fullscreen video{
  object-fit:contain;
}
.home-service-work .ofh-video-controls{
  position:absolute;
  left:12px;right:12px;bottom:12px;
  display:flex;align-items:center;justify-content:space-between;
  pointer-events:none;
}
.home-service-work .ofh-video-controls button{
  pointer-events:auto;
  width:38px;height:38px;
  border:1px solid rgba(255,255,255,.6);
  border-radius:50%;
  background:rgba(3,20,31,.68);
  color:#fff;
  display:grid;
  place-items:center;
  cursor:pointer;
  font:700 14px/1 system-ui,sans-serif;
}
.home-service-work .ofh-fullscreen{font-size:18px!important}

@media(max-width:950px){
  .home-service-tabs{grid-template-columns:repeat(3,1fr)}
  .home-service-tab:nth-child(4){border-left:1px solid rgba(255,255,255,.12)}
}
@media(max-width:760px){
  .home-services-inner{padding:58px 18px 76px}
  .home-services-head{grid-template-columns:1fr;gap:18px;align-items:start}
  .home-service-intro{font-size:15px}
}
@media(max-width:620px){
  .home-service-tabs{grid-template-columns:repeat(2,1fr)}
  .home-service-tab{min-height:62px;font-size:10px}
  .home-service-tab:nth-child(odd){border-left:1px solid rgba(255,255,255,.12)}
}

/* V3.8 — Quick View + live project editing */
.check-label{display:flex!important;align-items:center;gap:10px;font-weight:700}
.check-label input[type="checkbox"]{width:18px!important;height:18px!important;flex:0 0 18px}
.home-services:not(:has(.home-service-tab.active)) .home-services-head .eyebrow::after{
  content:" · QUICK VIEW";
  color:var(--luxa-accent);
}

/* V4 Freehostia live editor fix: current homepage cards use .project-card. */
.project-card,.dop-card{position:relative}
.live-structured-edit{display:block!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important}

.project-card,.dop-card{position:relative}
.live-structured-edit{display:block!important;position:absolute!important;top:10px!important;right:10px!important;z-index:999!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important}
.live-upload-progress{margin-top:12px;font:12px Arial,sans-serif;color:#082037}.live-upload-progress>div{height:8px;background:#dfe9ed;overflow:hidden}.live-upload-progress i{display:block;height:100%;width:0;background:var(--luxa-accent);transition:width .12s linear}.live-upload-progress span{display:block;margin-top:5px}
/* v6 live editor + upload progress */
.live-upload-progress{margin-top:14px}.live-upload-progress>div{height:10px;background:#dce5e8;overflow:hidden}.live-upload-progress i{display:block;height:100%;width:0;background:var(--luxa-accent);transition:width .12s linear}.live-upload-progress span{display:block;margin-top:5px;font:700 11px/1.2 Arial,sans-serif;color:#38515f}.project-card>.live-structured-edit{position:absolute!important;top:10px!important;right:10px!important;z-index:1000!important;display:block!important;visibility:visible!important;opacity:1!important}

/* v7 live editor reliability */
html.luxa-edit-mode .project-card{position:relative!important;}
html.luxa-edit-mode .live-structured-edit{display:block!important;visibility:visible!important;opacity:1!important;position:absolute!important;top:10px!important;right:10px!important;z-index:2147483000!important;}


/* V8: explicit service-level live-edit controls */
html.luxa-edit-mode .home-services-head{position:relative!important}
.live-service-edit{display:block!important;margin-top:14px;border:0;background:var(--luxa-accent);color:#fff;padding:10px 14px;font-size:12px;font-weight:800;cursor:pointer;box-shadow:0 3px 12px rgba(0,0,0,.18);position:relative;z-index:1001}
html.luxa-edit-mode .project-card{outline:2px solid rgba(15,174,170,.38);outline-offset:2px}
html.luxa-edit-mode .project-card>.live-structured-edit{top:12px!important;right:12px!important;padding:10px 13px!important;border-radius:3px!important;box-shadow:0 5px 18px rgba(0,0,0,.34)!important}
.live-service-help{font-size:13px;line-height:1.5;color:#52636d;background:#eef7f7;padding:12px;margin-top:14px}

/* v10: destructive project action in Live Editor */
.live-editor-actions .live-delete-project{margin-left:auto;background:#b4232f!important;border-color:#b4232f!important;color:#fff!important}
.live-editor-actions .live-delete-project:hover{filter:brightness(.94)}
.live-editor-actions .live-delete-project:disabled{opacity:.65;cursor:wait}

/* v20 live-editor thumbnail optimisation */
.live-thumb-opt{margin-top:10px;padding:12px;background:#eef7f7;border:1px solid #cfe3e3;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.live-thumb-opt .check-label{margin-right:auto}.live-thumb-opt select{width:auto;min-width:140px;padding:9px}.live-thumb-opt small{flex-basis:100%;color:#52636d;font-size:11px;line-height:1.4}
@media(max-width:620px){.live-thumb-opt>*{width:100%!important}}

/* v23 — restore the visual scale of the site.
   Thumbnail optimisation only changes the stored image file resolution;
   it must never influence the rendered card/layout dimensions. */
@media (min-width:951px){
  :root{--max:1680px}
  .work-section{width:100%;max-width:var(--max);padding-left:clamp(28px,3.25vw,62px);padding-right:clamp(28px,3.25vw,62px)}
  .service-strip-inner{width:100%;max-width:var(--max);padding-left:clamp(28px,3.25vw,62px);padding-right:clamp(28px,3.25vw,62px)}
  .project-grid{width:100%}
  .project-card{width:100%;min-width:0}
  .project-media{width:100%;aspect-ratio:16/10}
  .project-media video,.project-media img{width:100%!important;height:100%!important;max-width:none!important;object-fit:cover!important}
  .home-service-work .project-media{aspect-ratio:16/9}
  .contact-section{width:100%;max-width:var(--max);padding-left:clamp(28px,3.25vw,62px);padding-right:clamp(28px,3.25vw,62px)}
}

/* v25 project ordering + multiple section tags */
.project-sections,.live-project-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem .8rem;margin:.45rem 0}.section-check,.live-section-check{margin:0!important}.project-sections input,.live-project-sections input{width:auto!important}@media(max-width:640px){.project-sections,.live-project-sections{grid-template-columns:1fr}}


/* 2026-08-21: uploaded logo, contact form and more natural DOP map */
.brand-logo{display:block;max-width:148px;max-height:50px;width:auto;height:auto;object-fit:contain}.brand-text{display:flex;flex-direction:column;line-height:.8}.brand.has-logo{min-width:160px}.brand.has-logo .brand-text{display:none}.inverse .brand-logo{max-height:46px}
.contact-section{display:grid;grid-template-columns:minmax(0,.85fr) minmax(340px,1fr);gap:clamp(44px,7vw,110px);align-items:start}.contact-section h2{margin-bottom:22px}.contact-intro{font-size:18px;line-height:1.65;color:#5e6b72;max-width:520px;margin:0 0 30px}.contact-section .contact-email-link{font-size:clamp(18px,2vw,28px)}.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:18px;background:var(--luxa-panel);border:1px solid var(--line);padding:clamp(24px,3vw,38px);box-shadow:0 18px 55px rgba(7,28,49,.07)}.contact-form label{font-size:12px;text-transform:uppercase;letter-spacing:.09em;font-weight:800}.contact-form input,.contact-form textarea{width:100%;margin-top:8px;padding:13px 14px;border:1px solid #cbd6d8;background:var(--luxa-panel);color:var(--luxa-text);outline:none}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--luxa-accent);box-shadow:0 0 0 3px rgba(16,169,170,.10)}.contact-message,.contact-actions{grid-column:1/-1}.contact-form textarea{resize:vertical;min-height:150px}.contact-actions{display:flex;align-items:center;gap:18px}.contact-actions button{border:0;background:var(--deep);color:#fff;padding:14px 22px;font-weight:800;cursor:pointer}.contact-actions button:disabled{opacity:.55;cursor:wait}#contact-status{margin:0;font-size:13px;color:#52616a}.contact-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.world-map{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.14);border-radius:3px;background:linear-gradient(180deg,#123a50 0%,#0c3044 48%,#082738 100%);box-shadow:inset 0 0 90px rgba(0,0,0,.22)}.world-map svg{display:block;width:100%;height:auto}.world-map .ocean{fill:url(#oceanGradient)}.world-map .graticule path{stroke:rgba(190,225,231,.16);stroke-width:1;fill:none;stroke-dasharray:3 7}.world-map .land{fill:#c5d4c8;stroke:#8ba49b;stroke-width:2;filter:url(#landShadow)}.world-map .land-detail{fill:#b4c8b8;opacity:.55}.world-map .coast-highlight{fill:none;stroke:rgba(255,255,255,.32);stroke-width:1}.world-map .map-labels text{fill:rgba(225,241,240,.68);font-size:16px;letter-spacing:2.8px;font-weight:700}.world-map .hotspot{fill:#56e0d3;stroke:#fff;stroke-width:3;filter:url(#hotspotGlow);cursor:pointer}.world-map .hotspot:not(.active){opacity:.45}.world-map .hotspot-label{fill:#fff;font-size:13px;font-weight:800;paint-order:stroke;stroke:#0b2f42;stroke-width:4px;stroke-linejoin:round}.region-filters{display:flex;flex-wrap:wrap;gap:8px}.region-btn{border:1px solid rgba(255,255,255,.24);background:transparent;color:#fff;padding:9px 12px;cursor:pointer}.region-btn.active,.region-btn:hover{background:#4fd0c8;color:#06243b;border-color:#4fd0c8}
@media(max-width:800px){.contact-section{grid-template-columns:1fr}.contact-form{grid-template-columns:1fr}.contact-message,.contact-actions{grid-column:1}.brand-logo{max-width:126px;max-height:42px}}

/* 2026-08-21: reliable in-page navigation */
#services,#about,#contact{scroll-margin-top:90px}
@media(max-width:950px){#services,#about,#contact{scroll-margin-top:76px}}


/* 2026-08-22: optional monochrome site treatment + homepage DOP reels */

html.theme-monochrome body{background:#efefef}
.home-dop-card .project-meta{color:var(--luxa-accent)}
.home-dop-card .project-copy h3{letter-spacing:-.01em}

/* Luxa appearance v11 — creative media is NEVER filtered */
:root{--luxa-bg:#ffffff;--luxa-panel:#ffffff;--luxa-text:#111111;--luxa-accent:#10a9aa}
video,img,picture,canvas,.hero-video,.project-media video,.project-media img,.portfolio-media video,.portfolio-media img,.dop-media video,.dop-media img{
  filter:none !important;-webkit-filter:none !important;opacity:1 !important;mix-blend-mode:normal !important;
}

/* Custom variables apply to page surfaces. */
body{background:var(--luxa-bg);color:var(--luxa-text)}
body.theme-clean{--luxa-bg:#ffffff;--luxa-panel:#ffffff;--luxa-text:#111111}
body.theme-dark,body.theme-cinematic,body.theme-custom{background:var(--luxa-bg);color:var(--luxa-text)}
body.theme-dark .site-header,body.theme-cinematic .site-header,body.theme-custom .site-header,
body.theme-dark .work-section,body.theme-cinematic .work-section,body.theme-custom .work-section,
body.theme-dark .contact-section,body.theme-cinematic .contact-section,body.theme-custom .contact-section,
body.theme-dark .services-work-page,body.theme-cinematic .services-work-page,body.theme-custom .services-work-page,
body.theme-dark .service-projects,body.theme-cinematic .service-projects,body.theme-custom .service-projects{
  background:var(--luxa-bg) !important;color:var(--luxa-text) !important;
}
body.theme-dark .project-card,body.theme-cinematic .project-card,body.theme-custom .project-card,
body.theme-dark .light-card,body.theme-cinematic .light-card,body.theme-custom .light-card,
body.theme-dark .contact-form,body.theme-cinematic .contact-form,body.theme-custom .contact-form,
body.theme-dark .empty-state,body.theme-cinematic .empty-state,body.theme-custom .empty-state{
  background:var(--luxa-panel) !important;color:var(--luxa-text) !important;border-color:rgba(255,255,255,.16) !important;
}
body.theme-dark .project-media,body.theme-cinematic .project-media,body.theme-custom .project-media,
body.theme-dark .portfolio-media,body.theme-cinematic .portfolio-media,body.theme-custom .portfolio-media,
body.theme-dark .dop-media,body.theme-cinematic .dop-media,body.theme-custom .dop-media{
  background:var(--luxa-panel) !important;
}
body.theme-dark .project-copy p,body.theme-cinematic .project-copy p,body.theme-custom .project-copy p,
body.theme-dark .section-intro,body.theme-cinematic .section-intro,body.theme-custom .section-intro,
body.theme-dark .contact-intro,body.theme-cinematic .contact-intro,body.theme-custom .contact-intro{
  color:color-mix(in srgb,var(--luxa-text) 72%,transparent) !important;
}
body.theme-dark .contact-form input,body.theme-dark .contact-form textarea,
body.theme-cinematic .contact-form input,body.theme-cinematic .contact-form textarea,
body.theme-custom .contact-form input,body.theme-custom .contact-form textarea{
  background:var(--luxa-panel) !important;color:var(--luxa-text) !important;border-color:rgba(255,255,255,.25) !important;
}
body.theme-dark .desktop-nav a:after,body.theme-cinematic .desktop-nav a:after,body.theme-custom .desktop-nav a:after,
body.theme-dark .contact-section a,body.theme-cinematic .contact-section a,body.theme-custom .contact-section a{
  border-color:var(--luxa-accent);color:var(--luxa-text);
}
body.theme-dark .eyebrow,body.theme-cinematic .eyebrow,body.theme-custom .eyebrow,
body.theme-dark .project-meta,body.theme-cinematic .project-meta,body.theme-custom .project-meta{
  color:var(--luxa-accent) !important;
}


/* Luxa v12 global theme coverage */
/* Appearance values are already saved correctly - this only expands rendering */

body.theme-dark,
body.theme-cinematic,
body.theme-custom {
    background: var(--luxa-bg) !important;
    color: var(--luxa-text) !important;
}

/* Generic Luxa content surfaces */
body.theme-dark section,
body.theme-cinematic section,
body.theme-custom section,
body.theme-dark main,
body.theme-cinematic main,
body.theme-custom main,
body.theme-dark .page,
body.theme-cinematic .page,
body.theme-custom .page {
    color: var(--luxa-text);
}

/* Cards, panels, empty states */
body.theme-dark .card,
body.theme-cinematic .card,
body.theme-custom .card,
body.theme-dark .panel,
body.theme-cinematic .panel,
body.theme-custom .panel,
body.theme-dark .empty-state,
body.theme-cinematic .empty-state,
body.theme-custom .empty-state,
body.theme-dark .reels-container,
body.theme-cinematic .reels-container,
body.theme-custom .reels-container,
body.theme-dark .dop-section,
body.theme-cinematic .dop-section,
body.theme-custom .dop-section {
    background: var(--luxa-panel) !important;
    color: var(--luxa-text) !important;
}

/* Text fallback for sections that used fixed colours */
body.theme-dark h1,
body.theme-dark h2,
body.theme-dark h3,
body.theme-dark h4,
body.theme-dark p,
body.theme-cinematic h1,
body.theme-cinematic h2,
body.theme-cinematic h3,
body.theme-cinematic h4,
body.theme-cinematic p,
body.theme-custom h1,
body.theme-custom h2,
body.theme-custom h3,
body.theme-custom h4,
body.theme-custom p {
    color: var(--luxa-text);
}

/* DOP page coverage */
body.theme-dark .dop-page,
body.theme-cinematic .dop-page,
body.theme-custom .dop-page,
body.theme-dark .dop-grid,
body.theme-cinematic .dop-grid,
body.theme-custom .dop-grid {
    background: var(--luxa-bg) !important;
    color: var(--luxa-text) !important;
}

/* Buttons */
body.theme-dark button,
body.theme-cinematic button,
body.theme-custom button {
    border-color: var(--luxa-accent);
}

/* Absolute media protection */
video,
img,
picture,
canvas {
    filter: none !important;
    -webkit-filter: none !important;
    opacity: 1 !important;
}


/* Luxa v13 full section cinematic theme audit */

/* Remove legacy blue/white theme surfaces */
body.theme-dark,
body.theme-cinematic,
body.theme-custom {
    --luxa-blue-fix: var(--luxa-panel);
}

/* About Us */
body.theme-dark .about-section,
body.theme-cinematic .about-section,
body.theme-custom .about-section,
body.theme-dark .about,
body.theme-cinematic .about,
body.theme-custom .about {
    background: var(--luxa-bg) !important;
    color: var(--luxa-text) !important;
}

body.theme-dark .about-section *,
body.theme-cinematic .about-section *,
body.theme-custom .about-section * {
    color: var(--luxa-text);
}

/* Services */
body.theme-dark .services-section,
body.theme-cinematic .services-section,
body.theme-custom .services-section,
body.theme-dark .services,
body.theme-cinematic .services,
body.theme-custom .services,
body.theme-dark .service-card,
body.theme-cinematic .service-card,
body.theme-custom .service-card {
    background: var(--luxa-panel) !important;
    color: var(--luxa-text) !important;
}

/* Contact */
body.theme-dark .contact-section,
body.theme-cinematic .contact-section,
body.theme-custom .contact-section,
body.theme-dark .contact-form,
body.theme-cinematic .contact-form,
body.theme-custom .contact-form {
    background: var(--luxa-panel) !important;
    color: var(--luxa-text) !important;
}

body.theme-dark input,
body.theme-dark textarea,
body.theme-cinematic input,
body.theme-cinematic textarea,
body.theme-custom input,
body.theme-custom textarea {
    background: var(--luxa-bg) !important;
    color: var(--luxa-text) !important;
    border-color: rgba(255,255,255,.25) !important;
}

/* Remove common blue branding backgrounds */
body.theme-dark .blue,
body.theme-cinematic .blue,
body.theme-custom .blue,
body.theme-dark .primary-blue,
body.theme-cinematic .primary-blue,
body.theme-custom .primary-blue {
    background: var(--luxa-panel) !important;
    color: var(--luxa-text) !important;
}

/* Footer */
body.theme-dark footer,
body.theme-cinematic footer,
body.theme-custom footer {
    background: var(--luxa-bg) !important;
    color: var(--luxa-text) !important;
}

/* Never alter creative media */
video,
img,
picture,
canvas,
iframe {
    filter: none !important;
    -webkit-filter: none !important;
    opacity: 1 !important;
    mix-blend-mode: normal !important;
}


/* Luxa v14 - Services hard override */

/* Services wrappers */
body.theme-dark .services-page,
body.theme-cinematic .services-page,
body.theme-custom .services-page,
body.theme-dark .services-container,
body.theme-cinematic .services-container,
body.theme-custom .services-container,
body.theme-dark .services-grid,
body.theme-cinematic .services-grid,
body.theme-custom .services-grid,
body.theme-dark .services-work,
body.theme-cinematic .services-work,
body.theme-custom .services-work {
    background: var(--luxa-bg) !important;
    color: var(--luxa-text) !important;
}

/* Service cards */
body.theme-dark .services-card,
body.theme-cinematic .services-card,
body.theme-custom .services-card,
body.theme-dark .service-item,
body.theme-cinematic .service-item,
body.theme-custom .service-item,
body.theme-dark .services-grid > *,
body.theme-cinematic .services-grid > *,
body.theme-custom .services-grid > * {
    background: var(--luxa-panel) !important;
    color: var(--luxa-text) !important;
    border-color: rgba(255,255,255,.15) !important;
}

/* Remove remaining light theme colours in services */
body.theme-dark .services-page [style*="background"],
body.theme-cinematic .services-page [style*="background"],
body.theme-custom .services-page [style*="background"] {
    background: var(--luxa-panel) !important;
}

/* Service headings */
body.theme-dark .services-page h1,
body.theme-dark .services-page h2,
body.theme-dark .services-page h3,
body.theme-dark .services-page p,
body.theme-cinematic .services-page h1,
body.theme-cinematic .services-page h2,
body.theme-cinematic .services-page h3,
body.theme-cinematic .services-page p {
    color: var(--luxa-text) !important;
}

/* Media remains untouched */
video,
img,
picture,
canvas {
    filter:none !important;
    -webkit-filter:none !important;
    opacity:1 !important;
}


/* Luxa v15 - exact services pages override */

/* Services integrated work pages were using hard-coded light variables */
body.theme-dark .services-work-page,
body.theme-cinematic .services-work-page,
body.theme-custom .services-work-page {
    background: var(--luxa-bg) !important;
    color: var(--luxa-text) !important;
}

body.theme-dark .services-work-hero,
body.theme-cinematic .services-work-hero,
body.theme-custom .services-work-hero {
    background: var(--luxa-panel) !important;
    color: var(--luxa-text) !important;
    border-color: rgba(255,255,255,.15) !important;
}

body.theme-dark .services-work-hero h1,
body.theme-dark .services-work-hero p,
body.theme-cinematic .services-work-hero h1,
body.theme-cinematic .services-work-hero p,
body.theme-custom .services-work-hero h1,
body.theme-custom .services-work-hero p {
    color: var(--luxa-text) !important;
}

body.theme-dark .services-switch-wrap,
body.theme-cinematic .services-switch-wrap,
body.theme-custom .services-switch-wrap {
    background: var(--luxa-panel) !important;
}

body.theme-dark .services-switch-button,
body.theme-cinematic .services-switch-button,
body.theme-custom .services-switch-button {
    color: var(--luxa-text) !important;
}

body.theme-dark .light-grid,
body.theme-cinematic .light-grid,
body.theme-custom .light-grid {
    background: var(--luxa-bg) !important;
}

body.theme-dark .light-card,
body.theme-cinematic .light-card,
body.theme-custom .light-card {
    background: var(--luxa-panel) !important;
    color: var(--luxa-text) !important;
    border-color: rgba(255,255,255,.15) !important;
}

body.theme-dark .services-work-page [style*="#fff"],
body.theme-dark .services-work-page [style*="white"],
body.theme-cinematic .services-work-page [style*="#fff"],
body.theme-cinematic .services-work-page [style*="white"],
body.theme-custom .services-work-page [style*="#fff"],
body.theme-custom .services-work-page [style*="white"] {
    background: var(--luxa-panel) !important;
}

/* Media remains untouched */
video, img, picture, canvas {
    filter:none !important;
    -webkit-filter:none !important;
}


/* Luxa v27 central theme layer */
body.theme-dark,
body.theme-cinematic,
body.theme-custom {
    --luxa-bg:#000000;
    --luxa-panel:#2a2a2a;
    --luxa-text:#ffffff;
}

/* public sections */
body.theme-dark .services-work-page,
body.theme-cinematic .services-work-page,
body.theme-custom .services-work-page,
body.theme-dark .hero-placeholder,
body.theme-cinematic .hero-placeholder,
body.theme-custom .hero-placeholder {
    background:var(--luxa-panel)!important;
    background-image:none!important;
}

/* video/showcase blocks */
body.theme-dark .video-block,
body.theme-cinematic .video-block,
body.theme-custom .video-block,
body.theme-dark .showcase-item,
body.theme-cinematic .showcase-item,
body.theme-custom .showcase-item {
    background:var(--luxa-panel)!important;
}

/* accents */
body.theme-dark button,
body.theme-cinematic button,
body.theme-custom button,
body.theme-dark .btn,
body.theme-cinematic .btn,
body.theme-custom .btn {
    background:var(--luxa-accent)!important;
    border-color:var(--luxa-accent)!important;
    color:#fff!important;
}

body.theme-dark svg,
body.theme-cinematic svg,
body.theme-custom svg {
    fill:var(--luxa-accent)!important;
    stroke:var(--luxa-accent)!important;
}

/* never touch creative media */
video,img,picture,canvas{
    filter:none!important;
    -webkit-filter:none!important;
}


/* Luxa v28 - targeted component fixes */

/* Only Services / Showcase / DOP surfaces */
body.theme-dark .services-work-page,
body.theme-cinematic .services-work-page,
body.theme-custom .services-work-page,
body.theme-dark .services-section,
body.theme-cinematic .services-section,
body.theme-custom .services-section,
body.theme-dark .video-grid,
body.theme-cinematic .video-grid,
body.theme-custom .video-grid,
body.theme-dark .showcase,
body.theme-cinematic .showcase,
body.theme-custom .showcase,
body.theme-dark .dop-page,
body.theme-cinematic .dop-page,
body.theme-custom .dop-page {
    background: var(--luxa-bg) !important;
    color: var(--luxa-text) !important;
}

/* Cards only - not media */
body.theme-dark .project-card,
body.theme-cinematic .project-card,
body.theme-custom .project-card,
body.theme-dark .video-card,
body.theme-cinematic .video-card,
body.theme-custom .video-card {
    background: var(--luxa-panel) !important;
    color: var(--luxa-text) !important;
}

/* Restore icon treatment */
body.theme-dark .icon-box,
body.theme-cinematic .icon-box,
body.theme-custom .icon-box,
body.theme-dark .service-icon,
body.theme-cinematic .service-icon,
body.theme-custom .service-icon {
    background: transparent !important;
    color: var(--luxa-accent) !important;
}

body.theme-dark .icon-box svg,
body.theme-cinematic .icon-box svg,
body.theme-custom .icon-box svg,
body.theme-dark .service-icon svg,
body.theme-cinematic .service-icon svg,
body.theme-custom .service-icon svg {
    fill: var(--luxa-accent) !important;
    stroke: var(--luxa-accent) !important;
}

/* Hover states */
body.theme-dark .service-card:hover,
body.theme-cinematic .service-card:hover,
body.theme-custom .service-card:hover,
body.theme-dark .btn:hover,
body.theme-cinematic .btn:hover,
body.theme-custom .btn:hover {
    border-color: var(--luxa-accent) !important;
    color: var(--luxa-accent) !important;
}

/* Do not touch creative media */
video,
img,
picture,
canvas {
    filter:none !important;
    -webkit-filter:none !important;
    opacity:1 !important;
}


/* Luxa v29 - controlled rollover + visual separators */

/* Accent hover controls */
body.theme-dark,
body.theme-cinematic,
body.theme-custom {
    --luxa-accent-hover: color-mix(in srgb, var(--luxa-accent) 75%, white);
}

/* Buttons and tabs rollover */
body.theme-dark button:hover,
body.theme-cinematic button:hover,
body.theme-custom button:hover,
body.theme-dark .btn:hover,
body.theme-cinematic .btn:hover,
body.theme-custom .btn:hover,
body.theme-dark .service-tab:hover,
body.theme-cinematic .service-tab:hover,
body.theme-custom .service-tab:hover {
    background: var(--luxa-accent-hover) !important;
    border-color: var(--luxa-accent-hover) !important;
}

/* Section dividers */
body.theme-dark .section-title::after,
body.theme-cinematic .section-title::after,
body.theme-custom .section-title::after,
body.theme-dark .services-work-page h2::after,
body.theme-cinematic .services-work-page h2::after,
body.theme-custom .services-work-page h2::after {
    content:"";
    display:block;
    width:60px;
    height:2px;
    margin-top:18px;
    background:var(--luxa-accent);
}

/* Force remaining light surfaces in services/work area */
body.theme-dark .services-work-page,
body.theme-cinematic .services-work-page,
body.theme-custom .services-work-page {
    background:var(--luxa-bg)!important;
}

body.theme-dark .services-work-page *,
body.theme-cinematic .services-work-page *,
body.theme-custom .services-work-page * {
    --white-control:var(--luxa-panel);
}

/* Media stays untouched */
video,img,picture,canvas {
    filter:none!important;
    -webkit-filter:none!important;
}


/* Luxa v30 source colour cleanup */
body.theme-dark,
body.theme-cinematic,
body.theme-custom {
    --luxa-accent-hover: color-mix(in srgb, var(--luxa-accent) 75%, white);
}

body.theme-dark button:hover,
body.theme-cinematic button:hover,
body.theme-custom button:hover,
body.theme-dark .btn:hover,
body.theme-cinematic .btn:hover,
body.theme-custom .btn:hover {
    background:var(--luxa-accent-hover);
    border-color:var(--luxa-accent-hover);
}


/* Luxa v32 final source control */
body.theme-dark,
body.theme-cinematic,
body.theme-custom{
 --luxa-bg:#000;
 --luxa-panel:#2a2a2a;
 --luxa-text:#fff;
}

.service-switch-button:hover,
.service-switch-button.active,
.home-service-tab:hover,
.home-service-tab.active{
 background:var(--luxa-accent)!important;
 color:#fff!important;
}

.service-switch-icon,
.tab-icon{
 color:var(--luxa-accent)!important;
}

.btn,
button{
 border-color:var(--luxa-accent);
}

.btn:hover,
button:hover{
 box-shadow:0 0 0 2px var(--luxa-accent);
}

/* Never tint creative media */
video,img,picture,canvas{
 filter:none!important;
 -webkit-filter:none!important;
}


/* Luxa v33 - actual homepage services source fix */

/* This was the remaining white block */
body.theme-dark .home-services,
body.theme-cinematic .home-services,
body.theme-custom .home-services {
    background: var(--luxa-bg) !important;
    border-color: rgba(255,255,255,.12) !important;
}

body.theme-dark .home-service-intro,
body.theme-cinematic .home-service-intro,
body.theme-custom .home-service-intro {
    color: var(--luxa-text) !important;
}

/* Section title separators */
body.theme-dark .home-services-head::after,
body.theme-cinematic .home-services-head::after,
body.theme-custom .home-services-head::after {
    content:"";
    display:block;
    height:2px;
    width:70px;
    background:var(--luxa-accent);
    margin-top:22px;
}

/* Service icon separation */
body.theme-dark .home-service-tab,
body.theme-cinematic .home-service-tab,
body.theme-custom .home-service-tab {
    border:1px solid rgba(255,255,255,.12);
}

body.theme-dark .home-service-tab:hover,
body.theme-cinematic .home-service-tab:hover,
body.theme-custom .home-service-tab:hover,
body.theme-dark .home-service-tab.active,
body.theme-cinematic .home-service-tab.active,
body.theme-custom .home-service-tab.active {
    border-color:var(--luxa-accent);
}



/* Luxa v34 - studio layout upgrade */

/* Service navigation separation */
.service-tab,
.service-switch-button,
.home-service-tab {
    border-right:1px solid rgba(255,255,255,.16);
    position:relative;
}

.service-tab:last-child,
.service-switch-button:last-child,
.home-service-tab:last-child {
    border-right:0;
}

.service-tab:hover,
.service-switch-button:hover,
.home-service-tab:hover {
    color:var(--luxa-accent);
}

.service-tab.active::after,
.service-switch-button.active::after,
.home-service-tab.active::after {
    content:"";
    position:absolute;
    left:20%;
    right:20%;
    bottom:0;
    height:2px;
    background:var(--luxa-accent);
}

/* Editorial portfolio layout */
.project-grid,
.video-grid,
.portfolio-grid {
    display:grid;
    grid-template-columns:repeat(12,1fr);
    gap:24px;
}

.project-grid > *,
.video-grid > *,
.portfolio-grid > * {
    grid-column:span 4;
}

.project-grid > *:nth-child(1),
.video-grid > *:nth-child(1),
.portfolio-grid > *:nth-child(1) {
    grid-column:span 8;
}

.project-grid > *:nth-child(4),
.video-grid > *:nth-child(4),
.portfolio-grid > *:nth-child(4) {
    grid-column:span 12;
}

/* Full width media presentation */
.project-video,
.video-wrapper,
.portfolio-media {
    overflow:hidden;
}

.project-video video,
.video-wrapper video,
.portfolio-media video {
    width:100%;
    height:100%;
    object-fit:cover;
    filter:none!important;
}

/* About accordion foundation */
.about-accordion-item {
    border-top:1px solid rgba(255,255,255,.18);
    padding:22px 0;
}

.about-accordion-item:hover {
    border-color:var(--luxa-accent);
}

/* Section alignment */
.section-eyebrow,
.section-label {
    border-left:2px solid var(--luxa-accent);
    padding-left:14px;
}


/* Luxa v35 - studio content upgrade */

/* About accordion */
.about-accordion {
    width:100%;
}

.about-accordion-item {
    border-top:1px solid rgba(255,255,255,.18);
}

.about-accordion-item button {
    width:100%;
    display:flex;
    justify-content:space-between;
    align-items:center;
    background:none;
    color:var(--luxa-text);
    padding:22px 0;
    border:0;
    cursor:pointer;
    text-align:left;
}

.about-accordion-item button:hover {
    color:var(--luxa-accent);
}

.about-accordion-content {
    max-height:0;
    overflow:hidden;
    transition:max-height .35s ease;
}

.about-accordion-item.open .about-accordion-content {
    max-height:500px;
}

/* Editorial portfolio motion */
.portfolio-media,
.project-video,
.video-wrapper {
    transition:transform .45s ease;
}

.portfolio-media:hover,
.project-video:hover,
.video-wrapper:hover {
    transform:scale(1.015);
}

/* Keep media original */
video,
img,
picture,
canvas {
    filter:none!important;
    -webkit-filter:none!important;
}


/* Luxa v36 - full width studio canvas */

/* Remove narrow portfolio containers */
.portfolio-section,
.showcase-section,
.work-section,
.video-grid,
.portfolio-grid {
    width:100vw;
    max-width:none;
    margin-left:calc(50% - 50vw);
    margin-right:calc(50% - 50vw);
}

/* Full bleed media */
.portfolio-media,
.project-video,
.video-wrapper,
.showcase-item {
    width:100%;
}

/* Editorial spacing */
.portfolio-grid,
.video-grid {
    padding-left:0;
    padding-right:0;
}

/* Featured cinematic blocks */
.portfolio-grid > *:nth-child(1),
.video-grid > *:nth-child(1) {
    grid-column:1 / -1;
}

/* Preserve video colour */
video,
img,
picture,
canvas {
    filter:none!important;
    -webkit-filter:none!important;
}


/* Luxa v37 - editorial portfolio layout */

/* Full page canvas */
.portfolio-section,
.work-section,
.showcase-section {
    width:100%;
    max-width:none;
}

/* Remove isolated single column gaps */
.portfolio-grid,
.video-grid,
.project-grid {
    display:grid;
    grid-template-columns:repeat(12,1fr);
    gap:18px;
    width:100%;
}

/* Editorial arrangement */
.portfolio-grid > *,
.video-grid > *,
.project-grid > * {
    grid-column:span 4;
    min-height:260px;
}

/* featured wide items */
.portfolio-grid > *:nth-child(1),
.video-grid > *:nth-child(1),
.project-grid > *:nth-child(1) {
    grid-column:span 8;
}

.portfolio-grid > *:nth-child(2),
.video-grid > *:nth-child(2),
.project-grid > *:nth-child(2) {
    grid-column:span 4;
}

.portfolio-grid > *:nth-child(5),
.video-grid > *:nth-child(5),
.project-grid > *:nth-child(5) {
    grid-column:span 6;
}

/* Fill media areas */
.portfolio-media,
.project-media,
.video-wrapper {
    width:100%;
    height:100%;
    overflow:hidden;
}

.portfolio-media img,
.project-media img,
.video-wrapper video {
    width:100%;
    height:100%;
    object-fit:cover;
}

/* No empty black gaps */
.portfolio-card,
.project-card,
.video-card {
    margin:0;
}

/* Keep media colour */
video,
img,
picture,
canvas {
    filter:none!important;
    -webkit-filter:none!important;
}


/* Luxa v38 - cinematic project presentation */

/* Remove boxed title panels */
.project-card,
.video-card,
.portfolio-card {
    background:transparent;
}

/* Cinematic media first layout */
.project-card,
.video-card,
.portfolio-card {
    position:relative;
    overflow:hidden;
}

/* Minimal title overlay */
.project-card .project-info,
.video-card .project-info,
.portfolio-card .project-info,
.project-meta {
    position:absolute;
    left:24px;
    bottom:24px;
    z-index:3;
    background:none;
    padding:0;
    max-width:420px;
}

.project-info h2,
.project-info h3,
.project-title {
    margin:0;
    font-size:clamp(22px,2vw,38px);
    font-weight:500;
    color:white;
    letter-spacing:-0.02em;
}

.project-info p,
.project-meta p {
    margin-top:8px;
    color:rgba(255,255,255,.75);
    font-size:14px;
}

/* dark readable gradient only behind text */
.project-card::after,
.video-card::after,
.portfolio-card::after {
    content:"";
    position:absolute;
    inset:40% 0 0;
    background:linear-gradient(to top,rgba(0,0,0,.65),transparent);
    pointer-events:none;
}

/* Editorial sizing */
.project-feature,
.project-card.featured {
    grid-column:span 8;
}

.project-wide {
    grid-column:1 / -1;
    aspect-ratio:21/9;
}

.project-portrait {
    grid-column:span 4;
    aspect-ratio:3/4;
}

/* Remove old media filters */
video,
img,
picture,
canvas {
    filter:none!important;
    -webkit-filter:none!important;
}


/* Luxa v39 - true project modules */

/* Remove card presentation */
.project-card,
.video-card,
.portfolio-card {
    position:relative;
    background:transparent!important;
    overflow:hidden;
    border:0!important;
}

/* Media becomes the project */
.project-card img,
.project-card video,
.video-card img,
.video-card video,
.portfolio-card img,
.portfolio-card video {
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

/* Minimal project identity */
.project-module-info {
    position:absolute;
    left:32px;
    bottom:32px;
    z-index:5;
    max-width:520px;
}

.project-module-category {
    font-size:11px;
    letter-spacing:.22em;
    text-transform:uppercase;
    color:var(--luxa-accent);
    margin-bottom:12px;
}

.project-module-title {
    font-size:clamp(24px,3vw,56px);
    line-height:1;
    font-weight:500;
    color:#fff;
    margin:0;
}

.project-module-meta {
    margin-top:10px;
    color:rgba(255,255,255,.75);
    font-size:14px;
}

/* Cinematic hover reveal */
.project-module-info {
    transform:translateY(12px);
    opacity:.9;
    transition:.35s ease;
}

.project-card:hover .project-module-info,
.video-card:hover .project-module-info,
.portfolio-card:hover .project-module-info {
    transform:translateY(0);
    opacity:1;
}

/* Soft readability only */
.project-card:after,
.video-card:after,
.portfolio-card:after {
    content:"";
    position:absolute;
    inset:35% 0 0;
    background:linear-gradient(to top,rgba(0,0,0,.55),transparent);
    pointer-events:none;
}

/* No media alteration */
video,
img,
picture,
canvas {
    filter:none!important;
    -webkit-filter:none!important;
}


/* Luxa v40 - project layout controls */

/*
Admin project layout options:
- Featured
- Wide Cinema
- Portrait
- Standard Grid
- Background Video
*/

/* Featured */
.project-layout-featured {
    grid-column: 1 / -1;
    min-height:80vh;
}

/* Wide cinema */
.project-layout-wide {
    grid-column:1 / -1;
    aspect-ratio:21/9;
}

/* Portrait */
.project-layout-portrait {
    grid-column:span 4;
    aspect-ratio:3/4;
}

/* Standard */
.project-layout-standard {
    grid-column:span 4;
}

/* Background video */
.project-layout-background {
    min-height:90vh;
}

.project-layout-background .project-module-info {
    bottom:50px;
    left:50px;
}

/* Admin preview labels */
.project-layout-badge {
    display:inline-block;
    padding:5px 10px;
    border:1px solid var(--luxa-accent);
    color:var(--luxa-accent);
    font-size:11px;
    letter-spacing:.15em;
    text-transform:uppercase;
}


/* Luxa v41 - Visual Portfolio Builder */

/* Canvas editor support */
.portfolio-canvas {
    display:grid;
    grid-template-columns:repeat(12,1fr);
    grid-auto-rows:160px;
    gap:0;
}

.portfolio-block {
    position:relative;
    overflow:hidden;
}

.portfolio-block video,
.portfolio-block img {
    width:100%;
    height:100%;
    object-fit:cover;
}

/* Layout presets */
.layout-featured { grid-column:span 8; grid-row:span 2; }
.layout-wide { grid-column:1 / -1; grid-row:span 1; aspect-ratio:21/9; }
.layout-landscape { grid-column:span 6; grid-row:span 1; }
.layout-portrait { grid-column:span 3; grid-row:span 2; }
.layout-square { grid-column:span 4; grid-row:span 1; }
.layout-background { grid-column:1 / -1; grid-row:span 3; }

/* Minimal title overlay */
.portfolio-block-info {
    position:absolute;
    left:24px;
    bottom:24px;
    color:white;
    z-index:2;
}

.portfolio-block:after {
    content:"";
    position:absolute;
    inset:45% 0 0;
    background:linear-gradient(transparent,rgba(0,0,0,.65));
}
