/* ==========================================================================
   PARTNERSHIP + AURELITH
   A reading-led counterpart to Aurelith's partnership page, expressed through
   Deified's monochrome system: scale, space, rules and one continuous field.
   ========================================================================== */

.partner-body header{
  position:fixed;
  z-index:60;
  background:linear-gradient(to bottom,var(--void) 35%,rgba(0,0,0,0));
}
.partner-body .svc-field{opacity:.94}
.partner-body.motion-live .svc-field{transition:opacity .45s linear}

.partner-hero{
  position:relative;
  min-height:100svh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding-block:clamp(9rem,15vw,12rem) clamp(4rem,8vw,7rem);
}
.partner-hero__copy{
  position:relative;
  z-index:2;
  width:min(68%,52rem);
  will-change:transform,opacity;
}

.partner-lockup{
  display:flex;
  align-items:center;
  gap:clamp(.8rem,2vw,1.5rem);
  margin-block-end:clamp(2.2rem,5vw,4rem);
  font-size:clamp(.78rem,1.4vw,1.02rem);
  font-weight:var(--w-semi);
  letter-spacing:.16em;
}
.partner-lockup i{font-style:normal;color:var(--ash);font-weight:var(--w-light)}
.partner-lockup a{transition:color .3s var(--ease)}
.partner-lockup a:hover,.partner-lockup a:focus-visible{color:var(--mist)}
.partner-lockup__brand{display:flex;align-items:baseline;gap:.55rem;color:#fff;text-shadow:none;-webkit-font-smoothing:antialiased}
.partner-lockup__brand strong{font-weight:750;letter-spacing:.08em}
.partner-lockup__brand small{font-size:.48em;font-weight:var(--w-semi);letter-spacing:.24em;color:var(--mist)}
.partner-body .logo{color:#fff;font-weight:750;text-shadow:none;-webkit-font-smoothing:antialiased}

.partner-hero h1{margin-block-start:1.5rem;max-width:66rem}
.partner-hero__intro{margin-block-start:2rem;max-width:47rem;color:var(--mist)}
.partner-hero__cta{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;margin-block-start:2.5rem}

.disciplines{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin-block-start:clamp(4rem,10vw,7rem);
  border-block:1px solid var(--hair);
}
.disciplines span{display:flex;gap:.8rem;padding:1.15rem 0;font-size:var(--step-caption);text-transform:uppercase;letter-spacing:.08em}
.disciplines b{font-weight:var(--w-regular);color:var(--bone)}
.disciplines em{font-style:normal;color:var(--ash)}

.partner-section{position:relative;padding-block:clamp(5rem,11vw,9rem)}
.partner-heading{margin-block-start:1.5rem;align-items:end}
.partner-heading h2{font-size:clamp(2.2rem,5.4vw,4.4rem)}
.partner-heading .body-lg{max-width:34rem;color:var(--mist)}

.partner-pair{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(7rem,12rem) minmax(0,1fr);
  align-items:stretch;
  margin-block-start:clamp(3.5rem,8vw,6rem);
}
.cap-card{
  position:relative;
  border:1px solid var(--hair);
  padding:clamp(1.5rem,3vw,2.4rem);
  transition:border-color .35s var(--ease),opacity .25s linear,transform .25s linear;
}
.cap-card__top{display:flex;justify-content:space-between;gap:1rem;font-size:var(--step-caption);letter-spacing:.12em;color:var(--ash)}
.cap-card__top strong{font-weight:var(--w-semi);color:var(--bone);letter-spacing:.22em}
.cap-card__role{margin-block-start:2.5rem;color:var(--bone);font-size:clamp(1.25rem,2.5vw,1.8rem)}
.cap-card ul{list-style:none;padding:0;margin:1.5rem 0 2.5rem}
.cap-card li{padding-block:.65rem;border-block-end:1px solid var(--hair);color:var(--mist)}
.cap-card li:first-child{border-block-start:1px solid var(--hair)}

.pair-link{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;text-align:center;color:var(--ash)}
.pair-link::before,.pair-link::after{content:"";position:absolute;inset-inline:50%;width:1px;height:calc(50% - 3.6rem);background:linear-gradient(var(--hair),var(--bone));transform:scaleY(var(--connector,0));transition:transform .15s linear}
.pair-link::before{inset-block-start:0;transform-origin:bottom}
.pair-link::after{inset-block-end:0;transform-origin:top;background:linear-gradient(var(--bone),var(--hair))}
.pair-link span{position:relative;display:grid;place-items:center;width:3.5rem;height:3.5rem;border:1px solid var(--hair-strong);border-radius:50%;font-size:1.7rem;color:var(--bone)}
.partner-pair-scene.is-connected .pair-link span{animation:partner-pulse 1.8s var(--ease) infinite}
.pair-link small{max-width:8rem;font-size:var(--step-caption);line-height:1.4;text-transform:uppercase;letter-spacing:.08em}

.shared-output{display:grid;grid-template-columns:minmax(10rem,.35fr) 1fr;gap:2rem;padding-block:1.5rem;border-block-end:1px solid var(--hair)}
.shared-output span{font-size:var(--step-caption);font-weight:var(--w-semi);text-transform:uppercase;letter-spacing:.08em;color:var(--ash)}
.shared-output strong{font-size:clamp(1.15rem,2.3vw,1.7rem);font-weight:var(--w-regular)}

.capability-carousel{margin-block-start:clamp(3rem,7vw,5rem)}
.capability-viewport{width:min(100%,54rem);margin-inline:auto;overflow:visible}
.capability-grid{display:grid;width:100%;isolation:isolate}
.capability{
  grid-area:1/1;
  min-height:21rem;
  padding:clamp(1.6rem,4vw,3rem);
  border:1px solid rgba(255,255,255,.24);
  transform-origin:center;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translate3d(0,22px,0) scale(.975);
  transition:opacity .78s var(--ease),transform 1.15s var(--ease),visibility 0s linear 1.15s,border-color .5s var(--ease),background .5s var(--ease);
}
.partner-body .capability.is-active{opacity:1;visibility:visible;pointer-events:auto;transform:none;background:rgba(255,255,255,.018);transition:opacity .78s var(--ease),transform 1.15s var(--ease),visibility 0s,border-color .5s var(--ease),background .5s var(--ease)}
.partner-body.motion-live .combined.particle-outlined .capability.is-active{border-color:rgba(255,255,255,.24)}
.capability>span,.capability small{display:block;font-size:var(--step-caption);text-transform:uppercase;letter-spacing:.08em;color:var(--ash)}
.capability>span i{font-style:normal}
.capability h3{margin-block-start:2rem;font-size:clamp(1.4rem,2.7vw,2rem)}
.capability p{margin-block-start:1rem;max-width:31rem;color:var(--mist)}
.capability small{margin-block-start:2.2rem;color:var(--bone)}

.carousel-controls{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:1rem;width:min(100%,54rem);margin:1.25rem auto 0;padding-block:1rem;border-block-end:1px solid var(--hair)}
.carousel-arrow,.carousel-dots button{
  min-height:44px;
  border:1px solid var(--hair-strong);
  background:rgba(0,0,0,.5);
  color:var(--bone);
  cursor:pointer;
  transition:color .25s var(--ease),border-color .25s var(--ease),background .25s var(--ease);
}
.carousel-arrow{padding:.7rem 1rem;font-size:var(--step-label);font-weight:var(--w-semi);letter-spacing:.04em;text-transform:uppercase}
.carousel-arrow:hover,.carousel-arrow:focus-visible,.carousel-dots button:hover,.carousel-dots button:focus-visible{border-color:var(--bone);background:rgba(255,255,255,.06)}
.carousel-dots{display:flex;gap:.45rem;justify-content:center}
.carousel-dots button{width:44px;padding:0;font-size:var(--step-caption);font-weight:var(--w-semi)}
.carousel-dots button[aria-pressed="true"]{background:var(--bone);color:var(--void);border-color:var(--bone)}
.carousel-status{min-width:4.5rem;text-align:center;font-size:var(--step-caption);font-weight:var(--w-semi);letter-spacing:.12em;color:var(--ash)}

.partner-loop{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding-block:1.6rem;border-block-end:1px solid var(--hair);font-size:clamp(.8rem,1.4vw,1rem);font-weight:var(--w-semi);text-transform:uppercase;letter-spacing:.06em}
.partner-loop span{color:var(--ash);transition:color .3s var(--ease),text-shadow .3s var(--ease)}
.partner-loop span.on{color:var(--bone);text-shadow:0 0 18px rgba(255,255,255,.32)}
.partner-loop i{font-style:normal;color:var(--ash)}

.aurelith-intro .ghost{display:inline-block;margin-block-start:1.5rem}
.aurelith-branches{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2rem,5vw,5rem);align-items:start;margin-block-start:clamp(3.5rem,8vw,6rem)}
.aurelith-branch{border-block-start:1px solid var(--hair);padding-block-start:1.5rem}
.aurelith-branch__head{display:grid;grid-template-columns:3rem 1fr;gap:1rem;min-height:9rem}
.aurelith-branch__head>span,.aurelith-branch__head small,.aurelith-service>span{font-size:var(--step-caption);font-weight:var(--w-semi);letter-spacing:.1em;text-transform:uppercase;color:var(--ash)}
.aurelith-branch__head h3{margin-block-start:.8rem;font-size:clamp(1.35rem,2.5vw,2rem)}
.aurelith-services{display:grid;gap:.8rem;margin-block:1rem 1.5rem}
.aurelith-service{position:relative;min-height:8.6rem;padding:1.2rem 1.35rem;border:1px solid var(--hair);transition:opacity .5s var(--ease),transform .5s var(--ease),border-color .35s var(--ease),background .35s var(--ease)}
.aurelith-service h4{margin:.7rem 0 0;font-size:clamp(1.05rem,1.8vw,1.35rem);font-weight:var(--w-regular);line-height:1.15}
.aurelith-service p{margin-block-start:.55rem;color:var(--mist);font-size:.94rem;line-height:1.45}
.aurelith-service:hover{background:rgba(255,255,255,.025)}
.partner-body.motion-live .aurelith-scene.particle-outlined .aurelith-service{border-color:var(--hair)}

.partner-cta{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-start;padding-block:clamp(7rem,14vw,10rem)}
.partner-cta h2{margin-block-start:1.5rem;max-width:65rem}
.partner-cta>.body-lg{margin-block-start:2rem;max-width:42rem;color:var(--mist)}
.closing-lockup{display:block;font-size:clamp(2.2rem,5.4vw,4.4rem);font-weight:var(--w-regular);letter-spacing:normal;line-height:var(--leading-tight)}
.closing-lockup>.rise{display:block}
.closing-lockup i{font-style:italic;font-weight:var(--w-light);color:var(--bone)}

/* --- Scroll choreography ------------------------------------------------
   The canvas is fixed. Only the partnership pair pins; the carousel below is
   deliberately user-controlled so its first card never escapes on arrival. */
.partner-motion-scene{position:relative;padding:0}
.partner-pair-scene{height:320vh;--cards:.15;--card-y:28px;--card-y-late:42px;--link:0;--shared:0;--shared-y:18px}
.partner-combined-scene{min-height:110svh}
.partner-sticky{
  position:sticky;
  inset-block-start:0;
  min-height:100svh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  overflow:hidden;
  padding-block:clamp(6.5rem,10vh,8rem) clamp(2rem,5vh,4rem);
}
.partner-body.motion-live .partner-pair-scene .cap-card{
  opacity:var(--cards);
  transform:translate3d(0,var(--card-y),0);
}
.partner-body.motion-live .partner-pair-scene .cap-card:nth-child(3){transform:translate3d(0,var(--card-y-late),0)}
.partner-body.motion-live .partner-pair-scene .pair-link{opacity:var(--link);--connector:var(--link)}
.partner-body.motion-live .partner-pair-scene .shared-output{opacity:var(--shared);transform:translate3d(0,var(--shared-y),0)}
.partner-body.motion-live .partner-pair-scene.particle-outlined .cap-card{border-color:var(--hair)}

@media (min-width:901px) and (max-height:980px){
  .partner-hero{padding-block:5.5rem 1.25rem}
  .partner-hero__copy{width:min(74%,68rem)}
  .partner-lockup{margin-block-end:1rem}
  .partner-hero h1{margin-block-start:.55rem;font-size:clamp(2.8rem,4.2vw,4.6rem)}
  .partner-hero__intro{margin-block-start:.8rem;line-height:1.42}
  .partner-hero__cta{margin-block-start:1rem}
  .disciplines{margin-block-start:1.2rem}
  .disciplines span{padding-block:.65rem}
}

.partner-cta-scene>h2,.partner-cta-scene>.body-lg,.partner-cta-scene>.partner-hero__cta{position:relative;z-index:2}
.partner-cta-scene>h2{max-width:100%}
.partner-cta-scene>.body-lg{max-width:38%;margin-block-start:auto}
.partner-cta-scene>.partner-hero__cta{max-width:50%;margin-block-start:1.5rem}

@keyframes partner-pulse{
  0%,100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}
  50%{box-shadow:0 0 0 10px rgba(255,255,255,.055),0 0 28px rgba(255,255,255,.13)}
}

@media (min-width:901px) and (max-height:820px){
  .partner-sticky{padding-block:5.75rem 1.25rem}
  .partner-sticky .partner-heading{margin-block-start:.65rem}
  .partner-sticky .partner-heading h2{font-size:clamp(2.25rem,4.2vw,3.5rem)}
  .partner-pair{margin-block-start:1.5rem}
  .partner-pair .cap-card{padding:1rem 1.5rem}
  .partner-pair .cap-card__role{margin-block-start:.75rem;font-size:clamp(1.2rem,2vw,1.55rem)}
  .partner-pair .cap-card ul{margin:.7rem 0 1rem}
  .partner-pair .cap-card li{padding-block:.32rem}
  .partner-pair .shared-output{padding-block:.75rem}
  .capability-viewport{margin-block-start:1.15rem}
  .capability{min-height:13.5rem;padding:1.35rem}
  .capability h3{margin-block-start:1rem;font-size:clamp(1.25rem,2.2vw,1.7rem)}
  .capability p{margin-block-start:.65rem;font-size:.98rem}
  .capability small{margin-block-start:1.1rem}
}

@media (max-width:900px){
  .partner-body .svc-field{opacity:.58}
  .partner-hero{min-height:auto}
  .partner-hero__copy{width:100%}
  .disciplines{grid-template-columns:repeat(2,minmax(0,1fr))}
  .disciplines span:nth-child(odd){border-inline-end:1px solid var(--hair)}
  .partner-pair{grid-template-columns:1fr}
  .pair-link{min-height:8rem}
  .pair-link small{max-width:15rem}
  .shared-output{grid-template-columns:1fr;gap:.8rem}
  .partner-motion-scene{height:auto}
  .partner-sticky{position:relative;min-height:auto;overflow:visible;padding-block:clamp(5rem,11vw,8rem)}
  .partner-body.motion-live .partner-pair-scene .cap-card,.partner-body.motion-live .partner-pair-scene .cap-card:nth-child(3){opacity:1;transform:none}
  .partner-body.motion-live .partner-pair-scene .pair-link,.partner-body.motion-live .partner-pair-scene .shared-output{opacity:1;transform:none}
  .partner-combined-scene{min-height:auto}
  .capability{min-height:18rem}
  .carousel-controls{grid-template-columns:1fr auto 1fr}
  .carousel-dots{grid-column:1/-1;grid-row:1}
  .carousel-prev{grid-column:1;grid-row:2;justify-self:start}
  .carousel-status{grid-column:2;grid-row:2}
  .carousel-next{grid-column:3;grid-row:2;justify-self:end}
  .aurelith-branches{grid-template-columns:1fr}
  .partner-cta-scene>h2,.partner-cta-scene>.body-lg,.partner-cta-scene>.partner-hero__cta{max-width:100%}
}

@media (max-width:700px){
  /* «φτιαγμένη να πολλαπλασιάζεται.» is one unbreakable 16-character Greek
     word. At the inherited display step it measures 397px against a 335px
     column on a 375px phone, and .rise is overflow:hidden — so the line was
     not wrapping, it was being CUT, mid-word, with no ellipsis to say so.

     Measured: this face needs ~8.56px of width per 1px of font-size for that
     word, so the ceiling is 39px at 375 and 33px at 320. The clamp below
     sits under both. This is the same Greek ceiling site.css documents for
     the Μέθοδος headline — Greek simply does not take the Latin display
     step at phone widths. */
  .partner-hero h1{font-size:clamp(1.7rem,10vw,2.4rem)}
}

@media (max-width:620px){
  .partner-hero{padding-block-start:8rem}
  .partner-lockup{letter-spacing:.14em}
  .partner-lockup__brand{gap:.3rem}
  .partner-lockup__brand small{display:none}
  .disciplines{grid-template-columns:1fr}
  .disciplines span:nth-child(odd){border-inline-end:0}
  .disciplines span+span{border-block-start:1px solid var(--hair)}
  .capability{min-height:20rem;padding:1.5rem}
  .cap-card{padding-inline:0}
  .carousel-arrow{font-size:.68rem;padding:.65rem .75rem}
  .aurelith-branch__head{grid-template-columns:2.25rem 1fr}
  .aurelith-service{padding:1rem;min-height:auto}
}

@media (prefers-reduced-motion:reduce){
  .partner-body header{background:var(--void)}
  .partner-body .svc-field{opacity:.2;position:fixed;height:100%}
  .partner-motion-scene{height:auto}
  .partner-sticky{position:relative;min-height:auto;overflow:visible;padding-block:clamp(5rem,11vw,8rem)}
  .partner-hero__copy,.partner-pair-scene .cap-card,.partner-pair-scene .shared-output,.capability,.aurelith-service{transform:none!important;transition:none!important}
  .partner-pair-scene .pair-link{opacity:1}
  .pair-link::before,.pair-link::after{transform:scaleY(1)}
  .partner-pair-scene.particle-outlined .cap-card,.combined.particle-outlined .capability.is-active,.aurelith-scene.particle-outlined .aurelith-service{border-color:var(--hair)}
  .partner-pair-scene.is-connected .pair-link span{animation:none}
  .capability-viewport{overflow:visible}
  .capability-grid{display:grid;width:100%}
  .capability{min-height:19rem}
}

@media (prefers-reduced-motion:reduce) and (max-width:620px){
  .capability{min-height:auto}
}
