*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

:root {
  --black: #000000;
  --white: #ffffff;
  --gray-100: #f5f5f5;
  --gray-300: #a0a0a0;
  --gray-500: #666666;
  --gray-700: #333333;
  --gray-900: #111111;
  --accent: #c8102e;

  --font: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  --tracking-tight: -0.04em;
  --tracking-tighter: -0.06em;

  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
}

html {
  font-size: 16px;
  scroll-behavior: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  font-family: var(--font);
  background: var(--black);
  color: var(--white);
  overflow-x: hidden;
  line-height: 1.5;
}

body.is-loading {
  overflow: hidden;
}

.preloader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: var(--black);
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: all;
}

.preloader__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
}

.preloader__logo {
  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: var(--tracking-tight);
  text-transform: uppercase;
}

.preloader__bar-wrap {
  width: 200px;
  height: 2px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 2px;
  overflow: hidden;
}

.preloader__bar {
  width: 0%;
  height: 100%;
  background: var(--white);
  border-radius: 2px;
  transition: width 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.preloader__counter {
  display: flex;
  align-items: baseline;
  gap: 0.15rem;
}

.preloader__pct {
  font-size: 3rem;
  font-weight: 800;
  letter-spacing: var(--tracking-tighter);
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.preloader__pct-sign {
  font-size: 1rem;
  font-weight: 500;
  color: var(--gray-500);
}

a {
  color: inherit;
  text-decoration: none;
}

em {
  font-style: italic;
  color: var(--gray-300);
}

img,
video {
  display: block;
  max-width: 100%;
}

.nav {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.5rem 3rem;
  z-index: 100;
  mix-blend-mode: difference;
}

.nav__logo {
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: var(--tracking-tight);
  text-transform: uppercase;
}

.accent {
  color: var(--accent);
}

.nav__links {
  display: flex;
  align-items: center;
  gap: 2.5rem;
  font-size: 0.875rem;
  font-weight: 500;
  letter-spacing: 0.02em;
}

.nav__links a {
  position: relative;
  transition: opacity 0.3s ease;
}

.nav__links a:hover {
  opacity: 0.6;
}

.nav__cta {
  padding: 0.55rem 1.5rem;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 100px;
  transition: background 0.3s ease, border-color 0.3s ease;
}

.nav__cta:hover {
  background: var(--white);
  color: var(--black);
  border-color: var(--white);
  opacity: 1 !important;
}

.hero {
  position: relative;
  width: 100%;
  height: 250vh;
}

.hero__pin {
  position: relative;
  width: 100%;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hero__canvas {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  object-fit: cover;
  z-index: 0;
  will-change: transform;
  pointer-events: none;
}

.hero__overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background:
    linear-gradient(to bottom, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0.2) 40%, rgba(0, 0, 0, 0.2) 60%, rgba(0, 0, 0, 0.8) 100%);
  z-index: 1;
}

.hero__fade-out {
  display: none;
}

.hero__content {
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 900px;
  padding: 0 2rem;
}

.hero__tag {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gray-300);
  margin-bottom: 1.5rem;
  opacity: 0;
}

.hero__heading {
  font-size: clamp(2.8rem, 7vw, 6rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: var(--tracking-tighter);
  margin-bottom: 1.5rem;
}

.hero__line {
  display: block;
  overflow: hidden;
}

.hero__line > span,
.hero__line {
  opacity: 0;
}

.hero__sub {
  font-size: 1.125rem;
  color: var(--gray-300);
  max-width: 500px;
  margin: 0 auto 2.5rem;
  line-height: 1.6;
  opacity: 0;
}

.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.9rem 2.2rem;
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 100px;
  transition: all 0.4s var(--ease-out);
  opacity: 0;
  cursor: pointer;
  background: transparent;
  color: var(--white);
}

.btn:hover {
  background: var(--white);
  color: var(--black);
  border-color: var(--white);
  gap: 0.85rem;
}

.btn__arrow {
  transition: transform 0.4s var(--ease-out);
}

.btn:hover .btn__arrow {
  transform: translateX(4px);
}

.hero__scroll-indicator {
  position: absolute;
  bottom: 2.5rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  opacity: 0;
}

.hero__scroll-indicator span {
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--gray-300);
}

.hero__scroll-line {
  width: 1px;
  height: 40px;
  background: rgba(255, 255, 255, 0.2);
  position: relative;
  overflow: hidden;
}

.hero__scroll-line::after {
  content: '';
  position: absolute;
  top: -100%;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--white);
  animation: scrollLine 2s ease-in-out infinite;
}

@keyframes scrollLine {
  0% { top: -100%; }
  50% { top: 100%; }
  100% { top: 100%; }
}

.intro {
  position: relative;
  z-index: 2;
  min-height: 100vh;
  padding: 10rem 3rem 8rem;
  overflow: hidden;
  background: var(--black);
}

.intro__video-wrap {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.intro__video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.5;
  will-change: opacity;
}

.intro__overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to bottom, var(--black) 0%, rgba(0, 0, 0, 0.3) 20%, rgba(0, 0, 0, 0.3) 80%, var(--black) 100%);
}

.intro__content {
  position: relative;
  z-index: 1;
  max-width: 1200px;
  margin: 0 auto;
}

.intro__label,
.contact__label {
  display: flex;
  align-items: center;
  gap: 1rem;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--gray-300);
  margin-bottom: 3rem;
}

.label-line {
  display: block;
  width: 40px;
  height: 1px;
  background: var(--gray-500);
}

.intro__heading {
  font-size: clamp(2rem, 4.5vw, 3.5rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: var(--tracking-tight);
  max-width: 900px;
  margin-bottom: 4rem;
}

.intro__cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  margin-bottom: 5rem;
}

.intro__col p {
  font-size: 1rem;
  line-height: 1.75;
  color: var(--gray-300);
}

.intro__stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  padding-top: 3.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.stat {
  position: relative;
}

.stat__inner {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 2rem 1.5rem;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.02);
  transition: border-color 0.4s ease, background 0.4s ease;
}

.stat__inner:hover {
  border-color: rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.04);
}

.stat__number {
  font-size: clamp(2.5rem, 5vw, 3.5rem);
  font-weight: 900;
  letter-spacing: var(--tracking-tighter);
  line-height: 1;
  background: linear-gradient(135deg, var(--white) 0%, var(--gray-300) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.stat__plus {
  color: var(--accent);
  -webkit-text-fill-color: var(--accent);
}

.stat__label {
  font-size: 0.8125rem;
  color: var(--gray-500);
  font-weight: 500;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.services {
  position: relative;
  padding: 0 3rem;
}

.services__bg {
  position: fixed;
  top: 0;
  left: 0;
  height: 100vh;
  width: 100%;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.services__bg.is-visible {
  opacity: 1;
}

.services__video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(0.3);
}

.services__video-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to bottom, var(--black) 0%, transparent 20%, transparent 80%, var(--black) 100%);
  pointer-events: none;
}

.services__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 4rem;
  max-width: 1200px;
  margin: 0 auto;
}

.services__left {
  position: relative;
  padding: 10rem 0;
}

.services__sticky {
  position: sticky;
  top: 30vh;
}

.services__number {
  display: block;
  font-size: clamp(6rem, 12vw, 10rem);
  font-weight: 900;
  line-height: 1;
  letter-spacing: var(--tracking-tighter);
  color: rgba(255, 255, 255, 0.5);
  margin-bottom: 1.5rem;
  transition: color 0.5s ease;
}

.services__title {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--white);
  margin-bottom: 1rem;
}

.services__desc {
  font-size: 1rem;
  color: var(--gray-300);
  line-height: 1.7;
  max-width: 280px;
}

.services__right {
  padding: 10rem 0;
}

.service-item {
  display: flex;
  gap: 2rem;
  padding: 2.5rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  opacity: 0.35;
  transform: translateX(30px);
  transition: opacity 0.5s var(--ease-out), transform 0.5s var(--ease-out);
}

.service-item.is-active {
  opacity: 1;
  transform: translateX(0);
}

.service-item__index {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--gray-300);
  letter-spacing: 0.05em;
  padding-top: 0.3rem;
  flex-shrink: 0;
}

.service-item__content h3 {
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: var(--tracking-tight);
  margin-bottom: 0.75rem;
}

.service-item__content p {
  font-size: 0.9375rem;
  color: var(--gray-300);
  line-height: 1.65;
  max-width: 420px;
}

.video-transition {
  position: relative;
  z-index: 2;
  height: 300vh;
  background: var(--black);
}

.video-transition__inner {
  position: sticky;
  top: 0;
  width: 100%;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: var(--black);
}

.video-transition__frame {
  position: absolute;
  inset: 0;
  will-change: clip-path, transform;
  clip-path: inset(30% 25% 30% 25% round 20px);
}

.video-transition__canvas {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.video-transition__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  pointer-events: none;
  z-index: 1;
}

.video-transition__text {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 1.5rem;
  pointer-events: none;
}

.vt-word {
  font-size: clamp(1.5rem, 4vw, 3rem);
  font-weight: 700;
  letter-spacing: var(--tracking-tight);
  opacity: 0;
  will-change: transform, opacity;
}

.vt-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--accent);
  opacity: 0;
  flex-shrink: 0;
}

.cinematic {
  position: relative;
  z-index: 2;
  height: 400vh;
  background: var(--black);
}

.cinematic__sticky {
  position: sticky;
  top: 0;
  width: 100%;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: var(--black);
}

.cinematic__video-frame {
  position: absolute;
  inset: 0;
  will-change: clip-path;
  clip-path: inset(48% 40% 48% 40% round 8px);
}

.cinematic__video {
  touch-action: pan-y;
  -webkit-touch-callout: none;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  -webkit-user-select: none;
  user-select: none;
}



.cinematic.video-failed .cinematic__video-frame {
  background: linear-gradient(135deg, var(--gray-900) 0%, var(--black) 100%);
}

.cinematic__overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to bottom, rgba(0, 0, 0, 0.5) 0%, transparent 30%, transparent 70%, rgba(0, 0, 0, 0.5) 100%);
  z-index: 1;
  pointer-events: none;
}

.cinematic__content {
  position: relative;
  z-index: 2;
  text-align: center;
}

.cinematic__heading {
  font-size: clamp(3rem, 8vw, 7rem);
  font-weight: 900;
  line-height: 1.05;
  letter-spacing: var(--tracking-tighter);
}

.cin-line {
  display: block;
  opacity: 0;
  will-change: transform, opacity;
}

.cinematic__counter {
  position: absolute;
  bottom: 2.5rem;
  right: 3rem;
  z-index: 2;
  display: flex;
  align-items: baseline;
  gap: 0.4rem;
  opacity: 0;
}

.cinematic__count {
  font-size: 2rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: var(--tracking-tight);
}

.cinematic__count-label {
  font-size: 0.6875rem;
  font-weight: 500;
  color: var(--gray-300);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.contact {
  position: relative;
  z-index: 2;
  min-height: 80vh;
  display: flex;
  align-items: center;
  padding: 8rem 3rem;
  background: transparent;
  isolation: isolate;
}

.contact::before {
  content: "";
  position: absolute;
  inset: 0;
  top: -14rem;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(
    to bottom,
    rgba(16, 14, 14, 0) 0%,
    rgba(16, 14, 14, 0.14) 16%,
    rgba(16, 14, 14, 0.38) 34%,
    rgba(16, 14, 14, 0.72) 56%,
    rgba(16, 14, 14, 0.94) 78%,
    rgba(16, 14, 14, 1) 100%
  );
}

.contact__content {
  max-width: 1200px;
  margin: 0 auto;
  width: 100%;
}

.contact__heading {
  font-size: clamp(3rem, 7vw, 6rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: var(--tracking-tighter);
  margin-bottom: 2.5rem;
}

.contact__email {
  display: inline-block;
  font-size: clamp(1.25rem, 3vw, 2rem);
  font-weight: 500;
  letter-spacing: var(--tracking-tight);
  color: var(--gray-300);
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
  padding-bottom: 0.25rem;
  transition: color 0.3s ease, border-color 0.3s ease;
  margin-bottom: 6rem;
}

.contact__email:hover {
  color: var(--white);
  border-color: var(--white);
}

.contact__footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 2rem;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.contact__copy {
  font-size: 0.8125rem;
  color: var(--gray-500);
}

.contact__socials {
  display: flex;
  gap: 2rem;
}

.contact__socials a {
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--gray-500);
  transition: color 0.3s ease;
}

.contact__socials a:hover {
  color: var(--white);
}

.reveal-text {
  opacity: 0;
}

.reveal-up {
  opacity: 0;
  transform: translateY(40px);
}

@media (max-width: 768px) {
  .nav {
    padding: 1.25rem 1.5rem;
  }

  .nav__links a:not(.nav__cta) {
    display: none;
  }

  .hero__content {
    padding: 0 1.25rem;
  }

  .intro {
    padding: 6rem 1.5rem 5rem;
  }

  .intro__cols {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .intro__stats {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .services {
    padding: 0 1.5rem;
  }

  .services__inner {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .services__left {
    padding: 5rem 0 2rem;
  }

  .services__sticky {
    position: relative;
    top: auto;
  }

  .services__number {
    font-size: 5rem;
  }

  .services__right {
    padding: 0 0 5rem;
  }

  .contact {
    padding: 5rem 1.5rem;
  }

  .contact__footer {
    flex-direction: column;
    gap: 1.5rem;
    align-items: flex-start;
  }
}

.video-start { position: absolute; bottom: 24px; left: 24px; z-index: 20; border: 1px solid #fff8; border-radius: 999px; padding: 12px 20px; background: #111d; color: white; font: inherit; cursor: pointer; pointer-events: auto; }
.video-start[hidden] { display: none; }

/* WordPress integration and graceful static/reduced-motion presentation. */
.prot-home h1,.prot-home h2,.prot-home h3{font-family:var(--font);letter-spacing:var(--tracking-tight);font-weight:700}
.nav__logo,.preloader__logo{text-transform:none}
.prot-projects,.prot-page-content{position:relative;z-index:4;background:var(--black);padding:6rem 5vw}
.prot-page-content:empty{display:none}.prot-projects h2{font-size:clamp(2rem,5vw,5rem);margin-bottom:3rem}.prot-projects p{margin-top:2rem}
.prot-projects .ts-project-card-grid{color:var(--white)}
.prot-skip{position:fixed;top:-100px;left:10px;z-index:100000;background:white;color:black;padding:12px}.prot-skip:focus{top:10px}
.preloader[hidden]{display:none}.admin-bar .nav{top:32px}
body:not(.prot-motion-ready) .hero,body:not(.prot-motion-ready) .video-transition,body:not(.prot-motion-ready) .cinematic{height:auto;min-height:100svh}
body:not(.prot-motion-ready) .hero__pin,body:not(.prot-motion-ready) .hero__canvas,body:not(.prot-motion-ready) .hero__overlay{position:absolute;inset:0}
body:not(.prot-motion-ready) .hero__content{position:relative;padding-top:25vh}
body:not(.prot-motion-ready) .hero__tag,body:not(.prot-motion-ready) .hero__line,body:not(.prot-motion-ready) .hero__sub,body:not(.prot-motion-ready) .btn,body:not(.prot-motion-ready) .reveal-up,body:not(.prot-motion-ready) .reveal-text,body:not(.prot-motion-ready) .cin-line{opacity:1;transform:none}
body:not(.prot-motion-ready) .services__bg{position:absolute;opacity:1}
body:not(.prot-motion-ready) .cinematic__video-frame,body:not(.prot-motion-ready) .video-transition__frame{clip-path:none}
@media(max-width:782px){.admin-bar .nav{top:46px}.nav{padding:1rem 5vw}.nav__links{gap:1rem}.nav__links a{font-size:.8rem}.stat__number{font-size:2.4rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
.services__right{min-width:0;padding-right:8px}.service-item__content{min-width:0;overflow-wrap:anywhere}
.prot-home{overflow-x:clip}.prot-reduced .intro__overlay,.prot-reduced .services__video-overlay,.prot-reduced .cinematic__overlay{pointer-events:none}

/* User-controlled video tint; 0% restores the unfiltered image. */
.prot-home .intro__video{opacity:1!important;will-change:auto}
.prot-home .services__video{filter:none}
.prot-home .intro__overlay,.prot-home .services__video-overlay,.prot-home .cinematic__overlay{background:var(--prot-filter-color,#000);opacity:var(--prot-filter-opacity,0);pointer-events:none}

.prot-brand-image{display:block;height:auto;max-width:42vw;max-height:90px;object-fit:contain}.preloader__logo .prot-brand-image{max-width:80vw}

.prot-split-active>img{opacity:0!important}

/* Frosted glass controls; the booking highlight travels along the pill edge. */
.prot-home .prot-glass{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;min-height:44px;box-sizing:border-box;border:1px solid rgba(255,255,255,.3);border-radius:999px;background:linear-gradient(145deg,rgba(255,255,255,.15),rgba(255,255,255,.035) 55%,rgba(255,255,255,.075)),rgba(15,19,25,.28);-webkit-backdrop-filter:blur(15px) saturate(140%);backdrop-filter:blur(15px) saturate(140%);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -1px 0 rgba(255,255,255,.04),0 8px 24px rgba(0,0,0,.16);color:var(--white,#fff);text-decoration:none;text-shadow:0 1px 3px rgba(0,0,0,.35);transition:background .25s,border-color .25s,box-shadow .25s;}
.prot-home .prot-glass:hover{background:linear-gradient(145deg,rgba(255,255,255,.23),rgba(255,255,255,.07)),rgba(15,19,25,.35);border-color:rgba(255,255,255,.55);color:var(--white,#fff);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 10px 28px rgba(0,0,0,.22);}
.prot-home .prot-glass:focus-visible{outline:2px solid var(--accent,#c98565);outline-offset:5px;}
.prot-home .contact__email.prot-glass{padding:.8rem 1.5rem;font-size:clamp(1rem,2.4vw,1.5rem);max-width:100%;overflow-wrap:anywhere;word-break:break-word;}
.prot-home .prot-glass-orbit{overflow:hidden;}
.prot-glass-ring{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;fill:none;}
.prot-glass-trail{width:calc(100% - 2px);height:calc(100% - 2px);stroke:rgba(255,255,255,.95);stroke-width:1.5px;stroke-linecap:round;stroke-dasharray:16 84;stroke-dashoffset:0;filter:drop-shadow(0 0 2px rgba(255,255,255,.8));}
@keyframes prot-glass-orbit{to{stroke-dashoffset:-100}}
@media(prefers-reduced-motion:reduce){.prot-glass-trail{animation:none;stroke-opacity:.6}.prot-home .prot-glass{transition:none}}

/* Convex clear glass: rim thickness and reflected light, without frosting. */
.prot-home .prot-glass{overflow:hidden;border:1px solid rgba(244,253,255,.65);background:radial-gradient(ellipse at 5% 5%,rgba(255,255,255,.34),transparent 38%),radial-gradient(ellipse at 96% 100%,rgba(212,242,255,.2),transparent 43%),linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.025) 48%,rgba(4,14,25,.1) 70%,rgba(230,250,255,.1));-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:inset 0 2px 2px rgba(255,255,255,.78),inset 2px 0 3px rgba(255,255,255,.3),inset -2px 0 3px rgba(220,242,255,.22),inset 0 -3px 4px rgba(4,12,25,.45),inset 0 -1px 1px rgba(255,255,255,.9),0 3px 0 rgba(5,15,24,.35),0 9px 16px rgba(0,0,0,.3);text-shadow:0 1px 3px rgba(0,0,0,.65);}
.prot-home .prot-glass::before{content:"";position:absolute;z-index:-1;pointer-events:none;left:4%;right:4%;top:3px;height:46%;border-radius:999px 999px 55% 55%;background:linear-gradient(180deg,rgba(255,255,255,.32),rgba(255,255,255,.07) 70%,transparent);border-top:1px solid rgba(255,255,255,.65);}
.prot-home .prot-glass::after{content:"";position:absolute;z-index:-1;pointer-events:none;inset:3px;border-radius:inherit;border:1px solid rgba(255,255,255,.17);box-shadow:inset 0 -1px 1px rgba(240,252,255,.35);}
.prot-home .prot-glass:hover{background:radial-gradient(ellipse at 10% 0%,rgba(255,255,255,.4),transparent 42%),linear-gradient(180deg,rgba(255,255,255,.2),rgba(255,255,255,.04) 48%,rgba(4,14,25,.08) 70%,rgba(230,250,255,.15));box-shadow:inset 0 2px 2px rgba(255,255,255,.9),inset 2px 0 3px rgba(255,255,255,.35),inset 0 -3px 4px rgba(4,12,25,.45),0 3px 0 rgba(5,15,24,.35),0 10px 20px rgba(0,0,0,.32);}
.prot-home .prot-glass:active{box-shadow:inset 0 2px 4px rgba(0,0,0,.25),inset 0 1px 1px rgba(255,255,255,.65),0 2px 5px rgba(0,0,0,.2);}


/* Stat plaques share the clear button glass finish. */
/* Convex clear glass: rim thickness and reflected light, without frosting. */
.prot-home .intro__stats .stat__inner,.prot-home .services .service-item{overflow:hidden;border:1px solid rgba(244,253,255,.65);background:radial-gradient(ellipse at 5% 5%,rgba(255,255,255,.34),transparent 38%),radial-gradient(ellipse at 96% 100%,rgba(212,242,255,.2),transparent 43%),linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.025) 48%,rgba(4,14,25,.1) 70%,rgba(230,250,255,.1));-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:inset 0 2px 2px rgba(255,255,255,.78),inset 2px 0 3px rgba(255,255,255,.3),inset -2px 0 3px rgba(220,242,255,.22),inset 0 -3px 4px rgba(4,12,25,.45),inset 0 -1px 1px rgba(255,255,255,.9),0 3px 0 rgba(5,15,24,.35),0 9px 16px rgba(0,0,0,.3);text-shadow:0 1px 3px rgba(0,0,0,.65);}
.prot-home .intro__stats .stat__inner::before,.prot-home .services .service-item::before{content:"";position:absolute;z-index:-1;pointer-events:none;left:4%;right:4%;top:3px;height:46%;border-radius:15px 15px 45% 45%;background:linear-gradient(180deg,rgba(255,255,255,.32),rgba(255,255,255,.07) 70%,transparent);border-top:1px solid rgba(255,255,255,.65);}
.prot-home .intro__stats .stat__inner::after,.prot-home .services .service-item::after{content:"";position:absolute;z-index:-1;pointer-events:none;inset:3px;border-radius:inherit;border:1px solid rgba(255,255,255,.17);box-shadow:inset 0 -1px 1px rgba(240,252,255,.35);}
.prot-home .intro__stats .stat__inner:hover{background:radial-gradient(ellipse at 10% 0%,rgba(255,255,255,.4),transparent 42%),linear-gradient(180deg,rgba(255,255,255,.2),rgba(255,255,255,.04) 48%,rgba(4,14,25,.08) 70%,rgba(230,250,255,.15));box-shadow:inset 0 2px 2px rgba(255,255,255,.9),inset 2px 0 3px rgba(255,255,255,.35),inset 0 -3px 4px rgba(4,12,25,.45),0 3px 0 rgba(5,15,24,.35),0 10px 20px rgba(0,0,0,.32);}

.prot-home .intro__stats .stat__inner{position:relative;isolation:isolate;overflow:hidden;border-radius:18px;height:100%;box-sizing:border-box;}
.prot-home .intro__stats .stat__number,.prot-home .intro__stats .stat__label{color:var(--stat-glass-ink,#a9d8e2);-webkit-text-fill-color:var(--stat-glass-ink,#a9d8e2);background:none;text-shadow:0 -1px 1px rgba(0,8,15,.85),0 1px 1px rgba(255,255,255,.5),0 3px 6px rgba(0,0,0,.2);}
.prot-home .intro__stats .stat__label{font-weight:600;line-height:1.6;}

/* Portfolio action appears over scene 02 as its scroll animation opens. */
.prot-portfolio-cta{position:absolute;z-index:4;bottom:max(10svh,48px);left:16px;right:16px;display:flex;justify-content:center}
.prot-portfolio-cta .btn{max-width:calc(100vw - 32px)}

/* Glass is on the animated item itself, so it follows its scroll state. */
.prot-home .services .service-item{position:relative;isolation:isolate;width:fit-content;max-width:100%;box-sizing:border-box;border-radius:18px;padding:1.4rem 1.6rem;gap:1.25rem;margin:1.1rem 0;}
.prot-home .services .service-item__content{min-width:0;max-width:420px;}
@media(max-width:600px){.prot-home .services .service-item{padding:1.15rem 1.2rem;gap:.9rem;}}

.hero__extra{font-size:clamp(.9rem,1.3vw,1.05rem);line-height:1.55;color:var(--gray-300);max-width:520px;margin:.65rem auto;}
.hero__extra:last-of-type{margin-bottom:1.6rem}
@media(max-width:600px){.hero__content:has(.hero__extra) .hero__heading{font-size:clamp(2.2rem,9vw,3rem);margin-bottom:1rem}.hero__content:has(.hero__extra) .hero__sub{margin-bottom:1rem}.hero__content:has(.hero__extra){padding-inline:1.25rem}}

/* Closing copy has its own layer: the opening heading fades much earlier. */
.hero__late{position:absolute;z-index:3;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:5rem 1.5rem 8rem;text-align:center;pointer-events:none}
.hero__late .hero__extra{font-size:clamp(1.05rem,2.2vw,1.65rem);max-width:650px;color:var(--white);text-shadow:0 2px 14px #0009}
.hero__late .btn{margin-top:1rem;pointer-events:auto}
body.prot-motion-ready .hero__late [data-opening-reveal],body.prot-motion-ready .hero__late .btn{visibility:hidden}
body:not(.prot-motion-ready) .hero__late{position:relative;padding:1rem 1.5rem 7rem}
body:not(.prot-motion-ready) .hero__pin{position:relative;height:auto;min-height:100vh;display:block}

body.prot-motion-pending:not(.prot-motion-ready) .hero__late{visibility:hidden}
.hero__late .btn{transition:background-color .3s,border-color .3s,box-shadow .3s,color .3s}

/* 0.48.45: Firefox iOS must not promote the clip-path movie into a
   separate fullscreen-like compositing layer during momentum scrolling. */
.prot-firefox-ios .cinematic__sticky {
  transform: none !important;
  -webkit-transform: none !important;
  contain: paint;
}
.prot-firefox-ios .cinematic__video-frame {
  will-change: auto;
  overflow: hidden;
  isolation: isolate;
}
.prot-firefox-ios .cinematic__video {
  pointer-events: none !important;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

/* 0.48.45: Firefox iOS uses a canvas mirror rather than a touchable video layer. */
.prot-firefox-ios .cinematic__canvas {
  display: block;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none !important;
  object-fit: cover;
}
.prot-firefox-ios .cinematic__video-frame.cinematic__canvas-ready > video {
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Each optional shortcode output is positioned in normal document flow */
.prot-section-shortcode{position:relative;z-index:2;width:100%;max-width:100%;margin:0 auto;padding:24px clamp(16px,4vw,64px);box-sizing:border-box;overflow-wrap:anywhere}
.prot-section-shortcode:empty{display:none}

/* Uploaded ProT logo: original file (including animated GIF). */
.prot-custom-logo--loading{display:block;width:clamp(140px,32vw,250px);height:auto;max-height:120px;object-fit:contain}

/* Background-only dissolves. Text and the existing frame/clip animations are independent. */
.prot-home .prot-scene-fade{opacity:var(--prot-scene-blend,1)!important;transition:none!important}
.prot-home .intro,.prot-home .video-transition,.prot-home .video-transition__inner,
.prot-home .cinematic,.prot-home .cinematic__sticky{background-color:#100e0e}
@media(prefers-reduced-motion:no-preference){
 .prot-home .intro__video-wrap{
  -webkit-mask-image:linear-gradient(to bottom,transparent,#000 20vh,#000 calc(100% - 20vh),transparent);
  mask-image:linear-gradient(to bottom,transparent,#000 20vh,#000 calc(100% - 20vh),transparent);
 }
}

/* Tablet framing: preserve the top of portrait media in both orientations. */
@media (min-width:768px) and (max-width:1400px) and (any-pointer:coarse){.prot-home .intro__video,.prot-home .services__video,.prot-home .cinematic__video{object-position:center top}}

/* GSAP owns the complete service card motion; avoid competing CSS transitions. */
.prot-home .services .service-item--scroll{transition:none}

/* 0.48.46: Continuous section flow; Transition no longer pins its inner scene. */
body.prot-home > section { margin-block:0; }
.prot-home .video-transition { height:100svh; min-height:100svh; }
.prot-home .video-transition__inner { position:relative; top:auto; height:100%; }
/* Keep the presentation inside a compact portrait scene, while allowing longer
   custom copy and enlarged text to grow naturally instead of being clipped. */
@media(max-width:767px){
 .prot-home .intro { min-height:100svh; padding:4.5rem 1.25rem 1.5rem; display:flex; align-items:flex-start; }
 .prot-home .intro__content { width:100%; min-width:0; }
 .prot-home .intro__video { object-position:center center; }
 .prot-home .intro__label { margin-bottom:1rem; }
 .prot-home .intro__heading { font-size:clamp(1.65rem,6.5vw,2.1rem); margin-bottom:1.25rem; }
 .prot-home .intro__cols { gap:.8rem; margin-bottom:1.25rem; }
 .prot-home .intro__col p { font-size:.9375rem; line-height:1.5; margin:0; }
 .prot-home .intro__stats { grid-template-columns:minmax(0,1fr); gap:.5rem; padding-top:1rem; }
 .prot-home .intro__stats .stat__inner { min-height:6rem; padding:1rem .5rem; gap:.5rem; border-radius:12px; }
 .prot-home .intro__stats .stat__number { font-size:clamp(1.4rem,6vw,2rem); overflow-wrap:anywhere; }
 .prot-home .intro__stats .stat__label { font-size:.625rem; line-height:1.4; letter-spacing:.02em; overflow-wrap:anywhere; }
}

/* 0.48.49: Photography first, softer glass and a useful early Portfolio. */
.prot-home .intro__stats{grid-template-columns:repeat(2,minmax(0,1fr))}
.prot-home .intro__stats .stat__inner,.prot-home .services .service-item{
 border-color:rgba(255,255,255,.25);background:linear-gradient(135deg,rgba(255,255,255,.12),rgba(0,0,0,.18));
 box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 6px 18px rgba(0,0,0,.15);text-shadow:none;
}
.prot-home .intro__stats .stat__inner::before,.prot-home .intro__stats .stat__inner::after,.prot-home .services .service-item::before,.prot-home .services .service-item::after{display:none}
.prot-home .intro__stats .stat__number,.prot-home .intro__stats .stat__label{color:var(--white);-webkit-text-fill-color:var(--white);text-shadow:0 1px 2px rgba(0,0,0,.3)}
.prot-early-portfolio{margin-top:1.5rem}
.prot-early-portfolio h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;margin:0 0 .6rem}
.prot-early-portfolio>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.prot-early-portfolio a{color:var(--white);text-decoration:none;min-width:0}
.prot-early-portfolio img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:6px}
.prot-early-portfolio span{display:block;font-size:.8rem;padding-top:4px}
.prot-early-portfolio .prot-portfolio-link{display:inline-block;margin-top:.6rem;font-size:.9rem;text-decoration:underline;text-underline-offset:4px}
.prot-contact-invitation{max-width:38rem;font-size:clamp(1rem,2vw,1.35rem);line-height:1.5;margin:1.5rem 0 2rem;color:var(--gray-300)}
@media(max-width:767px){.prot-home .intro__stats{grid-template-columns:minmax(0,1fr)}.prot-home .intro__stats .stat__inner{min-height:5rem;padding:.65rem 1rem;flex-direction:row;align-items:center;justify-content:space-between;gap:1rem}.prot-home .intro__stats .stat__label{max-width:55%;text-align:right}}

.prot-home .intro__stats .stat__inner:hover{background:linear-gradient(135deg,rgba(255,255,255,.16),rgba(0,0,0,.18));box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 6px 18px rgba(0,0,0,.15)}

/* Mobile counter follows all six services within their own section. */
.services__mobile-count{display:none}
@media(max-width:767px){
 .prot-home .services__inner{grid-template-columns:3rem minmax(0,1fr);column-gap:.75rem}
 .prot-home .services__mobile-count{display:block;grid-column:1;grid-row:1 / span 2;align-self:start;position:sticky;top:5rem;margin-top:5rem;font-size:2.5rem;line-height:1;font-weight:900;color:var(--white);text-shadow:0 1px 4px #0009;pointer-events:none}
 .prot-home .services__left,.prot-home .services__right{grid-column:2;min-width:0}
 .prot-home .services__left{grid-row:1}
 .prot-home .services__right{grid-row:2}
 .prot-home .services__number{display:none}
 .prot-home .services .service-item{gap:.65rem}
}

.prot-home .intro__stats .prot-photo-date{font-size:clamp(1.1rem,4.5vw,2rem);font-variant-numeric:tabular-nums;white-space:nowrap;overflow-wrap:normal}

/* 0.48.55: Readable services on phones. The cards get a dark frosted backing so
   the text stays legible over the bright background film, and they fade in once
   and then stay fully visible (the left/right scrub remains on larger screens). */
.services__bg{height:100vh;height:100lvh}
@media(max-width:767px){
 .prot-home .services .service-item{
  opacity:1;transform:none;width:100%;
  background:rgba(12,12,14,.62);
  -webkit-backdrop-filter:blur(14px) saturate(1.1);backdrop-filter:blur(14px) saturate(1.1);
  border-color:rgba(255,255,255,.14);
 }
 .prot-home .services .service-item__content h3{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.6)}
 .prot-home .services .service-item__content p,.prot-home .services .service-item__index{color:rgba(255,255,255,.82)}
 .prot-home .services__left{text-shadow:0 1px 4px rgba(0,0,0,.7)}
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
 @media(max-width:767px){.prot-home .services .service-item{background:rgba(12,12,14,.85)}}
}

/* 0.48.58: Transition scroll scene stays on screen for all of its frames.
   The section gets a scroll length that follows the frame count, and the
   scene itself sticks to the viewport until the last frame. */
body.prot-motion-ready .video-transition.prot-vt-sticky{height:calc(var(--prot-vt-n,200) * 1vh);height:calc(var(--prot-vt-n,200) * 1svh);min-height:0}
body.prot-motion-ready .video-transition.prot-vt-sticky .video-transition__inner{position:sticky;top:0;height:100vh;height:100svh}

/* 0.48.59: Soft transitions between sections (opacity only, no masks). */
.prot-soft-dim,.prot-soft-feather{position:absolute;left:0;right:0;pointer-events:none;opacity:0;will-change:opacity}
.prot-soft-dim{top:0;bottom:0;z-index:29;background:var(--black,#100e0e)}
.prot-soft-feather{top:0;height:18vh;height:18svh;z-index:30;background:linear-gradient(to bottom,var(--black,#100e0e) 0%,rgba(16,14,14,.82) 28%,rgba(16,14,14,0) 100%)}

/* 0.48.60: Opening and Transition use background films instead of scroll scenes. */
.hero__canvas.prot-scene-film,.hero__canvas.prot-scene-still,
.video-transition__canvas.prot-scene-film,.video-transition__canvas.prot-scene-still{object-fit:cover;object-position:center;background:#100e0e;will-change:auto}
.video-transition__canvas.prot-scene-film,.video-transition__canvas.prot-scene-still{position:absolute;inset:0}

/* 0.53.62: Readable text over bright film frames. */
.prot-home .hero__content,.prot-home .hero__late,.prot-home .vt-word,.prot-home .cin-line{text-shadow:0 1px 2px rgba(0,0,0,.45),0 0 22px rgba(0,0,0,.4),0 0 48px rgba(0,0,0,.25)}

/* 0.53.62: Utvalda bilder lives in 03 · Övergång, above the Portfolio button. */
.prot-portfolio-cta{flex-direction:column;align-items:center;gap:1rem}
.prot-portfolio-cta .prot-early-portfolio{margin:0;width:fit-content;max-width:100%;box-sizing:border-box;text-align:left;padding:.8rem;border-radius:14px;background:rgba(10,10,12,.38);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-shadow:0 1px 3px rgba(0,0,0,.6)}
.prot-portfolio-cta .prot-early-portfolio .prot-portfolio-link{display:none}
.prot-portfolio-cta .prot-early-portfolio>div{display:flex;gap:8px}
.prot-portfolio-cta .prot-early-portfolio>div>a{flex:0 1 160px}
@media(max-width:767px){.prot-portfolio-cta{bottom:max(8svh,40px)}.prot-portfolio-cta .prot-early-portfolio img{aspect-ratio:4/3}}

/* 0.53.62: Solari-tavlan direkt under etiketten i 02 · Presentation. */
.prot-home .intro__stats.intro__stats--solari{display:block;margin:0 0 2rem;padding-top:0;border-top:0;max-width:34rem}
.prot-home .intro__stats--solari .stat{width:100%}

/* 0.53.62: luft efter sista tjänsten så att rutorna hinner glida ut innan Kontakt kommer. */
.prot-home .services__right{padding-bottom:60svh}

/* 0.53.62: Scrolla-indikatorn ligger fast längst ner på skärmen genom hela sidan. */
.prot-home .hero__scroll-indicator.prot-scroll-fixed{position:fixed;left:50%;bottom:max(1.25rem,calc(env(safe-area-inset-bottom) + .75rem));transform:translateX(-50%);z-index:40;pointer-events:none;transition:opacity .6s ease,visibility .6s}
.prot-home .hero__scroll-indicator.prot-scroll-fixed span{text-shadow:0 1px 3px rgba(0,0,0,.6)}
.prot-home .hero__scroll-indicator.is-gone{opacity:0!important;visibility:hidden}
.prot-home .hero__scroll-line::after{animation:scrollLine 2s ease-in-out infinite!important}
@media(max-width:767px){.prot-home .hero__scroll-indicator.prot-scroll-fixed{gap:.5rem}.prot-home .hero__scroll-indicator.prot-scroll-fixed .hero__scroll-line{height:28px}}

/* 0.53.62: Open Call-ruta på startsidan. */
.prot-home .prot-oc-teaser-old{display:flex;flex-direction:column;gap:.45rem;max-width:440px;margin:0 0 2.5rem;padding:1.4rem 1.5rem;border:1px solid rgba(255,255,255,.35);border-radius:14px;color:var(--white,#fff);text-decoration:none;background:rgba(10,10,12,.35);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color .3s,background .3s}
.prot-home .prot-oc-teaser:hover,.prot-home .prot-oc-teaser:focus-visible{border-color:rgba(255,255,255,.75);background:rgba(10,10,12,.55)}
.prot-oc-teaser__kicker{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;opacity:.7}
.prot-oc-teaser__text{font-size:clamp(1.35rem,4.5vw,1.8rem);font-weight:800;line-height:1.1;letter-spacing:-.02em}
.prot-oc-teaser__cta{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;margin-top:.3rem}

/* 0.53.62: Open Call i Filmsektionen – tre rader, ingen ruta. */
.prot-home .prot-cin-oc{text-align:center;color:var(--white,#fff);text-shadow:0 1px 2px rgba(0,0,0,.5),0 0 22px rgba(0,0,0,.45)}
.prot-home .prot-cin-oc p{margin:0}
.prot-home .prot-cin-oc--cinema{position:absolute;left:0;right:0;bottom:clamp(5.5rem,15svh,10rem);z-index:3;padding:0 1.25rem;display:none}
.prot-home .cinematic.prot-oc-in .prot-cin-oc--cinema{display:block;animation:protCinOcIn .9s cubic-bezier(.2,.75,.15,1) both!important}
@keyframes protCinOcIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.prot-home .prot-cin-oc--contact{margin:1rem 0 2.5rem;text-align:left}
.prot-cin-oc__kicker{font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;opacity:.8}
.prot-cin-oc__text{margin:.55rem 0 .7rem!important;font-size:clamp(1.5rem,5.2vw,2.6rem);font-weight:800;line-height:1.08;letter-spacing:-.02em}
.prot-home a.prot-cin-oc__cta{display:inline-block;padding:.5rem 0;color:inherit;text-decoration:none;font-size:.8rem;letter-spacing:.22em;text-transform:uppercase;border-bottom:1px solid currentColor}
.prot-home a.prot-cin-oc__cta:hover,.prot-home a.prot-cin-oc__cta:focus-visible{opacity:.75}
.prot-home .prot-cin-oc .prot-tt{display:inline-block}

/* 0.53.62: 06 · Kontakt – Open Call i castingsidans utseende. */
.prot-home .contact .prot-oc-sheet{display:flex;flex-direction:column;gap:clamp(1rem,2.6vw,1.6rem);width:min(100%,760px);padding:clamp(28px,6vw,64px);background:#ECE9E3;color:#111;text-decoration:none;border-radius:2px;box-shadow:0 30px 60px -20px rgba(0,0,0,.6);text-shadow:none;-webkit-text-fill-color:#111;transition:transform .5s cubic-bezier(.2,.75,.15,1)!important}
.prot-home .contact a.prot-oc-sheet:hover{transform:translateY(-4px)}
.prot-home .contact a.prot-oc-sheet:focus-visible{outline:2px solid #fff;outline-offset:6px}
.prot-home .prot-oc-sheet p,.prot-home .prot-oc-sheet h2{margin:0;color:#111;text-shadow:none;opacity:1}
.prot-home .prot-oc-sheet__kicker{font:400 clamp(18px,4.2vw,34px)/1 Archivo,'Arial',sans-serif;letter-spacing:.32em;text-transform:uppercase}
.prot-home .prot-oc-sheet__title{display:flex;flex-direction:column;font:900 clamp(64px,17vw,150px)/.84 Archivo,'Arial Black',sans-serif;letter-spacing:-.045em;text-transform:uppercase}
.prot-home .prot-oc-sheet__lead{margin-top:clamp(.6rem,2vw,1.2rem)!important;max-width:34ch;font:300 clamp(17px,4.4vw,24px)/1.6 Inter,system-ui,-apple-system,sans-serif;letter-spacing:0}
.prot-home .contact .prot-oc-sheet{position:relative;z-index:5}
.prot-home .contact .prot-oc-sheet{margin-bottom:clamp(120px,24vh,280px)}

/* 0.53.62: Open Call i 06 – vit text utan bakgrund (formatet som förut). */
.prot-home .contact .prot-oc-sheet{background:none;box-shadow:none;padding:0;color:#fff;-webkit-text-fill-color:currentColor;border-radius:0;margin-top:1.5rem}
.prot-home .prot-oc-sheet p,.prot-home .prot-oc-sheet h2{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.45),0 0 22px rgba(0,0,0,.4)}
.prot-home .prot-oc-sheet .prot-tt{display:block}
.prot-home .prot-oc-sheet__title>span{display:block}
.prot-home .prot-oc-sheet__title .tt-fx-roll .tt-c{height:.9em;line-height:.9em}
.prot-home .prot-oc-sheet__title .tt-vis{line-height:.84}

/* 0.53.62: 06 – texten är inte en länk; Anmäl dig-länken under, som i 04. */
.prot-home .prot-oc-sheet .prot-oc-sheet__cta{align-self:flex-start;margin-top:clamp(.4rem,1.6vw,1rem);color:#fff;-webkit-text-fill-color:#fff}
.prot-home .prot-oc-sheet .prot-oc-sheet__cta .prot-tt{display:inline-block}
.prot-home .prot-oc-sheet a.prot-oc-sheet__cta{font-size:clamp(.9rem,2.6vw,1.1rem)}

/* 0.53.62: 02 – rubriken först, Solari-tavlan utan glasram och utan liten text. */
.prot-home .intro__heading--first{margin-bottom:clamp(1.5rem,4vw,2.5rem)}
.prot-home .intro__stats.intro__stats--solari .stat__inner{border:0!important;background:none!important;box-shadow:none!important;padding:0!important;min-height:0!important;border-radius:0!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;overflow:visible!important}
.prot-home .intro__stats.intro__stats--solari .stat__inner::before,.prot-home .intro__stats.intro__stats--solari .stat__inner::after{display:none!important}

/* 0.53.62: Etiketter i 03–05 i samma stil som Kontakt. */
.prot-home .prot-sec-label{display:flex;align-items:center;gap:1rem;font-size:.75rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--gray-300);margin-bottom:1.5rem;text-shadow:0 1px 2px rgba(0,0,0,.5)}
.prot-home .prot-sec-label--abs{position:absolute;z-index:6;left:clamp(24px,3vw,3rem);top:clamp(5rem,12vh,7.5rem);margin:0;pointer-events:none}
.prot-home .services__sticky .prot-sec-label{margin-bottom:1.25rem}
/* 04: rad 3 som vanlig text som hänger ihop med rubriken. */
.prot-home .cin-line.cin-line--sub{display:block;flex-basis:100%;max-width:30ch;margin:1.1rem auto 0;font-size:clamp(1rem,2.2vw,1.35rem);font-weight:400;line-height:1.5;letter-spacing:0;color:rgba(255,255,255,.88)}

/* 0.53.62: Tjänster på mobil – etikett och rubrik vid vänsterkanten som i övriga sektioner,
   räknaren (01–06) i vänsterspalten bredvid rutorna. */
@media(max-width:767px){
 .prot-home .services__left{grid-column:1 / -1;grid-row:1}
 .prot-home .services__mobile-count{grid-row:2;grid-column:1;margin-top:0}
 .prot-home .services__right{grid-column:2;grid-row:2}
}

/* 0.53.62: 02 · Presentation – etikett och rubrik överst som från början; tavlan och
   styckena börjar ungefär mitt på skärmen och ligger i nedre delen, ovanför SCROLLA. */
.prot-home .intro{display:flex;flex-direction:column;min-height:100svh;padding-bottom:clamp(5.5rem,13svh,9rem)}
.prot-home .intro .intro__content{display:flex;flex-direction:column;flex:1 0 auto;margin-top:0;margin-bottom:0}
.prot-home .intro .intro__lower{margin-top:auto;min-height:42svh}
.prot-home .intro .intro__heading--first{margin-bottom:2rem}

/* 0.53.62: Tjänster på mobil – de stora siffrorna 01–06 vid högerkanten. */
@media(max-width:767px){
 .prot-home .services__inner{grid-template-columns:minmax(0,1fr) 3rem}
 .prot-home .services__right{grid-column:1;grid-row:2}
 .prot-home .services__mobile-count{grid-column:2;grid-row:2;justify-self:end;text-align:right}
}

/* 0.53.62: Ingen tonad ruta bakom texten. De breda, suddiga skuggorna klipptes i
   Safari till textens lager och syntes som en mörk rektangel – nu bara en tät skugga. */
.prot-home .hero__content,.prot-home .hero__content *,.prot-home .hero__late,.prot-home .hero__late *,.prot-home .hero__late .hero__extra,.prot-home .vt-word,.prot-home .cin-line{text-shadow:0 1px 2px rgba(0,0,0,.55),0 2px 6px rgba(0,0,0,.3)!important}

/* 0.53.62: typografieffekter på alla texter – inne i ord, rader, etiketter och tjänsterutor. */
.prot-home .vt-word .prot-tt,.prot-home .cin-line .prot-tt,.prot-home .prot-sec-label .prot-tt,.prot-home .contact__label .prot-tt,.prot-home .service-item__content h3 .prot-tt{display:inline-block}
.prot-home .service-item__content p .prot-tt,.prot-home .cin-line--sub .prot-tt{display:block}

/* 0.53.62: textstil per text – Normal, Fet, Kursiv, Fet + kursiv (gäller även bokstäver som effekterna delar upp). */
.prot-home .prot-ts{display:contents}
.prot-home .prot-ts--normal,.prot-home .prot-ts--normal *{font-weight:400!important;font-style:normal!important}
.prot-home .prot-ts--bold,.prot-home .prot-ts--bold *{font-weight:800!important;font-style:normal!important}
.prot-home .prot-ts--italic,.prot-home .prot-ts--italic *{font-style:italic!important}
.prot-home .prot-ts--bolditalic,.prot-home .prot-ts--bolditalic *{font-weight:800!important;font-style:italic!important}

/* 0.53.62: entréeffekter på alla texter (spelas när texten kommer in i bild). */
.prot-home .prot-in{display:inline-block;max-width:100%;vertical-align:top}
html.prot-in-js .prot-home .prot-in:not(.is-in){opacity:0}
html.prot-in-fallback .prot-home .prot-in:not(.is-in){opacity:1}
/* 0.53.62: Presentationens stycken syns tydligt även på ljus video. */
.prot-home .intro .intro__col p{color:var(--prot-copy,rgba(255,255,255,.95))!important;text-shadow:0 1px 2px rgba(0,0,0,.6),0 2px 8px rgba(0,0,0,.35)!important}
.prot-home .intro .intro__col p *{text-shadow:inherit!important}
.prot-home .intro__label,.prot-home .prot-sec-label{text-shadow:0 1px 2px rgba(0,0,0,.55),0 2px 6px rgba(0,0,0,.3)}

/* 0.53.62: filter i 03 · Övergång styrs av reglaget */
.prot-home .video-transition__overlay{background:var(--prot-filter-color,#000);opacity:var(--prot-filter-opacity,.4)}

/* 0.53.62: 06 · Kontakt är en skärm hög. Texten placeras i det lediga utrymmet mellan loggan
   och skärmens nederkant (inställning: ProT startsida → 06 · Kontakt → Open Call-textens läge). */
body.prot-home section.contact{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:.35fr auto .65fr;align-items:start;min-height:100vh;min-height:100svh;padding-top:clamp(4.75rem,11svh,7.5rem);padding-bottom:clamp(1.5rem,4svh,3rem)}
body.prot-home section.contact>.contact__content{grid-row:2}
body.prot-home section.contact .prot-oc-sheet{margin-bottom:0}

/* 0.53.62: Sektionsetiketten ligger fast på samma höjd under loggan i alla sektioner, så länge sektionen syns. */
.prot-home{--prot-label-top:calc(env(safe-area-inset-top,0px) + 70px)}
.prot-home .prot-sec-pin{position:absolute;inset:0;z-index:7;pointer-events:none}
.prot-home .prot-sec-pin .prot-sec-label--pin{position:sticky;top:var(--prot-label-top);margin:var(--prot-label-top) 0 0 clamp(24px,5vw,3rem);width:max-content;max-width:calc(100% - 48px)}
.admin-bar.prot-home{--prot-label-top:calc(env(safe-area-inset-top,0px) + 102px)}
.prot-home > section:not(.hero){position:relative}
.prot-home .intro{overflow:hidden;overflow:clip}
/* Innehållet börjar under sektionsetiketten. */
.prot-home .intro{padding-top:calc(var(--prot-label-top) + 2.75rem)}
.prot-home .services__inner{padding-top:2.5rem}
/* 0.53.62: Kontakt – Open Call-texten börjar en bit under sektionsetiketten, som i de andra sektionerna (reglaget är borttaget). */
body.prot-home section.contact{display:block;padding-top:calc(var(--prot-label-top) + 1.25rem)}
/* 0.53.62: En gemensam etikett som ligger fast och byter text med scramble. Sektionernas egna etiketter döljs då. */
html.prot-label-live .prot-sec-pin{visibility:hidden}
.prot-home .prot-sec-label--live{position:fixed;z-index:60;top:var(--prot-label-top);left:clamp(24px,5vw,3rem);margin:0;max-width:calc(100% - 48px);pointer-events:none;opacity:0;transition:opacity .35s ease;white-space:nowrap;font-variant-numeric:tabular-nums}
.prot-home .prot-sec-label--live.is-on{opacity:1}
/* 0.53.62: extra textrader i 03 · Övergång och 04 · Filmsektion */
.prot-home .vt-more{position:absolute;z-index:3;left:16px;right:16px;top:calc(50% + clamp(2.6rem,6vw,4rem));display:flex;flex-direction:column;align-items:center;gap:.45rem;text-align:center;pointer-events:none}
.prot-home .vt-more__line{margin:0;max-width:34ch;font-size:clamp(.95rem,2vw,1.2rem);line-height:1.5;color:var(--prot-copy,rgba(255,255,255,.88));text-shadow:0 1px 2px rgba(0,0,0,.5),0 0 18px rgba(0,0,0,.4)}
.prot-home .cin-line.cin-line--more{margin-top:.45rem}

/* 0.53.62 · 03 Övergång: orden ligger högre upp, extra texten direkt under och Portfolio längst ner. */
.prot-home .video-transition__inner{flex-direction:column;justify-content:flex-start;align-items:center;padding-top:calc(var(--prot-label-top) + clamp(3.5rem,11svh,7rem));box-sizing:border-box}
.prot-home .video-transition .video-transition__text{position:relative!important;inset:auto!important;width:calc(100% - 32px);max-width:1100px;min-height:clamp(3.5rem,9svh,5.5rem);padding:0 .5rem!important;flex-wrap:wrap!important;align-content:center!important;row-gap:.4rem}
.prot-home .vt-more{position:relative;z-index:3;left:auto;right:auto;top:auto;width:calc(100% - 32px);margin-top:clamp(1rem,2.6svh,1.75rem)}
.prot-home .prot-portfolio-cta{bottom:calc(env(safe-area-inset-bottom,0px) + 96px)}
@media(max-width:767px){.prot-home .prot-portfolio-cta{bottom:calc(env(safe-area-inset-bottom,0px) + 80px)}}
@media(max-height:640px){.prot-home .video-transition__inner{padding-top:calc(var(--prot-label-top) + 2rem)}}

/* 0.53.62: justering per text – Vänster, Centrerad eller Höger. */
.prot-home .prot-ta{display:block}
.prot-home .prot-ta--left{text-align:left}.prot-home .prot-ta--center{text-align:center}.prot-home .prot-ta--right{text-align:right}
.prot-home :is(h1,h2,h3,h4,p,div,li,a,span):has(> .prot-ta--left){text-align:left;align-self:stretch}
.prot-home :is(h1,h2,h3,h4,p,div,li,a,span):has(> .prot-ta--center){text-align:center;align-self:stretch}
.prot-home :is(h1,h2,h3,h4,p,div,li,a,span):has(> .prot-ta--right){text-align:right;align-self:stretch}
.prot-home .vt-more__line:has(> .prot-ta){max-width:none}
.prot-home .vt-word .prot-ta,.prot-home .cin-line .prot-ta{display:inline-block}
.prot-home .video-transition .video-transition__text:has(.prot-ta--left){justify-content:flex-start!important}
.prot-home .video-transition .video-transition__text:has(.prot-ta--right){justify-content:flex-end!important}
.prot-home .video-transition .video-transition__text:has(.prot-ta--center){justify-content:center!important}
.prot-home .prot-sec-label--pin:has(.prot-ta--center){margin-left:auto;margin-right:auto}
.prot-home .prot-sec-label--pin:has(.prot-ta--right){margin-left:auto;margin-right:clamp(24px,5vw,3rem)}
.prot-home .prot-sec-label .prot-ta{display:inline}
.prot-home .prot-sec-label--live.is-center{left:50%;transform:translateX(-50%)}
.prot-home .prot-sec-label--live.is-right{left:auto;right:clamp(24px,5vw,3rem)}
.prot-home .hero__line > .prot-ts,.prot-home .hero__line > .prot-ta{opacity:1}

/* 0.53.62 · 03 Övergång: texten ännu högre upp, Portfolio i flödet längst ner med ett tydligt mellanrum. */
.prot-home .video-transition__inner{padding-top:calc(var(--prot-label-top) + clamp(1.5rem,4.5svh,3rem));padding-bottom:calc(env(safe-area-inset-bottom,0px) + 80px)}
.prot-home .video-transition .prot-portfolio-cta{position:relative;left:auto;right:auto;bottom:auto!important;width:calc(100% - 32px);margin-top:auto;padding-top:clamp(1.75rem,5svh,3rem);flex-shrink:0}
.prot-home .video-transition .video-transition__text{min-height:0}
.prot-home .vt-more{flex-shrink:1;min-height:0}
@media(max-width:767px){.prot-home .vt-more{gap:.6rem}.prot-home .vt-more__line{font-size:clamp(.92rem,3.9vw,1.05rem);line-height:1.45}}
@media(min-width:768px){.prot-home .video-transition__inner{padding-bottom:calc(env(safe-area-inset-bottom,0px) + 96px)}}

/* 0.53.62 · 03 Övergång: luft mellan extratexterna – andra och tredje raden ligger längre ner. */
.prot-home .vt-more__line + .vt-more__line{margin-top:clamp(.9rem,2.6svh,1.6rem)}

/* 0.53.62: Längd (skärmhöjder) för 01 Öppning, 02 Presentation, 03 Övergång och 04 Filmsektion. */
body.prot-home.prot-motion-ready .hero{height:calc(var(--prot-len,2.5) * 100vh)}
body.prot-home.prot-motion-ready .cinematic{height:calc(var(--prot-len,4) * 100vh)}
body.prot-home.prot-motion-ready .intro.prot-len-long{height:calc(var(--prot-len,1) * 100vh);height:calc(var(--prot-len,1) * 100svh);min-height:0}
.prot-home .intro.prot-len-long .intro__content{position:sticky;top:calc(var(--prot-label-top) + 2.75rem);flex:none;height:calc(100vh - var(--prot-label-top) - 2.75rem - clamp(5.5rem,13svh,9rem));height:calc(100svh - var(--prot-label-top) - 2.75rem - clamp(5.5rem,13svh,9rem))}
.prot-home .intro.prot-len-long .intro__video{position:sticky;top:0;height:100vh;height:100svh}

/* 0.53.62: Textstorlek (%) per text. */
.prot-home .hero__line > .prot-tsz{opacity:1}
.prot-home .prot-tsz{line-height:inherit}

/* 0.53.62 · 04 Filmsektion: brödtexten är alltid lugn och läsbar under rubriken, även på dator. */
.prot-home .cinematic .cin-line.cin-line--sub{display:block;flex:0 0 100%!important;width:100%;max-width:none!important;box-sizing:border-box;padding:0 max(1.25rem,calc(50% - 22ch))!important;margin:.9rem 0 0!important;font-size:clamp(1rem,1.45vw,1.3rem)!important;font-weight:400!important;line-height:1.55!important;letter-spacing:0!important;text-align:center}
.prot-home .cinematic .cin-line.cin-line--more{margin-top:.5rem!important}
.prot-home .cinematic .cin-subs{position:absolute;left:0;right:0;bottom:clamp(5.5rem,14svh,9rem);display:flex;flex-direction:column;align-items:center;padding:0 1.25rem;pointer-events:none}
/* 0.53.62 · 02 Presentation på dator: Solari-tavlan lagom bred och styckena lättare att läsa. */
@media (min-width:900px){
 .prot-home .intro .intro__stats--solari{max-width:min(980px,100%)}
 .prot-home .intro .intro__col p{font-size:clamp(1.02rem,1.12vw,1.22rem);line-height:1.65}
 .prot-home .intro .intro__cols{max-width:1100px;gap:clamp(2rem,5vw,5rem)}
 .prot-home .intro .intro__heading--first{max-width:22ch}
}
/* 0.53.62: <b> och <i> syns tydligt även i rubriker som redan är feta. */
.prot-home b,.prot-home strong{font-weight:900}
.prot-home :is(h1,h2,h3,.cin-line,.hero__line,.vt-word) :is(em,i){font-weight:300;font-style:italic;letter-spacing:0}
.prot-home :is(h1,h2,h3,.cin-line,.hero__line,.vt-word) :is(b,strong) :is(em,i),.prot-home :is(h1,h2,h3,.cin-line,.hero__line,.vt-word) :is(em,i) :is(b,strong){font-weight:900}
/* 0.53.62: designgrepp utan mellanslag – finns <b> i en rubrik blir resten tunt, så det feta ordet sticker ut (LjusFORMNärvaro). */
.prot-home :is(h2,h3,.cin-line,.hero__line,.vt-word):has(b,strong){font-weight:200}
.prot-home :is(h2,h3,.cin-line,.hero__line,.vt-word):has(b,strong) :not(b,strong,b *,strong *){font-weight:inherit}
.prot-home :is(h2,h3,.cin-line,.hero__line,.vt-word):has(b,strong) :is(b,strong){font-weight:900}
.prot-home :is(h1,h2,h3,.cin-line,.hero__line,.vt-word) :is(em,i){padding-right:.03em}
/* 0.53.62: <b>/<i> vinner över "Effekt & stil" (Normal/Fet/Kursiv) på hela texten. */
.prot-home :is(h1,h2,h3,.cin-line,.hero__line,.vt-word) .prot-ts:has(b,strong),.prot-home :is(h1,h2,h3,.cin-line,.hero__line,.vt-word) .prot-ts:has(b,strong) *{font-weight:200!important}
.prot-home.prot-home .prot-ts.prot-ts :is(i,em),.prot-home.prot-home .prot-ts.prot-ts :is(i,em) *{font-style:italic!important}
.prot-home.prot-home :is(h1,h2,h3,.cin-line,.hero__line,.vt-word) .prot-ts :is(i,em),.prot-home.prot-home :is(h1,h2,h3,.cin-line,.hero__line,.vt-word) .prot-ts :is(i,em) *{font-weight:300!important}
.prot-home.prot-home .prot-ts.prot-ts :is(b,strong),.prot-home.prot-home .prot-ts.prot-ts :is(b,strong) *,.prot-home.prot-home.prot-home .prot-ts :is(b,strong) :is(i,em),.prot-home.prot-home.prot-home .prot-ts :is(b,strong) :is(i,em) *{font-weight:900!important}

/* 0.53.62 · 02 Presentation: avgångstavlan först, rubrik och text tätt under – inget glapp. */
.prot-home .intro .intro__stats.intro__stats--solari{margin:0 0 clamp(1.5rem,4vw,2.25rem)}
.prot-home .intro .intro__heading--first{margin-bottom:clamp(1.25rem,3.5vw,2rem)}
.prot-home .intro .intro__lower{margin-top:0;min-height:0}
/* 0.53.62: texter som styrs av tid (Texterna styrs av → Tid). */
.prot-home .prot-ft{display:contents}
.prot-ft-ready .prot-home .prot-ft-host,.prot-ft-ready.prot-home .prot-ft-host,html.prot-ft-ready body.prot-home .prot-ft-host{transition:opacity .9s ease,translate 1s cubic-bezier(.2,.7,.2,1)}
html.prot-ft-ready body.prot-home .prot-ft-host:not(.is-ft-on){opacity:0!important;translate:0 .5em}
html.prot-ft-ready body.prot-home .prot-ft-host.is-ft-on{opacity:1!important;translate:0 0}
@media (prefers-reduced-motion:reduce){html.prot-ft-ready body.prot-home .prot-ft-host{translate:none!important;transition:opacity .4s}}
/* 0.53.62: i Tid-läget tar tiden över helt – skrollens texteffekter (glid, mask, kontur) stängs av för de texterna. */
html.prot-ft-ready body.prot-home :is(.vt-word,.cin-line).prot-ft-host{transform:none!important;clip-path:none!important;-webkit-text-stroke:0!important;background-image:none!important;color:var(--white,#fff)!important;visibility:visible!important}
/* 0.53.62: 01 · Öppning i Tid-läget – scenbyte från rubrik till de sena texterna. */
html.prot-ft-ready body.prot-home .hero .hero__content{transition:opacity .9s ease}
html.prot-ft-ready body.prot-home .hero.prot-ft-scene2 .hero__content{opacity:0!important}
html.prot-ft-ready body.prot-home .hero__extra.prot-ft-host.is-ft-on{visibility:visible!important}
/* 0.53.62: 01 · Öppning – texterna börjar högt upp (strax under menyn) i stället för mitt på skärmen. */
/* 0.53.62: 04 · Filmsektion – texten börjar högt upp som i 01 · Öppning, strax under sektionsetiketten. */
.prot-home .cinematic__sticky{align-items:flex-start}
.prot-home .cinematic .cinematic__content{align-content:flex-start!important;padding-top:max(clamp(5.5rem,13svh,9rem),calc(var(--prot-label-top) + 2.75rem))!important}
/* 0.53.62: all text under the section label starts at 134 px from the top in every section
   (label at 70 px + 64 px). With the WordPress toolbar visible, both move down by the same amount. */
.prot-home{--prot-text-gap:64px;--prot-text-top:calc(var(--prot-label-top) + var(--prot-text-gap))}
.prot-home .intro{padding-top:var(--prot-text-top)}
.prot-home .intro.prot-len-long .intro__content{top:var(--prot-text-top);height:calc(100vh - var(--prot-text-top) - clamp(5.5rem,13svh,9rem));height:calc(100svh - var(--prot-text-top) - clamp(5.5rem,13svh,9rem))}
html body.prot-home.prot-stack-fade > section.intro.prot-stack-card:not(.prot-len-long){padding-top:calc(85vh + var(--prot-text-top))}
.prot-home .video-transition .video-transition__inner{padding-top:var(--prot-text-top)}
.prot-home .cinematic .cinematic__content{padding-top:var(--prot-text-top)!important}
body.prot-home section.contact{padding-top:var(--prot-text-top)}
html body.prot-home.prot-stack-fade > section.contact.prot-stack-card{padding-top:calc(85vh + var(--prot-text-top))}
/* 0.53.62: 06 · Kontakt – texten stannar på samma höjd (134 px) även längst ner på sidan. */
body.prot-home section.contact .contact__content{min-height:calc(100vh - var(--prot-text-top));min-height:calc(100svh - var(--prot-text-top));box-sizing:border-box}
body.prot-home section.contact .contact__content > :first-child{margin-top:0}
html body.prot-home.prot-stack-fade section.contact.prot-stack-card .contact__content{min-height:calc(100vh - var(--prot-text-top) - 22vh - 3rem);min-height:calc(100svh - var(--prot-text-top) - 22vh - 3rem)}
/* 0.53.62: 01 · Öppning – texten börjar högt upp igen (som i 0.53.50, ca 110 px på mobil), inom den markerade ytan. */
.prot-home .hero__pin{align-items:flex-start}
.prot-home .hero__content{padding-top:clamp(5.5rem,13svh,9rem)}
.prot-home .hero__late{justify-content:flex-start;padding-top:clamp(5.5rem,13svh,9rem)}
/* 0.53.62: 03 · Övergång – texterna under orden startar där orden startar. */
.prot-home .vt-more.vt-more--aligned{align-self:flex-start;align-items:flex-start;text-align:left;margin-left:var(--vt-start);width:var(--vt-width);max-width:var(--vt-width);box-sizing:border-box;left:auto;right:auto}
.prot-home .vt-more.vt-more--aligned .vt-more__line{max-width:min(100%,62ch);text-align:left}
.prot-home .vt-more.vt-more--aligned .vt-more__line .prot-ta{text-align:left}
/* 0.53.62: 06 · Kontakt – texten anpassas efter skärmens höjd, så att allt får plats på en
   bärbar dator precis som på mobilen (mobilen ser likadan ut som förut). */
.prot-home .prot-oc-sheet__kicker{font-size:max(15px,min(clamp(18px,4.2vw,34px),4.2svh))}
.prot-home .prot-oc-sheet__title{font-size:max(56px,min(clamp(64px,17vw,150px),15svh))}
.prot-home .prot-oc-sheet__lead{font-size:max(16px,min(clamp(17px,4.4vw,24px),2.9svh))}
.prot-home .contact .prot-oc-sheet{gap:min(clamp(1rem,2.6vw,1.6rem),2.4svh)}
html body.prot-home.prot-stack-fade > section.contact.prot-stack-card{padding-bottom:1.5rem}
html body.prot-home.prot-stack-fade section.contact.prot-stack-card .contact__content{min-height:calc(100vh - var(--prot-text-top) - 1.5rem);min-height:calc(100svh - var(--prot-text-top) - 1.5rem)}
