  :root{
    --bark-900:#241B15;
    --bark-800:#332518;
    --bark-700:#46341f;
    --sand-100:#F1E7D6;
    --sand-200:#E4D4B6;
    --sand-300:#d8c39c;
    --moss-600:#5C6B47;
    --moss-700:#48543a;
    --forest-900:#2c2e1d;
    --clay-600:#B5532E;
    --clay-700:#8f4123;
    --gold-400:#D9A33E;
    --ink:#241B15;
    --paper:#F1E7D6;

    --font-display:'Big Shoulders Display', sans-serif;
    --font-body:'Karla', sans-serif;
    --font-mono:'Space Mono', monospace;
  }

  *{box-sizing:border-box;}

  html{scroll-behavior:smooth;}

  body{
    font-family:var(--font-body);
    color:var(--ink);
    background:var(--sand-100);
    line-height:1.55;
    overflow-x:hidden;
  }

  img,svg{display:block;max-width:100%;}

  a{color:inherit;text-decoration:none;}
  a:hover, a:focus{text-decoration:none;color:inherit;}

  .wrap{
    max-width:1180px;
    margin:0 auto;
    padding:0 32px;
  }

  /* ---------- focus visibility ---------- */
  a:focus-visible, button:focus-visible{
    outline:3px solid var(--gold-400);
    outline-offset:3px;
  }
  .btn:focus{box-shadow:none;}

  /* ---------- header ---------- */
  header{
    position:fixed;
    top:0;left:0;right:0;
    z-index:50;
    padding:14px 0;
    transition:background-color .35s ease, padding .35s ease, box-shadow .35s ease;
  }
  header .navbar{padding:8px 0;}
  header.scrolled{
    background:var(--bark-900);
    box-shadow:0 6px 18px rgba(0,0,0,.25);
  }
  .logo{
    font-family:var(--font-display);
    font-weight:800;
    letter-spacing:.03em;
    font-size:20px;
    color:var(--paper);
    text-transform:uppercase;
    line-height:1;
  }
  .logo span{color:var(--gold-400);}
  .nav-link-custom{
    font-family:var(--font-mono);
    font-size:13px;
    color:var(--sand-200);
    letter-spacing:.02em;
  }
  .nav-link-custom:hover{color:var(--gold-400);}

  .btn{
    font-family:var(--font-mono);
    font-size:13px;
    letter-spacing:.03em;
    padding:12px 22px;
    border-radius:3px;
    border:1.5px solid transparent;
    transition:transform .25s ease, background-color .25s ease, color .25s ease, border-color .25s ease;
  }
  .btn-primary{
    background:var(--clay-600);
    border-color:var(--clay-600);
    color:var(--paper);
  }
  .btn-primary:hover{
    background:var(--gold-400);
    border-color:var(--gold-400);
    color:var(--bark-900);
    transform:translateY(-2px);
  }
  .btn-ghost{
    border-color:var(--sand-300);
    color:var(--paper);
    background:transparent;
  }
  .btn-ghost:hover{
    border-color:var(--gold-400);
    color:var(--gold-400);
  }
  header .btn{padding:10px 18px;font-size:12px;}

  /* ---------- hero ---------- */
  .hero{
    position:relative;
    min-height:100vh;
    display:flex;
    align-items:center;
    background:var(--bark-900);
    color:var(--paper);
    overflow:hidden;
    padding-top:110px;
    padding-bottom:220px;
  }
  .hero-photo{
    position:absolute;
    inset:0;
    width:100%;height:100%;
    object-fit:cover;
    z-index:0;
  }
  .hero-photo-overlay{
    position:absolute;
    inset:0;
    z-index:0;
    background:
      radial-gradient(120% 60% at 15% 0%, rgba(217,163,62,.16), transparent 60%),
      linear-gradient(180deg, rgba(36,27,21,.82) 0%, rgba(44,46,29,.62) 45%, rgba(94,58,35,.72) 100%);
  }
  .hero-inner{
    position:relative;
    z-index:2;
    max-width:680px;
  }
  .eyebrow{
    font-family:var(--font-mono);
    font-size:13px;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--gold-400);
    margin-bottom:18px;
    display:inline-block;
  }
  .hero h1{
    font-family:var(--font-display);
    font-weight:900;
    font-size:clamp(58px, 9vw, 118px);
    line-height:.92;
    letter-spacing:.01em;
    text-transform:uppercase;
    margin-bottom:24px;
  }
  .hero p.lead{
    font-size:18px;
    max-width:480px;
    color:var(--sand-200);
    margin-bottom:34px;
  }
  .hero-ctas .btn{padding:15px 28px;font-size:14px;}

  /* elevation profile + ridge divider */
  .ridge-block{
    position:absolute;
    left:0;right:0;bottom:0;
    width:100%;
    line-height:0;
    z-index:1;
  }
  .ridge-block svg{width:100%;height:auto;display:block;}
  .peak-label{
    font-family:var(--font-mono);
    font-size:12px;
    fill:var(--sand-200);
  }
  .peak-label.alt{fill:var(--gold-400);}

  /* ---------- nature accents: leaf & twig ---------- */
  .eyebrow-leaf{
    width:16px;height:11px;
    display:inline-block;
    vertical-align:middle;
    margin-right:7px;
    margin-top:-3px;
    fill:currentColor;
  }
  .twig-divider{
    width:100%;
    height:22px;
    margin:6px 0 28px;
  }
  .twig-divider svg{width:100%;height:100%;display:block;}

  .group-photo{
    position:relative;
    width:100%;
    height:320px;
    border-radius:6px;
    overflow:hidden;
    margin-bottom:28px;
    border:1px solid var(--sand-300);
  }
  .group-photo img{
    width:100%;height:100%;
    object-fit:cover;
    display:block;
  }
  .group-photo::after{
    content:"";
    position:absolute;inset:0;
    background:linear-gradient(135deg, rgba(36,27,21,.28), rgba(92,107,71,.16) 55%, rgba(181,83,46,.12));
    mix-blend-mode:multiply;
    pointer-events:none;
  }
  .photo-caption{
    position:absolute;
    left:16px;bottom:14px;
    z-index:2;
    font-family:var(--font-mono);
    font-size:12px;
    letter-spacing:.02em;
    color:var(--paper);
    background:rgba(36,27,21,.6);
    padding:6px 12px;
    border-radius:2px;
  }

  /* ---------- featured activities ---------- */
  .feature-card{
    position:relative;
    height:380px;
    border-radius:6px;
    overflow:hidden;
    border:1px solid var(--sand-300);
    opacity:0;
    transform:translateY(18px);
    transition:opacity .6s ease, transform .6s ease;
  }
  .feature-card.is-visible{opacity:1;transform:translateY(0);}
  .row .col-md-6:nth-child(2) .feature-card{transition-delay:.12s;}
  .feature-card img{
    position:absolute;inset:0;
    width:100%;height:100%;
    object-fit:cover;
    z-index:0;
  }
  .feature-overlay{
    position:absolute;inset:0;
    z-index:1;
    background:linear-gradient(180deg, rgba(36,27,21,.06) 0%, rgba(36,27,21,.55) 55%, rgba(36,27,21,.93) 100%);
  }
  .feature-content{
    position:absolute;left:0;right:0;bottom:0;
    z-index:2;
    padding:28px;
    color:var(--paper);
  }
  .feature-badge{
    display:inline-block;
    font-family:var(--font-mono);
    font-size:11px;
    letter-spacing:.05em;
    text-transform:uppercase;
    background:var(--clay-600);
    color:var(--paper);
    padding:5px 12px;
    border-radius:2px;
    margin-bottom:14px;
  }
  .feature-content h3{
    font-family:var(--font-display);
    font-weight:800;
    font-size:30px;
    text-transform:uppercase;
    line-height:1;
    margin-bottom:10px;
  }
  .feature-content p{
    font-size:14.5px;
    color:var(--sand-200);
    max-width:380px;
    margin-bottom:18px;
  }
  .feature-stats{
    display:flex;
    gap:18px;
    font-family:var(--font-mono);
    font-size:13px;
    color:var(--sand-200);
    border-top:1px dashed rgba(241,231,214,.3);
    padding-top:12px;
    margin-bottom:18px;
    flex-wrap:wrap;
  }
  .feature-stats b{color:var(--gold-400);font-weight:700;}
  .feature-card .btn{padding:10px 18px;font-size:12px;}

  .link-underline{
    color:var(--clay-600);
    text-decoration:underline;
    text-decoration-color:var(--sand-300);
  }
  .link-underline:hover{color:var(--clay-700);}

  /* ---------- section shells ---------- */
  section{position:relative;}
  .section-pad{padding:120px 0 100px;}
  .section-head{
    max-width:560px;
    margin-bottom:64px;
  }
  .section-head .eyebrow{color:var(--clay-600);}
  .section-head h2{
    font-family:var(--font-display);
    font-weight:800;
    font-size:clamp(36px,5vw,52px);
    text-transform:uppercase;
    letter-spacing:.01em;
    line-height:1;
    margin-bottom:14px;
  }
  .section-head p{color:#5a4a37;font-size:16px;max-width:460px;}

  /* ---------- activities ---------- */
  .activities{background:var(--sand-100);}

  .activity-group{
    margin-bottom:84px;
  }
  .activity-group:last-child{margin-bottom:0;}

  .group-head{
    margin-bottom:6px;
  }
  .group-icon{
    flex:none;
    width:60px;height:60px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:11px;
    background:
      repeating-linear-gradient(98deg, rgba(36,27,21,.07) 0px, rgba(36,27,21,.07) 1px, transparent 1px, transparent 7px),
      var(--sand-200);
    border:1px solid var(--sand-300);
    border-radius:6px;
    color:var(--moss-600);
  }
  .group-titles h3{
    font-family:var(--font-display);
    font-size:30px;
    font-weight:800;
    text-transform:uppercase;
    line-height:1;
    margin-bottom:6px;
  }
  .group-titles p{
    font-size:15px;
    color:#5a4a37;
    max-width:480px;
    margin-bottom:0;
  }

  .tier{
    position:relative;
    height:100%;
    background:
      repeating-linear-gradient(96deg, rgba(36,27,21,.035) 0px, rgba(36,27,21,.035) 1px, transparent 1px, transparent 6px),
      var(--sand-200);
    border:1px solid var(--sand-300);
    border-radius:4px;
    padding:30px 28px 26px;
    opacity:0;
    transform:translateY(18px);
    transition:opacity .6s ease, transform .6s ease, border-color .25s ease, box-shadow .25s ease;
  }
  .tier.is-visible{opacity:1;transform:translateY(0);}
  .tier:hover{
    border-color:var(--clay-600);
    box-shadow:0 14px 30px -10px rgba(36,27,21,.25);
  }
  .row .col-md-6:nth-child(2) .tier{transition-delay:.12s;}
  .tier.upgrade{
    background:
      repeating-linear-gradient(96deg, rgba(36,27,21,.045) 0px, rgba(36,27,21,.045) 1px, transparent 1px, transparent 6px),
      #ece0c5;
  }
  .badge-trail{
    position:absolute;
    top:-12px;left:28px;
    background:var(--clay-600);
    color:var(--paper);
    font-family:var(--font-mono);
    font-size:11px;
    letter-spacing:.05em;
    text-transform:uppercase;
    padding:5px 12px;
    border-radius:2px;
  }
  .tier h4{
    font-family:var(--font-display);
    font-size:21px;
    font-weight:700;
    text-transform:uppercase;
    margin-bottom:10px;
    margin-top:4px;
  }
  .tier p.desc{
    font-size:14.5px;
    color:#5a4a37;
    margin-bottom:22px;
    min-height:44px;
  }
  .stats{
    display:flex;
    gap:18px;
    font-family:var(--font-mono);
    font-size:13px;
    color:var(--bark-800);
    border-top:1px dashed var(--sand-300);
    padding-top:14px;
    flex-wrap:wrap;
  }
  .stats b{color:var(--clay-600);font-weight:700;}

  /* ridge divider between activities & contact */
  .ridge-down{line-height:0;}
  .ridge-down svg{width:100%;height:auto;display:block;}

  /* ---------- contact ---------- */
  .contact{
    background:var(--bark-900);
    color:var(--paper);
    padding-top:80px;
  }
  .contact .section-head{margin-bottom:44px;}
  .contact .section-head .eyebrow{color:var(--gold-400);}
  .contact .section-head p{color:var(--sand-300);}
  .contact-ctas .btn{padding:16px 26px;font-size:14px;}

  footer{
    border-top:1px solid var(--bark-700);
    padding:26px 0;
  }
  footer .logo{font-size:15px;}
  footer .fine{
    font-family:var(--font-mono);
    font-size:12px;
    color:var(--sand-300);
  }

  /* ---------- icons base ---------- */
  .icon-svg{width:100%;height:100%;}

  /* ---------- responsive ---------- */
  @media (max-width:991.98px){
    #navMenu{
      background:var(--bark-900);
      margin-top:14px;
      padding:18px 4px 6px;
      border-top:1px solid var(--bark-700);
    }
  }
  @media (max-width:760px){
    .wrap{padding:0 20px;}
    .hero{padding-bottom:170px;}
    .section-pad{padding:90px 0 70px;}
    .stats{gap:14px;}
    .group-photo{height:200px;}
  }

  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    .tier{transition:none;opacity:1;transform:none;}
    *{transition-duration:.001ms !important;}
  }
