/* polish.css — premium finish layer loaded after the section stylesheets.
   Only transform/opacity/shadow transitions. Brand navy palette unchanged. */
:root{--ease-premium:cubic-bezier(.22,1,.36,1);}

/* ---- service / feature cards: consistent height, subtle lift ---- */
.services .icon-box,.about-boxes .card,.count-box,.team .member{
  transition:transform .35s var(--ease-premium),box-shadow .35s var(--ease-premium),border-color var(--dur),background var(--dur);
}
@media (hover:hover){
  .services .icon-box:hover{transform:translateY(-6px);box-shadow:0 22px 44px -22px rgba(0,0,0,.65),0 0 0 1px rgba(255,213,79,.12);}
  .services .icon-box:hover>i{transform:scale(1.08) rotate(-4deg);}
}
.services .icon-box>i{transition:transform .35s var(--ease-premium);transform-origin:left center;}
.services .row>[class*="col-"]{display:flex;}
.services .row>[class*="col-"]>.icon-box{width:100%;}

/* ---- buttons: gentle arrow nudge ---- */
.btn-primary::after,.btn-get-started:not([style])::after,.getstarted::after{
  content:"\2192";display:inline-block;margin-left:8px;transition:transform .3s var(--ease-premium);
}
.btn-primary:hover::after,.btn-get-started:hover::after,.getstarted:hover::after{transform:translateX(5px);}
.btn-primary{background-image:linear-gradient(110deg,var(--yellow) 0 55%,#ffe27d 100%);background-size:160% 100%;background-position:0 0;transition:background-position .5s var(--ease-premium),transform var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease);}
.btn-primary:hover{background-position:100% 0;}

/* ---- portfolio / gallery cards ---- */
.portfolio-col{margin-bottom:0;}
.portfolio-item{box-shadow:0 14px 30px -20px rgba(0,0,0,.7);transition:box-shadow .4s var(--ease-premium),transform .4s var(--ease-premium);}
@media (hover:hover){.portfolio-item:hover{transform:translateY(-4px);box-shadow:0 26px 46px -22px rgba(0,0,0,.8);}}
.portfolio-info .preview-link,.portfolio-info .project-link{position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:9px;background:rgba(0,19,45,.75);display:flex;align-items:center;justify-content:center;color:var(--white);transition:background .25s,color .25s;}
.portfolio-info .project-link{right:58px;}
.portfolio-info .preview-link:hover,.portfolio-info .project-link:hover{background:var(--yellow);color:var(--navy-950);}
.portfolio-info{pointer-events:none;}
.portfolio-info a{pointer-events:auto;}
@media (hover:none){.portfolio-info{opacity:1;background:linear-gradient(180deg,transparent 55%,rgba(0,19,45,.88));}}
#portfolio-flters li:focus-visible{outline:2px solid var(--yellow);outline-offset:3px;}
.gallery-grid figure[hidden],.portfolio-col[hidden]{display:none!important;}
.gallery-grid figure{cursor:zoom-in;}
.gallery-grid figure .preview-link{position:absolute;inset:0;}
.gallery-grid figcaption{pointer-events:none;transform:translateY(6px);opacity:.92;transition:transform .35s var(--ease-premium),opacity .35s;}
.gallery-grid figure:hover figcaption{transform:none;opacity:1;}
.gallery-grid figure:focus-visible{outline:2px solid var(--yellow);outline-offset:3px;}

/* ---- header: smooth shrink + shadow on scroll ---- */
header#header.scrolled{box-shadow:0 10px 30px -18px rgba(0,0,0,.7);}
header#header .logo img{transition:height .35s var(--ease-premium);}
header#header.scrolled .logo img{height:30px!important;}

/* ---- hero: layered depth, CSS-only, GPU-friendly ---- */
#hero::before{
  content:"";position:absolute;inset:-20% -10% auto auto;width:60vmax;height:60vmax;pointer-events:none;
  background:radial-gradient(circle,rgba(0,55,126,.38),transparent 62%);animation:hero-drift 26s ease-in-out infinite alternate;
}
#hero .blueprint{animation:blueprint-pan 60s linear infinite;}
@keyframes hero-drift{from{transform:translate3d(0,0,0)}to{transform:translate3d(-6%,8%,0)}}
@keyframes blueprint-pan{from{background-position:0 0,0 0}to{background-position:48px 48px,48px 48px}}
.readout{animation:readout-float 9s ease-in-out infinite;}
@keyframes readout-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@media (max-width:767px){
  #hero::before,#hero .blueprint,.readout{animation:none;}
  #three-canvas{display:none;}
}

/* ---- images ---- */
.img-fluid{max-width:100%;height:auto;}
.clients img,.logo-marquee-track img{object-fit:contain;}

/* ---- keyboard focus ---- */
a:focus-visible,button:focus-visible,[role="button"]:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:2px solid var(--yellow);outline-offset:3px;border-radius:6px;
}
.mobile-nav-toggle:focus-visible{outline:2px solid var(--yellow);outline-offset:3px;}

/* ---- overflow guards ---- */
html,body{max-width:100%;overflow-x:hidden;}
iframe,video,canvas{max-width:100%;}
h1,h2,h3,h4,p,a{overflow-wrap:anywhere;}
.nav-inner h1,.nav-inner a{overflow-wrap:normal;}

/* ---- reduced motion (complements animations.css) ---- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}
  .services .icon-box:hover,.portfolio-item:hover{transform:none;}
  .wow{visibility:visible!important;}
  #three-canvas{display:none;}
}

/* ---- navbar: keep the desktop menu on one line between 992px and 1279px ---- */
@media (min-width:992px){
  header#header .logo{font-size:15px;white-space:nowrap;}
  .getstarted{white-space:nowrap;}
  header#header .logo img{height:28px!important;}
  nav.navbar > ul{gap:0;}
  nav.navbar > ul > li > a{padding:9px 9px;font-size:12px;}
  .getstarted{padding:9px 13px!important;}
  .nav-inner{gap:12px;}
  .nav-actions{gap:6px;}
}
/* search panel close button must never create sideways scroll */
.search-panel{overflow:hidden;}
.search-box input{min-width:0;width:100%;}
.search-box{max-width:100%;}
.search-close{flex-shrink:0;}
.getstarted{white-space:nowrap;}
@media (min-width:1440px){header#header .logo{white-space:nowrap;}}

/* very tight desktop range: keep the logo mark, drop the wordmark so the menu never overflows */
@media (min-width:992px) and (max-width:1139px){
  header#header .logo a span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
  nav.navbar > ul > li > a{padding:9px 7px;}
}

/* finished project posters: show the whole poster (their text sits at the bottom) */
.portfolio-item.is-poster img{aspect-ratio:2938/2463;object-fit:contain;background:#fff;}
.gallery-grid .is-poster img{aspect-ratio:2938/2463;object-fit:contain;background:#fff;}
.portfolio-item.is-poster .portfolio-info{background:linear-gradient(180deg,transparent 60%,rgba(0,19,45,.9));}

/* logo mark is transparent (no white box); a soft light halo keeps the navy "E" readable on the dark header */
header#header .logo img{background:none;padding:0;object-fit:contain;filter:drop-shadow(0 0 1px rgba(255,255,255,.95)) drop-shadow(0 0 7px rgba(255,255,255,.35));}
header#header .logo img{height:42px!important;}
header#header.scrolled .logo img{height:36px!important;}
@media (min-width:992px) and (max-width:1139px){header#header .logo img{height:36px!important;}}
