/* =========================================================
   Homepage
   ========================================================= */

.home-hero{
  position:relative;
  flex:1;
  min-height:600px;
  display:flex;
  align-items:center;
  overflow:hidden;
  background:
    linear-gradient(rgba(250,248,244,.48),rgba(250,248,244,.65)),
    url("../images/desert-background-v2.webp") center top / cover no-repeat;
  border-bottom:1px solid var(--line);
}

.shell.hero-content{
  position:relative;
  z-index:2;
  padding-top:clamp(64px,8vh,96px);
  padding-bottom:clamp(64px,8vh,96px);
}

.hero-title{
  max-width:720px;
  margin:0;
  color:var(--forest-dark);
  font-size:clamp(2.8rem,5vw,4.9rem);
  font-weight:800;
  line-height:1.04;
  letter-spacing:-.04em;
}

.hero-title .accent{
  display:block;
  color:var(--copper);
}

.hero-copy{
  max-width:620px;
  margin:30px 0 0;
  color:#586158;
  font-size:1.15rem;
  line-height:1.7;
}

.portal-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,341px));
  justify-content:start;
  gap:28px;
  margin-top:76px;
}

.portal-link{
  position:relative;
  min-width:0;
  min-height:220px;
  padding:26px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  overflow:hidden;
  color:inherit;
  text-decoration:none;
  background:rgba(255,255,255,.90);
  border:1px solid rgba(225,230,222,.95);
  border-radius:16px;
  box-shadow:var(--shadow);
  transition:transform .18s ease,border-color .18s ease;
}

.portal-link:hover{
  transform:translateY(-3px);
  border-color:#BFD1BC;
}

.portal-link::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:8px;
  background:var(--forest);
}

.portal-link:nth-child(2)::before{background:var(--copper)}
.portal-link:nth-child(3)::before{background:#587A52}

.portal-icon{
  width:58px;
  height:58px;
  margin:0 auto 24px;
  display:grid;
  place-items:center;
  border-radius:14px;
}

.portal-link:nth-child(1) .portal-icon{
  color:var(--forest);
  background:#EEF4EB;
}

.portal-link:nth-child(2) .portal-icon{
  color:var(--copper);
  background:#F8EBDD;
}

.portal-link:nth-child(3) .portal-icon{
  color:#587A52;
  background:#E7F0E4;
}

.portal-icon svg{
  width:32px;
  height:32px;
  stroke:currentColor;
}

.portal-icon img{
  width:32px;
  height:32px;
  display:block;
  object-fit:contain;
}

.portal-label small{
  display:block;
  color:var(--copper);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.portal-label strong{
  display:block;
  margin-top:10px;
  color:var(--forest-dark);
  font-size:1.45rem;
  font-weight:700;
  line-height:1.2;
  letter-spacing:-.02em;
}

.portal-label span{
  display:block;
  margin-top:14px;
  color:#6B736C;
  font-size:.96rem;
  line-height:1.65;
}

@media(max-width:760px){
  .home-hero{min-height:auto}

  .shell.hero-content{
    padding-top:54px;
    padding-bottom:58px;
  }

  .hero-title{
    font-size:clamp(2.55rem,13vw,4rem);
  }

  .hero-copy{
    margin-top:22px;
    font-size:1.02rem;
  }

  .portal-grid{
    grid-template-columns:1fr;
    gap:18px;
    margin-top:52px;
  }

  .portal-link{min-height:180px}
}

@media(prefers-reduced-motion:reduce){
  .portal-link{transition:none}
}
