/* ─── IMPORT SHARED STYLES FROM PAGE 1 ─────────────────────────────────────
   All nav, dropdown, reveal, footer, tokens, and reset rules live in
   main.css. Page2-specific sections are defined below.
──────────────────────────────────────────────────────────────────────────── */
@import url('../main.css');


/* ─── TEXT SCALE ─────────────────────────────────────────────────────────────
   Change --text-scale to resize all body text on page 2 at once.
   1.0 = base size, 1.2 = 20% larger, 0.8 = 20% smaller, etc.
──────────────────────────────────────────────────────────────────────────── */
:root {
  --text-scale: 1.2;
  --text-size: calc(16px * var(--text-scale));
  --color-white: #FFFFFF;
  font-weight: 700;

}


/* ─── PAGE 2 OVERRIDES ───────────────────────────────────────────────────── */
.dropdown-link {
  color: gray;
}

.dropdown.scrolled .dropdown-link {
  color: var(--color-white);
}

.nav-menu-btn {
  color: #5d5d5d;
   transition: color 0.45s ease;
}

nav.scrolled .nav-menu-btn {
  color: var(--color-white);
}

.bar {
  background: #5d5d5d;
}

nav.scrolled .bar {
  background: var(--color-white);
}

.hero {
  scroll-snap-align: none;
}

html {
  scroll-snap-type: none;
}

.reveal,
.reveal-slow {
  opacity: 1;
  transform: none;
  transition: none;
}

/* ─── SECTION 1 ──────────────────────────────────────────────────────────── */

.s1 {
  position: relative;
  width: 100%;
  height: 97svh;
  min-height: 600px;
  overflow: hidden;
  display: flex;
  align-items: center;
  scroll-snap-align: start;
  scroll-snap-stop: always;
  background:
    linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0)),
    linear-gradient(
      to bottom,
      #d3d1d1 0%,
      #FDFDFD 0%,
      #335E86 100%
    );
  /*background-color: green;*/
}

.s1-image {
  position: absolute;
  top: 42%;
  right: 32px;
  transform: translateY(-50%);

  -webkit-mask-image: radial-gradient(
    circle at bottom left,
    transparent 0%,
    black 40%
  );
  mask-image: radial-gradient(
    circle at bottom left,
    transparent 0%,
    black 40%
  );
}


.s1-image img {
  width: 60vw;
  height: auto;
  display: block;
 
}

.s1-image::before {
  content: '';
  position: absolute;
  inset: 0;
  /*
  background: linear-gradient(
    to right,
    rgba(10, 10, 10, 0.6) 0%,
    transparent 40%
  );
  */
  z-index: 1;
}

.s1-text {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 28px;
  padding: 0 0 10px 15px;
  max-width: 52%;
  padding-top: 0vh;
  top: 18vh;
  left: 8vh;
  
  
}



.s1-p {
  font-family: var(--font-display);
  font-size: var(--text-size);
  
  line-height: 1.85;
  letter-spacing: 0.05em;
  color: var(--color-white);
  filter: brightness(0.9);
  text-align: left;
}


/* ─── SECTION 2 ──────────────────────────────────────────────────────────── */

.s2 {
  position: relative;
  width: 100%;
  height: 100svh;
  min-height: 600px;
  overflow: clip;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  background: linear-gradient(
    to bottom,
    #335E86 0%,
    #335E86 50%,
    #13293C 50%,
    #13293C 100%
  );
  /*background-color: #335E86;*/
}

.s2::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url('../assets/images/mountains.jpg') center center / cover no-repeat;
  /*mask-image: linear-gradient(0deg,black 70%,transparent 100%);*/
    mask-image: linear-gradient(
    to bottom,
    transparent 0%,
    black 15%,
    black 70%,
    transparent 100%
  );
  -webkit-mask-image: linear-gradient(
    to bottom,
    transparent 0%,
    black 15%,
    black 70%,
    transparent 100%
  );
  
  z-index: 0;
}

.s2-text {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 28px;
  padding: 0 .5% 2vh;
  max-width: 900px;
  text-align: center;
  
  /*background-color: gray;*/
 }

.s2-p {
  font-family: var(--font-display);
  font-size: var(--text-size);
  line-height: 1.85;
  letter-spacing: 0.05em;
  color: var(--color-white);
  filter: brightness(0.9);
  text-align: center;
}


/* ─── SECTION 3 ──────────────────────────────────────────────────────────── */

.s3 {
  position: relative;
  width: 100%;
  height: 100svh;
  min-height: 600px;
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  background:
    linear-gradient(
      to bottom,
      #13293C 0%,
      #C5C3CE 100%
    );
}



.s3-image {
  position: absolute;
  bottom: 32px;
  left: 32px;
   z-index: 2;
  transform: scaleX(-1);
}

.s3-image img {
  width: 50vw;
  height: auto;
  display: block;
    -webkit-mask-image: linear-gradient(to left, black 60%, transparent 100%);
  mask-image: linear-gradient(to left, black 60%, transparent 100%);
}



.s3-image::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to left,
    rgba(10, 10, 10, 0.5) 0%,
    transparent 0%
  );
  z-index: 1;
}

.s3-text {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 28px;
  padding: 0vh 12% 0 1%;
  max-width: 65%;
  text-align: left;
  /*margin-left: 0px;*/
  margin-top: 30vh;
 left: 130px;
  /*
  left: 80px;
  top: 44vh;
  */

}

.s3-p {
  font-family: var(--font-display);
  font-size: var(--text-size);
  line-height: 1.85;
  letter-spacing: 0.05em;
  color: var(--color-white);
  /*color: #1a1a1a;*/
  filter: brightness(0.9);
  text-align: left;
  padding-right: 12px;
  padding-top: 8px;
  
  /*background-color: gray;*/
}


/* ─── SECTION 4 ──────────────────────────────────────────────────────────── */

.s4 {
  position: relative;
  width: 100%;
  height: 100svh;
  min-height: 600px;
 /*display: flex;*/
  /*align-items: center;*/
  /*justify-content: center;*/
  background-color: #C5C3CE;
}

.s4::before {
  content: '';
  position: absolute;
  inset: -40px;
 background: url('../assets/images/quoteV1.jpg') 70% center / cover no-repeat;
  background-position: -200px 0px;
   mask-image: linear-gradient(0deg,black 70%,transparent 100%);
    z-index: 0;
}

.s4-text {
  position: absolute;
  inset: 0;
  z-index: 2;
 width: 50%;
   margin: 0 auto;
  text-align: center;
  top: 15vh;
}

.s4-p1 {
  position: relative;
  /*background-color: gray;*/
  width: 100%;
  margin: 0 auto;
  text-align: center;
  /*
  left: 250px;
  top: 100px;
  */
  
}

.s4-p1
 {
  font-family: var(--font-display);
  font-size: var(--text-size);
  line-height: 1.85;
  letter-spacing: 0.05em;
  color: #1a1a1a;
  filter: none;
  text-align: center;
}

/* ─── SECTION 5 ──────────────────────────────────────────────────────────── */

.s5 {
  position: relative;
  width: 100%;
  height: 100svh;
  min-height: 600px;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  scroll-snap-align: start;
  scroll-snap-stop: always;
}

.s5::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url('../assets/images/beachPhoto.jpg') center center / cover no-repeat;
  filter: brightness(0.3) blur(4px);
  z-index: 0;
}

.s5-text {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 28px;
  padding: 0 0% 10px 15px;
  text-align: left;
  top: -300px;
  width: fit-content;
  max-width: 100%;
   
  
}

.s5-p {
  font-family: var(--font-display);
  font-size: var(--text-size);
  line-height: 1.85;
  letter-spacing: 0.05em;
  color: var(--color-white);
  filter: brightness(0.9);
  text-align: left;
 
}

.s5-cta-wrap {
  display: flex;
  position: absolute;
  justify-content: center;
  padding-top: 8px;
  top: 550px;
}

.s5-cta {
  display: inline-block;
  font-family: var(--font-display);
  font-size: 10px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--color-bg);
  background: var(--color-white);
  text-decoration: none;
  border-radius: 999px;
  padding: 14px 38px;
  transition:
    background 0.35s ease,
    color      0.35s ease,
    transform  0.25s ease;
}

.s5-cta:hover {
  background: var(--color-accent);
  color: var(--color-bg);
  transform: translateY(-2px);
}

/* SIDE SCROLLING _----------------------------------------------- */

.s1-text {
  animation: slideFromLeft 1.2s cubic-bezier(0.22, 0.6, 0.36, 1) 0.4s both;
}

.s4 {
  view-timeline: --s4-view block;
}

.s5 {
  view-timeline: --s5-view block;
}


@supports (animation-timeline: scroll()) {



  /* S2 text — slides in from the right */
  .s2-text {
    animation: slideFromBottom linear both;
    animation-timeline: scroll();
    animation-range: entry 7% entry 27%;
  }

  /* S3 text — slides in from the right */
  .s3-text {
    animation: slideFromRight linear both;
    animation-timeline: scroll();
    animation-range: entry 30% entry 45%;
  }

  /* S4 text — slides in from the left */
  
.s4-p1 {
  animation: slideFromLeft linear both;
  animation-timeline: --s4-view;
  animation-range: entry 0% cover 30%;
}
 

  /* S5 text — slides in from the left */
  .s5-text {
    animation: slideFromBottom linear both;
    animation-timeline: --s5-view;
    animation-range: entry 0% cover 40%;
  }

  @keyframes slideFromLeft {
    from {
      opacity: 0;
      transform: translateX(-80px);
    }
    to {
      opacity: 1;
      transform: translateX(0);
    }
  }

  @keyframes slideFromRight {
    from {
      opacity: 0;
      transform: translateX(80px);
    }
    to {
      opacity: 1;
      transform: translateX(0);
    }
  }
  
    @keyframes slideFromBottom {
    from {
      opacity: 0;
      transform: translateY(80px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
}

/* ─── CORNER LINES ───────────────────────────────────────────────────────── */

:root {
  --corner-size: 80px;
  --corner-color: rgba(245, 242, 237, 0.6);
  --corner-width: 2px;
}

/*
[class*="corner-"] {
  position: relative;
}

[class*="corner-"]::before {
  content: '';
  position: absolute;
  width: var(--corner-size);
  height: var(--corner-size);
  pointer-events: none;
}
*/

/* Bottom-left L */
/*
.corner-bl::before {
  bottom: 0;
  left: 0;
  border-left: var(--corner-width) solid var(--corner-color);
  border-bottom: var(--corner-width) solid var(--corner-color);
}
*/

/* Bottom-right L */
/*
.corner-br::before {
  bottom: 0;
  right: 0;
  border-right: var(--corner-width) solid var(--corner-color);
  border-bottom: var(--corner-width) solid var(--corner-color);
}
*/

/* Top-left L */
/*
.corner-tl::before {
  top: 0;
  left: 0;
  border-left: var(--corner-width) solid var(--corner-color);
  border-top: var(--corner-width) solid var(--corner-color);
}
*/

/* Top-right L */
/*
.corner-tr::before {
  top: 0;
  right: 0;
  border-right: var(--corner-width) solid var(--corner-color);
  border-top: var(--corner-width) solid var(--corner-color);
}
*/



/* ─── FOOTER ─────────────────────────────────────────────────────────────── */

.site-footer {
  position: relative;
  z-index: 10;
  scroll-snap-align: none;
 display: flex;
}
.footer-left {
  margin: auto;
}


/* ─── RESPONSIVE ─────────────────────────────────────────────────────────── */

@media (max-width: 768px) {

  /* ── Nav: hamburger icon, smaller logo ── */
  nav {
    padding: 0 20px;
  }

  .nav-logo img {
    height: 22px;
  }

  .hamburger-label {
    display: none;
  }

  .hamburger-icon {
    display: flex;
  }

  .dropdown {
    width: 100vw;
    border-right: none;
    padding: 32px 24px 32px 32px;
  }

  /* ── Section 1 ──
     Stack: text on top, image underneath, both centered */
  .s1 {
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    height: auto;
    min-height: 100svh;
    padding: calc(var(--nav-height) + 32px) 24px 40px;
  }

  .s1-text {
    position: static;
    top: auto;
    left: auto;
    max-width: 100%;
    padding: 0;
    gap: 20px;
    text-align: center;
    animation: none;
    margin-top: 60px;
  }

  .s1-p {
    text-align: center;
    font-size: clamp(14px, 4vw, 18px);
  }

  .s1-image {
    position: static;
    top: auto;
    right: auto;
    transform: none;
    width: 100%;
    margin-top: 15px;
  }

  .s1-image img {
    width: 100%;
    max-height: 50vh;
    object-fit: cover;
  }

  .s1-image::before {
    background: linear-gradient(
      to bottom,
      rgba(10,10,10,0.4) 0%,
      transparent 50%
    );
  }

  /* ── Section 2 ──
     Already centered text; just fix height and padding */
  .s2 {
    height: auto;
    min-height: 100svh;
    align-items: center;
    padding: 60px 28px;
  }
  
  .s2::before {
   background-size: 140% 100%;
  }

  .s2-text {
    padding: 0;
    max-width: 100%;
    gap: 20px;
    animation: none;
    margin-top: 500px;
  }

  .s2-p {
    font-size: clamp(14px, 4vw, 18px);
  }

  /* ── Section 3 ──
     Stack: text on top centered, image underneath */
  .s3 {
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    height: auto;
    min-height: 100svh;
    padding: calc(var(--nav-height) + 32px) 24px 40px;
  }

  .s3-text {
    position: static;
    top: auto;
    left: auto;
    margin-top: 0;
    max-width: 100%;
    padding: 0;
    gap: 20px;
    text-align: center;
    animation: none;
    margin-top: 30px;
  }

  .s3-p {
    font-size: clamp(14px, 4vw, 18px);
    text-align: center;
    padding-right: 0;
    padding-top: 0;
    
  }
  
  .s3 .s3-p:nth-child(1) { color: #000000; }
  .s3 .s3-p:nth-child(2) { color: #000000; }
  .s3 .s3-p:nth-child(3) { color: #000000; }
  
  .s3-image {
    position: static;
    bottom: auto;
    left: auto;
    margin-top: -80px;
    width: 100%;
  }

  .s3-image img {
    width: 100%;
    max-height: 50vh;
    object-fit: cover;
  }

  .s3-image::after {
    background: linear-gradient(
      to bottom,
      rgba(10,10,10,0.3) 0%,
      transparent 50%
    );
  }

  /* ── Section 4 ──
     Full-width centered text, less top offset */
  .s4 {
    height: auto;
    min-height: 100svh;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  
  .s4::before {
    background-position: -330px 0px;
  }

  .s4-text {
    position: static;
    width: 90%;
    top: auto;
    margin: 60px auto;
    text-align: center;
    margin-top: -290px;
    margin-left: 30px;
  }

  .s4-p1 {
    font-size: clamp(14px, 4vw, 18px);
    text-align: center;
    animation: none;
  }

  /* ── Section 5 ──
     Stack text centered, CTA below */
  .s5 {
  height: auto;
  min-height: 100svh;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 80px 24px 60px;
}
  .s5-text {
    position: static;
    margin-top: -150px;
    max-width: 100%;
    padding: 0;
    gap: 20px;
    text-align: center;
    animation: none;
  }

  .s5-p {
    font-size: clamp(14px, 4vw, 18px);
    text-align: center;
  }

  .s5-cta-wrap {
    position: static;
    top: auto;
    margin-top: 36px;
    justify-content: center;
  }

}
