/* V11.2 — homepage customer journey: distinct proof, actual work, options, education and visit.
   All content visible without JS; motion only decorates visible content. */
.ptw-v11-home{--home-ink:#101a26;--home-silver:#e9e8e4;--home-blue:#0757e8}
.ptw-v11-home .home-section-intro{display:flex;justify-content:space-between;align-items:end;gap:clamp(20px,4vw,65px);margin-bottom:clamp(28px,3.4vw,52px)}
.ptw-v11-home .home-section-intro h2{max-width:750px;font-size:clamp(35px,4.1vw,66px);letter-spacing:-.032em;line-height:1.12;font-weight:570;text-wrap:balance;margin:0}
.ptw-v11-home .home-section-intro p{font-size:clamp(15px,1.2vw,18px);line-height:1.62;max-width:390px;color:#525f6b;margin:0}
.ptw-v11-home .home-section-intro-dark p{color:#c4cfd9}
/* Compact credibility, immediately after the form */
.home-reputation{background:#f1f0ec;color:#13202d;border-bottom:1px solid #d5d7d6;padding:clamp(28px,3.8vw,57px) 0}
.home-reputation-grid{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);align-items:center;gap:clamp(30px,6vw,115px)}
.home-reputation-rating{border-right:1px solid #c9cdce;padding-right:clamp(25px,4vw,65px)}
.home-rating-line{display:flex;align-items:baseline;gap:10px}
.home-rating-line strong{font-family:'Archivo',sans-serif;letter-spacing:-.04em;font-size:clamp(62px,7vw,108px);font-weight:570;line-height:.95}
.home-rating-of{font-size:17px;font-weight:500;color:#64707c}
.home-rating-stars{letter-spacing:3px;color:#0757e8;font-size:19px;margin-top:17px}
.home-reputation-rating p{font-size:14px;line-height:1.5;color:#42505d;margin:9px 0 0}
.home-snapshot{font-size:12px;color:#67717b}
.home-reputation-quote blockquote{font-family:'DM Sans',sans-serif;font-weight:480;font-size:clamp(21px,2.3vw,35px);line-height:1.38;letter-spacing:-.022em;margin:0 0 24px;max-width:830px}
.home-quote-credit{display:flex;gap:18px 32px;align-items:center;justify-content:space-between;flex-wrap:wrap;color:#53616b;font-size:13px}
.home-quote-credit a{color:#0757e8;border-bottom:1px solid #0757e8;font-weight:650;padding-bottom:4px;transition:color .2s}
.home-quote-credit a:hover{color:#003fab}
/* Editorial photographic proof, a compact teaser rather than the full gallery */
.home-proof-work{background:#101923;color:white;padding:clamp(66px,7.4vw,115px) 0 clamp(70px,7.8vw,126px);position:relative;overflow:hidden}
.home-proof-work::before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 92% 8%,rgba(7,87,232,.10),transparent 45%)}
.home-proof-work .shell{position:relative}
.home-link-light{display:inline-block;margin-top:18px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.7);font-size:14px;font-weight:650;white-space:nowrap}
.home-link-light:hover{color:#9dc3ff;border-color:#9dc3ff}
.home-proof-photos{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:clamp(9px,1.4vw,20px);height:clamp(390px,48vw,650px)}
.home-proof-photos-side{min-width:0;min-height:0;display:grid;grid-template-rows:1fr 1fr;gap:clamp(9px,1.4vw,20px)}
.home-proof-photo{position:relative;display:block;min-height:0;overflow:hidden;isolation:isolate;background:#202c39}
.home-proof-photo img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;filter:saturate(.83);transition:transform 900ms cubic-bezier(.2,.72,.18,1),filter 700ms}
.home-proof-photo-main img{object-position:center 41%}
.home-proof-photos-side .home-proof-photo:first-child img{object-position:center 36%}
.home-proof-photos-side .home-proof-photo:last-child img{object-position:center 52%}
.home-proof-photo::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,rgba(3,13,24,.6),transparent 35%)}
.home-proof-photo span{position:absolute;bottom:22px;left:25px;z-index:1;font-size:14px;color:white;font-weight:600;letter-spacing:.012em}
.home-proof-photo:hover img,.home-proof-photo:focus-visible img{transform:scale(1.045);filter:saturate(1)}
/* Small services preview, not a duplicate of the Services page selector */
.home-service-brief{background:#eaeae6;color:#111b27;padding:clamp(69px,8vw,124px) 0}
.home-service-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(13px,2.1vw,30px)}
.home-service-card{min-width:0;background:#f5f5f1;border:1px solid #d9dcdd;transition:transform .42s cubic-bezier(.2,.75,.18,1),box-shadow .42s}
.home-service-card:hover{transform:translateY(-5px);box-shadow:0 18px 38px rgba(20,32,46,.095)}
.home-service-photo{position:relative;display:block;aspect-ratio:1.22;overflow:hidden;background:#aab3b9}
.home-service-photo img{height:100%;width:100%;object-fit:cover;object-position:center 44%;transition:transform .85s cubic-bezier(.2,.7,.2,1);filter:saturate(.85)}
.home-service-card:hover .home-service-photo img{transform:scale(1.04)}
.home-service-text{padding:clamp(18px,2.2vw,34px)}
.home-service-text h3{font-family:'Archivo',sans-serif;font-size:clamp(23px,2.05vw,32px);font-weight:590;line-height:1.16;letter-spacing:-.021em;margin:0 0 11px}
.home-service-text p{font-size:clamp(14px,1.05vw,16px);line-height:1.6;color:#56616d;margin:0}
.home-service-bottom{border-top:1px solid #c7ced1;margin-top:clamp(27px,4vw,50px);padding-top:25px;display:flex;justify-content:space-between;gap:20px;align-items:center}
.home-service-bottom p{font-size:15px;color:#52606e;margin:0;line-height:1.5}
.home-service-bottom strong{color:#17293b;font-weight:660}
.home-service-bottom a{font-weight:680;font-size:14px;white-space:nowrap;border-bottom:1px solid #0757e8;color:#0757e8;padding-bottom:5px}
/* One genuinely useful educational interaction, no unsupported product claims */
.home-tint-guide{background:#0e1825;color:#fff;padding:clamp(72px,8.4vw,131px) 0;position:relative;overflow:hidden}
.home-tint-guide::before{content:'';position:absolute;inset:-20% -10% auto 40%;height:110%;background:radial-gradient(ellipse,rgba(7,87,232,.14),transparent 65%);pointer-events:none}
.home-tint-layout{position:relative;display:grid;grid-template-columns:minmax(0,.91fr) minmax(0,1.09fr);gap:clamp(35px,7vw,120px);align-items:center}
.home-tint-copy h2{font-size:clamp(37px,4.3vw,71px);line-height:1.08;letter-spacing:-.03em;font-weight:560;max-width:630px;text-wrap:balance;margin:0 0 25px}
.home-tint-copy p{font-size:clamp(16px,1.25vw,19px);line-height:1.7;color:#c0cdd8;max-width:515px;margin:0 0 18px}
.home-tint-cta{display:inline-flex;justify-content:center;align-items:center;min-height:49px;border:1px solid rgba(255,255,255,.75);font-size:14px;font-weight:680;padding:12px 22px;margin-top:19px;color:white;transition:background-color .2s,color .2s}
.home-tint-cta:hover{background:white;color:#0c1723}
.home-tint-demo{min-width:0;border:1px solid #304252;background:#122030;padding:clamp(15px,1.8vw,27px)}
.home-tint-frame{position:relative;height:clamp(250px,30vw,410px);overflow:hidden;isolation:isolate;background:#73889a}
.home-tint-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 52%}
.home-tint-filter{position:absolute;inset:0;background:#071323;opacity:var(--home-tint-darkness,.57);pointer-events:none;transition:opacity 560ms cubic-bezier(.22,1,.36,1)}
.home-tint-frame-label{position:absolute;inset:auto 0 0;padding:18px 23px;display:flex;align-items:end;justify-content:space-between;gap:15px;background:linear-gradient(0deg,rgba(5,12,23,.88),transparent);z-index:1}
.home-tint-frame-label strong{font:590 clamp(26px,3vw,46px)/1.05 'Archivo',sans-serif;letter-spacing:-.02em;color:#fff}
.home-tint-frame-label span{font-size:13px;color:#dce4ed}
.home-tint-controls{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:15px}
.home-tint-controls button{font:680 14px/1 'DM Sans',sans-serif;background:#1e2c3c;border:1px solid #36465a;min-height:46px;color:#b9c6d4;cursor:pointer;transition:background-color .22s,color .22s,border-color .22s}
.home-tint-controls button:hover{background:#2e3f55;color:white}
.home-tint-controls button[aria-pressed="true"]{background:#0757e8;color:white;border-color:#488cff}
.home-tint-disclaimer{font-size:12px;line-height:1.55;color:#9aaec0;margin:13px 0 0}
/* Practical information to convert interested visitors */
.home-visit{background:#eeeDE9;color:#131f2b;padding:clamp(74px,8vw,123px) 0}
.home-visit-layout{display:grid;grid-template-columns:1fr 1fr;gap:clamp(44px,7vw,120px);align-items:start}
.home-visit-head h2{font-size:clamp(39px,4.8vw,76px);font-weight:560;line-height:1.09;letter-spacing:-.032em;max-width:660px;text-wrap:balance;margin:0 0 23px}
.home-visit-head p{font-size:clamp(16px,1.35vw,20px);line-height:1.65;color:#53616d;max-width:535px;margin:0}
.home-visit-actions{display:flex;flex-wrap:wrap;gap:18px;align-items:center;margin-top:32px}
.home-visit-actions .btn{padding-inline:34px}
.home-visit-text-link{border-bottom:1px solid #223a51;font-size:14px;font-weight:650;padding:6px 0;color:#1a2e42}
.home-visit-facts{padding:clamp(24px,3vw,47px);background:#fff;border:1px solid #d4d8db;display:grid;grid-template-columns:1fr 1fr;gap:28px}
.home-visit-facts h3{font-size:16px;font-weight:700;letter-spacing:.005em;margin:0 0 16px}
.home-visit-facts address{font-size:15px;font-style:normal;line-height:1.75;color:#4b5c6a}
.home-visit-facts a{display:inline-block;color:#0757e8;font-size:14px;font-weight:680;margin-top:18px;border-bottom:1px solid #0757e8;padding-bottom:5px}
.home-visit-facts dl,.home-visit-facts dd{margin:0}
.home-visit-facts dl>div{display:flex;gap:8px;justify-content:space-between;font-size:14px;line-height:1.65;color:#4b5c6a;margin-bottom:13px}
.home-visit-facts dt{font-weight:650}
.home-visit-facts dd{text-align:right;white-space:nowrap}
/* V11.3 animation stability: elements are visible in ordinary CSS.
   One-time entrances run through Web Animations, with no persistent fill mode.
   This leaves card hover, keyboard focus and link navigation unaffected. */
.home-slide-left,.home-slide-right,.home-rise { opacity:1; }
@media(max-width:1000px){
 .home-visit-facts{grid-template-columns:1fr}
 .home-service-text h3{font-size:25px}
}
@media(max-width:760px){
 .ptw-v11-home .home-section-intro{align-items:start;display:block}
 .ptw-v11-home .home-section-intro h2{margin-bottom:17px}
 .home-reputation-grid{grid-template-columns:1fr;gap:21px}
 .home-reputation-rating{display:grid;grid-template-columns:auto 1fr;gap:6px 20px;align-items:center;border-right:0;border-bottom:1px solid #c9cdce;padding:0 0 22px}
 .home-reputation-rating .home-rating-line{grid-row:1/3}
 .home-rating-stars{margin:0}
 .home-reputation-rating p{margin:0}
 .home-proof-photos{height:430px;grid-template-columns:1.15fr .85fr}
 .home-service-cards{grid-template-columns:1fr 1fr}
 .home-service-card:last-child{grid-column:1/-1;display:grid;grid-template-columns:44% 56%}
 .home-service-card:last-child .home-service-photo{height:100%;aspect-ratio:auto}
 .home-tint-layout,.home-visit-layout{grid-template-columns:1fr;gap:33px}
 .home-tint-copy h2{max-width:580px}
 .home-tint-frame{height:360px}
 .home-visit-facts{grid-template-columns:1fr 1fr}
}
@media(max-width:520px){
 .home-reputation-rating{grid-template-columns:1fr;gap:7px}
 .home-reputation-rating .home-rating-line{grid-row:auto}
 .home-rating-line strong{font-size:73px}
 .home-reputation-quote blockquote{font-size:23px}
 .home-proof-photos{grid-template-columns:1fr;height:auto}
 .home-proof-photo-main{height:345px}
 .home-proof-photos-side{grid-template-columns:1fr 1fr;grid-template-rows:1fr;height:185px}
 .home-proof-photo span{left:13px;bottom:13px;font-size:12px}
 .home-service-cards{grid-template-columns:1fr;gap:14px}
 .home-service-card:last-child{grid-column:auto;display:block}
 .home-service-card:last-child .home-service-photo{height:auto;aspect-ratio:1.22}
 .home-service-text{padding:21px}
 .home-service-bottom{display:block}
 .home-service-bottom a{display:inline-block;margin-top:14px}
 .home-tint-frame{height:280px}
 .home-tint-frame-label{display:block}
 .home-tint-frame-label span{display:block;margin-top:7px}
 .home-visit-facts{grid-template-columns:1fr;padding:24px}
}
@media(prefers-reduced-motion:reduce){.home-proof-photo img,.home-service-photo img,.home-service-card,.home-tint-filter{transition:none!important}}

/* Entire preview card is a single accessible link. */
.home-service-card{display:block;color:#111b27;text-decoration:none}
.home-service-card:focus-visible{outline:3px solid #0757e8;outline-offset:4px}
@media(max-width:520px){
 /* Three concise mobile service previews, not a second full-length service menu. */
 .home-service-card,.home-service-card:last-child{display:grid;grid-template-columns:37% minmax(0,1fr);min-height:168px}
 .home-service-card .home-service-photo,.home-service-card:last-child .home-service-photo{aspect-ratio:auto;height:100%;min-height:0}
 .home-service-photo img{height:100%;width:100%;object-fit:cover;object-position:center}
 .home-service-text{padding:14px 15px;display:flex;flex-direction:column;justify-content:center}
 .home-service-text h3{font-size:clamp(19px,5.2vw,23px);line-height:1.15;margin-bottom:7px}
 .home-service-text p{font-size:13px;line-height:1.47}
}

/* V11.5: one carefully staged, progressive image entrance.
   The default state is visible. The script arms only photographs safely below
   the first viewport; movement begins long before they enter the screen.
   Transforming the tile does NOT change its layout geometry. */
.home-proof-photo{animation:none;translate:none;transform:none;opacity:1}
.home-proof-photo img{display:block}
@media (prefers-reduced-motion:no-preference){
 .home-proof-photo[data-work-reveal].work-slide-ready{
   --work-offset:64px;
   transform:translate3d(var(--work-offset),0,0);
   opacity:.78;
   will-change:transform,opacity;
 }
 .home-proof-photo[data-work-reveal=left].work-slide-ready{--work-offset:-64px}
 .home-proof-photo[data-work-reveal=right].work-slide-ready{--work-offset:64px}
 .home-proof-photo[data-work-reveal].work-slide-ready.work-slide-entered{
   transform:translate3d(0,0,0);
   opacity:1;
   transition:transform 880ms cubic-bezier(.18,.78,.18,1),opacity 650ms cubic-bezier(.18,.78,.18,1);
 }
}
@media (max-width:620px) and (prefers-reduced-motion:no-preference){
 .home-proof-photo[data-work-reveal=left].work-slide-ready{--work-offset:-30px}
 .home-proof-photo[data-work-reveal=right].work-slide-ready{--work-offset:30px}
}
@media(prefers-reduced-motion:reduce){
 .home-proof-photo[data-work-reveal]{transform:none!important;opacity:1!important;transition:none!important}
 .home-proof-photo img{transition:none!important}
}

/* V11.6 — A consistent, jitter-free entrance language for the rest of Home.
   Every element has its natural dimensions from the outset. JavaScript only
   arms sections entirely below the viewport; CSS never hides core content. */
.home-reputation,.home-service-brief,.home-tint-guide,.home-visit{overflow-x:clip}
@media (prefers-reduced-motion:no-preference){
  .ptw-v11-home .home-motion-ready{
    --home-enter-x:0px;
    --home-enter-y:0px;
    opacity:.84;
    transform:translate3d(var(--home-enter-x),var(--home-enter-y),0);
    will-change:transform,opacity;
  }
  .ptw-v11-home .home-slide-left.home-motion-ready{--home-enter-x:-52px}
  .ptw-v11-home .home-slide-right.home-motion-ready{--home-enter-x:52px}
  .ptw-v11-home .home-rise.home-motion-ready{--home-enter-y:24px}
  .ptw-v11-home .home-service-card.home-motion-ready{opacity:.90}
  .ptw-v11-home .home-motion-ready.home-motion-in{
    opacity:1;
    transform:translate3d(0,0,0);
    transition:transform 800ms cubic-bezier(.18,.78,.18,1),opacity 670ms cubic-bezier(.18,.78,.18,1);
  }
  /* Small, purposeful succession across the three service previews. */
  .ptw-v11-home .home-service-card:nth-child(2).home-motion-in{transition-delay:75ms}
  .ptw-v11-home .home-service-card:nth-child(3).home-motion-in{transition-delay:140ms}
}
@media (max-width:640px) and (prefers-reduced-motion:no-preference){
  .ptw-v11-home .home-slide-left.home-motion-ready{--home-enter-x:-24px}
  .ptw-v11-home .home-slide-right.home-motion-ready{--home-enter-x:24px}
  .ptw-v11-home .home-rise.home-motion-ready{--home-enter-y:16px}
  .ptw-v11-home .home-motion-ready.home-motion-in{transition-duration:650ms,530ms}
  .ptw-v11-home .home-service-card:nth-child(2).home-motion-in,
  .ptw-v11-home .home-service-card:nth-child(3).home-motion-in{transition-delay:0ms}
}
@media (prefers-reduced-motion:reduce){
  .ptw-v11-home .home-motion-ready,.ptw-v11-home .home-motion-in{
    opacity:1!important;transform:none!important;transition:none!important;
  }
}
