:root{
  --nv-portfolio-ink:#123f68;
  --nv-portfolio-muted:#687f91;
  --nv-portfolio-line:#d9e7f0;
  --nv-portfolio-accent:#0e83b8;
  --nv-portfolio-surface:#f4f9fc;
}
.nv-portfolio-main{max-width:1220px;margin:0 auto;padding:64px 20px 132px}
.nv-portfolio-intro{text-align:center;max-width:780px;margin:0 auto 38px}
.nv-portfolio-intro::before{content:"";display:grid;place-items:center;width:72px;height:72px;margin:0 auto 16px;border:1px solid #bfe1ee;border-radius:24px;background:linear-gradient(145deg,#e9f9ff,#fff);box-shadow:0 16px 38px rgba(14,131,184,.13);-webkit-mask:none;mask:none}
.nv-portfolio-intro::after{content:"";position:absolute;width:30px;height:30px;background:#087eaa;-webkit-mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M9.2 4.5 10.4 3h3.2l1.2 1.5H18a3 3 0 0 1 3 3v9a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3v-9a3 3 0 0 1 3-3h3.2ZM12 17a4.5 4.5 0 1 0 0-9 4.5 4.5 0 0 0 0 9Zm0-2a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5Z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M9.2 4.5 10.4 3h3.2l1.2 1.5H18a3 3 0 0 1 3 3v9a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3v-9a3 3 0 0 1 3-3h3.2ZM12 17a4.5 4.5 0 1 0 0-9 4.5 4.5 0 0 0 0 9Zm0-2a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5Z'/%3E%3C/svg%3E") center/contain no-repeat;transform:translateY(-67px)}
.nv-portfolio-intro{position:relative}
.nv-portfolio-intro>span{display:inline-flex;padding:7px 14px;border-radius:999px;background:#eaf8ff;color:#0878a5;font-size:.8rem;font-weight:850}
.nv-portfolio-intro h1{color:var(--nv-portfolio-ink);font-size:clamp(2rem,4vw,3.2rem);margin:14px 0 10px}
.nv-portfolio-intro p{color:var(--nv-portfolio-muted);line-height:2.05;margin:0;font-size:.96rem}
.nv-public-portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:stretch;grid-auto-rows:1fr}
.nv-public-portfolio-card{min-width:0;height:100%;background:#fff;border:1px solid var(--nv-portfolio-line);border-radius:24px;overflow:hidden;box-shadow:0 18px 42px rgba(15,42,70,.075);display:grid;grid-template-rows:auto 1fr;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.nv-public-portfolio-card:hover{transform:translateY(-4px);border-color:#bfdcea;box-shadow:0 25px 58px rgba(15,42,70,.13)}
/* Portrait-oriented frames show clinical before/after photos without forcing them into a shallow landscape box. */
.nv-public-portfolio-image{position:relative;aspect-ratio:4/5;min-height:420px;overflow:hidden;background:#dfeaf1;isolation:isolate;border-radius:0!important;clip-path:none!important}
.nv-public-portfolio-image button{position:relative;width:100%;height:100%;padding:0;border:0;background:#dfeaf1;cursor:zoom-in;display:grid;place-items:center;overflow:hidden;border-radius:0!important;clip-path:none!important;appearance:none;-webkit-appearance:none}
.nv-public-portfolio-image button::before{content:"";position:absolute;inset:-26px;z-index:0;background-image:var(--nv-portfolio-image);background-size:cover;background-position:center;filter:blur(24px) saturate(.92) brightness(.84);transform:scale(1.14);opacity:.88}
.nv-public-portfolio-image button::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(7,34,51,.02),rgba(7,34,51,.16));pointer-events:none}
.nv-public-portfolio-image img{position:relative;z-index:2;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:contain!important;object-position:center!important;display:block!important;border-radius:0!important;clip-path:none!important;transform:none;transition:transform .35s ease,filter .35s ease;filter:drop-shadow(0 12px 28px rgba(6,31,47,.18))}
.nv-public-portfolio-card:hover .nv-public-portfolio-image img{transform:scale(1.012)}
.nv-public-portfolio-zoom{position:absolute;z-index:6;right:14px;left:14px;bottom:14px;min-height:42px;display:flex;align-items:center;justify-content:center;gap:8px;padding:9px 14px;border-radius:13px;background:rgba(7,39,59,.9);color:#fff;font-size:.78rem;font-weight:900;line-height:1.5;backdrop-filter:blur(12px);box-shadow:0 10px 28px rgba(4,24,38,.28);pointer-events:none;white-space:nowrap;overflow:visible}
.nv-public-portfolio-zoom::before{content:"";width:18px;height:18px;flex:0 0 18px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M12 5C6.4 5 2.3 10.1 1.5 11.2a1.3 1.3 0 0 0 0 1.6C2.3 13.9 6.4 19 12 19s9.7-5.1 10.5-6.2a1.3 1.3 0 0 0 0-1.6C21.7 10.1 17.6 5 12 5Zm0 11.2A4.2 4.2 0 1 1 12 7.8a4.2 4.2 0 0 1 0 8.4Zm0-1.9a2.3 2.3 0 1 0 0-4.6 2.3 2.3 0 0 0 0 4.6Z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M12 5C6.4 5 2.3 10.1 1.5 11.2a1.3 1.3 0 0 0 0 1.6C2.3 13.9 6.4 19 12 19s9.7-5.1 10.5-6.2a1.3 1.3 0 0 0 0-1.6C21.7 10.1 17.6 5 12 5Zm0 11.2A4.2 4.2 0 1 1 12 7.8a4.2 4.2 0 0 1 0 8.4Zm0-1.9a2.3 2.3 0 1 0 0-4.6 2.3 2.3 0 0 0 0 4.6Z'/%3E%3C/svg%3E") center/contain no-repeat}
.nv-public-portfolio-body{padding:19px;display:flex;flex-direction:column;gap:9px;min-height:178px}
.nv-public-portfolio-category{align-self:flex-start;color:#0b7ca8;font-size:.75rem;font-weight:850;padding:4px 9px;border-radius:999px;background:#edf9ff}
.nv-public-portfolio-body h2{margin:0;color:var(--nv-portfolio-ink);font-size:1.08rem;line-height:1.7}
.nv-public-portfolio-body p{margin:0;color:var(--nv-portfolio-muted);line-height:1.95;font-size:.86rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.nv-public-portfolio-empty{grid-column:1/-1;text-align:center;padding:60px;border:1px dashed #b8d8e8;border-radius:22px;color:var(--nv-portfolio-muted);background:#fff}
.nv-portfolio-lightbox{position:fixed;inset:0;z-index:10000;width:100%;height:100%;max-width:none;max-height:none;padding:clamp(12px,2vw,28px);border:0;background:rgba(2,18,28,.91);box-sizing:border-box;overflow:hidden}
.nv-portfolio-lightbox::backdrop{background:rgba(2,18,28,.91);backdrop-filter:blur(8px)}
.nv-portfolio-lightbox[open]{display:grid;place-items:center}
.nv-portfolio-lightbox__panel{position:relative;width:min(1180px,96vw);height:min(88dvh,840px);display:grid;grid-template-columns:minmax(0,1fr) minmax(310px,370px);grid-template-areas:"image copy";border-radius:24px;overflow:hidden;background:#fff;box-shadow:0 32px 110px rgba(0,0,0,.45)}
.nv-portfolio-lightbox__image{grid-area:image;position:relative;min-width:0;min-height:0;display:grid;place-items:center;overflow:hidden;background:linear-gradient(145deg,#092536,#061a27);isolation:isolate}
.nv-portfolio-lightbox__image::before{content:"";position:absolute;inset:-40px;z-index:-2;background-image:var(--nv-portfolio-image);background-size:cover;background-position:center;filter:blur(32px) saturate(.8) brightness(.58);transform:scale(1.1);opacity:.82}
.nv-portfolio-lightbox__image::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(2,16,24,.16),rgba(2,16,24,.3))}
.nv-portfolio-lightbox__image img{max-width:100%!important;max-height:100%!important;width:auto!important;height:auto!important;object-fit:contain!important;display:block!important;border-radius:0!important;clip-path:none!important;filter:drop-shadow(0 22px 44px rgba(0,0,0,.34))}
.nv-portfolio-lightbox__copy{grid-area:copy;min-width:0;display:flex;flex-direction:column;gap:12px;padding:30px 26px 24px;overflow:auto;background:linear-gradient(180deg,#fff,#f7fbfd);border-right:1px solid rgba(215,230,239,.95)}
.nv-portfolio-lightbox__category{align-self:flex-start;display:inline-flex;padding:6px 10px;border-radius:999px;background:#eaf8ff;color:#0878a5;font-size:.74rem;font-weight:850}
.nv-portfolio-lightbox__copy h2{margin:0;color:var(--nv-portfolio-ink);font-size:clamp(1.2rem,2vw,1.55rem);line-height:1.7}
.nv-portfolio-lightbox__copy p{margin:0;color:var(--nv-portfolio-muted);font-size:.92rem;line-height:2.05;white-space:pre-line}
.nv-portfolio-lightbox__notice{margin-top:auto;padding-top:16px;border-top:1px solid #dce9f0;color:#7890a1;font-size:.76rem;line-height:1.85}
.nv-portfolio-lightbox__counter{position:absolute;right:16px;bottom:14px;z-index:3;display:inline-flex;align-items:center;justify-content:center;min-width:54px;height:32px;padding:0 10px;border-radius:999px;background:rgba(3,24,36,.72);color:#fff;font-size:.72rem;font-weight:850;backdrop-filter:blur(10px)}
.nv-portfolio-lightbox__close{position:absolute;top:14px;left:14px;z-index:4;width:44px;height:44px;border-radius:14px;border:1px solid rgba(255,255,255,.35);background:rgba(7,39,59,.78);color:#fff;font-size:1.65rem;line-height:1;cursor:pointer;box-shadow:0 10px 26px rgba(0,0,0,.22)}
.nv-portfolio-lightbox__nav{position:absolute;top:50%;z-index:4;width:44px;height:54px;transform:translateY(-50%);border:1px solid rgba(255,255,255,.28);border-radius:14px;background:rgba(7,39,59,.65);color:#fff;font-size:1.65rem;cursor:pointer;backdrop-filter:blur(10px)}
.nv-portfolio-lightbox__nav--prev{right:14px}.nv-portfolio-lightbox__nav--next{left:14px}.nv-portfolio-lightbox__nav[hidden]{display:none!important}
@media(max-width:920px){.nv-public-portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nv-portfolio-main{padding-top:46px}.nv-public-portfolio-image{min-height:380px}.nv-portfolio-lightbox__panel{grid-template-columns:minmax(0,1fr) minmax(270px,330px)}}
@media(max-width:700px){.nv-portfolio-lightbox{padding:8px;overflow:auto}.nv-portfolio-lightbox[open]{display:block}.nv-portfolio-lightbox__panel{width:100%;height:auto;max-height:none;min-height:calc(100dvh - 16px);grid-template-columns:1fr;grid-template-rows:minmax(320px,58dvh) auto;grid-template-areas:"image" "copy";border-radius:18px;overflow:visible}.nv-portfolio-lightbox__copy{overflow:visible;border-right:0;border-top:1px solid #dce9f0;padding:20px 18px 22px}.nv-portfolio-lightbox__close{position:fixed;top:18px;left:18px}.nv-portfolio-lightbox__counter{position:absolute;right:12px;bottom:12px}.nv-portfolio-lightbox__nav{width:40px;height:48px}.nv-portfolio-lightbox__nav--prev{right:10px}.nv-portfolio-lightbox__nav--next{left:10px}}
@media(max-width:620px){.nv-public-portfolio-grid{grid-template-columns:1fr;gap:16px}.nv-portfolio-main{padding:34px 12px 118px}.nv-portfolio-intro{margin-bottom:24px}.nv-portfolio-intro h1{font-size:1.8rem}.nv-portfolio-intro p{font-size:.86rem}.nv-public-portfolio-card{border-radius:18px}.nv-public-portfolio-body{padding:15px;min-height:0}.nv-public-portfolio-image{aspect-ratio:4/5;min-height:0}.nv-public-portfolio-zoom{right:10px;left:10px;bottom:10px;min-height:40px}}

/* NoorVista 3.0.106 — portfolio mobile navigation/sidebar isolation */
@media(max-width:720px){
  body[data-public-page="portfolio"]{overflow-x:hidden!important}
  body[data-public-page="portfolio"] .navbar{z-index:10030!important}
  body[data-public-page="portfolio"] .navbar .container.nav-inner{max-width:100%!important;overflow:visible!important}
  body[data-public-page="portfolio"] .navbar nav{position:static!important;min-width:0!important}
  body[data-public-page="portfolio"] .navbar .menu{
    position:fixed!important;
    z-index:10031!important;
    top:96px!important;
    right:10px!important;
    left:10px!important;
    bottom:10px!important;
    width:auto!important;
    max-width:none!important;
    max-height:none!important;
    margin:0!important;
    padding:12px!important;
    border:1px solid #d8e8f1!important;
    border-radius:20px!important;
    background:rgba(255,255,255,.985)!important;
    box-shadow:0 26px 70px rgba(7,39,59,.24)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    align-content:start!important;
  }
  body[data-public-page="portfolio"] .navbar .menu>li>a.active,
  body[data-public-page="portfolio"] .navbar .menu>li>a[aria-current="page"]{
    background:linear-gradient(135deg,#e0f5ff,#edf9ff)!important;
    color:#075985!important;
    box-shadow:inset -3px 0 0 #0ea5e9!important;
  }
  body[data-public-page="portfolio"].nv-mobile-menu-open{overflow:hidden!important}
  body[data-public-page="portfolio"].nv-mobile-menu-open::before{content:"";position:fixed;inset:0;z-index:10020;background:rgba(2,22,34,.28);backdrop-filter:blur(3px);pointer-events:none}
}
