/* ==================================================================
   ICCJWR PARK CITY, LLC — shared stylesheet
   Theme: deep green-black / ivory / teal-jade / pale jade
   ================================================================== */

:root{
  --bg:#0E1517;
  --text:#EFF4F2;
  --jade:#28736D;
  --jade-deep:#1E5A55;
  --pale:#A9CFC9;
  --panel:#16201F;
  --hair:#1F3A34;
  --ink:#0B1112;
}

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

html{scroll-behavior:smooth;}

body{
  font-family:"Avenir Next","Segoe UI",system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;
  font-size:16px;
  line-height:1.7;
  color:var(--text);
  background-color:var(--bg);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

a{color:var(--pale);text-decoration:none;transition:color .25s ease,border-color .25s ease,background-color .25s ease;}
a:hover{color:var(--text);}

h1,h2,h3{font-weight:700;line-height:1.16;letter-spacing:-.01em;color:var(--text);}

p{color:var(--text);}

.container{width:100%;max-width:1180px;margin:0 auto;padding:0 28px;}

/* ---------------- I-beam glyph ---------------- */
.ibeam{
  position:relative;
  display:inline-block;
  width:9px;
  height:21px;
  flex:0 0 9px;
  border-left:2px solid var(--jade);
  border-right:2px solid var(--jade);
}
.ibeam::before,
.ibeam::after{
  content:"";
  position:absolute;
  left:-4px;
  right:-4px;
  height:3px;
  background:var(--jade);
}
.ibeam::before{top:0;}
.ibeam::after{bottom:0;}
.ibeam.is-fill{background:var(--jade);border-color:var(--jade);}

/* ---------------- Six-point snowflake mark ---------------- */
.snowflake{position:relative;width:16px;height:16px;flex:0 0 16px;margin-top:4px;}
.snowflake i{
  position:absolute;
  left:7px;
  top:0;
  width:2px;
  height:100%;
  background:var(--jade);
}
.snowflake i:nth-child(1){transform:rotate(0deg);}
.snowflake i:nth-child(2){transform:rotate(60deg);}
.snowflake i:nth-child(3){transform:rotate(120deg);}

/* ==================================================================
   BEAM NAV
   ================================================================== */
.beam-nav{
  position:sticky;
  top:0;
  z-index:60;
  background:var(--bg);
  border-bottom:2px solid var(--jade);
  transition:box-shadow .3s ease;
}
.beam-nav.is-scrolled{box-shadow:0 8px 24px rgba(0,0,0,.45);}
.beam-nav .nav-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  max-width:1180px;
  margin:0 auto;
  padding:14px 28px;
  position:relative;
}
.brand{display:flex;align-items:center;gap:13px;}
.brand-glyph{width:15px;height:15px;background:var(--jade);flex:0 0 15px;}
.brand-text{display:flex;flex-direction:column;line-height:1.1;}
.wordmark{font-size:20px;font-weight:800;letter-spacing:.3em;color:var(--text);}
.brand-caption{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--pale);margin-top:4px;}

.nav-links{display:flex;align-items:center;gap:28px;}
.nav-link{
  display:inline-flex;
  align-items:center;
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--text);
}
.nav-link .ibeam{margin-right:8px;}
.nav-link:hover{color:var(--pale);}
.nav-link.is-active{color:var(--jade);}
.nav-link.is-active .ibeam{background:var(--jade);border-color:var(--jade);}

.nav-toggle{
  display:none;
  width:42px;
  height:42px;
  background:none;
  border:1px solid var(--jade);
  cursor:pointer;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
}
.nav-toggle span{display:block;height:2px;width:18px;background:var(--text);transition:transform .25s ease,opacity .25s ease;}
.nav-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle.is-open span:nth-child(2){opacity:0;}
.nav-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ==================================================================
   LIFT HERO
   ================================================================== */
.lift-hero{background:var(--bg);padding:92px 0 0;}
.hero-inner{max-width:1180px;margin:0 auto;padding:0 28px;}
.eyebrow{
  display:inline-block;
  background:var(--jade);
  color:var(--text);
  font-size:12px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  padding:9px 16px;
  margin-bottom:28px;
}
.hero-title{font-size:52px;line-height:1.1;max-width:900px;font-weight:800;}
.hero-sub{font-size:18px;line-height:1.8;max-width:740px;margin-top:28px;}
.hero-ctas{display:flex;gap:16px;margin-top:34px;flex-wrap:wrap;}

.btn{
  display:inline-block;
  font-size:13px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  padding:15px 28px;
  border:2px solid transparent;
  cursor:pointer;
  text-align:center;
}
.btn-primary{background:var(--jade);color:var(--text);}
.btn-primary:hover{background:var(--jade-deep);color:var(--text);}
.btn-outline{border-color:var(--jade);color:var(--pale);}
.btn-outline:hover{background:var(--jade);color:var(--text);}
.btn-ivory{background:var(--text);color:var(--jade);}
.btn-ivory:hover{background:var(--pale);color:var(--jade);}

/* --- ski-lift graphic --- */
.lift-graphic{margin-top:66px;height:212px;position:relative;}
.lift-post{position:absolute;top:0;bottom:36px;width:3px;background:var(--jade);}
.lift-post-l{left:7%;}
.lift-post-r{right:7%;}
.lift-cable{
  position:absolute;
  top:0;
  left:7%;
  width:86%;
  height:3px;
  background:var(--jade);
  transform-origin:0 0;
  transform:rotate(6.5deg);
}
.lift-chair{
  position:absolute;
  width:16px;
  height:16px;
  border:2px solid var(--jade);
  background:var(--bg);
}
.lift-chair::before{
  content:"";
  position:absolute;
  left:5px;
  bottom:100%;
  height:15px;
  width:2px;
  background:var(--jade);
}
.lift-chair-a{left:28%;top:42px;}
.lift-chair-b{left:57%;top:80px;}
.lift-baseline{position:absolute;left:7%;right:7%;bottom:24px;height:2px;background:var(--jade);}
.lift-captions{
  position:absolute;
  left:7%;
  right:7%;
  bottom:0;
  display:flex;
  justify-content:space-between;
  font-size:11px;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:var(--pale);
}

/* ==================================================================
   BEAM ROWS
   ================================================================== */
.beam-rows{background:var(--bg);padding:104px 0 44px;}
.section-eyebrow{
  color:var(--pale);
  font-size:12px;
  letter-spacing:.22em;
  text-transform:uppercase;
  margin-bottom:16px;
  display:flex;
  align-items:center;
  gap:10px;
}
.section-eyebrow::before{content:"";width:28px;height:2px;background:var(--jade);}
.section-head h2{font-size:34px;max-width:680px;}
.section-head p{color:var(--pale);margin-top:18px;max-width:720px;}

.beam-row{
  display:flex;
  align-items:flex-start;
  gap:26px;
  padding:34px 6px;
  border-bottom:1px solid var(--hair);
}
.beam-rows .rows{border-top:1px solid var(--hair);margin-top:44px;}
.beam-row .ibeam{margin-top:8px;}
.beam-row h3{font-size:21px;flex:0 0 250px;}
.beam-row p{color:var(--text);max-width:620px;}
.beam-chip{
  margin-left:auto;
  align-self:center;
  flex:0 0 auto;
  background:var(--jade);
  color:var(--text);
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:700;
  padding:8px 14px;
  white-space:nowrap;
}

/* ==================================================================
   ELEVATION STRIP
   ================================================================== */
.elevation-strip{background:var(--panel);padding:104px 0;}
.elevation-grid{
  display:flex;
  gap:34px;
  justify-content:center;
  align-items:stretch;
  margin-top:48px;
}
.elevation-tile{
  flex:1;
  max-width:330px;
  background:var(--bg);
  border:1px solid var(--hair);
  padding:44px 26px 32px;
  text-align:center;
}
.building{
  width:100px;
  height:158px;
  border:2px solid var(--jade);
  position:relative;
  margin:0 auto 26px;
}
.building::before{
  content:"";
  position:absolute;
  top:-11px;
  left:-9px;
  right:-9px;
  height:4px;
  background:var(--jade);
}
.building::after{
  content:"";
  position:absolute;
  left:50%;
  top:-21px;
  width:3px;
  height:10px;
  background:var(--jade);
  transform:translateX(-50%);
}
.win{
  position:absolute;
  width:16px;
  height:16px;
  border:2px solid var(--jade);
}
.win.w1{top:30px;left:14px;}
.win.w2{top:30px;right:14px;}
.elevation-tile.is-mid .building{background:var(--jade);}
.elevation-tile.is-mid .win{border-color:var(--bg);background:var(--bg);}
.elevation-tile.is-mid .win.w1{left:14px;right:auto;}
.tile-name{display:block;font-size:17px;font-weight:700;letter-spacing:.08em;color:var(--text);}
.tile-line{display:block;color:var(--pale);font-size:14px;margin-top:10px;line-height:1.65;}

/* ==================================================================
   LEGACY ROWS
   ================================================================== */
.legacy-rows{background:var(--bg);padding:104px 0 44px;}
.legacy-row{
  display:flex;
  align-items:flex-start;
  gap:26px;
  padding:32px 6px;
  border-bottom:1px solid var(--hair);
}
.legacy-rows .rows{border-top:1px solid var(--hair);margin-top:44px;}
.legacy-row h3{font-size:21px;flex:0 0 250px;}
.legacy-row p{color:var(--text);max-width:620px;}

/* ==================================================================
   CTA BAND
   ================================================================== */
.cta-band{background:var(--jade);padding:92px 0;margin-top:72px;}
.cta-band .cta-inner{
  max-width:1180px;
  margin:0 auto;
  padding:0 28px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:36px;
  flex-wrap:wrap;
}
.cta-band h2{color:var(--text);font-size:34px;max-width:620px;}
.cta-band p{color:var(--text);margin-top:14px;max-width:560px;}

/* ==================================================================
   LIFT FOOTER
   ================================================================== */
.lift-footer{background:var(--bg);border-top:2px solid var(--jade);padding:56px 0 42px;}
.footer-inner{max-width:1180px;margin:0 auto;padding:0 28px;}
.footer-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  flex-wrap:wrap;
  padding-bottom:30px;
}
.footer-links{display:flex;gap:28px;}
.footer-links a{
  color:var(--text);
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.footer-links a:hover{color:var(--pale);}
.footer-contact{color:var(--pale);font-size:13px;letter-spacing:.04em;}
.footer-legal{
  border-top:1px solid var(--hair);
  padding-top:24px;
  position:relative;
  text-align:center;
}
.footer-legal .ibeam{position:absolute;left:0;top:24px;}
.footer-legal p{font-size:12px;color:var(--text);letter-spacing:.02em;line-height:1.8;}
.footer-legal a{color:var(--pale);}
.footer-legal a:hover{color:var(--text);}

/* ==================================================================
   SECONDARY PAGES — page hero
   ================================================================== */
.page-hero{background:var(--bg);padding:92px 0 68px;border-bottom:1px solid var(--hair);}
.page-hero .eyebrow{margin-bottom:22px;}
.page-title{font-size:46px;max-width:860px;font-weight:800;}
.page-hero p{color:var(--text);max-width:780px;margin-top:24px;font-size:17px;}

/* ==================================================================
   SERVICES PAGE
   ================================================================== */
.services-main{background:var(--bg);padding:0 0 60px;}
.service-block{
  display:flex;
  gap:34px;
  padding:60px 0;
  border-bottom:1px solid var(--hair);
}
.service-block:first-child{border-top:1px solid var(--hair);}
.service-num{
  color:var(--pale);
  font-size:13px;
  letter-spacing:.24em;
  font-weight:700;
  flex:0 0 70px;
  padding-top:8px;
}
.service-body h2{font-size:27px;margin-bottom:16px;}
.service-body p{color:var(--text);max-width:840px;margin-bottom:14px;}
.service-body .service-meta{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-top:8px;
  background:var(--panel);
  border:1px solid var(--hair);
  color:var(--pale);
  font-size:12px;
  letter-spacing:.1em;
  text-transform:uppercase;
  padding:7px 13px;
}
.process-section{background:var(--panel);padding:92px 0;margin-top:8px;}
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:48px;position:relative;}
.process-stage{padding:0 22px;position:relative;}
.process-stage .p-num{
  display:flex;align-items:center;justify-content:center;
  width:38px;height:38px;background:var(--jade);color:var(--text);
  font-weight:800;font-size:15px;margin-bottom:16px;
}
.process-stage h3{font-size:16px;margin-bottom:10px;}
.process-stage p{color:var(--pale);font-size:14px;line-height:1.7;}

/* ==================================================================
   CONTACT PAGE
   ================================================================== */
.contact-main{background:var(--bg);padding:84px 0 20px;}
.contact-layout{display:grid;grid-template-columns:1.45fr 1fr;gap:52px;align-items:start;}
.contact-form h2,.contact-panel h2{font-size:24px;margin-bottom:22px;}
.form-group{margin-bottom:20px;}
.form-group label{
  display:block;
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--pale);
  margin-bottom:8px;
  font-weight:700;
}
.form-field{
  width:100%;
  background:var(--panel);
  border:1px solid var(--hair);
  color:var(--text);
  font-size:16px;
  padding:13px 16px;
  transition:border-color .25s ease;
}
.form-field:focus{outline:none;border-color:var(--jade);}
textarea.form-field{min-height:150px;resize:vertical;}
.form-status{margin-top:16px;font-size:14px;padding:12px 16px;border:1px solid var(--hair);}
.form-status.is-ok{color:var(--pale);border-color:var(--jade);}
.form-status.is-error{color:#F2B8B8;border-color:#8A3B3B;}

.info-panel{
  background:var(--panel);
  border:1px solid var(--hair);
  padding:36px 32px;
}
.info-panel h2{font-size:24px;margin-bottom:24px;}
.info-line{display:flex;gap:14px;padding:16px 0;border-bottom:1px solid var(--hair);align-items:flex-start;}
.info-line:last-of-type{border-bottom:none;}
.info-line .info-tag{
  flex:0 0 92px;
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--pale);
  font-weight:700;
  padding-top:4px;
}
.info-line .info-val{color:var(--text);font-size:15px;line-height:1.7;}
.info-line .info-val a{color:var(--text);}
.info-line .info-val a:hover{color:var(--pale);}

.faq-section{background:var(--bg);padding:84px 0 20px;}
.faq-wrap{max-width:860px;}
.faq-item{border:1px solid var(--hair);background:var(--panel);margin-bottom:16px;}
.faq-q{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  width:100%;
  background:none;
  border:none;
  cursor:pointer;
  padding:20px 22px;
  text-align:left;
  color:var(--text);
  font-size:16px;
  font-weight:700;
  font-family:inherit;
}
.faq-q .faq-plus{color:var(--jade);font-size:22px;font-weight:800;line-height:1;flex:0 0 auto;}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease;}
.faq-a p{color:var(--pale);padding:0 22px 22px;font-size:15px;line-height:1.75;}
.faq-item.is-open .faq-q .faq-plus{transform:rotate(45deg);}

/* ==================================================================
   SCROLL REVEAL (safe without JS)
   ================================================================== */
.fade-up{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease;}
.fade-up.visible{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  .fade-up{opacity:1;transform:none;transition:none;}
}

/* ==================================================================
   RESPONSIVE
   ================================================================== */
@media (max-width:1020px){
  .hero-title{font-size:44px;}
  .page-title{font-size:38px;}
  .process-grid{grid-template-columns:repeat(2,1fr);gap:34px 0;}
  .beam-row h3,.legacy-row h3{flex-basis:220px;}
}
@media (max-width:900px){
  .nav-toggle{display:flex;}
  .nav-links{
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background:var(--bg);
    border-bottom:2px solid var(--jade);
    flex-direction:column;
    align-items:flex-start;
    gap:0;
    max-height:0;
    overflow:hidden;
    transition:max-height .35s ease;
  }
  .nav-links.is-open{max-height:420px;}
  .nav-link{width:100%;padding:15px 28px;border-bottom:1px solid var(--hair);}
  .contact-layout{grid-template-columns:1fr;gap:44px;}
  .elevation-grid{flex-direction:column;align-items:center;}
  .elevation-tile{max-width:360px;width:100%;}
}
@media (max-width:720px){
  .hero-title{font-size:36px;}
  .page-title{font-size:32px;}
  .hero-sub{font-size:16px;}
  .beam-row,.legacy-row{flex-direction:column;gap:14px;}
  .beam-row h3,.legacy-row h3{flex-basis:auto;}
  .beam-chip{margin-left:0;align-self:flex-start;}
  .service-block{flex-direction:column;gap:16px;}
  .service-num{flex-basis:auto;}
  .process-grid{grid-template-columns:1fr;}
  .section-head h2{font-size:28px;}
  .cta-band h2{font-size:28px;}
  .footer-row{flex-direction:column;align-items:flex-start;gap:18px;}
  .footer-links{flex-wrap:wrap;gap:16px;}
  .lift-graphic{height:190px;}
  .footer-legal .ibeam{display:none;}
}
