.page-main{position:relative;z-index:1;padding-top:clamp(140px,18vw,240px);min-height:100vh;}
.page-main+.site-footer{position:relative;z-index:1;}
.page-hero{padding:0 var(--pad) clamp(90px,12vw,160px);border-bottom:1px solid var(--line);}
.page-hero .h1{max-width:1100px;margin:18px 0 28px;}
.page-hero .p{max-width:760px;}
.page-wrap{padding:clamp(80px,10vw,140px) var(--pad);}
.page-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;}
.page-card{padding:clamp(28px,4vw,48px);border:1px solid var(--line);background:rgba(255,255,255,.02);}
.page-card .h3{margin:10px 0 18px;}
.page-card .p{max-width:60ch;}
.page-section{padding:clamp(70px,9vw,120px) 0;border-top:1px solid var(--line);scroll-margin-top:60px;}
.page-section:first-child{border-top:0;padding-top:0;}
.page-section .h2{max-width:900px;margin:12px 0 24px;}
.services-page .service-showcase{display:grid;grid-template-columns:minmax(0,7fr) minmax(240px,3fr);align-items:center;gap:clamp(36px,6vw,96px);}
.services-page .service-showcase:nth-child(even){grid-template-columns:minmax(240px,3fr) minmax(0,7fr);}
.services-page .service-showcase:nth-child(even) .service-showcase__icon{order:1;}
.services-page .service-showcase:nth-child(even) .service-showcase__content{order:2;text-align:right;}
.services-page .service-showcase:nth-child(even) .page-actions{justify-content:flex-end;}
.services-page .service-showcase:nth-child(even) .page-list{text-align:right;}
.services-page .service-showcase__content{min-width:0;}
.services-page .service-showcase__content .h2{max-width:none;}
.services-page .service-showcase__content>.p{max-width:900px;}
.services-page .service-showcase:nth-child(even) .service-showcase__content>.p{margin-left:auto;}
.services-page .service-showcase__icon{display:grid;place-items:center;min-width:0;min-height:clamp(300px,34vw,520px);border:1px solid var(--hair);border-radius:16px;background:rgba(255,255,255,.02);overflow:hidden;transition:border-color .3s ease,background-color .3s ease;}
.services-page .service-showcase__icon:hover{border-color:var(--amber);background:rgba(255,215,0,.035);}
.services-page .service-showcase__icon img{display:block;width:82%;height:82%;max-height:430px;object-fit:contain;}
.about-page .page-wrap,.about-page .page-section,.about-page .page-copy,.about-page .page-section>.h2,.about-page .page-section>.p{width:100%;max-width:none;}
.about-page .page-copy{display:grid;gap:20px;}
.about-page .about-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:clamp(40px,6vw,72px);}
.about-page .about-stat{display:flex;min-width:0;flex-direction:column;align-items:center;gap:8px;padding:clamp(24px,3vw,40px);text-align:center;}
.about-page .about-stat strong{font-family:'Barlow Condensed',sans-serif;font-size:clamp(3.5rem,7vw,7rem);font-weight:200;line-height:.9;color:var(--ivory);}
.about-page .about-stat span{color:var(--amber);}
.about-page .experience-list{width:100%;}
.about-page .experience-entry{display:grid;grid-template-columns:minmax(240px,30%) minmax(0,70%);gap:clamp(32px,6vw,96px);padding:clamp(40px,6vw,72px) 0;border-top:1px solid var(--line);}
.about-page .experience-entry:first-child{border-top:0;padding-top:16px;}
.about-page .experience-meta .h3{margin:12px 0 8px;}
.about-page .experience-meta>.p{font-size:var(--text-small);color:var(--amber);}
.about-page .experience-points{display:grid;gap:18px;margin:0;padding:0;list-style:none;}
.about-page .experience-points li{position:relative;padding-left:24px;color:var(--muted);font-size:var(--text-main);line-height:1.7;}
.about-page .experience-points li::before{content:'—';position:absolute;left:0;color:var(--amber);}
.about-page .earlier-experience,.about-page .education-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;width:100%;}
.about-page .expertise-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;width:100%;}
.about-page .expertise-grid article{padding:clamp(28px,4vw,48px);border:1px solid var(--line);background:rgba(255,255,255,.02);}
.about-page .expertise-grid .h3{margin-bottom:18px;}
.about-page .about-tools{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;width:100%;}
.about-page .about-tools span{display:grid;min-height:100px;place-items:center;padding:20px;border:1px solid var(--line);color:var(--ivory);text-align:center;font-weight:600;}
.about-page .language-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;width:100%;margin:32px 0 48px;}
.about-page .language-row span{display:flex;flex-direction:column;gap:8px;padding:24px;border:1px solid var(--line);color:var(--muted);}
.about-page .language-row strong{color:var(--ivory);}
.page-copy{max-width:760px;}
.page-list{display:grid;gap:10px;margin:28px 0 0;padding:0;list-style:none;color:var(--muted);}
.page-list li{padding:14px 0;border-top:1px solid var(--line);}
.page-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px;}
.page-link{display:inline-flex;align-items:center;min-height:48px;padding:0 20px;border:1px solid var(--amber);color:var(--amber);text-decoration:none;font-weight:600;}
.page-link:hover,.page-link:focus-visible{background:var(--amber);color:var(--bg);}
.page-image{width:100%;aspect-ratio:16/10;object-fit:cover;margin:28px 0;}
.contact-map{width:100%;height:500px;overflow:hidden;}
.contact-map iframe{display:block;width:100%;height:500px;border:0;}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}
.portfolio-page.page-animated .page-hero{padding-bottom:0;}
.portfolio-page.page-animated .page-wrap{padding-top:200px;}
.portfolio-gallery-section{padding-bottom:clamp(80px,10vw,140px);}
.portfolio-gallery-section>.h2{width:100%;max-width:none;margin-bottom:clamp(32px,5vw,64px);}
.portfolio-filters{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;margin-bottom:clamp(32px,5vw,56px);}
.portfolio-filter{min-height:48px;padding:10px 20px;border:1px solid var(--hair);border-radius:999px;background:transparent;color:var(--ivory);font:600 1rem/1.2 'Poppins',sans-serif;cursor:pointer;transition:background-color .25s ease,border-color .25s ease,color .25s ease;}
.portfolio-filter:hover,.portfolio-filter:focus-visible{border-color:var(--amber);color:var(--amber);}
.portfolio-filter.is-active{border-color:var(--amber);background:var(--amber);color:#1d252d;}
.portfolio-gallery{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-flow:dense;grid-auto-rows:clamp(74px,6vw,110px);gap:20px;}
.portfolio-card{position:relative;grid-column:span 3;grid-row:span 3;min-width:0;margin:0;overflow:hidden;border-radius:16px;background:rgba(255,255,255,.04);}
.portfolio-card--wide{grid-column:span 6;}
.portfolio-card--tall{grid-row:span 4;}
.portfolio-card--feature{grid-column:span 6;grid-row:span 4;}
.portfolio-card[hidden]{display:none!important;}
.portfolio-card img{display:block;width:100%;height:100%;object-fit:cover;}
.portfolio-card figcaption{display:none;}
.portfolio-card{cursor:zoom-in;}
.portfolio-card:focus-visible{outline:3px solid var(--amber);outline-offset:4px;}
.portfolio-lightbox{width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;border:0;background:transparent;color:var(--ivory);overflow:hidden;}
.portfolio-lightbox::backdrop{background:rgba(4,7,17,.94);}
.portfolio-lightbox__panel{position:relative;display:grid;grid-template-rows:minmax(0,1fr) auto;width:100%;height:100%;padding:clamp(64px,7vw,96px) clamp(20px,5vw,72px) clamp(20px,4vw,48px);background:rgba(4,7,17,.97);}
.portfolio-lightbox__figure{display:grid;grid-template-rows:minmax(0,1fr) auto;min-width:0;min-height:0;margin:0;place-items:center;}
.portfolio-lightbox__figure img{display:block;max-width:100%;max-height:calc(100dvh - 190px);width:auto;height:auto;object-fit:contain;box-shadow:0 24px 80px rgba(0,0,0,.45);}
.portfolio-lightbox__figure figcaption{display:flex;width:min(100%,1400px);justify-content:space-between;align-items:center;gap:20px;padding-top:14px;color:var(--ivory);font:500 clamp(.9rem,1.5vw,1.1rem)/1.4 'Poppins',sans-serif;}
#lightboxCategory{color:var(--amber);white-space:nowrap;}
.portfolio-lightbox__close,.portfolio-lightbox__controls button{min-width:48px;min-height:48px;border:1px solid var(--amber);border-radius:999px;background:transparent;color:var(--ivory);font:600 1rem/1.2 'Poppins',sans-serif;cursor:pointer;transition:background-color .25s ease,color .25s ease;}
.portfolio-lightbox__close:hover,.portfolio-lightbox__close:focus-visible,.portfolio-lightbox__controls button:hover,.portfolio-lightbox__controls button:focus-visible{background:var(--amber);color:#1d252d;}
.portfolio-lightbox__close{position:absolute;top:calc(16px + env(safe-area-inset-top));right:clamp(20px,5vw,72px);z-index:2;padding:0 20px;}
.portfolio-lightbox__controls{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;width:min(100%,1400px);margin:18px auto 0;}
.portfolio-lightbox__controls button{padding:0 22px;}
#lightboxPrevious{justify-self:start;}
#lightboxNext{justify-self:end;}
#lightboxCount{color:var(--muted);font:500 .9rem/1.2 'Poppins',sans-serif;white-space:nowrap;}
body.lightbox-open{overflow:hidden;}
@media(max-width:1100px){
  .portfolio-gallery{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:90px;gap:16px;}
  .portfolio-card{grid-column:span 3;}
  .portfolio-card--wide,.portfolio-card--feature{grid-column:span 6;}
}
@media(max-width:640px){
  .portfolio-page.page-animated .page-wrap{padding-top:96px;}
  .portfolio-filters{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;padding-bottom:8px;scrollbar-width:thin;scrollbar-color:var(--amber) transparent;}
  .portfolio-filter{flex:0 0 auto;}
  .portfolio-gallery{display:grid;grid-template-columns:1fr;grid-auto-rows:auto;gap:16px;}
  .portfolio-card,.portfolio-card--wide,.portfolio-card--tall,.portfolio-card--feature{grid-column:1;grid-row:auto;aspect-ratio:4/3;}
  .portfolio-card figcaption{left:14px;bottom:14px;max-width:calc(100% - 28px);}
  .portfolio-lightbox__panel{padding:72px 16px calc(16px + env(safe-area-inset-bottom));}
  .portfolio-lightbox__figure img{max-height:calc(100dvh - 230px);}
  .portfolio-lightbox__figure figcaption{align-items:flex-start;flex-direction:column;gap:4px;padding:12px 4px 0;}
  .portfolio-lightbox__controls{gap:10px;margin-top:14px;}
  .portfolio-lightbox__controls button{padding:0 14px;font-size:.85rem;}
  .portfolio-lightbox__close{top:calc(12px + env(safe-area-inset-top));right:16px;}
}
.article-page::before{display:none;}
.article-page .page-main{padding-top:0;}
.page-hero.article-media-hero{width:100%;height:70vh;height:70svh;margin:0;padding:0;border:0;overflow:hidden;}
.article-hero-image{display:block;width:100%;max-width:100%;height:100%;object-fit:cover;object-position:center top;border:0;border-radius:0;}
.article-body{max-width:100%;margin:0 auto;}
.article-body .article-intro .h2{max-width:1100px;margin:18px 0 28px;}
.article-intro>.p{max-width:760px;}
.article-body .h2{margin:64px 0 20px;font-size:clamp(2rem,4vw,4rem);}
.article-body .h3{margin:42px 0 16px;}
.article-body .p{font-size:var(--text-main);}
.answer-box{margin:32px 0;padding:24px;border-left:3px solid var(--amber);background:rgba(255,255,255,.03);}
.answer-box strong{display:block;margin-bottom:8px;color:var(--amber);}
.page-footer{padding:50px var(--pad);border-top:1px solid var(--line);}
.page-footer .cta-links{margin-bottom:30px;}
.page-footer-bottom{display:flex;justify-content:space-between;gap:24px;color:var(--muted);font-size:.85rem;}
@media(max-width:760px){.page-grid{grid-template-columns:1fr}.page-main{padding-top:120px}.page-footer-bottom{flex-direction:column}.page-hero{padding-bottom:70px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Supporting pages do not run the homepage intro, so their fixed menu is always available. */
.page-main~.page-footer{}
body:has(.page-main) .menu-btn{opacity:1;pointer-events:auto;}
@media(max-width:760px){
  .page-main{padding-top:clamp(110px,28vw,140px);}
  .page-hero{padding-bottom:56px;}
  .page-hero.article-media-hero{width:100%;height:100vh;height:100svh;padding:0;}
  .article-hero-image{width:100%;height:100%;object-fit:cover;object-position:center top;}
  .page-hero .h1{font-size:clamp(2.5rem,13vw,4.2rem);overflow-wrap:anywhere;}
  .page-hero .p,.page-copy .p,.article-body .p{font-size:var(--text-main);}
  .page-wrap{padding-top:64px;padding-bottom:72px;}
  .page-section{padding:64px 0;}
  .services-page .service-showcase,.services-page .service-showcase:nth-child(even){grid-template-columns:1fr;gap:28px;}
  .services-page .service-showcase:nth-child(even) .service-showcase__content,.services-page .service-showcase:nth-child(even) .service-showcase__icon{order:initial;}
  .services-page .service-showcase:nth-child(even) .service-showcase__content,.services-page .service-showcase:nth-child(even) .page-list{text-align:left;}
  .services-page .service-showcase:nth-child(even) .page-actions{justify-content:flex-start;}
  .services-page .service-showcase__icon{min-height:280px;}
  .services-page .service-showcase__icon img{width:76%;height:76%;}
  .about-page .about-stats,.about-page .earlier-experience,.about-page .education-grid,.about-page .expertise-grid,.about-page .language-row{grid-template-columns:1fr;}
  .about-page .experience-entry{grid-template-columns:1fr;gap:24px;}
  .page-card{padding:24px;min-width:0;}
  .page-actions{display:grid;grid-template-columns:1fr;}
  .page-link{width:100%;justify-content:center;text-align:center;overflow-wrap:anywhere;}
  .page-footer{padding-top:40px;padding-bottom:calc(40px + env(safe-area-inset-bottom));}
}
@media(max-width:360px){
  .page-card{padding:20px;}
  .answer-box{padding:20px;}
  .article-body .h2{font-size:2rem;}
}

/* Clients collection page */
.page-animated .page-hero{border-bottom:0;padding-bottom:clamp(32px,4vw,56px);}
.page-animated+.site-footer{border-top:0;}
.page-animated .page-wrap{padding-top:clamp(32px,4vw,56px);}
.services-page.page-animated .page-hero,.about-page.page-animated .page-hero{padding-bottom:0;margin-bottom:0;}
.services-page.page-animated .page-wrap,.about-page.page-animated .page-wrap{padding-top:200px;}
.page-animated .page-hero .h2{width:100%;max-width:none;margin:18px 0 28px;}
.page-animated .page-hero>.p{width:100%;max-width:none;}
.clients-page .page-section{text-align:center;}
.clients-page .page-section>.h2{max-width:900px;margin:18px auto 48px;}
.clients-page .industries{margin:0 0 clamp(72px,10vw,120px);}
.clients-page .logo-grid{grid-template-columns:repeat(auto-fit,minmax(180px,250px));gap:24px;}
.clients-page .logo-box{width:100%;height:160px;background:rgba(255,255,255,.02);}
.clients-page .clients-note{margin-inline:auto;}
@media(max-width:560px){
  .clients-page .logo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
  .clients-page .logo-box{height:120px;}
}
@media(max-width:360px){
  .clients-page .logo-grid{grid-template-columns:1fr;}
}
