/* V11.9 — mobile-first UX and non-sticky photo gallery.
   Fully scoped overrides; preserves existing desktop branding and conversion flow. */

/* Gallery: compact, predictable and keyboard/touch friendly. */
.ptw-v11-work .ptw-gallery{background:#ecece8;color:#101b25;padding:clamp(55px,6.5vw,100px) 0 clamp(70px,7vw,115px);overflow:visible}
.ptw-gallery-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin:0 0 25px}
.ptw-gallery-head h2{color:#111b26;font:570 clamp(39px,5.6vw,78px)/1.06 'Archivo',sans-serif;letter-spacing:-.035em;margin:0 0 14px}
.ptw-gallery-head p{max-width:590px;font-size:clamp(15px,1.15vw,18px);line-height:1.6;color:#54616c;margin:0}
.ptw-gallery-count{white-space:nowrap;font-size:13px!important;font-weight:600;color:#526271!important;margin:0 0 8px!important}
.ptw-gallery-controls{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 clamp(17px,2.6vw,32px)}
.ptw-gallery-filter{font:650 13px/1.1 'DM Sans',sans-serif;cursor:pointer;padding:13px 18px;min-height:44px;color:#26394c;background:transparent;border:1px solid #c7ced3;border-radius:99px;transition:color .2s,background-color .2s,border-color .2s}
.ptw-gallery-filter:hover{border-color:#657e99;background:#fff}
.ptw-gallery-filter[aria-pressed="true"]{color:#fff;background:#0b56dc;border-color:#0b56dc}
.ptw-gallery-filter:focus-visible,.ptw-gallery-tile:focus-visible,.ptw-gallery-more:focus-visible{outline:3px solid #175fda;outline-offset:3px}
.ptw-gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(10px,1.4vw,20px);align-items:start}
.ptw-gallery-tile{min-width:0;display:block;background:#101a25;color:#eef4fa;border:1px solid #263445;overflow:hidden;text-decoration:none;cursor:zoom-in;transition:box-shadow .3s,border-color .3s}
.ptw-gallery-tile[hidden]{display:none!important}
.ptw-gallery-media{aspect-ratio:3/4;display:flex;align-items:center;justify-content:center;background:#111923;overflow:hidden;position:relative}
.ptw-gallery-media img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;opacity:1;transform:none;filter:none;transition:transform .48s cubic-bezier(.2,.72,.18,1),filter .35s ease}
.ptw-gallery-caption{display:block;font:500 12px/1.45 'DM Sans',sans-serif;color:#b9c7d5;padding:12px 13px 14px;min-height:52px}
@media(hover:hover) and (pointer:fine){
 .ptw-gallery-tile:hover{border-color:#7c9ab7;box-shadow:0 13px 28px rgba(14,29,44,.14)}
 .ptw-gallery-tile:hover img{transform:scale(1.025);filter:brightness(1.09)}
}
.ptw-gallery-more-wrap{text-align:center;margin-top:30px}
.ptw-gallery-more{cursor:pointer;background:#111e2b;color:#fff;border:1px solid #111e2b;padding:14px 26px;font:650 14px/1.1 'DM Sans',sans-serif;min-height:48px;transition:background .2s}
.ptw-gallery-more:hover{background:#0c56d7}
.ptw-gallery-more[hidden]{display:none!important}
/* Full-image lightbox: consistent button targets, real captions and counts. */
.ptw-v11-work .photo-dialog{width:min(1080px,96vw);max-width:96vw;max-height:min(96dvh,1000px);border:1px solid #324255;background:#0c131d}
.ptw-v11-work .photo-dialog::backdrop{background:rgba(2,5,9,.94)}
.ptw-v11-work .dialog-inner{padding:clamp(9px,1.8vw,20px)}
.ptw-v11-work .dialog-inner img{display:block;width:auto;height:auto;max-height:calc(92dvh - 126px);max-width:calc(96vw - 40px);object-fit:contain;margin:auto;min-height:0}
.ptw-v11-work .dialog-bottom{display:flex;align-items:center;gap:15px;flex-wrap:wrap;min-height:57px;padding:13px 3px 0}
.ptw-v11-work #dialog-caption{flex:1 1 220px;line-height:1.5}
.ptw-lightbox-counter{white-space:nowrap;color:#f7faff;font:600 12px/1.4 'DM Sans',sans-serif}
.ptw-v11-work .dialog-step,.ptw-v11-work .dialog-close{min-height:44px;cursor:pointer}
/* Service chooser: full desktop selector stays elegant. */
.ptw-service-tab .ptw-tab-photo{display:none}
.ptw-service-tab .ptw-tab-label{display:block}
.ptw-service-pager{display:none;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;color:#344355}
.ptw-service-pager button{min-height:44px;cursor:pointer;border:1px solid #bcc7d0;background:#fff;color:#193354;padding:10px 21px;font:650 13px/1.2 'DM Sans',sans-serif;transition:border-color .2s,background .2s}
.ptw-service-pager button:hover{border-color:#0b55d8;background:#f5f9ff}
.ptw-service-pager button:focus-visible{outline:3px solid #0b56dc;outline-offset:2px}
.ptw-service-pager span{font:600 13px/1.3 'DM Sans',sans-serif;text-align:center;color:#4d5b67}
/* Keep the page load movement on mobile directional, without image jumps. */
@media(max-width:940px){.ptw-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){
 .ptw-v11-work .ptw-gallery{padding:48px 0 74px}
 .ptw-gallery-head{display:block;margin-bottom:19px}
 .ptw-gallery-head h2{font-size:clamp(35px,9.6vw,49px);margin-bottom:9px}
 .ptw-gallery-head p{font-size:15px;line-height:1.55}
 .ptw-gallery-count{margin:13px 0 0!important}
 .ptw-gallery-controls{gap:7px;margin-bottom:18px}
 .ptw-gallery-filter{padding:11px 15px;font-size:12px;min-height:44px}
 .ptw-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
 .ptw-gallery-caption{font-size:11px;padding:8px 9px 11px;min-height:55px;line-height:1.4}
 .ptw-gallery-more-wrap{margin-top:25px}
 .ptw-v11-work .dialog-inner img{max-height:calc(90dvh - 165px);max-width:calc(96vw - 25px)}
 .ptw-v11-work .dialog-bottom{gap:11px}
 .ptw-v11-work #dialog-caption{flex:1 1 65%;font-size:12px}
 .ptw-v11-work .dialog-gallery-nav{order:3;display:flex;width:100%;margin:0}
 .ptw-v11-work .dialog-gallery-nav button{flex:1}
 .ptw-lightbox-counter{margin-left:auto}
 /* Five services shown together; no hidden horizontal list on phones. */
 .ptw-v11-services .ptw-service-experience{padding:48px 0 70px}
 .ptw-v11-services .ptw-experience-head{margin-bottom:20px}
 .ptw-v11-services .ptw-experience-head h2{font-size:clamp(34px,9.2vw,44px)}
 .ptw-v11-services .ptw-service-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;overflow:visible;scroll-snap-type:none;border:0;padding:0;margin:0}
 .ptw-v11-services .ptw-service-tab{min-width:0;min-height:121px;width:100%;flex:none;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:7px;white-space:normal;text-align:left;background:#f7f7f4;border:1px solid #d1d8dd;color:#293a4a;scroll-snap-align:none;gap:9px;line-height:1.2;transition:border-color .22s,box-shadow .22s,background-color .22s}
 .ptw-v11-services .ptw-service-tab:after{display:none}
 .ptw-v11-services .ptw-service-tab[aria-selected="true"]{background:#eef4ff;border-color:#0757e8;box-shadow:inset 0 0 0 1px #0757e8}
 .ptw-v11-services .ptw-service-tab .ptw-tab-photo{display:block;width:100%;height:75px;overflow:hidden;background:#1d2c3c}
 .ptw-v11-services .ptw-service-tab .ptw-tab-photo img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;filter:saturate(.88)}
 .ptw-v11-services .ptw-service-tab .ptw-tab-label{font-size:clamp(12px,3.5vw,14px);font-weight:700;padding:0 5px 4px;line-height:1.22}
 .ptw-v11-services .ptw-service-tab:last-child{grid-column:1/-1;flex-direction:row;align-items:center;min-height:89px;gap:14px}
 .ptw-v11-services .ptw-service-tab:last-child .ptw-tab-photo{width:38%;height:74px;flex:none}
 .ptw-v11-services .ptw-service-tab:last-child .ptw-tab-label{font-size:14px;padding:0}
 .ptw-v11-services .ptw-service-panels{margin-top:19px}
 .ptw-v11-services .ptw-service-panel{border-radius:0;grid-template-columns:1fr}
 .ptw-v11-services .ptw-panel-image{height:clamp(210px,62vw,315px)}
 .ptw-v11-services .ptw-panel-content{padding:24px 23px 28px}
 .ptw-v11-services .ptw-panel-inner h3{font-size:clamp(30px,8vw,42px);margin-bottom:10px}
 .ptw-v11-services .ptw-panel-inner p{font-size:15px;line-height:1.55;margin-bottom:13px}
 .ptw-v11-services .ptw-panel-note{margin-bottom:18px}
 .ptw-v11-services .ptw-panel-book{width:100%;min-height:49px}
 .ptw-service-pager{display:flex;margin-top:10px}
 .ptw-service-pager button{padding:12px 16px}
 .ptw-service-pager span{font-size:12px}
 /* Mobile gets the same directions and easing, but shorter travel. */
 .ptw-v11 .v11-enter-left{animation-name:ptw-v119-enter-left;animation-duration:740ms}
 .ptw-v11 .v11-enter-right{animation-name:ptw-v119-enter-right;animation-duration:850ms}
 .ptw-v11 .roll-in{transition-duration:.78s,.72s}
 html.motion-enhanced .ptw-v11 .roll-left{--roll-x:-30px}
 html.motion-enhanced .ptw-v11 .roll-right{--roll-x:30px}
}
@keyframes ptw-v119-enter-left{from{opacity:.34;transform:translate3d(-21px,0,0)}to{opacity:1;transform:none}}
@keyframes ptw-v119-enter-right{from{opacity:.34;transform:translate3d(21px,0,0)}to{opacity:1;transform:none}}
@media(max-width:340px){
 .ptw-v11-services .ptw-service-tab .ptw-tab-label{font-size:12px}
 .ptw-v11-services .ptw-service-tab .ptw-tab-photo{height:65px}
 .ptw-gallery-filter{padding:11px 13px;font-size:11px}
}
@media(prefers-reduced-motion:reduce){
 .ptw-v11 .v11-enter-left,.ptw-v11 .v11-enter-right{animation:none!important;opacity:1!important;transform:none!important}
 .ptw-gallery-tile,.ptw-gallery-media img,.ptw-gallery-filter,.ptw-service-pager button{transition:none!important}
}
