/* GYW v4.3 premium portfolio showcase and rich case studies. */
.gyw-showcase-wrap{padding:8px 0 48px}
.gyw-showcase-lead{max-width:770px;color:#aebbdc;font-size:15px;line-height:1.78;margin:0 0 24px}
.gyw-showcase-controls{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 27px;align-items:center}
.gyw-showcase-controls button{background:rgba(16,25,52,.84);border:1px solid rgba(113,135,194,.26);color:#c4d0e9;border-radius:999px;padding:12px 17px;font-size:12px;font-weight:700;font-family:inherit;line-height:1.1;cursor:pointer;transition:background .2s,border-color .2s,color .2s;white-space:nowrap}
.gyw-showcase-controls button b{font-size:10px;font-weight:700;background:rgba(255,255,255,.1);padding:3px 6px;border-radius:12px;margin-left:5px}
.gyw-showcase-controls button:hover,.gyw-showcase-controls button.is-active{background:linear-gradient(115deg,rgba(34,120,224,.28),rgba(125,45,225,.24));border-color:rgba(67,193,255,.75);color:white}
.gyw-showcase-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}
.gyw-showcase-card{overflow:hidden;min-width:0;border-radius:21px;background:linear-gradient(147deg,rgba(22,31,67,.96),rgba(8,13,31,.98));border:1px solid rgba(126,144,211,.24);box-shadow:0 14px 35px rgba(0,0,0,.16);transition:border-color .22s,transform .22s,box-shadow .22s;display:flex;flex-direction:column}
.gyw-showcase-card:hover{transform:translateY(-4px);border-color:rgba(82,190,255,.66);box-shadow:0 21px 52px rgba(33,42,140,.2)}
.gyw-showcase-media{position:relative;width:100%;aspect-ratio:16/10;overflow:hidden;background:radial-gradient(ellipse at 70% 50%,#302278,#0d1535 65%)}
.gyw-showcase-img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;transition:transform .55s cubic-bezier(.2,.7,.2,1)}
.gyw-showcase-card:hover .gyw-showcase-img{transform:scale(1.035)}
.gyw-showcase-image-placeholder{height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;background:radial-gradient(ellipse at 30% 80%,rgba(107,44,255,.48),transparent 65%),radial-gradient(ellipse at 70% 25%,rgba(8,182,255,.35),transparent 65%),#0c1433;color:#e8f2ff}
.gyw-showcase-image-placeholder span{font-weight:950;font-size:clamp(54px,6vw,92px);letter-spacing:-.08em;font-style:italic;background:linear-gradient(120deg,#42e2ff,#3b74fa,#b055ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.gyw-showcase-image-placeholder small{font-size:11px;color:#c0d2f2}
.gyw-showcase-image-label{position:absolute;left:15px;top:15px;font-size:10px;font-weight:850;letter-spacing:.07em;text-transform:uppercase;color:#ddf9ff;border:1px solid rgba(119,200,255,.46);border-radius:999px;padding:8px 11px;background:rgba(6,13,32,.79);backdrop-filter:blur(5px)}
.gyw-showcase-content{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:22px 22px 21px;flex:1}
.gyw-showcase-kicker{font-size:9px;letter-spacing:.15em;font-weight:900;color:#52c9ff;text-transform:uppercase}
.gyw-showcase-content h3{margin:0;color:#f9fbff;font-size:clamp(19px,2vw,23px);line-height:1.17;font-weight:900;letter-spacing:-.025em}
.gyw-showcase-subtitle{color:#d3b9ff;font-size:12px;font-weight:700}
.gyw-showcase-content p{margin:0;color:#aebbd9;font-size:12px;line-height:1.75}
.gyw-showcase-tags{display:flex;gap:7px;flex-wrap:wrap;padding:3px 0 2px}
.gyw-showcase-tags span{border:1px solid rgba(131,153,215,.24);border-radius:8px;background:rgba(78,91,174,.13);padding:6px 9px;color:#bfceed;font-size:10px}
.gyw-showcase-actions{margin-top:auto;border-top:1px solid rgba(133,154,209,.17);padding-top:15px;width:100%;display:flex;gap:13px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.gyw-showcase-price{font-weight:900;font-size:16px;color:#6de2ff;line-height:1.25}
.gyw-showcase-detail{text-decoration:none!important;color:#f7f8ff!important;font-weight:850;font-size:11px;white-space:nowrap;display:inline-flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;background:linear-gradient(110deg,#4e61fa,#9724dc);transition:filter .2s}
.gyw-showcase-detail:hover{filter:brightness(1.25)}
.gyw-showcase-featured{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.13fr) minmax(0,1fr);min-height:375px;background:linear-gradient(140deg,rgba(22,29,64,.95),rgba(24,9,62,.95))}
.gyw-showcase-featured .gyw-showcase-media{height:100%;min-height:330px;aspect-ratio:auto}
.gyw-showcase-featured .gyw-showcase-content{padding:clamp(24px,3.1vw,52px);justify-content:center;gap:17px}
.gyw-showcase-featured .gyw-showcase-content h3{font-size:clamp(27px,3.2vw,48px)}
.gyw-showcase-featured .gyw-showcase-content p{font-size:14px;max-width:480px}
.gyw-showcase-featured .gyw-showcase-price{font-size:22px}
.gyw-showcase-grid.gyw-showcase-home .gyw-showcase-card{min-height:100%}
.gyw-showcase-empty{border:1px dashed #4f6391;color:#c2d2f3;padding:27px;border-radius:16px;background:#101835;margin:16px 0}
.gyw-showcase-noresults{border:1px dashed #6475ba;padding:25px;border-radius:12px;color:#b8ceec;text-align:center;margin:24px 0}
.gyw-portfolio-home-action{text-align:center;margin:22px 0 0}
.gyw-showcase-single{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.75fr);gap:28px;align-items:start;margin:0 0 34px}
.gyw-showcase-single-visual{border:1px solid rgba(109,153,248,.38);border-radius:23px;overflow:hidden;background:#101734;box-shadow:0 19px 60px rgba(5,8,32,.25)}
.gyw-showcase-single-visual img{width:100%;height:auto;display:block}
.gyw-showcase-single-meta{padding:27px;background:linear-gradient(125deg,#161e42,#140b32);border:1px solid rgba(130,151,215,.25);border-radius:21px}
.gyw-showcase-single-meta h2{font-size:20px;color:white;margin:0 0 13px}
.gyw-showcase-dl{margin:0}
.gyw-showcase-dl>div{padding:13px 0;border-bottom:1px solid rgba(128,151,215,.17)}
.gyw-showcase-dl dt{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#8ca4cd;font-weight:800;margin-bottom:4px}
.gyw-showcase-dl dd{margin:0;font-size:14px;color:#edf4ff;line-height:1.55;overflow-wrap:break-word}
.gyw-showcase-dl .gyw-price-row dd{font-size:24px;color:#69d9ff;font-weight:900}
.gyw-showcase-single-cta{margin-top:24px}
.gyw-showcase-caption{font-size:12px;color:#8ca4cd;margin:14px 0}
@media(max-width:1050px){.gyw-showcase-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gyw-showcase-featured{grid-template-columns:1fr 1fr}.gyw-showcase-single{grid-template-columns:1fr}}
@media(max-width:680px){.gyw-showcase-grid{grid-template-columns:1fr;gap:15px}.gyw-showcase-featured{display:flex;flex-direction:column;min-height:0}.gyw-showcase-featured .gyw-showcase-media{height:auto;min-height:0;aspect-ratio:16/10}.gyw-showcase-featured .gyw-showcase-content{padding:22px;gap:10px}.gyw-showcase-featured .gyw-showcase-content h3{font-size:24px}.gyw-showcase-card{border-radius:18px}.gyw-showcase-content{padding:18px}.gyw-showcase-controls{flex-wrap:nowrap;overflow:auto;padding:2px 0 8px;scrollbar-width:thin}.gyw-showcase-single-meta{padding:20px}}
@media(prefers-reduced-motion:reduce){.gyw-showcase-card,.gyw-showcase-img,.gyw-showcase-detail{transition:none!important}.gyw-showcase-card:hover{transform:none}.gyw-showcase-card:hover img{transform:none}}

.gyw-showcase-card[hidden]{display:none!important}

/* Gallery takes priority on Portfolio page, without changing the home layout. */
.gyw-showcase-portfolio-first{padding-top:0}.gyw-showcase-portfolio-first .gyw-related-heading{margin-bottom:20px}.gyw-portfolio-editor-copy{margin-top:42px}

/* 4.3 — live preview actions, refined case studies and sticky right detail panel */
.gyw-showcase-media.gyw-live-media{display:block;color:inherit;text-decoration:none!important;cursor:pointer}
.gyw-media-open{position:absolute;right:14px;bottom:14px;font-size:11px;font-weight:800;background:linear-gradient(120deg,#327cfc,#9624df);padding:9px 12px;border-radius:10px;color:white;box-shadow:0 8px 22px #0d0d33a6;opacity:0;transform:translateY(7px);transition:opacity .2s,transform .2s}
.gyw-showcase-card:hover .gyw-media-open,.gyw-showcase-media:focus-visible .gyw-media-open{opacity:1;transform:translateY(0)}
.gyw-showcase-title-link{color:inherit!important;text-decoration:none!important}.gyw-showcase-title-link:hover{color:#69dcff!important}
.gyw-case-study .inner-shell{max-width:1240px}.gyw-case-intro{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:25px}.gyw-case-intro h2{font-size:clamp(22px,2.7vw,36px);letter-spacing:-.04em;color:#fff;margin:13px 0}.gyw-case-intro p{max-width:650px;margin:0;color:#a9bcdd;font-size:14px;line-height:1.7}
.gyw-case-intro-actions{display:flex;flex-wrap:wrap;gap:10px;flex-shrink:0}.gyw-case-intro-actions .btn{white-space:nowrap}.gyw-case-study .gyw-showcase-single{grid-template-columns:minmax(0,1.55fr) minmax(288px,.75fr);gap:24px;align-items:start}.gyw-case-left{min-width:0}
.gyw-case-main-image{border:1px solid rgba(99,127,220,.5);border-radius:22px;overflow:hidden;background:linear-gradient(120deg,#101936,#170b3e);box-shadow:0 12px 35px #04051575}.gyw-case-screenshot-link{display:block;position:relative;overflow:hidden;color:white;text-decoration:none!important}.gyw-case-screenshot-link>img{display:block;width:100%;height:auto;min-height:250px;max-height:580px;object-fit:cover;object-position:top center;transition:transform .35s ease}.gyw-case-screenshot-link[href]:hover>img{transform:scale(1.018)}.gyw-case-visit-badge{position:absolute;right:14px;bottom:14px;background:linear-gradient(130deg,#357afa,#9428e0);padding:12px 16px;border-radius:11px;font-weight:800;font-size:12px;color:white;box-shadow:0 8px 22px #050b24ba}
.gyw-case-image-note{font-size:12px;color:#8198ba;margin:10px 0 0}.gyw-case-section-title{margin:12px 0 15px}.gyw-case-section-title h2{font-size:23px;color:#fff;margin:7px 0}
.gyw-case-gallery{margin:28px 0}.gyw-case-gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.gyw-case-gallery-grid>a,.gyw-case-gallery-grid>div{position:relative;display:block;overflow:hidden;border-radius:15px;border:1px solid #6484c348;background:#101a39}.gyw-case-gallery-grid img{width:100%;height:190px;object-fit:cover;object-position:top center;display:block;transition:transform .25s}.gyw-case-gallery-grid a:hover img{transform:scale(1.04)}.gyw-case-gallery-grid a>span{position:absolute;bottom:10px;right:10px;background:#14163ecf;border:1px solid #6c9cfa7a;border-radius:8px;padding:8px 11px;color:#eff7ff;font-size:11px;font-weight:700}
.gyw-case-story{margin:30px 0 45px;border:1px solid #6679b443;border-radius:20px;background:linear-gradient(140deg,#101936c9,#110e2bcc);padding:clamp(23px,3vw,38px)}.gyw-case-story h2{font-size:clamp(23px,2.5vw,33px);margin:10px 0 14px;color:white}.gyw-case-story h3{font-size:19px;color:#f1f6ff;margin:24px 0 12px}.gyw-case-story p{color:#b5c5e4;line-height:1.8;font-size:14px}.gyw-case-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.gyw-case-feature-grid div{display:flex;align-items:start;gap:10px;padding:15px 13px;border:1px solid #6185c636;background:#1b264c70;border-radius:12px;color:#d5e2f7;font-size:13px;line-height:1.5}.gyw-case-feature-grid span{color:#52d7fa;font-weight:900}.gyw-case-editor .entry-content{margin-top:24px;border-top:1px solid #5c6ca344;padding-top:18px}.gyw-case-editor .entry-content h2{font-size:21px}
.gyw-case-sidebar{position:sticky;top:105px;max-height:calc(100vh - 120px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#6452ae transparent;box-shadow:0 18px 60px #02061745}.gyw-case-sidebar-btn{display:flex;justify-content:center;margin-top:12px;text-align:center;padding:13px 15px}.gyw-case-sidebar-note{color:#96a9cf;font-size:11px;line-height:1.6;margin:15px 0 0}
.gyw-case-related{margin:25px 0 50px}.gyw-case-related-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:22px}.gyw-case-related-heading h2{font-size:clamp(21px,3vw,32px);margin:8px 0 0;color:#fff}.gyw-case-related-heading>a{font-size:12px;font-weight:700;color:#68dfff}.gyw-case-related-grid .gyw-showcase-content{padding:17px}.gyw-case-related-grid .gyw-showcase-card{min-width:0}
@media(max-width:950px){.gyw-case-study .gyw-showcase-single{grid-template-columns:1fr}.gyw-case-sidebar{position:static;max-height:none}.gyw-case-intro{align-items:start;flex-direction:column}.gyw-case-related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.gyw-case-gallery-grid{grid-template-columns:1fr}.gyw-case-feature-grid{grid-template-columns:1fr}.gyw-case-related-grid{grid-template-columns:1fr}.gyw-case-intro-actions{width:100%}.gyw-case-intro-actions .btn{flex:1;justify-content:center}.gyw-case-story{margin-top:22px}.gyw-case-screenshot-link>img{min-height:180px}.gyw-case-visit-badge{font-size:10px;padding:10px 12px}.gyw-media-open{opacity:1;transform:none}.gyw-case-sidebar{padding:19px}}
@media(prefers-reduced-motion:reduce){.gyw-case-screenshot-link>img,.gyw-case-gallery-grid img,.gyw-media-open{transition:none!important}}

/* V4.5: real website previews without waiting for WordPress Featured Images. */
.gyw-live-screenshot{background:#111b39;object-fit:cover;object-position:center top}.gyw-screenshot-unavailable{display:flex;min-height:180px;justify-content:center;align-items:center;text-align:center;padding:25px;font-size:13px;color:#c4d4f6;background:linear-gradient(135deg,#111932,#231044)}

/* 4.6: stable instant local preview / real saved images; no remote screenshot image swapping. */
.gyw-local-portfolio-preview{background:#101931;object-fit:cover;object-position:center top}

/* GYW 4.7 — photos and the first featured card must not be cropped. */
.gyw-showcase-media{background:#08112b;isolation:isolate}
.gyw-showcase-img,.gyw-local-portfolio-preview,.gyw-live-screenshot{
  object-fit:contain!important;object-position:center center!important;
}
.gyw-showcase-featured{min-height:0;align-items:stretch}
.gyw-showcase-featured .gyw-showcase-media{min-height:0;height:auto;aspect-ratio:auto;display:flex;align-items:center;justify-content:center}
.gyw-showcase-featured .gyw-showcase-img{height:auto;max-height:520px;max-width:100%;object-fit:contain!important}
.gyw-showcase-card:hover .gyw-showcase-img{transform:none}
.gyw-case-screenshot-link>img{height:auto;min-height:0;max-height:none;object-fit:contain!important;object-position:top center!important}
.gyw-case-gallery-grid img{object-fit:contain!important;background:#08112b}
@media(max-width:680px){
 .gyw-showcase-featured .gyw-showcase-media{aspect-ratio:16/10;min-height:0}
 .gyw-showcase-featured .gyw-showcase-img{max-height:300px}
}

/* V4.8: stable image dimensions; no progressive screenshot swapping or card cropping. */
.gyw-showcase-media{contain:layout paint;}
.gyw-showcase-img{display:block;width:100%;max-width:100%;height:100%;object-fit:contain!important;object-position:center!important;}
.gyw-showcase-featured .gyw-showcase-img{height:auto;max-height:520px;}
.gyw-case-main-image img{display:block;width:100%;height:auto;object-fit:contain!important;}

/* V4.9 — stable, uncropped locally hosted screenshots on all cards. */
.gyw-showcase-media .gyw-showcase-img{object-fit:contain!important;object-position:center center!important}
.gyw-showcase-featured .gyw-showcase-media{min-width:0}
.gyw-showcase-featured .gyw-showcase-img{max-height:520px;max-width:100%;object-fit:contain!important}
.gyw-case-screenshot-link>img{object-fit:contain!important;height:auto!important;max-height:none!important}

/* V5.9 — Featured Image is the only public portfolio visual. No image = no empty media box. */
.gyw-showcase-card.gyw-showcase-no-image .gyw-showcase-content {flex:1;min-height:220px;justify-content:space-between}
.gyw-showcase-card.gyw-showcase-featured.gyw-showcase-no-image {display:flex;flex-direction:column;min-height:0;grid-column:1 / -1}
.gyw-showcase-card.gyw-showcase-featured.gyw-showcase-no-image .gyw-showcase-content {padding:clamp(23px,3vw,42px);min-height:235px;gap:12px}
@media(max-width:680px){.gyw-showcase-card.gyw-showcase-featured.gyw-showcase-no-image .gyw-showcase-content {min-height:0;padding:22px}}

/* V6.0: portfolio editorial mosaic. Featured Images ONLY; no image service or fallback artwork. */
.gyw-showcase-grid:not(.gyw-showcase-home){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:stretch}
.gyw-showcase-grid:not(.gyw-showcase-home)>.gyw-showcase-card:first-child{grid-column:span 2;display:flex;flex-direction:column}
.gyw-showcase-grid:not(.gyw-showcase-home)>.gyw-showcase-card:nth-child(2){grid-column:span 1}
.gyw-showcase-grid:not(.gyw-showcase-home)>.gyw-showcase-card:first-child .gyw-showcase-media{height:auto;min-height:0;aspect-ratio:16/9;max-height:440px;display:grid;place-items:center}
.gyw-showcase-grid:not(.gyw-showcase-home)>.gyw-showcase-card:nth-child(2) .gyw-showcase-media{aspect-ratio:4/5;display:grid;place-items:center}
.gyw-showcase-grid:not(.gyw-showcase-home)>.gyw-showcase-card:first-child .gyw-showcase-img,.gyw-showcase-grid:not(.gyw-showcase-home)>.gyw-showcase-card:nth-child(2) .gyw-showcase-img{width:100%;height:100%;max-height:100%;object-fit:contain!important}
.gyw-showcase-grid:not(.gyw-showcase-home)>.gyw-showcase-card:first-child .gyw-showcase-content{padding:24px 29px;gap:10px}
.gyw-showcase-grid:not(.gyw-showcase-home)>.gyw-showcase-card:first-child h3{font-size:clamp(22px,2.6vw,33px)}
.gyw-showcase-grid:not(.gyw-showcase-home)>.gyw-showcase-card:nth-child(2) .gyw-showcase-content{padding:22px}
.gyw-showcase-grid:not(.gyw-showcase-home)>.gyw-showcase-card:nth-child(2) h3{font-size:21px}
.gyw-showcase-grid:not(.gyw-showcase-home)>.gyw-showcase-card:nth-child(n+3) .gyw-showcase-media{aspect-ratio:16/10}
.gyw-showcase-card .gyw-showcase-media{background:radial-gradient(circle at 50% 55%,#2b2461,#0a1432 70%)}
.gyw-showcase-card .gyw-showcase-media img{object-fit:contain!important}
.gyw-showcase-grid.gyw-showcase-home{grid-template-columns:repeat(3,minmax(0,1fr))}
.gyw-showcase-grid.gyw-showcase-home .gyw-showcase-content{padding:19px}
.gyw-showcase-grid.gyw-showcase-home .gyw-showcase-media{aspect-ratio:16/10}
@media(max-width:960px){.gyw-showcase-grid:not(.gyw-showcase-home){grid-template-columns:repeat(2,minmax(0,1fr))}.gyw-showcase-grid:not(.gyw-showcase-home)>.gyw-showcase-card:nth-child(2){grid-column:auto}.gyw-showcase-grid.gyw-showcase-home{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.gyw-showcase-grid:not(.gyw-showcase-home),.gyw-showcase-grid.gyw-showcase-home{grid-template-columns:1fr}.gyw-showcase-grid:not(.gyw-showcase-home)>.gyw-showcase-card:first-child{grid-column:1}.gyw-showcase-grid:not(.gyw-showcase-home)>.gyw-showcase-card:nth-child(2) .gyw-showcase-media{aspect-ratio:16/10}.gyw-showcase-grid:not(.gyw-showcase-home)>.gyw-showcase-card:first-child .gyw-showcase-content{padding:22px}}

/* Reference-inspired showcase with one landscape feature and one portrait tile.
   Images remain entirely driven by each project's own WordPress Featured Image. */
@media(min-width:961px){
.gyw-showcase-grid.gyw-showcase-home{grid-template-columns:minmax(0,1.55fr) minmax(0,.9fr);gap:22px}
.gyw-showcase-grid.gyw-showcase-home>.gyw-showcase-card:first-child{grid-column:1}
.gyw-showcase-grid.gyw-showcase-home>.gyw-showcase-card:nth-child(2){grid-column:2}
.gyw-showcase-grid.gyw-showcase-home>.gyw-showcase-card:nth-child(3){grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch}
.gyw-showcase-grid.gyw-showcase-home>.gyw-showcase-card:first-child .gyw-showcase-media{aspect-ratio:16/9}
.gyw-showcase-grid.gyw-showcase-home>.gyw-showcase-card:nth-child(2) .gyw-showcase-media{aspect-ratio:4/5}
.gyw-showcase-grid.gyw-showcase-home>.gyw-showcase-card:nth-child(3) .gyw-showcase-media{height:100%;aspect-ratio:16/10}
.gyw-showcase-grid.gyw-showcase-home>.gyw-showcase-card:nth-child(3) .gyw-showcase-content{justify-content:center;padding:27px}
.gyw-showcase-grid.gyw-showcase-home>.gyw-showcase-card:nth-child(1) .gyw-showcase-img,
.gyw-showcase-grid.gyw-showcase-home>.gyw-showcase-card:nth-child(2) .gyw-showcase-img,
.gyw-showcase-grid.gyw-showcase-home>.gyw-showcase-card:nth-child(3) .gyw-showcase-img{object-fit:contain!important}
}
@media(max-width:960px){.gyw-showcase-grid.gyw-showcase-home{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.gyw-showcase-grid.gyw-showcase-home{grid-template-columns:1fr}}
