/* ======================================================
   TWILIGHT RESORT
   CABINS OVERVIEW
   CLEAN FINAL V2
====================================================== */


/* ======================================================
   OWNERREZ PAGE RESET
====================================================== */

html:has(.tr-cabins-page)
#content.container{
  width:100%!important;
  max-width:none!important;

  margin:0!important;

  background:#F5F3E8!important;
}

/* Header spacing is handled globally */


html:has(.tr-cabins-page)
#content > .body-content{
  width:100%!important;
  max-width:none!important;

  margin:0!important;
  padding:0!important;

  background:#F5F3E8!important;
  color:#292B27!important;
}


html:has(.tr-cabins-page)
#content > .body-content > .row:first-child{
  display:none!important;
}


/* ======================================================
   BASE
====================================================== */

.tr-cabins-page{
  width:100%;

  margin:0;
  padding:0;

  background:#F5F3E8;
  color:#292B27;

  font-family:'Alone Kaium',Arial,sans-serif;
}


.tr-cabins-page *,
.tr-cabins-page *::before,
.tr-cabins-page *::after{
  box-sizing:border-box;
}


.tr-cabins-page img{
  display:block;
}


.tr-cabins-page h1,
.tr-cabins-page h2,
.tr-cabins-page h3{
  margin:0!important;
  padding:0!important;

  font-family:'Sora',Arial,sans-serif!important;

  font-weight:600!important;

  letter-spacing:-.035em!important;
}


.tr-cabins-page p{
  margin:0;
}


.tr-cabins-inner{
  width:calc(100% - 96px);
  max-width:1320px;

  margin:0 auto;
}


/* ======================================================
   EYEBROW
====================================================== */

.tr-cabins-kicker{
  margin:0 0 14px;

  color:#B79A62;

  font-family:'Sora',Arial,sans-serif!important;

  font-size:11px;

  font-weight:600;

  line-height:1.3;

  letter-spacing:.17em;

  text-transform:uppercase;
}


.tr-cabins-kicker-light{
  color:#CDBA8C;
}


/* ======================================================
   HERO
====================================================== */

.tr-cabins-hero{
  position:relative;

  width:calc(100% - 48px);
  max-width:1480px;

  height:610px;

  margin:24px auto 0;

  overflow:hidden;

  border-radius:30px;

  background:#171714;
}


.tr-cabins-hero-image{
  position:absolute;

  inset:0;

  width:100%!important;
  height:100%!important;

  max-width:none!important;

  object-fit:cover!important;
  object-position:center!important;
}


.tr-cabins-hero-shade{
  position:absolute;

  inset:0;

  z-index:1;

  background:
    linear-gradient(
      90deg,
      rgba(10,22,17,.90) 0%,
      rgba(10,22,17,.73) 34%,
      rgba(10,22,17,.42) 57%,
      rgba(10,22,17,.14) 100%
    );
}


.tr-cabins-hero-content{
  position:absolute;

  z-index:2;

  left:max(48px,calc((100% - 1320px) / 2));
  bottom:64px;

  width:min(650px,calc(100% - 96px));
}


html:has(.tr-cabins-page)
#content
.tr-cabins-page
.tr-cabins-hero
h1{
  max-width:630px;

  color:#FFFFFF!important;
  -webkit-text-fill-color:#FFFFFF!important;

  font-size:clamp(52px,5vw,76px)!important;

  line-height:1.01!important;

  letter-spacing:-.045em!important;
}


.tr-cabins-hero p{
  max-width:590px;

  margin-top:20px;

  color:rgba(255,255,255,.88)!important;

  font-size:19px;

  line-height:1.62;
}


.tr-cabins-hero-link{
  display:inline-flex;

  align-items:center;

  gap:12px;

  margin-top:28px;

  color:#FFFFFF!important;

  font-family:'Sora',Arial,sans-serif!important;

  font-size:12px;

  font-weight:600;

  text-decoration:none!important;
}


.tr-cabins-hero-link span{
  color:#B79A62!important;

  font-size:18px;
}


/* ======================================================
   INTRO
====================================================== */

.tr-cabins-intro{
  padding:92px 0 84px;
}


.tr-cabins-intro-layout{
  display:grid;

  grid-template-columns:
    minmax(0,.92fr)
    minmax(0,1.08fr);

  gap:110px;
}


html:has(.tr-cabins-page)
#content
.tr-cabins-page
.tr-cabins-intro
h2{
  max-width:560px;

  color:#173329!important;

  font-size:clamp(40px,4vw,58px)!important;

  line-height:1.08!important;
}


.tr-cabins-intro-text{
  max-width:610px;

  padding-top:27px;
}


.tr-cabins-intro-text p{
  color:#555B54;

  font-size:18px;

  line-height:1.72;
}


.tr-cabins-intro-text p + p{
  margin-top:16px;
}


/* ======================================================
   COLLECTION
====================================================== */

.tr-cabins-collection{
  width:calc(100% - 48px);
  max-width:1480px;

  margin:0 auto;

  padding:76px 0 80px;

  border:1px solid #E8E3D6;
  border-radius:30px;

  background:#FAF8F1;
}


.tr-cabins-heading-row{
  display:flex;

  justify-content:space-between;
  align-items:flex-end;

  gap:50px;

  margin-bottom:38px;
}


html:has(.tr-cabins-page)
#content
.tr-cabins-page
.tr-cabins-heading-row
h2{
  color:#173329!important;

  font-size:clamp(38px,3.6vw,54px)!important;

  line-height:1.08!important;
}


.tr-cabins-heading-row > p{
  padding-bottom:5px;

  color:#6B7068;

  font-size:16px;

  line-height:1.5;
}


/* ======================================================
   CARD GRID
====================================================== */

.tr-cabins-grid{
  display:flex;

  flex-wrap:wrap;

  justify-content:center;

  gap:22px;
}


.tr-cabin-card{
  flex:0 0 calc(25% - 17px);

  min-width:0;

  overflow:hidden;

  border:1px solid #DDD9CC;
  border-radius:18px;

  background:#F5F3E8;

  transition:
    border-color .22s ease,
    transform .22s ease;
}


.tr-cabin-card:hover{
  border-color:#CFC9B9;

  transform:translateY(-2px);
}


/* ======================================================
   PHOTO
   RATIO APPLIED DIRECTLY TO IMAGE
   NO EMPTY STRIP
====================================================== */

.tr-cabin-photo{
  display:block!important;

  width:100%!important;

  margin:0!important;
  padding:0!important;

  overflow:hidden!important;

  background:#DDD9CC;

  line-height:0!important;

  text-decoration:none!important;
}


.tr-cabin-photo img{
  display:block!important;

  width:100%!important;
  height:auto!important;

  aspect-ratio:4 / 3!important;

  margin:0!important;
  padding:0!important;

  object-fit:cover!important;

  vertical-align:top!important;

  transition:transform .45s ease;
}


.tr-cabin-card:hover
.tr-cabin-photo img{
  transform:scale(1.025);
}


/* ======================================================
   COMPACT CARD DETAILS
====================================================== */

.tr-cabin-info{
  position:relative;

  display:block;

  min-height:128px;

  padding:18px 64px 17px 20px;
}


.tr-cabin-number{
  display:block;

  margin-bottom:5px;

  color:#B79A62;

  font-family:'Sora',Arial,sans-serif!important;

  font-size:9px;

  font-weight:600;

  line-height:1;

  letter-spacing:.14em;
}


html:has(.tr-cabins-page)
#content
.tr-cabins-page
.tr-cabin-info
h3{
  color:#173329!important;

  font-size:20px!important;

  line-height:1.1!important;
}


.tr-cabin-meta{
  display:flex;

  align-items:center;

  gap:4px;

  margin-top:9px;

  color:#62675F;

  font-size:11px;

  line-height:1.4;

  white-space:nowrap;
}


.tr-cabin-meta i,
.tr-cabin-features i{
  color:#B79A62;

  font-style:normal;
}


.tr-cabin-features{
  display:flex;

  align-items:center;

  gap:5px;

  margin-top:5px;

  color:#173329;

  font-family:'Sora',Arial,sans-serif!important;

  font-size:9.5px;

  font-weight:500;

  line-height:1.35;

  white-space:nowrap;
}


/* ======================================================
   SVG ARROW
====================================================== */

.tr-cabin-arrow{
  position:absolute;

  top:24px;
  right:18px;

  display:flex;

  align-items:center;
  justify-content:center;

  width:40px;
  height:40px;

  padding:0;

  border:1px solid #173329;
  border-radius:50%;

  background:transparent;

  color:#173329!important;

  text-decoration:none!important;

  transition:
    background-color .22s ease,
    border-color .22s ease,
    color .22s ease;
}


.tr-cabin-arrow svg{
  width:18px;
  height:18px;

  fill:none;

  stroke:currentColor;

  stroke-width:1.6;

  stroke-linecap:round;
  stroke-linejoin:round;
}


.tr-cabin-arrow:hover,
.tr-cabin-arrow:focus{
  background:#173329;

  color:#FFFFFF!important;

  text-decoration:none!important;
}


/* ======================================================
   CTA
====================================================== */

.tr-cabins-cta{
  width:calc(100% - 48px);
  max-width:1480px;

  margin:28px auto 48px;

  padding:64px 0;

  border-radius:30px;

  background:#173329;
}


.tr-cabins-cta-inner{
  display:flex;

  align-items:center;
  justify-content:space-between;

  gap:70px;
}


.tr-cabins-cta-inner > div:first-child{
  max-width:670px;
}


html:has(.tr-cabins-page)
#content
.tr-cabins-page
.tr-cabins-cta
h2{
  color:#FFFFFF!important;
  -webkit-text-fill-color:#FFFFFF!important;

  font-size:clamp(38px,3.8vw,56px)!important;

  line-height:1.08!important;
}


.tr-cabins-cta p{
  max-width:610px;

  margin-top:16px;

  color:rgba(255,255,255,.78)!important;

  font-size:17px;

  line-height:1.65;
}


.tr-cabins-cta-buttons{
  display:flex;

  flex-wrap:wrap;

  gap:10px;
}


.tr-cabins-btn-primary,
.tr-cabins-btn-outline{
  display:inline-flex;

  align-items:center;
  justify-content:center;

  min-height:50px;

  padding:0 23px;

  border-radius:999px;

  font-family:'Sora',Arial,sans-serif!important;

  font-size:12px;

  font-weight:600;

  text-decoration:none!important;
}


.tr-cabins-btn-primary{
  border:1px solid #B79A62;

  background:#B79A62;

  color:#171714!important;
}


.tr-cabins-btn-outline{
  border:1px solid rgba(255,255,255,.38);

  background:transparent;

  color:#FFFFFF!important;
}


/* ======================================================
   TABLET
====================================================== */

@media(max-width:1100px){

  .tr-cabins-inner{
    width:calc(100% - 64px);
  }


  .tr-cabins-hero,
  .tr-cabins-collection,
  .tr-cabins-cta{
    width:calc(100% - 32px);
  }


  .tr-cabins-intro-layout{
    gap:60px;
  }


  .tr-cabin-card{
    flex-basis:calc(33.333% - 15px);
  }


  .tr-cabin-meta{
    white-space:normal;
    flex-wrap:wrap;
  }


  .tr-cabins-cta-inner{
    flex-direction:column;

    align-items:flex-start;

    gap:30px;
  }

}


/* ======================================================
   MOBILE
====================================================== */

@media(max-width:760px){

  .tr-cabins-inner{
    width:calc(100% - 40px);
  }


  .tr-cabins-hero,
  .tr-cabins-collection,
  .tr-cabins-cta{
    width:calc(100% - 20px);

    border-radius:22px;
  }


  /* HERO
     Header offset is handled by Global CSS.
     Keep the same 10px mobile hero gap used by the other custom pages.
  */

  .tr-cabins-hero{
    height:480px;

    margin-top:10px;
  }


  .tr-cabins-hero-image{
    object-position:center 40%!important;
  }


  .tr-cabins-hero-shade{
    background:
      linear-gradient(
        0deg,
        rgba(7,20,15,.94) 0%,
        rgba(7,20,15,.72) 48%,
        rgba(7,20,15,.28) 76%,
        rgba(7,20,15,.06) 100%
      );
  }


  .tr-cabins-hero-content{
    left:24px;
    bottom:30px;

    width:calc(100% - 48px);
  }


  html:has(.tr-cabins-page)
  #content
  .tr-cabins-page
  .tr-cabins-hero
  h1{
    font-size:42px!important;

    line-height:1.03!important;
  }


  .tr-cabins-hero p{
    margin-top:15px;

    font-size:15.5px;

    line-height:1.55;
  }


  .tr-cabins-hero-link{
    margin-top:20px;
  }


  /* INTRO */

  .tr-cabins-intro{
    padding:58px 0 54px;
  }


  .tr-cabins-intro-layout{
    grid-template-columns:1fr;

    gap:25px;
  }


  html:has(.tr-cabins-page)
  #content
  .tr-cabins-page
  .tr-cabins-intro
  h2{
    font-size:37px!important;
  }


  .tr-cabins-intro-text{
    padding-top:0;
  }


  .tr-cabins-intro-text p{
    font-size:16px;
  }


  /* COLLECTION */

  .tr-cabins-collection{
    padding:50px 0 54px;
  }


  .tr-cabins-heading-row{
    flex-direction:column;

    align-items:flex-start;

    gap:10px;

    margin-bottom:27px;
  }


  html:has(.tr-cabins-page)
  #content
  .tr-cabins-page
  .tr-cabins-heading-row
  h2{
    font-size:37px!important;
  }


  .tr-cabin-card{
    flex-basis:calc(50% - 9px);
  }


  .tr-cabin-info{
    min-height:126px;

    padding:16px 56px 15px 16px;
  }


  .tr-cabin-meta{
    margin-top:8px;

    font-size:10.5px;

    white-space:normal;

    flex-wrap:wrap;
  }


  .tr-cabin-features{
    font-size:9px;

    white-space:normal;

    flex-wrap:wrap;
  }


  .tr-cabin-arrow{
    top:20px;
    right:14px;

    width:36px;
    height:36px;
  }


  .tr-cabin-arrow svg{
    width:16px;
    height:16px;
  }


  /* CTA */

  .tr-cabins-cta{
    margin-bottom:20px;

    padding:50px 0;
  }


  .tr-cabins-cta-buttons{
    width:100%;

    flex-direction:column;
  }


  .tr-cabins-btn-primary,
  .tr-cabins-btn-outline{
    width:100%;
  }

}


/* ======================================================
   SMALL MOBILE
====================================================== */

@media(max-width:480px){

  .tr-cabins-inner{
    width:calc(100% - 28px);
  }


  .tr-cabins-hero{
    height:460px;
  }


  html:has(.tr-cabins-page)
  #content
  .tr-cabins-page
  .tr-cabins-hero
  h1{
    font-size:37px!important;
  }


  .tr-cabin-card{
    flex-basis:100%;
  }


  .tr-cabin-photo img{
    aspect-ratio:16 / 10!important;
  }


  .tr-cabin-info{
    min-height:118px;

    padding:17px 62px 15px 18px;
  }


  html:has(.tr-cabins-page)
  #content
  .tr-cabins-page
  .tr-cabin-info
  h3{
    font-size:21px!important;
  }


  .tr-cabin-meta{
    font-size:11.5px;

    white-space:nowrap;
  }


  .tr-cabin-features{
    font-size:9.5px;
  }


  .tr-cabin-arrow{
    top:21px;
    right:17px;

    width:40px;
    height:40px;
  }


  .tr-cabin-arrow svg{
    width:18px;
    height:18px;
  }

}