/* =========================================================
   ABPE WORKS — COMPANY PROFILE V3
   LANDING PAGE PRO RESPONSIVE
   ========================================================= */


/* =========================================================
   01. LARGE LAPTOP
   <= 1280px
   ========================================================= */

@media (max-width: 1280px) {

  .lp-pro-hero__title {
    font-size:
      clamp(4rem, 9vw, 9rem);
  }

  .lp-pro-hero__visual {
    width:
      min(64vw, 900px);
  }

  .lp-pro-gallery {
    row-gap:
      140px;
  }

  .lp-pro-gallery__item--three {
    margin-top:
      150px;
  }

}


/* =========================================================
   02. TABLET / SMALL LAPTOP
   <= 1024px
   ========================================================= */

@media (max-width: 1024px) {

  /* =======================================================
     HERO
     ======================================================= */

  .lp-pro-hero {
    min-height:
      auto;

    padding-top:
      110px;
  }

  .lp-pro-hero__top {
    flex-direction:
      column;

    gap:
      24px;
  }

  .lp-pro-hero__meta {
    max-width:
      560px;
  }

  .lp-pro-hero__composition {
    min-height:
      820px;

    margin-top:
      100px;
  }

  .lp-pro-hero__title {
    font-size:
      clamp(3.8rem, 10vw, 7.5rem);
  }

  .lp-pro-hero__title .indent {
    padding-left:
      80px;
  }

  .lp-pro-hero__visual {
    width:
      76vw;

    max-width:
      760px;
  }

  .lp-pro-hero__float {
    width:
      min(300px, 35vw);

    left:
      0;

    bottom:
      5%;
  }

  .lp-pro-hero__bottom {
    grid-template-columns:
      1fr;

    gap:
      30px;

    margin-top:
      100px;
  }


  /* =======================================================
     INTRO
     ======================================================= */

  .lp-pro-intro__grid {
    grid-template-columns:
      1fr;

    gap:
      42px;
  }


  /* =======================================================
     STORY
     ======================================================= */

  .lp-pro-story__header {
    grid-template-columns:
      1fr;

    gap:
      28px;
  }

  .lp-pro-story__copy {
    max-width:
      560px;
  }


  /* =======================================================
     GALLERY
     ======================================================= */

  .lp-pro-gallery {
    row-gap:
      100px;
  }

  .lp-pro-gallery__item--two {
    grid-column:
      1 / 8;
  }

  .lp-pro-gallery__item--three {
    grid-column:
      7 / 13;

    margin-top:
      100px;
  }

  .lp-pro-gallery__item--four {
    grid-column:
      3 / 12;
  }


  /* =======================================================
     EXPERIENCE
     ======================================================= */

  .lp-pro-experience__header {
    align-items:
      flex-start;

    flex-direction:
      column;

    gap:
      28px;
  }

  .lp-pro-experience__copy {
    max-width:
      560px;
  }

  .lp-pro-experience-item {
    grid-template-columns:
      50px
      minmax(190px, 0.6fr)
      minmax(0, 1fr);

    gap:
      40px;
  }


  /* =======================================================
     NARRATIVE
     ======================================================= */

  .lp-pro-narrative__grid {
    grid-template-columns:
      1fr;

    gap:
      60px;
  }

  .lp-pro-narrative__side {
    position:
      static;
  }

  .lp-pro-narrative__side-copy {
    max-width:
      560px;
  }

  .lp-pro-narrative__chapter {
    min-height:
      48vh;
  }


  /* =======================================================
     MOTION
     ======================================================= */

  .lp-pro-motion {
    min-height:
      75vh;
  }

  .lp-pro-motion__word {
    font-size:
      clamp(9rem, 34vw, 24rem);
  }


  /* =======================================================
     SCOPE
     ======================================================= */

  .lp-pro-scope__header {
    grid-template-columns:
      1fr;

    gap:
      28px;
  }

  .lp-pro-scope__copy {
    max-width:
      560px;
  }


  /* =======================================================
     TIMELINE
     ======================================================= */

  .lp-pro-timeline__grid {
    grid-template-columns:
      1fr;

    gap:
      60px;
  }


  /* =======================================================
     RELATED
     ======================================================= */

  .lp-pro-related__link {
    grid-template-columns:
      60px
      minmax(0, 1fr)
      60px;
  }

}


/* =========================================================
   03. TABLET PORTRAIT / MOBILE
   <= 768px
   ========================================================= */

@media (max-width: 768px) {

  /* =======================================================
     HERO
     ======================================================= */

  .lp-pro-hero {
    padding:
      90px 20px 75px;
  }

  .lp-pro-hero__composition {
    min-height:
      720px;

    margin-top:
      80px;
  }

  .lp-pro-hero__title {
    font-size:
      clamp(3.2rem, 14vw, 6rem);

    line-height:
      0.84;
  }

  .lp-pro-hero__title .indent {
    padding-left:
      clamp(28px, 10vw, 70px);
  }

  .lp-pro-hero__visual {
    right:
      -20px;

    width:
      86vw;

    max-width:
      none;

    aspect-ratio:
      4 / 5;
  }

  .lp-pro-hero__visual img {
    height:
      106%;

    transform:
      translateY(-3%);
  }

  .lp-pro-hero__float {
    left:
      0;

    bottom:
      3%;

    width:
      240px;

    padding:
      20px;
  }

  .lp-pro-hero__float-label {
    margin-bottom:
      38px;
  }

  .lp-pro-hero__float-copy {
    font-size:
      1.25rem;
  }

  .lp-pro-hero__bottom {
    margin-top:
      80px;
  }

  .lp-pro-hero__statement {
    font-size:
      clamp(1.6rem, 7vw, 2.8rem);
  }


  /* =======================================================
     MARQUEE
     ======================================================= */

  .lp-pro-marquee {
    padding:
      45px 0;
  }

  .lp-pro-marquee__word {
    font-size:
      clamp(2.6rem, 13vw, 5rem);
  }

  .lp-pro-marquee__word::after {
    margin:
      0 38px;
  }


  /* =======================================================
     INTRO
     ======================================================= */

  .lp-pro-intro {
    padding:
      100px 20px;
  }

  .lp-pro-intro__grid {
    gap:
      36px;
  }

  .lp-pro-intro__title {
    font-size:
      clamp(2.8rem, 12vw, 5.2rem);
  }

  .lp-pro-intro__copy {
    grid-template-columns:
      1fr;

    gap:
      24px;

    margin-top:
      50px;
  }


  /* =======================================================
     STORY
     ======================================================= */

  .lp-pro-story {
    padding:
      100px 20px;
  }

  .lp-pro-story__header {
    margin-bottom:
      60px;
  }

  .lp-pro-story__title {
    font-size:
      clamp(2.8rem, 11vw, 5rem);
  }


  /* =======================================================
     GALLERY
     ======================================================= */

  .lp-pro-gallery {
    grid-template-columns:
      1fr;

    gap:
      0;

    row-gap:
      70px;
  }

  .lp-pro-gallery__item--one,
  .lp-pro-gallery__item--two,
  .lp-pro-gallery__item--three,
  .lp-pro-gallery__item--four {
    grid-column:
      1;

    margin-top:
      0;
  }

  .lp-pro-gallery__item--one
  .lp-pro-gallery__media,
  .lp-pro-gallery__item--four
  .lp-pro-gallery__media {
    aspect-ratio:
      4 / 5;
  }

  .lp-pro-gallery__item--two {
    width:
      86%;

    margin-right:
      auto;
  }

  .lp-pro-gallery__item--three {
    width:
      86%;

    margin-left:
      auto;
  }

  .lp-pro-gallery__item--four {
    width:
      92%;

    margin:
      0 auto;
  }

  .lp-pro-gallery__media img {
    height:
      106%;

    transform:
      translateY(-3%);
  }


  /* =======================================================
     EXPERIENCE
     ======================================================= */

  .lp-pro-experience {
    padding:
      100px 20px;
  }

  .lp-pro-experience__header {
    margin-bottom:
      60px;
  }

  .lp-pro-experience__title {
    font-size:
      clamp(2.8rem, 11vw, 5rem);
  }

  .lp-pro-experience-item {
    grid-template-columns:
      34px
      minmax(0, 1fr);

    gap:
      10px 18px;

    padding:
      34px 0;
  }

  .lp-pro-experience-item__number {
    grid-column:
      1;

    grid-row:
      1 / span 2;
  }

  .lp-pro-experience-item__title {
    grid-column:
      2;

    font-size:
      clamp(1.9rem, 8vw, 3rem);
  }

  .lp-pro-experience-item__description {
    grid-column:
      2;

    margin-top:
      10px;
  }


  /* =======================================================
     NARRATIVE
     ======================================================= */

  .lp-pro-narrative {
    padding:
      100px 20px;
  }

  .lp-pro-narrative__grid {
    gap:
      45px;
  }

  .lp-pro-narrative__chapter {
    min-height:
      auto;

    padding:
      75px 0;
  }

  .lp-pro-narrative__number {
    margin-bottom:
      45px;
  }

  .lp-pro-narrative__title {
    font-size:
      clamp(2.8rem, 11vw, 5rem);
  }


  /* =======================================================
     MOTION
     ======================================================= */

  .lp-pro-motion {
    min-height:
      70vh;

    padding:
      100px 20px;
  }

  .lp-pro-motion__word {
    font-size:
      clamp(8rem, 45vw, 18rem);
  }

  .lp-pro-motion__title {
    font-size:
      clamp(3rem, 13vw, 6rem);
  }


  /* =======================================================
     SCOPE
     ======================================================= */

  .lp-pro-scope {
    padding:
      100px 20px;
  }

  .lp-pro-scope__header {
    margin-bottom:
      60px;
  }

  .lp-pro-scope__title {
    font-size:
      clamp(2.8rem, 11vw, 5rem);
  }

  .lp-pro-scope-list {
    grid-template-columns:
      1fr;
  }

  .lp-pro-scope-item {
    min-height:
      220px;

    padding:
      24px 22px;
  }

  .lp-pro-scope-item__title {
    left:
      22px;

    right:
      22px;

    bottom:
      22px;

    font-size:
      clamp(1.8rem, 8vw, 3rem);
  }


  /* =======================================================
     TIMELINE
     ======================================================= */

  .lp-pro-timeline {
    padding:
      100px 20px;
  }

  .lp-pro-timeline__title {
    font-size:
      clamp(2.8rem, 11vw, 5rem);
  }

  .lp-pro-timeline__duration {
    font-size:
      clamp(4rem, 17vw, 7rem);
  }


  /* =======================================================
     RELATED
     ======================================================= */

  .lp-pro-related {
    padding:
      100px 20px;
  }

  .lp-pro-related__link {
    grid-template-columns:
      34px
      minmax(0, 1fr)
      48px;

    gap:
      14px;

    min-height:
      150px;
  }

  .lp-pro-related__title {
    font-size:
      clamp(2.4rem, 10vw, 4.5rem);
  }

  .lp-pro-related__arrow {
    width:
      48px;

    height:
      48px;
  }


  /* =======================================================
     CTA
     ======================================================= */

  .lp-pro-cta {
    min-height:
      75vh;

    padding:
      100px 20px;
  }

  .lp-pro-cta::before {
    width:
      125vw;

    height:
      125vw;

    right:
      -45%;

    top:
      5%;
  }

  .lp-pro-cta__top {
    flex-direction:
      column;

    gap:
      24px;

    margin-bottom:
      80px;
  }

  .lp-pro-cta__main {
    align-items:
      flex-start;

    flex-direction:
      column;

    gap:
      45px;
  }

  .lp-pro-cta__title {
    font-size:
      clamp(3.5rem, 15vw, 6.5rem);
  }

  .lp-pro-cta__action {
    width:
      90px;

    height:
      90px;
  }

}


/* =========================================================
   04. SMALL MOBILE
   <= 560px
   ========================================================= */

@media (max-width: 560px) {

  /* =======================================================
     HERO
     ======================================================= */

  .lp-pro-hero {
    padding:
      75px 16px 65px;
  }

  .lp-pro-hero__meta {
    font-size:
      0.78rem;
  }

  .lp-pro-hero__composition {
    min-height:
      640px;

    margin-top:
      65px;
  }

  .lp-pro-hero__title {
    font-size:
      clamp(2.9rem, 14vw, 4.8rem);
  }

  .lp-pro-hero__title .indent {
    padding-left:
      22px;
  }

  .lp-pro-hero__visual {
    right:
      -16px;

    width:
      90vw;
  }

  .lp-pro-hero__float {
    width:
      210px;

    padding:
      18px;
  }

  .lp-pro-hero__float-label {
    margin-bottom:
      32px;

    font-size:
      0.56rem;
  }

  .lp-pro-hero__float-copy {
    font-size:
      1.1rem;
  }

  .lp-pro-hero__bottom {
    margin-top:
      65px;
  }

  .lp-pro-hero__copy {
    font-size:
      0.82rem;
  }


  /* =======================================================
     MARQUEE
     ======================================================= */

  .lp-pro-marquee {
    padding:
      38px 0;
  }

  .lp-pro-marquee__word {
    font-size:
      clamp(2.3rem, 12vw, 4rem);
  }

  .lp-pro-marquee__word::after {
    margin:
      0 28px;
  }


  /* =======================================================
     INTRO
     ======================================================= */

  .lp-pro-intro {
    padding:
      80px 16px;
  }

  .lp-pro-intro__title {
    font-size:
      clamp(2.5rem, 12vw, 4.4rem);
  }

  .lp-pro-intro__copy {
    margin-top:
      42px;
  }

  .lp-pro-intro__copy p {
    font-size:
      0.84rem;
  }


  /* =======================================================
     STORY
     ======================================================= */

  .lp-pro-story {
    padding:
      80px 16px;
  }

  .lp-pro-story__header {
    margin-bottom:
      48px;
  }

  .lp-pro-story__title {
    font-size:
      clamp(2.5rem, 12vw, 4.4rem);
  }

  .lp-pro-story__copy {
    font-size:
      0.82rem;
  }

  .lp-pro-gallery {
    row-gap:
      55px;
  }

  .lp-pro-gallery__item--two,
  .lp-pro-gallery__item--three {
    width:
      90%;
  }

  .lp-pro-gallery__item--four {
    width:
      100%;
  }


  /* =======================================================
     EXPERIENCE
     ======================================================= */

  .lp-pro-experience {
    padding:
      80px 16px;
  }

  .lp-pro-experience__header {
    margin-bottom:
      48px;
  }

  .lp-pro-experience__title {
    font-size:
      clamp(2.5rem, 12vw, 4.4rem);
  }

  .lp-pro-experience__copy {
    font-size:
      0.82rem;
  }

  .lp-pro-experience-item {
    grid-template-columns:
      26px
      minmax(0, 1fr);

    gap:
      8px 14px;

    padding:
      30px 0;
  }

  .lp-pro-experience-item__title {
    font-size:
      clamp(1.7rem, 8vw, 2.7rem);
  }

  .lp-pro-experience-item__description {
    font-size:
      0.82rem;
  }


  /* =======================================================
     NARRATIVE
     ======================================================= */

  .lp-pro-narrative {
    padding:
      80px 16px;
  }

  .lp-pro-narrative__chapter {
    padding:
      65px 0;
  }

  .lp-pro-narrative__number {
    margin-bottom:
      38px;
  }

  .lp-pro-narrative__title {
    font-size:
      clamp(2.5rem, 12vw, 4.4rem);
  }

  .lp-pro-narrative__description {
    font-size:
      0.84rem;
  }


  /* =======================================================
     MOTION
     ======================================================= */

  .lp-pro-motion {
    min-height:
      65vh;

    padding:
      80px 16px;
  }

  .lp-pro-motion__word {
    font-size:
      clamp(7rem, 48vw, 15rem);
  }

  .lp-pro-motion__title {
    font-size:
      clamp(2.8rem, 13vw, 5rem);
  }

  .lp-pro-motion__copy {
    font-size:
      0.84rem;
  }


  /* =======================================================
     SCOPE
     ======================================================= */

  .lp-pro-scope {
    padding:
      80px 16px;
  }

  .lp-pro-scope__header {
    margin-bottom:
      48px;
  }

  .lp-pro-scope__title {
    font-size:
      clamp(2.5rem, 12vw, 4.4rem);
  }

  .lp-pro-scope__copy {
    font-size:
      0.82rem;
  }

  .lp-pro-scope-item {
    min-height:
      190px;

    padding:
      20px 18px;
  }

  .lp-pro-scope-item__title {
    left:
      18px;

    right:
      18px;

    bottom:
      18px;

    font-size:
      clamp(1.6rem, 8vw, 2.6rem);
  }


  /* =======================================================
     TIMELINE
     ======================================================= */

  .lp-pro-timeline {
    padding:
      80px 16px;
  }

  .lp-pro-timeline__grid {
    gap:
      45px;
  }

  .lp-pro-timeline__title {
    font-size:
      clamp(2.5rem, 12vw, 4.4rem);
  }

  .lp-pro-timeline__duration {
    font-size:
      clamp(3.8rem, 18vw, 6rem);
  }

  .lp-pro-timeline__copy {
    font-size:
      0.82rem;
  }


  /* =======================================================
     RELATED
     ======================================================= */

  .lp-pro-related {
    padding:
      80px 16px;
  }

  .lp-pro-related__link {
    grid-template-columns:
      24px
      minmax(0, 1fr)
      42px;

    min-height:
      130px;
  }

  .lp-pro-related__title {
    font-size:
      clamp(2rem, 10vw, 3.5rem);
  }

  .lp-pro-related__arrow {
    width:
      42px;

    height:
      42px;
  }


  /* =======================================================
     CTA
     ======================================================= */

  .lp-pro-cta {
    min-height:
      70vh;

    padding:
      80px 16px;
  }

  .lp-pro-cta__top {
    margin-bottom:
      65px;
  }

  .lp-pro-cta__copy {
    font-size:
      0.78rem;
  }

  .lp-pro-cta__title {
    font-size:
      clamp(3rem, 15vw, 5rem);
  }

  .lp-pro-cta__action {
    width:
      78px;

    height:
      78px;
  }

}


/* =========================================================
   05. TOUCH DEVICES
   ========================================================= */

@media (hover: none) and (pointer: coarse) {

  .lp-pro-experience-item.is-muted {
    opacity:
      1;
  }

  .lp-pro-experience-item.is-active
  .lp-pro-experience-item__title {
    color:
      #ffffff;

    transform:
      none;
  }

  .lp-pro-scope-item:hover {
    background:
      transparent;
  }

  .lp-pro-scope-item:hover
  .lp-pro-scope-item__title {
    color:
      var(--text-heading);

    transform:
      none;
  }

  .lp-pro-related__link:hover
  .lp-pro-related__title {
    color:
      var(--text-heading);

    transform:
      none;
  }

  .lp-pro-related__link:hover
  .lp-pro-related__arrow {
    color:
      var(--text-heading);

    background:
      transparent;

    border-color:
      var(--line);

    transform:
      none;
  }

}


/* =========================================================
   06. LANDSCAPE MOBILE
   ========================================================= */

@media (
  max-width: 900px
) and (
  max-height: 520px
) and (
  orientation: landscape
) {

  .lp-pro-hero {
    padding-top:
      80px;
  }

  .lp-pro-hero__composition {
    min-height:
      620px;
  }

  .lp-pro-hero__title {
    font-size:
      clamp(3rem, 9vw, 5rem);
  }

  .lp-pro-motion {
    min-height:
      620px;
  }

}