{"id":10,"date":"2026-07-11T03:55:58","date_gmt":"2026-07-11T03:55:58","guid":{"rendered":"https:\/\/ziongearbuild.wpenginepowered.com\/?page_id=10"},"modified":"2026-07-12T00:36:23","modified_gmt":"2026-07-12T00:36:23","slug":"elementor-10","status":"publish","type":"page","link":"https:\/\/ziongearbuilder.com\/?page_id=10","title":{"rendered":"Elementor #10"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"10\" class=\"elementor elementor-10\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-508da5f e-flex e-con-boxed e-con e-parent\" data-id=\"508da5f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fa1517b elementor-widget elementor-widget-html\" data-id=\"fa1517b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- Zion Gear Builder ALL-IN-ONE (Home + Gear Builder + Backpack Fitter + In-Town) \u2014 paste into one Elementor HTML widget on a Canvas page -->\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\" \/>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin \/>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Archivo+Black&family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap\" rel=\"stylesheet\" \/>\n<style>\n\n  :root{\n    --shadow:#221410;      \/* deep canyon shadow *\/\n    --shadow-2:#2f1d15;    \/* lifted shadow *\/\n    --shadow-3:#3b2619;    \/* card on dark *\/\n    --rock:#c0562f;        \/* sunlit sandstone rock *\/\n    --rock-bright:#e08a3c; \/* golden hour *\/\n    --river:#3e8c72;       \/* Virgin River *\/\n    --river-bright:#5cb08f;\n    --sand:#e9d9bc;        \/* navajo sandstone *\/\n    --bone:#f4ecdc;        \/* lightest *\/\n    --ink:#241610;         \/* text on light *\/\n    --ink-soft:#5c4636;\n\n    --font-display:'Archivo Black', system-ui, -apple-system, sans-serif;\n    --font-body:'IBM Plex Sans', system-ui, -apple-system, sans-serif;\n    --font-mono:'IBM Plex Mono', ui-monospace, Menlo, monospace;\n\n    --maxw:1180px;\n    --pad:clamp(1.15rem, 4vw, 3rem);\n  }\n\n  *{box-sizing:border-box;margin:0;padding:0}\n  html{scroll-behavior:smooth}\n  body{\n    font-family:var(--font-body);\n    background:var(--shadow);\n    color:var(--sand);\n    line-height:1.6;\n    -webkit-font-smoothing:antialiased;\n    overflow-x:hidden;\n  }\n  a{color:inherit;text-decoration:none}\n  img{max-width:100%;display:block}\n\n  .wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad)}\n\n  .eyebrow{\n    font-family:var(--font-mono);\n    text-transform:uppercase;\n    letter-spacing:.22em;\n    font-size:.72rem;\n    font-weight:500;\n    color:var(--rock-bright);\n  }\n  h1,h2,h3{font-family:var(--font-display);font-weight:400;line-height:.98;letter-spacing:-.01em}\n\n  \/* buttons *\/\n  .btn{\n    display:inline-flex;align-items:center;gap:.55em;\n    font-family:var(--font-mono);font-weight:600;font-size:.9rem;\n    text-transform:uppercase;letter-spacing:.08em;\n    padding:.95em 1.4em;border-radius:2px;border:1.5px solid transparent;\n    cursor:pointer;transition:transform .15s ease, background .2s ease, color .2s ease;\n    line-height:1;\n  }\n  .btn:focus-visible{outline:3px solid var(--river-bright);outline-offset:3px}\n  .btn--primary{background:var(--rock);color:var(--bone)}\n  .btn--primary:hover{background:var(--rock-bright);color:var(--ink);transform:translateY(-2px)}\n  .btn--ghost{border-color:rgba(233,217,188,.35);color:var(--sand)}\n  .btn--ghost:hover{border-color:var(--river-bright);color:var(--river-bright)}\n  .btn--river{background:var(--river);color:var(--bone)}\n  .btn--river:hover{background:var(--river-bright);color:var(--ink);transform:translateY(-2px)}\n  .btn .arrow{transition:transform .18s ease}\n  .btn:hover .arrow{transform:translateX(3px)}\n\n  \/* ---------- NAV ---------- *\/\n  header.nav{\n    position:sticky;top:0;z-index:50;\n    background:rgba(34,20,16,.82);\n    backdrop-filter:blur(10px);\n    border-bottom:1px solid rgba(233,217,188,.12);\n  }\n  .nav-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:.9rem}\n  .brand{display:flex;align-items:center;gap:.6rem;font-family:var(--font-display);font-size:1.02rem;letter-spacing:-.02em}\n  .brand .mark{\n    width:26px;height:26px;flex:none;border-radius:3px;\n    background:\n      linear-gradient(var(--rock) 0 33%, var(--sand) 33% 55%, var(--river) 55% 100%);\n    box-shadow:inset 0 0 0 1.5px rgba(0,0,0,.25);\n  }\n  .brand span{color:var(--sand)}\n  .brand b{color:var(--rock-bright);font-weight:400}\n  nav.links{display:flex;gap:1.4rem;align-items:center}\n  nav.links a{\n    font-family:var(--font-mono);font-size:.8rem;letter-spacing:.04em;\n    color:var(--sand);opacity:.82;transition:opacity .2s, color .2s;padding:.25rem 0;\n    border-bottom:2px solid transparent;\n  }\n  nav.links a:hover{opacity:1;color:var(--rock-bright)}\n  nav.links a.cta{color:var(--river-bright);opacity:1;border-bottom-color:var(--river)}\n  .menu-btn{display:none;background:none;border:1px solid rgba(233,217,188,.3);color:var(--sand);\n    font-family:var(--font-mono);font-size:.8rem;padding:.5rem .8rem;border-radius:2px;cursor:pointer}\n\n  \/* ---------- HERO ---------- *\/\n  .hero{\n    position:relative;\n    padding-top:clamp(3rem,7vw,5.5rem);\n    padding-bottom:clamp(3rem,6vw,5rem);\n    background:\n      radial-gradient(120% 90% at 50% -10%, rgba(224,138,60,.18), transparent 55%),\n      linear-gradient(180deg, var(--shadow) 0%, var(--shadow-2) 100%);\n    overflow:hidden;\n  }\n  \/* stratified rock bands, top light shaft of a slot canyon *\/\n  .hero::before{\n    content:\"\";position:absolute;inset:0;pointer-events:none;opacity:.5;\n    background:repeating-linear-gradient(\n      180deg,\n      transparent 0 46px,\n      rgba(0,0,0,.14) 46px 47px,\n      transparent 47px 92px,\n      rgba(233,217,188,.03) 92px 93px\n    );\n    mask-image:linear-gradient(180deg, rgba(0,0,0,.9), transparent 70%);\n  }\n  .hero .wrap{position:relative;z-index:1}\n  .hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4rem);align-items:center}\n  .hero h1{\n    font-size:clamp(2.9rem,8.2vw,6.1rem);\n    color:var(--bone);\n    margin:.7rem 0 1.1rem;\n    text-transform:uppercase;\n  }\n  .hero h1 .river{color:var(--river-bright)}\n  .hero p.lead{font-size:clamp(1.05rem,1.6vw,1.22rem);max-width:34ch;color:var(--sand);opacity:.9}\n  .hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.7rem}\n  .hero-trust{margin-top:1.6rem;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;opacity:.6;text-transform:uppercase}\n\n  \/* ---------- SIGNATURE: mini gear builder ---------- *\/\n  .builder{\n    background:var(--shadow-3);\n    border:1px solid rgba(233,217,188,.16);\n    border-radius:6px;\n    padding:1.4rem;\n    box-shadow:0 30px 60px -30px rgba(0,0,0,.8);\n  }\n  .builder-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1rem}\n  .builder-head .k{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--river-bright)}\n  .builder-head .step{font-family:var(--font-mono);font-size:.68rem;opacity:.55}\n  .builder .q{font-family:var(--font-body);font-weight:600;font-size:.98rem;color:var(--bone);margin-bottom:.75rem}\n  .hike-tabs{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.5rem;margin-bottom:1.15rem}\n  .hike-tabs button{\n    font-family:var(--font-mono);font-size:.74rem;font-weight:500;letter-spacing:.02em;\n    padding:.7rem .4rem;border-radius:3px;cursor:pointer;line-height:1.2;\n    background:var(--shadow-2);color:var(--sand);border:1.5px solid rgba(233,217,188,.14);\n    transition:border-color .2s, background .2s, color .2s;\n  }\n  .hike-tabs button:hover{border-color:var(--rock)}\n  .hike-tabs button[aria-pressed=\"true\"]{background:var(--rock);color:var(--bone);border-color:var(--rock)}\n  .hike-tabs button:focus-visible{outline:3px solid var(--river-bright);outline-offset:2px}\n\n  .readout{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.1rem}\n  .chip{\n    font-family:var(--font-mono);font-size:.68rem;letter-spacing:.03em;\n    padding:.4rem .6rem;border-radius:2px;background:var(--shadow-2);\n    border-left:2px solid var(--river);color:var(--sand);\n  }\n  .chip b{color:var(--bone);font-weight:600}\n  .chip.warn{border-left-color:var(--rock-bright)}\n  .chip.warn b{color:var(--rock-bright)}\n\n  .kit-label{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;opacity:.6;margin-bottom:.5rem}\n  ul.kit{list-style:none;display:grid;gap:.35rem}\n  ul.kit li{\n    display:flex;align-items:center;gap:.6rem;font-size:.92rem;color:var(--sand);\n    padding:.15rem 0;\n  }\n  ul.kit li .dot{width:7px;height:7px;border-radius:50%;background:var(--river-bright);flex:none}\n  .builder-foot{margin-top:1.15rem;padding-top:1rem;border-top:1px solid rgba(233,217,188,.12);\n    display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.8rem}\n  .builder-foot small{font-size:.74rem;opacity:.62;max-width:30ch;line-height:1.4}\n\n  \/* ---------- generic section ---------- *\/\n  section{padding-block:clamp(3.4rem,7vw,6rem)}\n  .section-head{max-width:60ch;margin-bottom:2.6rem}\n  .section-head h2{font-size:clamp(1.9rem,4.2vw,3.1rem);color:var(--bone);text-transform:uppercase;margin:.6rem 0 .8rem}\n  .section-head p{opacity:.85;font-size:1.05rem}\n\n  \/* conditions band *\/\n  .conditions{background:var(--shadow-2);border-top:1px solid rgba(233,217,188,.1);border-bottom:1px solid rgba(233,217,188,.1)}\n  .cond-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}\n  .cond{\n    background:var(--shadow-3);border:1px solid rgba(233,217,188,.12);border-radius:5px;\n    padding:1.5rem 1.4rem;position:relative;overflow:hidden;\n  }\n  .cond .tag{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--rock-bright)}\n  .cond h3{font-size:1.35rem;color:var(--bone);margin:.55rem 0 .6rem;text-transform:none;letter-spacing:0}\n  .cond p{font-size:.95rem;opacity:.85}\n  .cond .stat{margin-top:1rem;font-family:var(--font-mono);font-size:.78rem;color:var(--river-bright);border-top:1px dashed rgba(233,217,188,.18);padding-top:.7rem}\n\n  \/* how it works *\/\n  .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;counter-reset:s}\n  .step{position:relative;padding-top:1.2rem;border-top:2px solid var(--rock)}\n  .step .num{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;color:var(--rock-bright)}\n  .step h3{font-size:1.25rem;color:var(--bone);margin:.5rem 0 .5rem;text-transform:none;letter-spacing:0;line-height:1.15}\n  .step p{font-size:.95rem;opacity:.84}\n\n  \/* kits \u2014 light sandstone band *\/\n  .kits{background:var(--sand);color:var(--ink)}\n  .kits .section-head h2{color:var(--ink)}\n  .kits .section-head p{color:var(--ink-soft);opacity:1}\n  .kits .eyebrow{color:var(--rock)}\n  .kit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.2rem}\n  .kit-card{\n    background:var(--bone);border:1px solid rgba(36,22,16,.12);border-radius:6px;\n    padding:1.5rem;display:flex;flex-direction:column;gap:.55rem;\n    transition:transform .18s ease, box-shadow .18s ease;\n  }\n  .kit-card:hover{transform:translateY(-4px);box-shadow:0 20px 40px -24px rgba(36,22,16,.5)}\n  .kit-card .kt{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--river)}\n  .kit-card h3{font-size:1.3rem;color:var(--ink);text-transform:none;letter-spacing:0}\n  .kit-card p{font-size:.92rem;color:var(--ink-soft);flex:1}\n  .kit-card .meta{font-family:var(--font-mono);font-size:.74rem;color:var(--ink-soft)}\n  .kit-card .go{font-family:var(--font-mono);font-size:.8rem;font-weight:600;color:var(--rock);text-transform:uppercase;letter-spacing:.05em;display:inline-flex;gap:.4rem;align-items:center;margin-top:.3rem}\n  .kit-card:hover .go{color:var(--rock-bright)}\n  .kit-card.featured{background:var(--shadow);color:var(--sand);border-color:var(--shadow)}\n  .kit-card.featured h3{color:var(--bone)}\n  .kit-card.featured p{color:var(--sand);opacity:.85}\n  .kit-card.featured .meta{color:var(--sand);opacity:.7}\n\n  \/* parks *\/\n  .parks .park-row{display:flex;flex-wrap:wrap;gap:.7rem}\n  .park{\n    font-family:var(--font-mono);font-size:.82rem;letter-spacing:.03em;\n    padding:.7rem 1rem;border-radius:3px;border:1px solid rgba(233,217,188,.18);\n    background:var(--shadow-2);color:var(--sand);opacity:.7;\n  }\n  .park.live{opacity:1;border-color:var(--river);color:var(--river-bright);background:transparent}\n  .park.live::before{content:\"\u25cf \";color:var(--river-bright)}\n  .park.soon::after{content:\" \u00b7 soon\";opacity:.5}\n\n  \/* final cta *\/\n  .final{\n    background:linear-gradient(120deg, var(--river) 0%, #2f6f59 100%);\n    color:var(--bone);text-align:center;\n  }\n  .final h2{font-size:clamp(2rem,5vw,3.6rem);color:var(--bone);text-transform:uppercase;max-width:18ch;margin-inline:auto}\n  .final p{max-width:46ch;margin:1rem auto 1.8rem;opacity:.92}\n  .final .btn--primary{background:var(--shadow);color:var(--bone)}\n  .final .btn--primary:hover{background:var(--ink);color:var(--bone)}\n\n  \/* footer *\/\n  footer{background:var(--shadow);border-top:1px solid rgba(233,217,188,.12);padding-block:3rem 2rem}\n  .foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2rem;margin-bottom:2rem}\n  footer h4{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--rock-bright);margin-bottom:.9rem}\n  footer ul{list-style:none;display:grid;gap:.5rem}\n  footer a{font-size:.9rem;opacity:.8}\n  footer a:hover{opacity:1;color:var(--river-bright)}\n  .disclosure{font-size:.78rem;opacity:.55;max-width:60ch;line-height:1.5;border-top:1px solid rgba(233,217,188,.1);padding-top:1.4rem}\n  .disclosure b{color:var(--sand);opacity:.8;font-weight:600}\n\n  \/* ---- Southwestern geometric motif (subtle, ancestral-Puebloan step-fret) ---- *\/\n  .fret{height:15px;width:100%;background-repeat:repeat-x;background-position:center;\n    background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='40' height='15' viewBox='0 0 40 15'%3E%3Cpath d='M0 11 L5 11 L5 7 L10 7 L10 3 L15 3 L15 7 L20 7 L20 11 L25 11 L25 7 L30 7 L30 3 L35 3 L35 7 L40 7' fill='none' stroke='%23c0562f' stroke-width='1.4'\/%3E%3C\/svg%3E\");\n    opacity:.5}\n  .fret--ink{opacity:.55;\n    background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='40' height='15' viewBox='0 0 40 15'%3E%3Cpath d='M0 11 L5 11 L5 7 L10 7 L10 3 L15 3 L15 7 L20 7 L20 11 L25 11 L25 7 L30 7 L30 3 L35 3 L35 7 L40 7' fill='none' stroke='%23a5713c' stroke-width='1.4'\/%3E%3C\/svg%3E\")}\n  .fret--river{background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='40' height='15' viewBox='0 0 40 15'%3E%3Cpath d='M0 11 L5 11 L5 7 L10 7 L10 3 L15 3 L15 7 L20 7 L20 11 L25 11 L25 7 L30 7 L30 3 L35 3 L35 7 L40 7' fill='none' stroke='%233e8c72' stroke-width='1.4'\/%3E%3C\/svg%3E\")}\n\n  .geo-section{position:relative}\n  .geo-section > .wrap{position:relative;z-index:1}\n  .geo-section::before{content:\"\";position:absolute;inset:0;pointer-events:none;\n    background-size:46px 46px;opacity:.06;\n    background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='46' height='46' viewBox='0 0 46 46'%3E%3Cpath d='M23 3 L43 23 L23 43 L3 23 Z' fill='none' stroke='%23c0562f' stroke-width='1'\/%3E%3Cpath d='M23 15 L31 23 L23 31 L15 23 Z' fill='none' stroke='%23c0562f' stroke-width='0.8'\/%3E%3C\/svg%3E\")}\n  .final.geo-section::before{opacity:.12;\n    background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='46' height='46' viewBox='0 0 46 46'%3E%3Cpath d='M23 3 L43 23 L23 43 L3 23 Z' fill='none' stroke='%23f4ecdc' stroke-width='1'\/%3E%3Cpath d='M23 15 L31 23 L23 31 L15 23 Z' fill='none' stroke='%23f4ecdc' stroke-width='0.8'\/%3E%3C\/svg%3E\")}\n\n  \/* ---- Shop the essentials (Amazon product grid) ---- *\/\n  .shop{background:var(--shadow-2);border-top:1px solid rgba(233,217,188,.1);border-bottom:1px solid rgba(233,217,188,.1)}\n  .shop-note{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.03em;color:var(--river-bright);\n    margin-top:.6rem;opacity:.9}\n  .shop-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:1rem;margin-top:2.4rem}\n  .prod-card{position:relative;background:var(--shadow-3);border:1px solid rgba(233,217,188,.14);\n    border-radius:5px;padding:1.3rem 1.2rem 1.2rem;display:flex;flex-direction:column;gap:.45rem;overflow:hidden;\n    transition:transform .18s ease, border-color .2s ease}\n  .prod-card:hover{transform:translateY(-3px);border-color:var(--rock)}\n  .prod-card::before{content:\"\";position:absolute;top:0;left:0;right:0;height:5px;background-repeat:repeat-x;\n    background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='40' height='15' viewBox='0 0 40 15'%3E%3Cpath d='M0 11 L5 11 L5 7 L10 7 L10 3 L15 3 L15 7 L20 7 L20 11 L25 11 L25 7 L30 7 L30 3 L35 3 L35 7 L40 7' fill='none' stroke='%23c0562f' stroke-width='2'\/%3E%3C\/svg%3E\");\n    opacity:.85}\n  .prod-media{position:relative;width:100%;aspect-ratio:4\/3;border-radius:4px;margin:.15rem 0 .2rem;overflow:hidden;\n    display:flex;align-items:center;justify-content:center;border:1px solid rgba(233,217,188,.12);\n    background:radial-gradient(120% 120% at 30% 18%, #3d2718, #1e130d)}\n  .prod-media::after{content:\"\";position:absolute;inset:0;opacity:.05;background-size:34px 34px;\n    background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='34' height='34' viewBox='0 0 34 34'%3E%3Cpath d='M17 3 L31 17 L17 31 L3 17 Z' fill='none' stroke='%23e9d9bc' stroke-width='1'\/%3E%3C\/svg%3E\")}\n  .prod-media svg{width:42%;height:42%;position:relative;z-index:1}\n  \/* when you paste a real Amazon SiteStripe image or your own photo, it fills the frame cleanly *\/\n  .prod-media img{width:100%;height:100%;object-fit:contain;background:#f4ecdc}\n  .prod-card .pc-cat{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--river-bright);margin-top:.2rem}\n  .prod-card h3{font-size:1.04rem;color:var(--bone);text-transform:none;letter-spacing:0;line-height:1.2;font-family:var(--font-display)}\n  .prod-card p{font-size:.85rem;opacity:.82;flex:1;line-height:1.45}\n  .prod-card .amz{margin-top:.5rem;align-self:flex-start;display:inline-flex;align-items:center;gap:.45rem;\n    font-family:var(--font-mono);font-size:.74rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;\n    color:var(--ink);background:var(--rock-bright);padding:.6em 1em;border-radius:2px;transition:background .2s, transform .15s}\n  .prod-card .amz:hover{background:var(--bone);transform:translateY(-1px)}\n  .prod-card .amz:focus-visible{outline:3px solid var(--river-bright);outline-offset:2px}\n\n  ul.kit li a{color:var(--sand);border-bottom:1px dashed rgba(233,217,188,.32);transition:color .18s, border-color .18s}\n  ul.kit li a:hover{color:var(--river-bright);border-bottom-color:var(--river-bright)}\n  ul.kit li .ext{margin-left:auto;font-family:var(--font-mono);font-size:.72rem;color:var(--rock-bright);opacity:.85}\n\n  \/* responsive *\/\n  @media (max-width:860px){\n    nav.links{display:none}\n    .menu-btn{display:block}\n    nav.links.open{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;\n      background:rgba(34,20,16,.97);backdrop-filter:blur(10px);padding:1.1rem var(--pad) 1.4rem;gap:1.1rem;\n      border-bottom:1px solid rgba(233,217,188,.15);box-shadow:0 22px 44px -20px rgba(0,0,0,.75)}\n    nav.links.open a{padding:.35rem 0;font-size:.95rem}\n    .hero-grid{grid-template-columns:1fr;gap:2.2rem}\n    .cond-grid,.steps{grid-template-columns:1fr}\n    .foot-grid{grid-template-columns:1fr 1fr}\n  }\n  @media (max-width:520px){\n    .hike-tabs{grid-template-columns:1fr}\n    .foot-grid{grid-template-columns:1fr}\n    .builder-head{flex-direction:column;gap:.3rem}\n  }\n  @media (prefers-reduced-motion:reduce){\n    *{transition:none!important;scroll-behavior:auto!important}\n  }\n\n\n  :root{\n    --shadow:#221410;--shadow-2:#2f1d15;--shadow-3:#3b2619;\n    --rock:#c0562f;--rock-bright:#e08a3c;--river:#3e8c72;--river-bright:#5cb08f;\n    --sand:#e9d9bc;--bone:#f4ecdc;--ink:#241610;--ink-soft:#5c4636;\n    --font-display:'Archivo Black',system-ui,sans-serif;\n    --font-body:'IBM Plex Sans',system-ui,sans-serif;\n    --font-mono:'IBM Plex Mono',ui-monospace,monospace;\n    --maxw:1080px;--pad:clamp(1.15rem,4vw,3rem);\n  }\n  *{box-sizing:border-box;margin:0;padding:0}\n  html{scroll-behavior:smooth}\n  body{font-family:var(--font-body);background:var(--shadow);color:var(--sand);line-height:1.6;-webkit-font-smoothing:antialiased}\n  a{color:inherit}\n  .wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad)}\n  h1,h2,h3{font-family:var(--font-display);font-weight:400;line-height:1;letter-spacing:-.01em}\n  .eyebrow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.22em;font-size:.72rem;color:var(--rock-bright)}\n\n  \/* step-fret motif *\/\n  .fret{height:15px;width:100%;background-repeat:repeat-x;background-position:center;opacity:.5;\n    background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='40' height='15' viewBox='0 0 40 15'%3E%3Cpath d='M0 11 L5 11 L5 7 L10 7 L10 3 L15 3 L15 7 L20 7 L20 11 L25 11 L25 7 L30 7 L30 3 L35 3 L35 7 L40 7' fill='none' stroke='%23c0562f' stroke-width='1.4'\/%3E%3C\/svg%3E\")}\n\n  header.bar{position:sticky;top:0;z-index:20;background:rgba(34,20,16,.85);backdrop-filter:blur(10px);border-bottom:1px solid rgba(233,217,188,.12)}\n  .bar-inner{display:flex;align-items:center;gap:.6rem;padding-block:.85rem}\n  .mark{width:24px;height:24px;border-radius:3px;background:linear-gradient(var(--rock) 0 33%,var(--sand) 33% 55%,var(--river) 55% 100%);box-shadow:inset 0 0 0 1.5px rgba(0,0,0,.25)}\n  .brand{font-family:var(--font-display);font-size:.98rem}\n  .brand b{color:var(--rock-bright);font-weight:400}\n  .bar a.back{margin-left:auto;font-family:var(--font-mono);font-size:.78rem;color:var(--sand);opacity:.8;text-decoration:none}\n  .bar a.back:hover{opacity:1;color:var(--river-bright)}\n\n  .introfit{padding-block:clamp(2.6rem,6vw,4rem) 1.5rem;background:radial-gradient(120% 90% at 50% -20%,rgba(224,138,60,.16),transparent 55%),linear-gradient(180deg,var(--shadow),var(--shadow-2))}\n  .introfit h1{font-size:clamp(2.4rem,7vw,4.2rem);color:var(--bone);text-transform:uppercase;margin:.7rem 0 .9rem}\n  .introfit h1 .r{color:var(--river-bright)}\n  .introfit p{max-width:52ch;opacity:.9;font-size:1.05rem}\n  .introfit .keynote{margin-top:1rem;font-family:var(--font-mono);font-size:.8rem;color:var(--rock-bright);border-left:2px solid var(--rock);padding-left:.8rem;max-width:56ch;line-height:1.5}\n\n  .fitmain{padding-block:2.4rem 3.5rem}\n  .grid{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem;align-items:start}\n\n  .card{background:var(--shadow-3);border:1px solid rgba(233,217,188,.16);border-radius:6px;padding:1.5rem;box-shadow:0 24px 50px -30px rgba(0,0,0,.7)}\n  .card h2{font-size:1.3rem;color:var(--bone);text-transform:uppercase;margin-bottom:.3rem}\n  .card .sub{font-size:.9rem;opacity:.75;margin-bottom:1.2rem}\n\n  .field{margin-bottom:1.15rem}\n  .field label{display:block;font-family:var(--font-mono);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--sand);margin-bottom:.4rem}\n  .field label .opt{color:var(--ink-soft);opacity:.9}\n  input[type=number]{width:100%;background:var(--shadow-2);border:1.5px solid rgba(233,217,188,.2);border-radius:3px;color:var(--bone);font-family:var(--font-mono);font-size:1rem;padding:.7rem .8rem}\n  input[type=number]:focus{outline:none;border-color:var(--river-bright)}\n  .hint{font-size:.78rem;opacity:.6;margin-top:.35rem;line-height:1.4}\n\n  details{margin-top:.45rem;background:var(--shadow-2);border:1px solid rgba(233,217,188,.12);border-radius:3px}\n  summary{cursor:pointer;font-family:var(--font-mono);font-size:.74rem;letter-spacing:.04em;color:var(--river-bright);padding:.55rem .7rem;list-style:none}\n  summary::-webkit-details-marker{display:none}\n  summary::before{content:\"+ \";font-weight:600}\n  details[open] summary::before{content:\"\u2013 \"}\n  details .body{padding:0 .8rem .8rem;font-size:.85rem;opacity:.85;line-height:1.5}\n\n  .toggle{display:inline-flex;align-items:center;gap:.4rem;margin-top:.5rem;font-family:var(--font-mono);font-size:.74rem;color:var(--rock-bright);cursor:pointer;background:none;border:none;padding:0}\n  .toggle:hover{color:var(--rock)}\n  #heightWrap{display:none;margin-top:.7rem}\n  #heightWrap.show{display:block}\n\n  .trip-tabs{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}\n  .trip-tabs button{font-family:var(--font-mono);font-size:.76rem;font-weight:500;padding:.7rem .5rem;border-radius:3px;cursor:pointer;background:var(--shadow-2);color:var(--sand);border:1.5px solid rgba(233,217,188,.14);transition:.2s;text-align:left;line-height:1.25}\n  .trip-tabs button small{display:block;opacity:.55;font-size:.66rem;margin-top:.15rem}\n  .trip-tabs button:hover{border-color:var(--rock)}\n  .trip-tabs button[aria-pressed=true]{background:var(--rock);color:var(--bone);border-color:var(--rock)}\n  .trip-tabs button[aria-pressed=true] small{opacity:.85}\n\n  .btn-fit{width:100%;margin-top:1.3rem;font-family:var(--font-mono);font-weight:600;font-size:.9rem;text-transform:uppercase;letter-spacing:.08em;padding:.95em;border-radius:3px;border:none;background:var(--rock);color:var(--bone);cursor:pointer;transition:.2s}\n  .btn-fit:hover{background:var(--rock-bright);color:var(--ink)}\n\n  \/* results *\/\n  #results{min-height:100%}\n  .placeholder{display:flex;align-items:center;justify-content:center;text-align:center;height:100%;min-height:280px;color:var(--sand);opacity:.5;font-family:var(--font-mono);font-size:.85rem;padding:2rem;border:1px dashed rgba(233,217,188,.2);border-radius:6px;line-height:1.6}\n  .res-head{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--river-bright);margin-bottom:.8rem}\n  .stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-bottom:1.1rem}\n  .stat{background:var(--shadow-2);border-left:2px solid var(--river);border-radius:2px;padding:.75rem .8rem}\n  .stat .k{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;opacity:.6}\n  .stat .v{font-family:var(--font-display);font-size:1.25rem;color:var(--bone);margin-top:.15rem;line-height:1}\n  .stat .d{font-family:var(--font-mono);font-size:.68rem;color:var(--sand);opacity:.7;margin-top:.25rem}\n  .stat.flag{border-left-color:var(--rock-bright)}\n  .est-note{font-family:var(--font-mono);font-size:.72rem;color:var(--rock-bright);margin-bottom:1rem;line-height:1.4}\n\n  .picks-label{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;opacity:.6;margin-bottom:.6rem}\n  .pick{position:relative;background:var(--shadow-2);border:1px solid rgba(233,217,188,.14);border-radius:5px;padding:1rem 1rem .9rem;margin-bottom:.7rem;overflow:hidden}\n  .pick::before{content:\"\";position:absolute;top:0;left:0;right:0;height:4px;background-repeat:repeat-x;opacity:.8;background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='40' height='15' viewBox='0 0 40 15'%3E%3Cpath d='M0 11 L5 11 L5 7 L10 7 L10 3 L15 3 L15 7 L20 7 L20 11 L25 11 L25 7 L30 7 L30 3 L35 3 L35 7 L40 7' fill='none' stroke='%23c0562f' stroke-width='2'\/%3E%3C\/svg%3E\")}\n  .pick-media{position:relative;width:100%;aspect-ratio:16\/7;border-radius:4px;margin:.35rem 0 .6rem;overflow:hidden;\n    display:flex;align-items:center;justify-content:center;border:1px solid rgba(233,217,188,.12);\n    background:radial-gradient(120% 140% at 28% 15%, #3d2718, #1e130d)}\n  .pick-media::after{content:\"\";position:absolute;inset:0;opacity:.05;background-size:30px 30px;\n    background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='30' height='30' viewBox='0 0 30 30'%3E%3Cpath d='M15 3 L27 15 L15 27 L3 15 Z' fill='none' stroke='%23e9d9bc' stroke-width='1'\/%3E%3C\/svg%3E\")}\n  .pick-media svg{width:56px;height:56px;position:relative;z-index:1}\n  .pick-media img{width:100%;height:100%;object-fit:contain;background:#f4ecdc}\n  .pick .pk-tag{font-family:var(--font-mono);font-size:.63rem;letter-spacing:.08em;text-transform:uppercase;color:var(--river-bright)}\n  .pick h3{font-family:var(--font-display);font-size:1rem;color:var(--bone);text-transform:none;letter-spacing:0;margin:.25rem 0 .3rem;line-height:1.15}\n  .pick p{font-size:.82rem;opacity:.82;line-height:1.4;margin-bottom:.6rem}\n  .pick .amz{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-mono);font-size:.72rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--ink);background:var(--rock-bright);padding:.55em .9em;border-radius:2px;text-decoration:none}\n  .amz:hover{background:var(--bone)}\n\n  .disc{font-size:.76rem;opacity:.55;line-height:1.5;margin-top:1.2rem;border-top:1px solid rgba(233,217,188,.12);padding-top:1rem}\n  \n\n  @media (max-width:780px){.grid{grid-template-columns:1fr}}\n  @media (prefers-reduced-motion:reduce){*{transition:none!important}}\n\n\n  :root{\n    --shadow:#221410;--shadow-2:#2f1d15;--shadow-3:#3b2619;\n    --rock:#c0562f;--rock-bright:#e08a3c;--river:#3e8c72;--river-bright:#5cb08f;\n    --sand:#e9d9bc;--bone:#f4ecdc;--ink:#241610;--ink-soft:#5c4636;\n    --font-display:'Archivo Black',system-ui,sans-serif;\n    --font-body:'IBM Plex Sans',system-ui,sans-serif;\n    --font-mono:'IBM Plex Mono',ui-monospace,monospace;\n    --maxw:1080px;--pad:clamp(1.15rem,4vw,3rem);\n  }\n  *{box-sizing:border-box;margin:0;padding:0}\n  html{scroll-behavior:smooth}\n  body{font-family:var(--font-body);background:var(--shadow);color:var(--sand);line-height:1.6;-webkit-font-smoothing:antialiased}\n  a{color:inherit;text-decoration:none}\n  .wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad)}\n  h1,h2,h3{font-family:var(--font-display);font-weight:400;line-height:1;letter-spacing:-.01em}\n  .eyebrow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.22em;font-size:.72rem;color:var(--rock-bright)}\n\n  .fret{height:15px;width:100%;background-repeat:repeat-x;background-position:center;opacity:.5;\n    background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='40' height='15' viewBox='0 0 40 15'%3E%3Cpath d='M0 11 L5 11 L5 7 L10 7 L10 3 L15 3 L15 7 L20 7 L20 11 L25 11 L25 7 L30 7 L30 3 L35 3 L35 7 L40 7' fill='none' stroke='%23c0562f' stroke-width='1.4'\/%3E%3C\/svg%3E\")}\n\n  header.bar{position:sticky;top:0;z-index:20;background:rgba(34,20,16,.85);backdrop-filter:blur(10px);border-bottom:1px solid rgba(233,217,188,.12)}\n  .bar-inner{display:flex;align-items:center;gap:.6rem;padding-block:.85rem}\n  .mark{width:24px;height:24px;border-radius:3px;background:linear-gradient(var(--rock) 0 33%,var(--sand) 33% 55%,var(--river) 55% 100%);box-shadow:inset 0 0 0 1.5px rgba(0,0,0,.25)}\n  .brand{font-family:var(--font-display);font-size:.98rem}\n  .brand b{color:var(--rock-bright);font-weight:400}\n  .bar a.back{margin-left:auto;font-family:var(--font-mono);font-size:.78rem;opacity:.8}\n  .bar a.back:hover{opacity:1;color:var(--river-bright)}\n\n  .introtown{padding-block:clamp(2.6rem,6vw,4rem) 1.4rem;background:radial-gradient(120% 90% at 50% -20%,rgba(224,138,60,.16),transparent 55%),linear-gradient(180deg,var(--shadow),var(--shadow-2))}\n  .introtown h1{font-size:clamp(2.4rem,7vw,4.2rem);color:var(--bone);text-transform:uppercase;margin:.7rem 0 .9rem}\n  .introtown h1 .r{color:var(--river-bright)}\n  .introtown p{max-width:56ch;opacity:.9;font-size:1.05rem}\n\n  \/* hotel planner bar *\/\n  .planner{background:var(--shadow-3);border:1px solid rgba(233,217,188,.16);border-radius:6px;padding:1.2rem 1.3rem;margin-top:1.8rem;\n    display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem}\n  .planner .f{flex:1;min-width:220px}\n  .planner label{display:block;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--rock-bright);margin-bottom:.4rem}\n  .planner input{width:100%;background:var(--shadow-2);border:1.5px solid rgba(233,217,188,.2);border-radius:3px;color:var(--bone);font-family:var(--font-body);font-size:.98rem;padding:.7rem .8rem}\n  .planner input:focus{outline:none;border-color:var(--river-bright)}\n  .planner .hint{font-family:var(--font-mono);font-size:.68rem;opacity:.55;margin-top:.4rem}\n\n  .itmain{padding-block:2.2rem 3.5rem}\n  .filters{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.6rem}\n  .filters button{font-family:var(--font-mono);font-size:.76rem;letter-spacing:.03em;padding:.55rem 1rem;border-radius:20px;cursor:pointer;\n    background:var(--shadow-2);color:var(--sand);border:1.5px solid rgba(233,217,188,.16);transition:.2s}\n  .filters button:hover{border-color:var(--rock)}\n  .filters button[aria-pressed=true]{background:var(--rock);color:var(--bone);border-color:var(--rock)}\n\n  .stores{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}\n  .store{position:relative;background:var(--shadow-3);border:1px solid rgba(233,217,188,.15);border-radius:6px;padding:1.4rem;display:flex;flex-direction:column;gap:.55rem;overflow:hidden}\n  .store::before{content:\"\";position:absolute;top:0;left:0;right:0;height:4px;background-repeat:repeat-x;opacity:.85;\n    background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='40' height='15' viewBox='0 0 40 15'%3E%3Cpath d='M0 11 L5 11 L5 7 L10 7 L10 3 L15 3 L15 7 L20 7 L20 11 L25 11 L25 7 L30 7 L30 3 L35 3 L35 7 L40 7' fill='none' stroke='%23c0562f' stroke-width='2'\/%3E%3C\/svg%3E\")}\n  .store-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.6rem}\n  .badges{display:flex;gap:.35rem;flex-wrap:wrap}\n  .badge{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;padding:.28rem .5rem;border-radius:2px;font-weight:600}\n  .badge.rent{background:rgba(62,140,114,.2);color:var(--river-bright);border:1px solid rgba(62,140,114,.4)}\n  .badge.buy{background:rgba(192,86,47,.18);color:var(--rock-bright);border:1px solid rgba(192,86,47,.4)}\n  .badge.guided{background:rgba(224,138,60,.16);color:var(--rock-bright);border:1px solid rgba(224,138,60,.4)}\n  .badge.big{background:rgba(233,217,188,.14);color:var(--sand);border:1px solid rgba(233,217,188,.3)}\n  .rating{font-family:var(--font-mono);font-size:.78rem;color:var(--rock-bright);white-space:nowrap}\n  .rating span{opacity:.5;color:var(--sand)}\n  .store h3{font-family:var(--font-display);font-size:1.25rem;color:var(--bone);text-transform:none;letter-spacing:0;line-height:1.1}\n  .store .desc{font-size:.9rem;opacity:.85;flex:1;line-height:1.45}\n  .store .meta{font-family:var(--font-mono);font-size:.72rem;opacity:.7;display:flex;flex-direction:column;gap:.2rem}\n  .store .meta b{color:var(--river-bright);font-weight:600}\n  .store .actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.4rem}\n  .store .actions a,.store .actions button{font-family:var(--font-mono);font-size:.72rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;\n    padding:.55em .85em;border-radius:2px;cursor:pointer;border:1.5px solid transparent;display:inline-flex;align-items:center;gap:.35rem}\n  .act-dir{background:var(--rock);color:var(--bone);border:none}\n  .act-dir:hover{background:var(--rock-bright);color:var(--ink)}\n  .act-run{background:var(--river);color:var(--bone);border:none}\n  .act-run:hover{background:var(--river-bright);color:var(--ink)}\n  .act-min{background:transparent;color:var(--sand);border-color:rgba(233,217,188,.3)}\n  .act-min:hover{border-color:var(--river-bright);color:var(--river-bright)}\n\n  .note{margin-top:2rem;font-family:var(--font-mono);font-size:.78rem;opacity:.6;line-height:1.5;border-top:1px solid rgba(233,217,188,.12);padding-top:1.2rem}\n  \n\n  @media (max-width:760px){.stores{grid-template-columns:1fr}}\n  @media (prefers-reduced-motion:reduce){*{transition:none!important}}\n\n\n  \/* --- merged single-file glue --- *\/\n  #builder,#kits,#prep,#shop,#parks,#why,#build,#builder-preview,#page-builder,#page-fitter,#page-intown{scroll-margin-top:74px}\n  .page-embed{padding:0;border-top:1px solid rgba(233,217,188,.12)}\n  .section-break{margin:0}\n  \/* insulate the design's sizing from the theme's root font-size (fixes \"too small\" on the live site) *\/\n  html{font-size:100% !important}\n  body{font-size:1rem}\n\n\n  \/* ===== Gear Builder (injected) ===== *\/\n\n  :root{\n    --shadow:#221410;--shadow-2:#2f1d15;--shadow-3:#3b2619;\n    --rock:#c0562f;--rock-bright:#e08a3c;--river:#3e8c72;--river-bright:#5cb08f;\n    --sand:#e9d9bc;--bone:#f4ecdc;--ink:#241610;--ink-soft:#5c4636;\n    --font-display:'Archivo Black',system-ui,sans-serif;\n    --font-body:'IBM Plex Sans',system-ui,sans-serif;\n    --font-mono:'IBM Plex Mono',ui-monospace,monospace;\n    --maxw:1080px;--pad:clamp(1.15rem,4vw,3rem);\n  }\n  *{box-sizing:border-box;margin:0;padding:0}\n  html{scroll-behavior:smooth;font-size:100%}\n  body{font-family:var(--font-body);background:var(--shadow);color:var(--sand);line-height:1.6;-webkit-font-smoothing:antialiased}\n  a{color:inherit}\n  .wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad)}\n  h1,h2,h3{font-family:var(--font-display);font-weight:400;line-height:1;letter-spacing:-.01em}\n  .eyebrow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.22em;font-size:.72rem;color:var(--rock-bright)}\n  .fret{height:15px;width:100%;background-repeat:repeat-x;background-position:center;opacity:.5;\n    background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='40' height='15' viewBox='0 0 40 15'%3E%3Cpath d='M0 11 L5 11 L5 7 L10 7 L10 3 L15 3 L15 7 L20 7 L20 11 L25 11 L25 7 L30 7 L30 3 L35 3 L35 7 L40 7' fill='none' stroke='%23c0562f' stroke-width='1.4'\/%3E%3C\/svg%3E\")}\n\n  header.bar{position:sticky;top:0;z-index:20;background:rgba(34,20,16,.85);backdrop-filter:blur(10px);border-bottom:1px solid rgba(233,217,188,.12)}\n  .bar-inner{display:flex;align-items:center;gap:.6rem;padding-block:.85rem}\n  .mark{width:24px;height:24px;border-radius:3px;background:linear-gradient(var(--rock) 0 33%,var(--sand) 33% 55%,var(--river) 55% 100%);box-shadow:inset 0 0 0 1.5px rgba(0,0,0,.25)}\n  .brand{font-family:var(--font-display);font-size:.98rem}\n  .brand b{color:var(--rock-bright);font-weight:400}\n  .bar a.back{margin-left:auto;font-family:var(--font-mono);font-size:.78rem;opacity:.8;text-decoration:none}\n  .bar a.back:hover{opacity:1;color:var(--river-bright)}\n\n  \/* ---------- Gear Builder ---------- *\/\n  .gb-intro{padding-block:clamp(2.6rem,6vw,4rem) 1.4rem;background:radial-gradient(120% 90% at 50% -20%,rgba(224,138,60,.16),transparent 55%),linear-gradient(180deg,var(--shadow),var(--shadow-2))}\n  .gb-intro h1{font-size:clamp(2.4rem,7vw,4.4rem);color:var(--bone);text-transform:uppercase;margin:.7rem 0 .9rem}\n  .gb-intro h1 .r{color:var(--river-bright)}\n  .gb-intro p{max-width:54ch;opacity:.9;font-size:1.05rem}\n\n  .gb-main{padding-block:2.4rem 3.5rem}\n  .gb-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem;align-items:start}\n  @media (max-width:820px){.gb-grid{grid-template-columns:1fr}}\n\n  .gb-card{background:var(--shadow-3);border:1px solid rgba(233,217,188,.16);border-radius:6px;padding:1.5rem;box-shadow:0 24px 50px -30px rgba(0,0,0,.7)}\n  .gb-card h2{font-size:1.3rem;color:var(--bone);text-transform:uppercase;margin-bottom:.3rem}\n  .gb-card .gb-sub{font-size:.9rem;opacity:.75;margin-bottom:1.3rem}\n\n  .gb-q{margin-bottom:1.3rem}\n  .gb-q > label{display:block;font-family:var(--font-mono);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--sand);margin-bottom:.55rem}\n  .gb-q > label .opt{color:var(--ink-soft)}\n  .gb-opts{display:flex;flex-wrap:wrap;gap:.5rem}\n  .gb-opts button{font-family:var(--font-mono);font-size:.78rem;font-weight:500;letter-spacing:.02em;padding:.6rem .85rem;border-radius:3px;cursor:pointer;line-height:1.2;\n    background:var(--shadow-2);color:var(--sand);border:1.5px solid rgba(233,217,188,.16);transition:.18s}\n  .gb-opts button:hover{border-color:var(--rock)}\n  .gb-opts button[aria-pressed=\"true\"]{background:var(--rock);color:var(--bone);border-color:var(--rock)}\n  .gb-opts.gb-multi button[aria-pressed=\"true\"]{background:var(--river);border-color:var(--river)}\n  .gb-opts button:focus-visible{outline:3px solid var(--river-bright);outline-offset:2px}\n\n  .gb-build{width:100%;margin-top:.6rem;font-family:var(--font-mono);font-weight:600;font-size:.92rem;text-transform:uppercase;letter-spacing:.08em;\n    padding:1em;border-radius:3px;border:none;background:var(--rock);color:var(--bone);cursor:pointer;transition:.2s}\n  .gb-build:hover{background:var(--rock-bright);color:var(--ink)}\n  .gb-build:disabled{opacity:.5;cursor:not-allowed}\n\n  #gb-results{min-height:100%}\n  .gb-ph{display:flex;align-items:center;justify-content:center;text-align:center;height:100%;min-height:320px;color:var(--sand);opacity:.5;\n    font-family:var(--font-mono);font-size:.85rem;padding:2rem;border:1px dashed rgba(233,217,188,.2);border-radius:6px;line-height:1.6}\n  .gb-rhead{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--river-bright);margin-bottom:.5rem}\n  .gb-summary{font-family:var(--font-body);font-size:1.05rem;color:var(--bone);margin-bottom:1.1rem;line-height:1.4}\n  .gb-summary b{color:var(--rock-bright)}\n\n  .gb-alert{display:flex;gap:.6rem;padding:.75rem .85rem;border-radius:4px;margin-bottom:.6rem;font-size:.86rem;line-height:1.4;background:var(--shadow-2);border-left:3px solid var(--rock-bright)}\n  .gb-alert.info{border-left-color:var(--river)}\n  .gb-alert .ic{font-family:var(--font-mono);font-weight:600;color:var(--rock-bright);flex:none}\n  .gb-alert.info .ic{color:var(--river-bright)}\n  .gb-alert b{color:var(--bone)}\n\n  .gb-group{margin-top:1.2rem}\n  .gb-glabel{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;opacity:.6;margin-bottom:.5rem;border-bottom:1px solid rgba(233,217,188,.12);padding-bottom:.35rem}\n  ul.gb-kit{list-style:none;display:grid;gap:.15rem}\n  ul.gb-kit li{display:flex;align-items:center;gap:.6rem;padding:.4rem 0;font-size:.92rem;border-bottom:1px solid rgba(233,217,188,.06)}\n  ul.gb-kit li .d{width:7px;height:7px;border-radius:50%;flex:none}\n  ul.gb-kit li.essentials .d{background:var(--rock-bright)}\n  ul.gb-kit li.conditions .d{background:var(--river-bright)}\n  ul.gb-kit li.safety .d{background:var(--sand)}\n  ul.gb-kit li a.nm{color:var(--sand);text-decoration:none;flex:1;border-bottom:1px dashed transparent}\n  ul.gb-kit li a.nm:hover{color:var(--bone);border-bottom-color:rgba(233,217,188,.4)}\n  ul.gb-kit li a.amz{font-family:var(--font-mono);font-size:.72rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--rock-bright);text-decoration:none;white-space:nowrap}\n  ul.gb-kit li a.amz:hover{color:var(--rock-bright);text-decoration:underline}\n\n  .gb-disc{font-size:.76rem;opacity:.6;line-height:1.5;margin-top:1.2rem;border-top:1px solid rgba(233,217,188,.12);padding-top:1rem}\n  .gb-count{font-family:var(--font-mono);font-size:.72rem;color:var(--river-bright);margin-top:.2rem}\n\n  .gb-foot{border-top:1px solid rgba(233,217,188,.12);padding-block:1.6rem;font-size:.8rem;opacity:.6;text-align:center;font-family:var(--font-mono)}\n  @media (prefers-reduced-motion:reduce){*{transition:none!important}}\n\n\n  @media (min-width:1500px){ .wrap{max-width:1280px} }\n\n\/* ==== Gear Builder tool styles ==== *\/\n\n  :root{\n    --shadow:#221410;--shadow-2:#2f1d15;--shadow-3:#3b2619;\n    --rock:#c0562f;--rock-bright:#e08a3c;--river:#3e8c72;--river-bright:#5cb08f;\n    --sand:#e9d9bc;--bone:#f4ecdc;--ink:#241610;--ink-soft:#5c4636;\n    --font-display:'Archivo Black',system-ui,sans-serif;\n    --font-body:'IBM Plex Sans',system-ui,sans-serif;\n    --font-mono:'IBM Plex Mono',ui-monospace,monospace;\n    --maxw:1080px;--pad:clamp(1.15rem,4vw,3rem);\n  }\n  *{box-sizing:border-box;margin:0;padding:0}\n  html{scroll-behavior:smooth}\n  body{font-family:var(--font-body);background:var(--shadow);color:var(--sand);line-height:1.6;-webkit-font-smoothing:antialiased}\n  a{color:inherit;text-decoration:none}\n  .wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad)}\n  h1,h2,h3{font-family:var(--font-display);font-weight:400;line-height:1;letter-spacing:-.01em}\n  .eyebrow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.22em;font-size:.72rem;color:var(--rock-bright)}\n\n  .fret{height:15px;width:100%;background-repeat:repeat-x;background-position:center;opacity:.5;\n    background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='40' height='15' viewBox='0 0 40 15'%3E%3Cpath d='M0 11 L5 11 L5 7 L10 7 L10 3 L15 3 L15 7 L20 7 L20 11 L25 11 L25 7 L30 7 L30 3 L35 3 L35 7 L40 7' fill='none' stroke='%23c0562f' stroke-width='1.4'\/%3E%3C\/svg%3E\")}\n\n  header.bar{position:sticky;top:0;z-index:20;background:rgba(34,20,16,.85);backdrop-filter:blur(10px);border-bottom:1px solid rgba(233,217,188,.12)}\n  .bar-inner{display:flex;align-items:center;gap:.6rem;padding-block:.85rem}\n  .mark{width:24px;height:24px;border-radius:3px;background:linear-gradient(var(--rock) 0 33%,var(--sand) 33% 55%,var(--river) 55% 100%);box-shadow:inset 0 0 0 1.5px rgba(0,0,0,.25)}\n  .brand{font-family:var(--font-display);font-size:.98rem}\n  .brand b{color:var(--rock-bright);font-weight:400}\n  .bar a.back{margin-left:auto;font-family:var(--font-mono);font-size:.78rem;opacity:.8}\n  .bar a.back:hover{opacity:1;color:var(--river-bright)}\n\n  .gb-intro{padding-block:clamp(2.4rem,6vw,3.6rem) 1.2rem;background:radial-gradient(120% 90% at 50% -20%,rgba(224,138,60,.16),transparent 55%),linear-gradient(180deg,var(--shadow),var(--shadow-2))}\n  .gb-intro h1{font-size:clamp(2.3rem,7vw,4rem);color:var(--bone);text-transform:uppercase;margin:.7rem 0 .8rem}\n  .gb-intro h1 .r{color:var(--river-bright)}\n  .gb-intro p{max-width:54ch;opacity:.9;font-size:1.05rem}\n\n  .gb-stage{padding-block:2.2rem 3.5rem}\n\n  .gb-progress{display:flex;align-items:center;gap:.8rem;margin-bottom:1.6rem}\n  .gb-bar{flex:1;height:6px;border-radius:3px;background:var(--shadow-3);overflow:hidden}\n  .gb-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--rock),var(--rock-bright));width:0;transition:width .35s ease}\n  .gb-count{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;color:var(--rock-bright);white-space:nowrap}\n\n  .gb-card{background:var(--shadow-3);border:1px solid rgba(233,217,188,.16);border-radius:8px;padding:clamp(1.3rem,3vw,2.2rem);box-shadow:0 26px 54px -32px rgba(0,0,0,.75)}\n  .gb-step-tag{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--river-bright);margin-bottom:.5rem}\n  .gb-q{font-family:var(--font-display);font-size:clamp(1.4rem,3.4vw,2rem);color:var(--bone);line-height:1.05;margin-bottom:1.4rem}\n  .gb-opts{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}\n  .gb-opt{text-align:left;background:var(--shadow-2);border:1.5px solid rgba(233,217,188,.16);border-radius:5px;padding:1rem 1.1rem;cursor:pointer;transition:.16s;color:var(--sand)}\n  .gb-opt:hover{border-color:var(--rock);transform:translateY(-2px)}\n  .gb-opt[aria-pressed=true]{border-color:var(--rock);background:rgba(192,86,47,.16)}\n  .gb-opt .lab{font-weight:600;font-size:1rem;color:var(--bone);display:block}\n  .gb-opt .sub{font-family:var(--font-mono);font-size:.72rem;opacity:.65;margin-top:.25rem;display:block;line-height:1.35}\n  .gb-opt:focus-visible{outline:3px solid var(--river-bright);outline-offset:2px}\n\n  .gb-nav{display:flex;justify-content:space-between;align-items:center;margin-top:1.5rem}\n  .gb-btn{font-family:var(--font-mono);font-weight:600;font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;padding:.8em 1.3em;border-radius:3px;border:1.5px solid transparent;cursor:pointer;transition:.2s}\n  .gb-back{background:transparent;color:var(--sand);border-color:rgba(233,217,188,.3)}\n  .gb-back:hover{border-color:var(--river-bright);color:var(--river-bright)}\n  .gb-back[disabled]{opacity:.3;cursor:default}\n  .gb-hint{font-family:var(--font-mono);font-size:.72rem;opacity:.5}\n\n  .gb-results{display:none}\n  .gb-results.show{display:block}\n  .gb-res-head{margin-bottom:1.6rem}\n  .gb-res-head h2{font-size:clamp(1.9rem,4.4vw,3rem);color:var(--bone);text-transform:uppercase;margin:.5rem 0 .7rem}\n  .gb-res-head p{opacity:.85;max-width:58ch}\n  .gb-readout{display:flex;flex-wrap:wrap;gap:.45rem;margin:1.1rem 0 0}\n  .gb-chip{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.03em;padding:.42rem .6rem;border-radius:2px;background:var(--shadow-3);border-left:2px solid var(--river);color:var(--sand)}\n  .gb-chip b{color:var(--bone);font-weight:600}\n  .gb-chip.warn{border-left-color:var(--rock-bright)}\n  .gb-chip.warn b{color:var(--rock-bright)}\n\n  .gb-notes{margin:1.6rem 0}\n  .gb-note{display:flex;gap:.7rem;background:var(--shadow-3);border:1px solid rgba(224,138,60,.3);border-left:3px solid var(--rock-bright);border-radius:4px;padding:.85rem 1rem;margin-bottom:.6rem;font-size:.9rem;line-height:1.45}\n  .gb-note .i{color:var(--rock-bright);font-weight:700;flex:none}\n\n  .gb-group{margin-top:2rem}\n  .gb-group h3{font-family:var(--font-mono);font-weight:600;font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;color:var(--rock-bright);margin-bottom:.2rem}\n  .gb-group .glabel{font-size:.85rem;opacity:.65;margin-bottom:1rem}\n  .gb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.9rem}\n  .gb-item{position:relative;background:var(--shadow-3);border:1px solid rgba(233,217,188,.14);border-radius:6px;padding:1rem;display:flex;gap:.85rem;align-items:flex-start;overflow:hidden}\n  .gb-item::before{content:\"\";position:absolute;top:0;left:0;right:0;height:4px;background-repeat:repeat-x;opacity:.8;background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='40' height='15' viewBox='0 0 40 15'%3E%3Cpath d='M0 11 L5 11 L5 7 L10 7 L10 3 L15 3 L15 7 L20 7 L20 11 L25 11 L25 7 L30 7 L30 3 L35 3 L35 7 L40 7' fill='none' stroke='%23c0562f' stroke-width='2'\/%3E%3C\/svg%3E\")}\n  .gb-ic{width:44px;height:44px;flex:none;border-radius:5px;background:radial-gradient(120% 120% at 30% 18%,#3d2718,#1e130d);border:1px solid rgba(233,217,188,.12);display:flex;align-items:center;justify-content:center;margin-top:.2rem}\n  .gb-ic svg{width:60%;height:60%}\n  .gb-item .body{flex:1;min-width:0}\n  .gb-item .cat{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--river-bright)}\n  .gb-item h4{font-family:var(--font-body);font-weight:700;font-size:.96rem;color:var(--bone);margin:.15rem 0 .3rem;line-height:1.2}\n  .gb-item p{font-size:.82rem;opacity:.8;line-height:1.4;margin-bottom:.55rem}\n  .gb-item .amz{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-mono);font-size:.7rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--ink);background:var(--rock-bright);padding:.5em .85em;border-radius:2px}\n  .gb-item .amz:hover{background:var(--bone)}\n\n  .gb-actions{margin-top:2.4rem;display:flex;flex-wrap:wrap;gap:.8rem;align-items:center}\n  .gb-restart{background:var(--rock);color:var(--bone);border:none}\n  .gb-restart:hover{background:var(--rock-bright);color:var(--ink)}\n  .gb-tag-note{font-family:var(--font-mono);font-size:.72rem;color:var(--river-bright);opacity:.9}\n\n  .gb-disc{font-size:.76rem;opacity:.55;line-height:1.5;margin-top:1.8rem;border-top:1px solid rgba(233,217,188,.12);padding-top:1.1rem}\n  \n\n  @media (max-width:640px){.gb-opts{grid-template-columns:1fr}}\n  @media (prefers-reduced-motion:reduce){*{transition:none!important}}\n\n:root{--maxw:1200px}\n\n  \/* ==== Affiliate split button + preview panel ==== *\/\n  .amz-split{display:inline-flex;align-items:stretch;border-radius:3px;overflow:hidden;margin-top:.5rem;\n    font-family:var(--font-mono);font-size:.7rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;vertical-align:middle}\n  .amz-prev{background:var(--rock-bright);color:var(--ink);border:none;padding:.55em .85em;cursor:pointer;font:inherit;display:inline-flex;align-items:center;gap:.35rem}\n  .amz-prev:hover{background:var(--bone)}\n  .amz-nt{background:var(--rock);color:var(--bone);padding:.55em .7em;display:inline-flex;align-items:center;border-left:1px solid rgba(34,20,16,.4);text-decoration:none;font-size:.85rem}\n  .amz-nt:hover{background:var(--rock-bright);color:var(--ink)}\n\n  .amz-backdrop{position:fixed;inset:0;background:rgba(20,12,8,.55);opacity:0;visibility:hidden;transition:.25s;z-index:1000}\n  .amz-backdrop.show{opacity:1;visibility:visible}\n  .amz-panel{position:fixed;top:0;right:0;height:100%;width:min(400px,92vw);background:var(--shadow-2);\n    border-left:1px solid rgba(233,217,188,.18);box-shadow:-30px 0 60px -30px rgba(0,0,0,.85);\n    transform:translateX(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);z-index:1001;\n    display:flex;flex-direction:column;padding:1.5rem 1.4rem 1.8rem;overflow-y:auto}\n  .amz-panel.show{transform:translateX(0)}\n  .amz-panel .close{align-self:flex-end;background:none;border:none;color:var(--sand);font-size:1.6rem;cursor:pointer;line-height:1;opacity:.7;padding:0}\n  .amz-panel .close:hover{opacity:1;color:var(--rock-bright)}\n  .amz-panel .p-eyebrow{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--rock-bright);margin-top:.3rem}\n  .amz-panel .p-icon{width:76px;height:76px;border-radius:10px;background:radial-gradient(120% 120% at 30% 18%,#3d2718,#1e130d);border:1px solid rgba(233,217,188,.14);display:flex;align-items:center;justify-content:center;margin:1rem 0 1.1rem}\n  .amz-panel .p-icon svg{width:56%;height:56%}\n  .amz-panel h3{font-family:var(--font-display);font-size:1.45rem;color:var(--bone);line-height:1.12;margin-bottom:.7rem}\n  .amz-panel .p-why{font-size:.96rem;opacity:.85;line-height:1.55;margin-bottom:1.4rem}\n  .amz-panel .p-open{margin-top:auto;background:var(--rock-bright);color:var(--ink);font-family:var(--font-mono);font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;padding:.95em 1.2em;border-radius:3px;text-align:center;text-decoration:none;display:block}\n  .amz-panel .p-open:hover{background:var(--bone)}\n  .amz-panel .p-note{font-family:var(--font-mono);font-size:.66rem;opacity:.5;margin-top:.85rem;line-height:1.45;text-align:center}\n<\/style>\n\n<header class=\"nav\">\n  <div class=\"wrap nav-inner\">\n    <a class=\"brand\" href=\"#top\" aria-label=\"Zion Gear Builder home\">\n      <span class=\"mark\" aria-hidden=\"true\"><\/span>\n      <span>ZION<b>GEAR<\/b>BUILDER<\/span>\n    <\/a>\n    <nav class=\"links\" aria-label=\"Primary\">\n      <a href=\"#page-builder\" class=\"cta\">Gear Builder<\/a>\n      <a href=\"#kits\">Pre-Built Kits<\/a>\n      <a href=\"#prep\">Bug-Out &amp; Prep<\/a>\n      <a href=\"#shop\">Gear Shop<\/a>\n      <a href=\"#parks\">More Parks<\/a>\n      <a href=\"#page-fitter\">Backpack Fitter<\/a>\n      <a href=\"#page-intown\">In-Town Gear<\/a>\n    <\/nav>\n    <button class=\"menu-btn\" aria-label=\"Menu\" aria-expanded=\"false\">Menu<\/button>\n  <\/div>\n<\/header>\n\n<main id=\"top\">\n\n  <!-- HERO -->\n  <section class=\"hero\">\n    <div class=\"wrap\">\n      <div class=\"hero-grid\">\n        <div class=\"hero-copy\">\n          <span class=\"eyebrow\">Zion National Park \u00b7 Utah<\/span>\n          <h1>Gear that knows<br>the <span class=\"river\">canyon<\/span><\/h1>\n          <p class=\"lead\">Zion isn't one trip. The Narrows, Angels Landing, and a July desert day hike each punish different mistakes. Answer a few questions and get the exact kit for <em>your<\/em> route \u2014 with direct buy links.<\/p>\n          <div class=\"hero-actions\">\n            <a href=\"#page-builder\" class=\"btn btn--primary\">Start the Gear Builder <span class=\"arrow\">\u2192<\/span><\/a>\n            <a href=\"#kits\" class=\"btn btn--ghost\">Browse pre-built kits<\/a>\n          <\/div>\n          <p class=\"hero-trust\">Built by hikers \u00b7 Updated for current conditions \u00b7 Buy direct from trusted retailers<\/p>\n        <\/div>\n\n        <!-- SIGNATURE: live mini gear builder -->\n        <div class=\"builder\" id=\"builder-preview\" aria-label=\"Gear Builder preview\">\n          <div class=\"builder-head\">\n            <span class=\"k\">Gear Builder \u00b7 preview<\/span>\n            <span class=\"step\">01 \/ route<\/span>\n          <\/div>\n          <p class=\"q\">Where are you headed in Zion?<\/p>\n          <div class=\"hike-tabs\" role=\"group\" aria-label=\"Choose a route\">\n            <button data-hike=\"narrows\" aria-pressed=\"true\">The Narrows<\/button>\n            <button data-hike=\"angels\" aria-pressed=\"false\">Angels Landing<\/button>\n            <button data-hike=\"desert\" aria-pressed=\"false\">Desert Day Hike<\/button>\n          <\/div>\n\n          <div class=\"readout\" id=\"readout\" aria-live=\"polite\"><\/div>\n\n          <p class=\"kit-label\">Recommended kit<\/p>\n          <ul class=\"kit\" id=\"kit\" aria-live=\"polite\"><\/ul>\n\n          <div class=\"builder-foot\">\n            <small>Preview only. The full builder also factors in your dates, fitness, and heat tolerance.<\/small>\n            <a href=\"#page-builder\" class=\"btn btn--river\" style=\"padding:.7em 1.1em;font-size:.78rem\">Full builder <span class=\"arrow\">\u2192<\/span><\/a>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <div class=\"fret\" aria-hidden=\"true\"><\/div>\n\n  <!-- CONDITIONS -->\n  <section class=\"conditions\" id=\"why\">\n    <div class=\"wrap\">\n      <div class=\"section-head\">\n        <span class=\"eyebrow\">Why a generic packing list fails here<\/span>\n        <h2>Zion doesn't forgive guesswork<\/h2>\n        <p>Three conditions send most unprepared hikers back to the car \u2014 or worse. Your kit should answer the ones your route actually faces.<\/p>\n      <\/div>\n      <div class=\"cond-grid\">\n        <div class=\"cond\">\n          <span class=\"tag\">Slot canyons<\/span>\n          <h3>Flash floods<\/h3>\n          <p>A storm 15 miles away can turn the Narrows into a wall of water. Timing, forecasts, and a fast exit plan matter more than any single item.<\/p>\n          <div class=\"stat\">RISK WINDOW: Jul\u2013Sep monsoon<\/div>\n        <\/div>\n        <div class=\"cond\">\n          <span class=\"tag\">Exposure<\/span>\n          <h3>Desert heat<\/h3>\n          <p>Open rim trails hit 100\u00b0F+ with almost no shade. Water math, electrolytes, and sun cover aren't optional \u2014 they're the whole kit.<\/p>\n          <div class=\"stat\">PEAK: 95\u2013105\u00b0F surface temps<\/div>\n        <\/div>\n        <div class=\"cond\">\n          <span class=\"tag\">The Narrows<\/span>\n          <h3>Cold moving water<\/h3>\n          <p>You hike <em>in<\/em> the river over slick, unseen rock. The right footwear, traction, and dry storage decide whether it's magic or misery.<\/p>\n          <div class=\"stat\">WATER: often 50s\u00b0F, thigh-deep<\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- HOW IT WORKS -->\n  <section id=\"builder\">\n    <div class=\"wrap\">\n      <div class=\"section-head\">\n        <span class=\"eyebrow\">How the Gear Builder works<\/span>\n        <h2>Answer. Match. Pack.<\/h2>\n        <p>No endless scrolling through a mega-catalog. Tell us about your trip once and we assemble the shortlist.<\/p>\n      <\/div>\n      <div class=\"steps\">\n        <div class=\"step\">\n          <span class=\"num\">STEP 01<\/span>\n          <h3>Tell us the trip<\/h3>\n          <p>Route, dates, group, and how you handle heat, cold, and exposure. Takes about two minutes.<\/p>\n        <\/div>\n        <div class=\"step\">\n          <span class=\"num\">STEP 02<\/span>\n          <h3>We match the conditions<\/h3>\n          <p>Your answers map to Zion's real hazards \u2014 water crossings, sun exposure, flash-flood season \u2014 and to the gear that handles them.<\/p>\n        <\/div>\n        <div class=\"step\">\n          <span class=\"num\">STEP 03<\/span>\n          <h3>Get your kit + buy links<\/h3>\n          <p>A tailored list you can shop straight through, from footwear to first aid, with backups for anything sold out.<\/p>\n        <\/div>\n      <\/div>\n      <div style=\"margin-top:2.4rem\">\n        <a href=\"#page-builder\" class=\"btn btn--primary\">Try the Gear Builder <span class=\"arrow\">\u2192<\/span><\/a>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- KITS -->\n  <section class=\"kits\" id=\"kits\">\n    <div class=\"wrap\">\n      <div class=\"section-head\">\n        <span class=\"eyebrow\">Pre-built kits<\/span>\n        <h2>Skip the survey \u2014 grab a proven kit<\/h2>\n        <p>Curated, condition-specific bundles for Zion's signature routes and situations. Every item hand-picked, every link direct.<\/p>\n      <\/div>\n      <div class=\"kit-grid\">\n        <article class=\"kit-card featured\">\n          <span class=\"kt\">Most popular<\/span>\n          <h3>Zion Narrows Kit<\/h3>\n          <p>Canyoneering footwear, neoprene, traction, and dry storage for the river hike \u2014 cold-water ready.<\/p>\n          <span class=\"meta\">9 items \u00b7 from footwear to dry bags<\/span>\n          <a href=\"#shop\" class=\"go\">View kit \u2192<\/a>\n        <\/article>\n        <article class=\"kit-card\">\n          <span class=\"kt\">Exposure<\/span>\n          <h3>Angels Landing Essentials<\/h3>\n          <p>Grip, gloves for the chains, sun cover, and a smart water setup for the exposed spine.<\/p>\n          <span class=\"meta\">8 items \u00b7 permit reminder included<\/span>\n          <a href=\"#shop\" class=\"go\">View kit \u2192<\/a>\n        <\/article>\n        <article class=\"kit-card\">\n          <span class=\"kt\">Heat<\/span>\n          <h3>Desert Hiking Kit<\/h3>\n          <p>Sun hoodie, electrolytes, cooling, and hydration built for 100\u00b0F rim trails and slickrock.<\/p>\n          <span class=\"meta\">10 items \u00b7 summer-tuned<\/span>\n          <a href=\"#shop\" class=\"go\">View kit \u2192<\/a>\n        <\/article>\n        <article class=\"kit-card\" id=\"prep\">\n          <span class=\"kt\">Preparedness<\/span>\n          <h3>Bug-Out &amp; Disaster Prep<\/h3>\n          <p>72-hour essentials plus a Zion-specific version for backcountry emergencies and remote trailheads.<\/p>\n          <span class=\"meta\">General + park-specific builds<\/span>\n          <a href=\"#shop\" class=\"go\">View kit \u2192<\/a>\n        <\/article>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <div class=\"fret fret--ink\" aria-hidden=\"true\"><\/div>\n\n  <!-- SHOP THE ESSENTIALS (Amazon) -->\n  <section class=\"shop geo-section\" id=\"shop\">\n    <div class=\"wrap\">\n      <div class=\"section-head\">\n        <span class=\"eyebrow\">Shop the essentials<\/span>\n        <h2>The gear, straight from Amazon<\/h2>\n        <p>The most-reached-for items across every Zion route. Tap through to buy \u2014 availability and pricing shown live on Amazon.<\/p>\n        <p class=\"shop-note\">Links are affiliate-ready \u2014 swap <b>YOURTAG-20<\/b> for your Associates tag to earn on every sale.<\/p>\n      <\/div>\n      <div class=\"shop-grid\">\n        <article class=\"prod-card\">\n          <div class=\"prod-media\"><!-- Replace with Amazon SiteStripe image embed --><svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"#e9d9bc\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M6 33v-8c0-1.6 1.6-2.4 3-1.7l8 3.8c4 1.9 9 2.2 14 2.7l6 .6c3 .3 5 1.8 5 4.1v.9c0 1-.8 1.8-1.8 1.8H8c-1.1 0-2-.9-2-2z\"\/><path d=\"M13 25l2 3.5M18 27l2 3.5\" stroke=\"#e08a3c\"\/><\/svg><\/div>\n          <span class=\"pc-cat\">Narrows \u00b7 footwear<\/span>\n          <h3>Astral Brewer 2.0 Water Shoes<\/h3>\n          <p>Closed-toe, grippy, and fast-draining for slick river rock.<\/p>\n          <a class=\"amz\" href=\"https:\/\/www.amazon.com\/s?k=astral+brewer+2.0+water+shoes&tag=YOURTAG-20\" target=\"_blank\" rel=\"sponsored nofollow noopener\">View on Amazon \u2197<\/a>\n        <\/article>\n        <article class=\"prod-card\">\n          <div class=\"prod-media\"><!-- Replace with Amazon SiteStripe image embed --><svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"#e9d9bc\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M19 8h10v14l7 8c2.4 2.7 .8 6.6-2.8 6.6h-3.7c-1.6 0-3.1-.8-4-2.2L19 29c-.7-1-1-2.2-1-3.4V8z\"\/><path d=\"M19 12h10\" stroke=\"#e08a3c\"\/><\/svg><\/div>\n          <span class=\"pc-cat\">Narrows \u00b7 warmth<\/span>\n          <h3>NRS HydroSkin Neoprene Socks<\/h3>\n          <p>Keeps feet warm in 50\u00b0F Virgin River water all day.<\/p>\n          <a class=\"amz\" href=\"https:\/\/www.amazon.com\/s?k=NRS+HydroSkin+wetsocks+neoprene&tag=YOURTAG-20\" target=\"_blank\" rel=\"sponsored nofollow noopener\">View on Amazon \u2197<\/a>\n        <\/article>\n        <article class=\"prod-card\">\n          <div class=\"prod-media\"><!-- Replace with Amazon SiteStripe image embed --><svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"#e9d9bc\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M6 33v-8c0-1.6 1.6-2.4 3-1.7l8 3.8c4 1.9 9 2.2 14 2.7l6 .6c3 .3 5 1.8 5 4.1v.9c0 1-.8 1.8-1.8 1.8H8c-1.1 0-2-.9-2-2z\"\/><path d=\"M13 25l2 3.5M18 27l2 3.5\" stroke=\"#e08a3c\"\/><\/svg><\/div>\n          <span class=\"pc-cat\">All routes \u00b7 footwear<\/span>\n          <h3>Merrell Moab 3 Hiking Shoes<\/h3>\n          <p>The trail workhorse \u2014 traction and comfort on slickrock.<\/p>\n          <a class=\"amz\" href=\"https:\/\/www.amazon.com\/s?k=merrell+moab+3+hiking+shoes&tag=YOURTAG-20\" target=\"_blank\" rel=\"sponsored nofollow noopener\">View on Amazon \u2197<\/a>\n        <\/article>\n        <article class=\"prod-card\">\n          <div class=\"prod-media\"><!-- Replace with Amazon SiteStripe image embed --><svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"#e9d9bc\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M24 7s11 12.5 11 20.5A11 11 0 0 1 13 27.5C13 19.5 24 7 24 7z\"\/><path d=\"M19 28a5 5 0 0 0 5 5\" stroke=\"#e08a3c\"\/><\/svg><\/div>\n          <span class=\"pc-cat\">Heat \u00b7 hydration<\/span>\n          <h3>CamelBak Crux 3L Reservoir<\/h3>\n          <p>Carry enough water for exposed, 100\u00b0F rim trails.<\/p>\n          <a class=\"amz\" href=\"https:\/\/www.amazon.com\/s?k=camelbak+crux+3L+reservoir&tag=YOURTAG-20\" target=\"_blank\" rel=\"sponsored nofollow noopener\">View on Amazon \u2197<\/a>\n        <\/article>\n        <article class=\"prod-card\">\n          <div class=\"prod-media\"><!-- Replace with Amazon SiteStripe image embed --><svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"#e9d9bc\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"17\" y=\"8\" width=\"14\" height=\"26\" rx=\"3\"\/><path d=\"M17 15h14M17 27h14\"\/><path d=\"M24 34s4 4.2 4 6.4a4 4 0 0 1-8 0c0-2.2 4-6.4 4-6.4z\" stroke=\"#e08a3c\"\/><\/svg><\/div>\n          <span class=\"pc-cat\">Prep \u00b7 water<\/span>\n          <h3>Sawyer Squeeze Water Filter<\/h3>\n          <p>Drink from any source \u2014 essential backcountry safety.<\/p>\n          <a class=\"amz\" href=\"https:\/\/www.amazon.com\/s?k=sawyer+squeeze+water+filter+system&tag=YOURTAG-20\" target=\"_blank\" rel=\"sponsored nofollow noopener\">View on Amazon \u2197<\/a>\n        <\/article>\n        <article class=\"prod-card\">\n          <div class=\"prod-media\"><!-- Replace with Amazon SiteStripe image embed --><svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"#e9d9bc\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M9 27a15 15 0 0 1 30 0\"\/><rect x=\"18\" y=\"24\" width=\"12\" height=\"10\" rx=\"2\"\/><circle cx=\"24\" cy=\"29\" r=\"2.3\" stroke=\"#e08a3c\"\/><\/svg><\/div>\n          <span class=\"pc-cat\">Prep \u00b7 light<\/span>\n          <h3>Black Diamond Spot 400 Headlamp<\/h3>\n          <p>Hands-free light for early starts and emergencies.<\/p>\n          <a class=\"amz\" href=\"https:\/\/www.amazon.com\/s?k=black+diamond+spot+400+headlamp&tag=YOURTAG-20\" target=\"_blank\" rel=\"sponsored nofollow noopener\">View on Amazon \u2197<\/a>\n        <\/article>\n        <article class=\"prod-card\">\n          <div class=\"prod-media\"><!-- Replace with Amazon SiteStripe image embed --><svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"#e9d9bc\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M18 10l-8 6 4 5 3-2v15h18V19l3 2 4-5-8-6c-2 3-9 3-11 0z\"\/><\/svg><\/div>\n          <span class=\"pc-cat\">Sun \u00b7 layers<\/span>\n          <h3>BALEAF UPF 50 Sun Hoodie<\/h3>\n          <p>Lightweight sun cover where the trail offers no shade.<\/p>\n          <a class=\"amz\" href=\"https:\/\/www.amazon.com\/s?k=baleaf+UPF+50+sun+hoodie&tag=YOURTAG-20\" target=\"_blank\" rel=\"sponsored nofollow noopener\">View on Amazon \u2197<\/a>\n        <\/article>\n        <article class=\"prod-card\">\n          <div class=\"prod-media\"><!-- Replace with Amazon SiteStripe image embed --><svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"#e9d9bc\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M16 12l3-3h10l3 3v27H16z\"\/><path d=\"M21 21h6M21 27h6\" stroke=\"#e08a3c\"\/><\/svg><\/div>\n          <span class=\"pc-cat\">Heat \u00b7 electrolytes<\/span>\n          <h3>Liquid I.V. Hydration Multiplier<\/h3>\n          <p>Replace what desert heat pulls out of you, fast.<\/p>\n          <a class=\"amz\" href=\"https:\/\/www.amazon.com\/s?k=liquid+IV+hydration+multiplier&tag=YOURTAG-20\" target=\"_blank\" rel=\"sponsored nofollow noopener\">View on Amazon \u2197<\/a>\n        <\/article>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- PARKS -->\n  <section class=\"parks\" id=\"parks\">\n    <div class=\"wrap\">\n      <div class=\"section-head\">\n        <span class=\"eyebrow\">The map is growing<\/span>\n        <h2>Zion first. More parks next.<\/h2>\n        <p>We're going deep on one canyon before we go wide. These are next in line \u2014 each with its own hazards and its own builder.<\/p>\n      <\/div>\n      <div class=\"park-row\">\n        <span class=\"park live\">Zion<\/span>\n        <span class=\"park soon\">Grand Canyon<\/span>\n        <span class=\"park soon\">Yosemite<\/span>\n        <span class=\"park soon\">Zion Wilderness<\/span>\n        <span class=\"park soon\">Bryce Canyon<\/span>\n        <span class=\"park soon\">Arches<\/span>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <div class=\"fret fret--river\" aria-hidden=\"true\"><\/div>\n\n  <!-- FINAL CTA -->\n  <section class=\"final geo-section\" id=\"build\">\n    <div class=\"wrap\">\n      <h2>Build your Zion kit<\/h2>\n      <p>Two minutes of questions. A packing list that fits your exact route. Zero guesswork at the trailhead.<\/p>\n      <a href=\"#page-builder\" class=\"btn btn--primary\">Start the Gear Builder <span class=\"arrow\">\u2192<\/span><\/a>\n    <\/div>\n  <\/section>\n\n<\/main>\n\n\n  <div class=\"fret section-break\" aria-hidden=\"true\"><\/div>\n  <section id=\"page-builder\" class=\"page-embed\">\n<section class=\"gb-intro\">\n  <div class=\"wrap\">\n    <span class=\"eyebrow\">Tool \u00b7 Gear Builder<\/span>\n    <h1>Build your <span class=\"r\">Zion kit<\/span><\/h1>\n    <p>Six quick questions about your trip. We match your route and conditions to the exact gear \u2014 sorted into what you truly need, what's smart to bring, and what's nice to have \u2014 with direct buy links.<\/p>\n  <\/div>\n<\/section>\n\n<div class=\"wrap gb-stage\">\n\n  <div class=\"gb-quiz\" id=\"gbQuiz\">\n    <div class=\"gb-progress\">\n      <div class=\"gb-bar\"><span id=\"gbBar\"><\/span><\/div>\n      <div class=\"gb-count\" id=\"gbCount\"><\/div>\n    <\/div>\n    <div class=\"gb-card\">\n      <div class=\"gb-step-tag\" id=\"gbStepTag\"><\/div>\n      <div class=\"gb-q\" id=\"gbQ\"><\/div>\n      <div class=\"gb-opts\" id=\"gbOpts\" role=\"group\"><\/div>\n      <div class=\"gb-nav\">\n        <button class=\"gb-btn gb-back\" id=\"gbBack\" disabled>&larr; Back<\/button>\n        <span class=\"gb-hint\" id=\"gbHint\">Pick one to continue<\/span>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"gb-results\" id=\"gbResults\"><\/div>\n\n<\/div>\n<\/section>\n  <div class=\"fret section-break\" aria-hidden=\"true\"><\/div>\n  <section id=\"page-fitter\" class=\"page-embed\">\n<section class=\"introfit\">\n  <div class=\"wrap\">\n    <span class=\"eyebrow\">Tool \u00b7 Backpack Fitter<\/span>\n    <h1>Find your <span class=\"r\">pack size<\/span><\/h1>\n    <p>Buying a backpack without knowing your frame size is the #1 way to end a trip with a wrecked back. Enter your measurements and trip length \u2014 we'll tell you the exact size to buy and match you to packs that come in it.<\/p>\n    <p class=\"keynote\">The number that actually sizes a pack is your <b>torso length<\/b> \u2014 not your height. Two people the same height can wear different frame sizes. Measure it once and you'll never guess again.<\/p>\n  <\/div>\n<\/section>\n\n<div class=\"wrap fitmain\">\n  <div class=\"grid\">\n\n    <!-- INPUTS -->\n    <div class=\"card\">\n      <h2>Your measurements<\/h2>\n      <p class=\"sub\">Inches. Torso length is the one that matters most.<\/p>\n\n      <div class=\"field\">\n        <label for=\"torso\">Torso length (in)<\/label>\n        <input type=\"number\" id=\"torso\" min=\"10\" max=\"26\" step=\"0.5\" placeholder=\"e.g. 18.5\" inputmode=\"decimal\" \/>\n        <details>\n          <summary>How to measure it (2 min)<\/summary>\n          <div class=\"body\">\n            Tilt your head forward and find the bony bump at the base of your neck \u2014 that's your C7 vertebra.\n            Put your hands on the top shelf of your hip bones (the iliac crest), thumbs pointing toward your spine.\n            Have someone measure straight down your spine from the C7 bump to the level of your thumbs.\n            That length in inches is your torso size.\n          <\/div>\n        <\/details>\n        <button class=\"toggle\" id=\"estBtn\" type=\"button\">Don't know it? Estimate from height \u2192<\/button>\n        <div id=\"heightWrap\">\n          <label for=\"height\" style=\"margin-top:.2rem\">Height (in) \u2014 rough estimate only<\/label>\n          <input type=\"number\" id=\"height\" min=\"48\" max=\"84\" step=\"1\" placeholder=\"e.g. 70  (5'10&quot; = 70)\" inputmode=\"numeric\" \/>\n          <p class=\"hint\">We'll estimate your frame size from height, but measuring your torso is far more accurate \u2014 same-height people vary a lot.<\/p>\n        <\/div>\n      <\/div>\n\n      <div class=\"field\">\n        <label for=\"hip\">Hip circumference (in) <span class=\"opt\">\u00b7 optional, for belt size<\/span><\/label>\n        <input type=\"number\" id=\"hip\" min=\"24\" max=\"60\" step=\"0.5\" placeholder=\"e.g. 36\" inputmode=\"decimal\" \/>\n        <p class=\"hint\">Measure around the top of your hip bones (not your pants waist). Most packs have adjustable belts, so this is a guide.<\/p>\n      <\/div>\n\n      <div class=\"field\">\n        <label>Trip length<\/label>\n        <div class=\"trip-tabs\" role=\"group\" aria-label=\"Trip length\">\n          <button data-trip=\"day\" aria-pressed=\"true\">Day hike<small>out & back, no overnight<\/small><\/button>\n          <button data-trip=\"overnight\" aria-pressed=\"false\">Overnight<small>1 night out<\/small><\/button>\n          <button data-trip=\"weekend\" aria-pressed=\"false\">Weekend<small>2\u20133 nights<\/small><\/button>\n          <button data-trip=\"extended\" aria-pressed=\"false\">Extended<small>4+ nights<\/small><\/button>\n        <\/div>\n      <\/div>\n\n      <button class=\"btn-fit\" id=\"fitBtn\" type=\"button\">Fit my pack \u2192<\/button>\n    <\/div>\n\n    <!-- RESULTS -->\n    <div class=\"card\" id=\"results\">\n      <div class=\"placeholder\">Enter your torso length (or height) and pick a trip length, then hit <b style=\"color:var(--rock-bright)\">&nbsp;Fit my pack<\/b>.<\/div>\n    <\/div>\n\n  <\/div>\n<\/div>\n  <\/section>\n\n  <div class=\"fret section-break\" aria-hidden=\"true\"><\/div>\n  <section id=\"page-intown\" class=\"page-embed\">\n<section class=\"introtown\">\n  <div class=\"wrap\">\n    <span class=\"eyebrow\">Tool \u00b7 In-Town Gear<\/span>\n    <h1>Buy or rent <span class=\"r\">near the park<\/span><\/h1>\n    <p>Forgot something, or want to rent Narrows gear instead of buying? These are the real shops at Zion's doorstep. Tell us where you're staying and we'll route you there and on to the trailhead.<\/p>\n\n    <div class=\"planner\">\n      <div class=\"f\">\n        <label for=\"hotel\">Where are you staying?<\/label>\n        <input type=\"text\" id=\"hotel\" placeholder=\"Hotel or address \u2014 e.g. Cable Mountain Lodge, Springdale\" \/>\n        <div class=\"hint\">Used to build live directions. Leave blank to route from your current location.<\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<div class=\"wrap itmain\">\n\n  <div class=\"filters\" role=\"group\" aria-label=\"Filter stores\">\n    <button data-filter=\"all\" aria-pressed=\"true\">All<\/button>\n    <button data-filter=\"rent\" aria-pressed=\"false\">Rent gear<\/button>\n    <button data-filter=\"buy\" aria-pressed=\"false\">Buy gear<\/button>\n  <\/div>\n\n  <div class=\"stores\" id=\"stores\"><\/div>\n\n  <p class=\"note\">Drive-to-park times are approximate. \"Directions\" opens Google Maps from your hotel to the shop; \"Gear run\" routes hotel \u2192 shop \u2192 Zion Canyon Visitor Center so you can grab gear on the way in. Springdale shops sit right at the south entrance; St. George is about 40 minutes west with the area's biggest selection.<\/p>\n<\/div>\n  <\/section>\n\n  <div class=\"fret section-break\" aria-hidden=\"true\"><\/div>\n<footer>\n  <div class=\"wrap\">\n    <div class=\"foot-grid\">\n      <div>\n        <a class=\"brand\" href=\"#top\" style=\"margin-bottom:.8rem\">\n          <span class=\"mark\" aria-hidden=\"true\"><\/span>\n          <span>ZION<b>GEAR<\/b>BUILDER<\/span>\n        <\/a>\n        <p style=\"font-size:.9rem;opacity:.75;max-width:34ch\">Personalized survival and hiking gear for Zion National Park \u2014 matched to the route you're actually hiking.<\/p>\n      <\/div>\n      <div>\n        <h4>Explore<\/h4>\n        <ul>\n          <li><a href=\"#page-builder\">Gear Builder<\/a><\/li>\n          <li><a href=\"#kits\">Pre-Built Kits<\/a><\/li>\n          <li><a href=\"#prep\">Bug-Out &amp; Prep<\/a><\/li>\n          <li><a href=\"#shop\">Gear Shop<\/a><\/li>\n        <\/ul>\n      <\/div>\n      <div>\n        <h4>Zion routes<\/h4>\n        <ul>\n          <li><a href=\"#kits\">The Narrows<\/a><\/li>\n          <li><a href=\"#kits\">Angels Landing<\/a><\/li>\n          <li><a href=\"#kits\">Desert day hikes<\/a><\/li>\n          <li><a href=\"#parks\">More parks<\/a><\/li>\n        <\/ul>\n      <\/div>\n    <\/div>\n    <p class=\"disclosure\"><b>As an Amazon Associate, ZionGearBuilder.com earns from qualifying purchases.<\/b> We recommend gear through affiliate links \u2014 if you buy through them we may earn a commission at no extra cost to you, which keeps the Gear Builder free. We only recommend gear we'd carry ourselves. Conditions in Zion change fast; always check the current forecast and park alerts before you hike.<\/p>\n  <\/div>\n<\/footer>\n\n\n\n<script>\n(function(){\nvar TAG = \"YOURTAG-20\"; \/\/ replace with your Amazon Associates tracking tag\n  function amz(q){ return \"https:\/\/www.amazon.com\/s?k=\" + encodeURIComponent(q).replace(\/%20\/g,\"+\") + \"&tag=\" + TAG; }\n\n  const HIKES = {\n    narrows: {\n      step: \"01 \/ route \u00b7 The Narrows\",\n      readout: [\n        {k:\"Water\", v:\"River hike, thigh-deep\", warn:false},\n        {k:\"Temp\", v:\"50s\u00b0F water\", warn:false},\n        {k:\"Terrain\", v:\"Slick submerged rock\", warn:false},\n        {k:\"Flash-flood\", v:\"Check forecast\", warn:true}\n      ],\n      kit: [\n        {n:\"Astral Brewer 2.0 water shoes\", q:\"astral brewer 2.0 water shoes\"},\n        {n:\"NRS HydroSkin neoprene socks\", q:\"NRS HydroSkin wetsocks neoprene\"},\n        {n:\"Black Diamond trekking poles\", q:\"black diamond trail trekking poles\"},\n        {n:\"Earth Pak roll-top dry bag\", q:\"earth pak waterproof dry bag 10L\"},\n        {n:\"BALEAF quick-dry hiking shirt\", q:\"baleaf quick dry hiking shirt UPF 50\"},\n        {n:\"Hiearcool waterproof phone pouch\", q:\"hiearcool waterproof phone pouch\"}\n      ]\n    },\n    angels: {\n      step: \"01 \/ route \u00b7 Angels Landing\",\n      readout: [\n        {k:\"Water\", v:\"Carry all \u2014 none on route\", warn:false},\n        {k:\"Exposure\", v:\"Extreme (chained spine)\", warn:true},\n        {k:\"Terrain\", v:\"Steep switchbacks\", warn:false},\n        {k:\"Permit\", v:\"Required (lottery)\", warn:false}\n      ],\n      kit: [\n        {n:\"Merrell Moab 3 hiking shoes\", q:\"merrell moab 3 hiking shoes\"},\n        {n:\"Mechanix gloves for the chains\", q:\"mechanix wear tactical gloves\"},\n        {n:\"Liquid I.V. electrolytes\", q:\"liquid IV hydration multiplier\"},\n        {n:\"CamelBak M.U.L.E. hydration pack\", q:\"camelbak mule hydration pack\"},\n        {n:\"BALEAF UPF 50 sun hoodie\", q:\"baleaf UPF 50 sun hoodie\"},\n        {n:\"Adventure Medical first-aid kit\", q:\"adventure medical kits ultralight watertight\"}\n      ]\n    },\n    desert: {\n      step: \"01 \/ route \u00b7 Desert Day Hike\",\n      readout: [\n        {k:\"Sun\", v:\"Full exposure, no shade\", warn:true},\n        {k:\"Temp\", v:\"95\u2013105\u00b0F peak\", warn:false},\n        {k:\"Terrain\", v:\"Sand + slickrock\", warn:false},\n        {k:\"Water\", v:\"3L+ minimum\", warn:false}\n      ],\n      kit: [\n        {n:\"Columbia Bora Bora sun hat\", q:\"columbia bora bora booney hat\"},\n        {n:\"BALEAF UPF 50 sun hoodie\", q:\"baleaf UPF 50 sun hoodie\"},\n        {n:\"Nuun Sport electrolyte tablets\", q:\"nuun sport electrolyte tablets\"},\n        {n:\"CamelBak Crux 3L reservoir\", q:\"camelbak crux 3L reservoir\"},\n        {n:\"Sun Bum SPF 50 sunscreen\", q:\"sun bum SPF 50 sunscreen\"},\n        {n:\"Mission cooling towel\", q:\"mission cooling towel\"}\n      ]\n    }\n  };\n\n  const readoutEl = document.getElementById('readout');\n  const kitEl = document.getElementById('kit');\n  const stepEl = document.querySelector('.builder-head .step');\n  const tabs = document.querySelectorAll('.hike-tabs button');\n\n  function render(hike){\n    const data = HIKES[hike];\n    stepEl.textContent = data.step;\n    readoutEl.innerHTML = data.readout.map(function(c){\n      return '<span class=\"chip'+(c.warn?' warn':'')+'\"><b>'+c.k+':<\/b> '+c.v+'<\/span>';\n    }).join('');\n    kitEl.innerHTML = data.kit.map(function(item){\n      return '<li><span class=\"dot\" aria-hidden=\"true\"><\/span>'+\n             '<a href=\"'+amz(item.q)+'\" target=\"_blank\" rel=\"sponsored nofollow noopener\">'+item.n+'<\/a>'+\n             '<span class=\"ext\" aria-hidden=\"true\">Amazon \u2197<\/span><\/li>';\n    }).join('');\n  }\n\n  tabs.forEach(function(btn){\n    btn.addEventListener('click', function(){\n      tabs.forEach(function(b){ b.setAttribute('aria-pressed','false'); });\n      btn.setAttribute('aria-pressed','true');\n      render(btn.dataset.hike);\n    });\n  });\n\n  render('narrows');\n})();\n<\/script>\n\n<script>\n(function(){\nvar TAG = \"YOURTAG-20\"; \/\/ replace with your Amazon Associates tracking tag\n  function amz(q){ return \"https:\/\/www.amazon.com\/s?k=\" + encodeURIComponent(q).replace(\/%20\/g,\"+\") + \"&tag=\" + TAG; }\n\n  \/\/ ---- fit logic ----\n  function torsoToSize(t){\n    if(t < 16) return {code:\"XS\", label:\"Extra Small\", range:'under 16\"'};\n    if(t < 18) return {code:\"S\",  label:\"Small\",       range:'16\"\u201318\"'};\n    if(t < 20) return {code:\"M\",  label:\"Medium\",      range:'18\"\u201320\"'};\n    return           {code:\"L\",  label:\"Large\",       range:'20\" and up'};\n  }\n  function heightToTorso(h){        \/\/ rough midpoint estimate only\n    if(h < 64) return 15.5;\n    if(h < 68) return 17.2;\n    if(h < 72) return 18.8;\n    return 20.3;\n  }\n  function hipToBelt(h){\n    if(!h || h <= 0) return null;\n    if(h < 30) return \"Small\";\n    if(h <= 40) return \"Medium\";\n    return \"Large\";\n  }\n\n  var TRIPS = {\n    day: { label:\"Day hike\", vol:\"18\u201328 L\", load:\"up to ~20 lb\",\n      picks:[\n        {tag:\"Daypack \u00b7 unisex\", name:\"Osprey Talon 22 \/ Tempest 20\", note:\"Ventilated, comes in multiple torso sizes. Talon = men's fit, Tempest = women's.\", q:\"osprey talon 22 tempest 20 daypack\"},\n        {tag:\"Daypack \u00b7 value\",  name:\"REI Co-op Flash 22\",           note:\"Lightweight, affordable, a longtime day-hike favorite.\", q:\"REI co-op flash 22 daypack\"},\n        {tag:\"Daypack \u00b7 comfort\",name:\"Gregory Zulu 24 \/ Jade 24\",    note:\"Suspended mesh backpanel \u2014 excellent breathability for hot Zion days.\", q:\"gregory zulu 24 jade 24 daypack\"}\n      ]},\n    overnight: { label:\"Overnight\", vol:\"35\u201350 L\", load:\"~25\u201335 lb\",\n      picks:[\n        {tag:\"Overnight \u00b7 light\", name:\"Osprey Exos 48 \/ Eja 48\",     note:\"Light, adjustable torso, great for a single night. Eja = women's.\", q:\"osprey exos 48 eja 48 backpack\"},\n        {tag:\"Overnight \u00b7 value\", name:\"Osprey Rook 50 \/ Renn 50\",    note:\"Budget-friendly with a proper hipbelt and adjustable harness.\", q:\"osprey rook 50 renn 50 backpack\"},\n        {tag:\"Overnight \u00b7 comfort\",name:\"Gregory Stout 45 \/ Amber 44\", note:\"Value line with adjustable torso and included rain cover.\", q:\"gregory stout 45 amber 44 backpack\"}\n      ]},\n    weekend: { label:\"Weekend\", vol:\"50\u201358 L\", load:\"~30\u201340 lb\",\n      picks:[\n        {tag:\"Weekend \u00b7 all-round\", name:\"Gregory Paragon 58 \/ Maven 58\", note:\"The 3-season sweet spot \u2014 mid-weight, adjustable, comfortable to ~40 lb.\", q:\"gregory paragon 58 maven 58 backpack\"},\n        {tag:\"Weekend \u00b7 light\",     name:\"Osprey Exos 58 \/ Eja 58\",        note:\"Lighter carry with adjustable torso length. Eja = women's.\", q:\"osprey exos 58 eja 58 backpack\"},\n        {tag:\"Weekend \u00b7 value\",     name:\"Gregory Stout 55 \/ Amber 54\",    note:\"Same weekend load as premium packs for about $100 less.\", q:\"gregory stout 55 amber 54 backpack\"}\n      ]},\n    extended: { label:\"Extended\", vol:\"60\u201370 L\", load:\"~40\u201350 lb\",\n      picks:[\n        {tag:\"Multi-day \u00b7 flagship\", name:\"Osprey Atmos AG 65 \/ Aura AG 65\", note:\"Anti-Gravity mesh suspension, adjustable torso, heat-moldable belt. Aura = women's.\", q:\"osprey atmos AG 65 aura AG 65 backpack\"},\n        {tag:\"Multi-day \u00b7 hauler\",   name:\"Gregory Baltoro 65 \/ Deva 60\",    note:\"Best-in-class load hauling for heavy 40+ lb loads. Deva = women's.\", q:\"gregory baltoro 65 deva 60 backpack\"},\n        {tag:\"Multi-day \u00b7 value\",    name:\"Osprey Rook 65 \/ Renn 65\",        note:\"Solid multi-day support at a friendlier price.\", q:\"osprey rook 65 renn 65 backpack\"}\n      ]}\n    };\n\n  var currentTrip = \"day\";\n  var tripBtns = document.querySelectorAll(\".trip-tabs button\");\n  tripBtns.forEach(function(b){\n    b.addEventListener(\"click\", function(){\n      tripBtns.forEach(function(x){x.setAttribute(\"aria-pressed\",\"false\");});\n      b.setAttribute(\"aria-pressed\",\"true\");\n      currentTrip = b.dataset.trip;\n      if(document.querySelector(\".res-head\")) runFit(); \/\/ live update if already shown\n    });\n  });\n\n  document.getElementById(\"estBtn\").addEventListener(\"click\", function(){\n    document.getElementById(\"heightWrap\").classList.toggle(\"show\");\n  });\n\n  document.getElementById(\"fitBtn\").addEventListener(\"click\", runFit);\n\n  function runFit(){\n    var torso = parseFloat(document.getElementById(\"torso\").value);\n    var height = parseFloat(document.getElementById(\"height\").value);\n    var hip = parseFloat(document.getElementById(\"hip\").value);\n    var estimated = false;\n\n    if(!torso || torso <= 0){\n      if(height && height > 0){ torso = heightToTorso(height); estimated = true; }\n      else {\n        document.getElementById(\"results\").innerHTML =\n          '<div class=\"placeholder\">Enter your <b style=\"color:var(--rock-bright)\">torso length<\/b> (or a height to estimate from) to get your size.<\/div>';\n        return;\n      }\n    }\n\n    var size = torsoToSize(torso);\n    var belt = hipToBelt(hip);\n    var trip = TRIPS[currentTrip];\n\n    var html = '<div class=\"res-head\">Your fit \u00b7 ' + trip.label + '<\/div>';\n\n    if(estimated){\n      html += '<div class=\"est-note\">\u25b2 Estimated from height (~' + torso.toFixed(1) + '\" torso). Measure your torso to confirm before buying.<\/div>';\n    }\n\n    html += '<div class=\"stat-grid\">';\n    html += '<div class=\"stat\"><div class=\"k\">Frame size<\/div><div class=\"v\">' + size.label + '<\/div><div class=\"d\">' + size.range + ' torso<\/div><\/div>';\n    html += '<div class=\"stat\"><div class=\"k\">Volume<\/div><div class=\"v\">' + trip.vol + '<\/div><div class=\"d\">for a ' + trip.label.toLowerCase() + '<\/div><\/div>';\n    if(belt){\n      html += '<div class=\"stat\"><div class=\"k\">Hipbelt<\/div><div class=\"v\">' + belt + '<\/div><div class=\"d\">~' + hip + '\" hips<\/div><\/div>';\n    } else {\n      html += '<div class=\"stat flag\"><div class=\"k\">Hipbelt<\/div><div class=\"v\">Add hips<\/div><div class=\"d\">enter hip size for belt<\/div><\/div>';\n    }\n    html += '<div class=\"stat\"><div class=\"k\">Comfy load<\/div><div class=\"v\" style=\"font-size:1.05rem\">' + trip.load + '<\/div><div class=\"d\">approx. max<\/div><\/div>';\n    html += '<\/div>';\n\n    html += '<div class=\"picks-label\">Packs that fit \u2014 pick the ' + size.code + ' torso size<\/div>';\n    trip.picks.forEach(function(p){\n      html += '<div class=\"pick\">'\n        + '<div class=\"pick-media\"><!-- Replace with Amazon SiteStripe image embed for this pack -->'\n        + '<svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"#e9d9bc\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M17 17c0-5 3-8 7-8s7 3 7 8\"\/><rect x=\"12\" y=\"17\" width=\"24\" height=\"25\" rx=\"5\"\/><path d=\"M12 23h24\"\/><rect x=\"19\" y=\"27\" width=\"10\" height=\"9\" rx=\"2\" stroke=\"#e08a3c\"\/><\/svg>'\n        + '<\/div>'\n        + '<span class=\"pk-tag\">' + p.tag + '<\/span>'\n        + '<h3>' + p.name + '<\/h3>'\n        + '<p>' + p.note + '<\/p>'\n        + '<a class=\"amz\" href=\"' + amz(p.q) + '\" target=\"_blank\" rel=\"sponsored nofollow noopener\">View on Amazon \u2197<\/a>'\n        + '<\/div>';\n    });\n\n    html += '<p class=\"disc\">Frame size comes from your torso length; volume comes from trip length. When you buy, select the <b>' + size.code + '<\/b> \/ ' + size.label + ' torso option (most Osprey & Gregory packs list it). Belts are often adjustable or swappable, so treat hipbelt size as a starting point.<\/p>';\n\n    document.getElementById(\"results\").innerHTML = html;\n  }\n})();\n<\/script>\n\n<script>\n(function(){\nvar PARK = \"Zion Canyon Visitor Center, Springdale, UT 84767\";\n\n  var STORES = [\n    {\n      name:\"Zion Adventures\", type:[\"rent\"],\n      badges:[[\"rent\",\"Rent\"],[\"guided\",\"Guided tours\"]],\n      rating:\"4.8\", reviews:\"948\",\n      desc:\"The premium outfitter. Full Narrows rental packages (drysuits, boots, sticks), plus guided canyoneering & Narrows tours and e-bike rentals. Best if you want expert help or a guided day.\",\n      addr:\"36 Lion Blvd, Springdale, UT 84767\", town:\"Springdale\", toPark:\"~4 min to park\",\n      phone:\"+14357721001\", site:\"https:\/\/www.zionadventures.com\/\"\n    },\n    {\n      name:\"Zion Outfitter\", type:[\"rent\"],\n      badges:[[\"rent\",\"Rent\"]],\n      rating:\"4.4\", reviews:\"1,316\",\n      desc:\"Right at the pedestrian entrance \u2014 a well-oiled Narrows rental machine. Drysuit\/bib packages, neoprene, canyoneering boots, walking sticks, plus bike rentals. Fast pickup the night before.\",\n      addr:\"7 Zion \u2013 Mount Carmel Hwy, Springdale, UT 84767\", town:\"Springdale\", toPark:\"~2 min \u2014 at the entrance\",\n      phone:\"+14357725090\", site:\"https:\/\/www.zionoutfitter.com\/\"\n    },\n    {\n      name:\"Zion Outdoor\", type:[\"buy\"],\n      badges:[[\"buy\",\"Buy\"]],\n      rating:\"4.6\", reviews:\"85\",\n      desc:\"A thoughtful retail shop for when you need to buy: hiking shoes and boots, backpacks, dry bags, hats, gloves, and sun-protective clothing. Great, hands-on footwear fitting.\",\n      addr:\"868 Zion Park Blvd, Springdale, UT 84767\", town:\"Springdale\", toPark:\"~4 min to park\",\n      phone:\"+14357720630\", site:\"http:\/\/www.zionoutdoor.com\/\"\n    },\n    {\n      name:\"Sportsman's Warehouse\", type:[\"buy\"],\n      badges:[[\"big\",\"Big-box\"],[\"buy\",\"Buy\"]],\n      rating:\"4.3\", reviews:\"1,239\",\n      desc:\"The nearest full-size outdoor store \u2014 the biggest selection and best prices in the region for camping, hiking, footwear, and hydration. Worth the drive if you need a lot, or want to compare.\",\n      addr:\"2957 E 850 N St, St. George, UT 84790\", town:\"St. George\", toPark:\"~40 min to park\",\n      phone:\"+14356347300\", site:\"https:\/\/www.sportsmans.com\/\"\n    }\n  ];\n\n  function dirUrl(dest){\n    var origin = document.getElementById(\"hotel\").value.trim();\n    var u = \"https:\/\/www.google.com\/maps\/dir\/?api=1&destination=\" + encodeURIComponent(dest);\n    if(origin) u += \"&origin=\" + encodeURIComponent(origin);\n    return u;\n  }\n  function runUrl(store){\n    var origin = document.getElementById(\"hotel\").value.trim();\n    var u = \"https:\/\/www.google.com\/maps\/dir\/?api=1&destination=\" + encodeURIComponent(PARK)\n          + \"&waypoints=\" + encodeURIComponent(store.addr) + \"&travelmode=driving\";\n    if(origin) u += \"&origin=\" + encodeURIComponent(origin);\n    return u;\n  }\n\n  function render(filter){\n    var host = document.getElementById(\"stores\");\n    host.innerHTML = \"\";\n    STORES.filter(function(s){ return filter===\"all\" || s.type.indexOf(filter)>-1; }).forEach(function(s){\n      var badges = s.badges.map(function(b){ return '<span class=\"badge '+b[0]+'\">'+b[1]+'<\/span>'; }).join(\"\");\n      var el = document.createElement(\"div\");\n      el.className = \"store\";\n      el.innerHTML =\n        '<div class=\"store-top\"><div class=\"badges\">'+badges+'<\/div>'\n        + '<div class=\"rating\">'+s.rating+'\\u2605 <span>('+s.reviews+')<\/span><\/div><\/div>'\n        + '<h3>'+s.name+'<\/h3>'\n        + '<p class=\"desc\">'+s.desc+'<\/p>'\n        + '<div class=\"meta\"><span>'+s.addr+'<\/span><span><b>'+s.toPark+'<\/b> \u00b7 '+s.town+'<\/span><\/div>'\n        + '<div class=\"actions\">'\n        +   '<button class=\"act-dir\" data-dir=\"'+encodeURIComponent(s.addr)+'\">Directions \u2197<\/button>'\n        +   '<button class=\"act-run\" data-run=\"'+STORES.indexOf(s)+'\">Gear run \u2192<\/button>'\n        +   '<a class=\"act-min\" href=\"tel:'+s.phone+'\">Call<\/a>'\n        +   '<a class=\"act-min\" href=\"'+s.site+'\" target=\"_blank\" rel=\"noopener\">Website<\/a>'\n        + '<\/div>';\n      host.appendChild(el);\n    });\n    host.querySelectorAll(\"[data-dir]\").forEach(function(b){\n      b.addEventListener(\"click\", function(){ window.open(dirUrl(decodeURIComponent(b.dataset.dir)), \"_blank\"); });\n    });\n    host.querySelectorAll(\"[data-run]\").forEach(function(b){\n      b.addEventListener(\"click\", function(){ window.open(runUrl(STORES[+b.dataset.run]), \"_blank\"); });\n    });\n  }\n\n  var fbtns = document.querySelectorAll(\".filters button\");\n  fbtns.forEach(function(b){\n    b.addEventListener(\"click\", function(){\n      fbtns.forEach(function(x){ x.setAttribute(\"aria-pressed\",\"false\"); });\n      b.setAttribute(\"aria-pressed\",\"true\");\n      render(b.dataset.filter);\n    });\n  });\n\n  render(\"all\");\n})();\n<\/script>\n<script>\n(function(){\n  var btn=document.querySelector('.menu-btn');\n  var links=document.querySelector('nav.links');\n  if(btn&&links){\n    btn.addEventListener('click',function(){\n      var open=links.classList.toggle('open');\n      btn.setAttribute('aria-expanded',open?'true':'false');\n    });\n    links.querySelectorAll('a').forEach(function(a){\n      a.addEventListener('click',function(){\n        links.classList.remove('open');\n        btn.setAttribute('aria-expanded','false');\n      });\n    });\n  }\n})();\n<\/script>\n\n<script>\n(function(){\nvar TAG = \"YOURTAG-20\"; \/\/ replace with your Amazon Associates tracking tag\n  function amz(q){ return \"https:\/\/www.amazon.com\/s?k=\" + encodeURIComponent(q).replace(\/%20\/g,\"+\") + \"&tag=\" + TAG; }\n\n  var IC = {\n    shoe:'<svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"#e9d9bc\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M6 33v-8c0-1.6 1.6-2.4 3-1.7l8 3.8c4 1.9 9 2.2 14 2.7l6 .6c3 .3 5 1.8 5 4.1v.9c0 1-.8 1.8-1.8 1.8H8c-1.1 0-2-.9-2-2z\"\/><path d=\"M13 25l2 3.5M18 27l2 3.5\" stroke=\"#e08a3c\"\/><\/svg>',\n    drop:'<svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"#e9d9bc\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M24 7s11 12.5 11 20.5A11 11 0 0 1 13 27.5C13 19.5 24 7 24 7z\"\/><path d=\"M19 28a5 5 0 0 0 5 5\" stroke=\"#e08a3c\"\/><\/svg>',\n    sun:'<svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"#e9d9bc\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"24\" cy=\"24\" r=\"8\"\/><path d=\"M24 6v5M24 37v5M6 24h5M37 24h5M11 11l3.5 3.5M33.5 33.5 37 37M37 11l-3.5 3.5M14.5 33.5 11 37\" stroke=\"#e08a3c\"\/><\/svg>',\n    aid:'<svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"#e9d9bc\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"9\" y=\"14\" width=\"30\" height=\"22\" rx=\"4\"\/><path d=\"M24 20v10M19 25h10\" stroke=\"#e08a3c\"\/><\/svg>',\n    pack:'<svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"#e9d9bc\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M17 17c0-5 3-8 7-8s7 3 7 8\"\/><rect x=\"12\" y=\"17\" width=\"24\" height=\"25\" rx=\"5\"\/><path d=\"M12 23h24\"\/><rect x=\"19\" y=\"27\" width=\"10\" height=\"9\" rx=\"2\" stroke=\"#e08a3c\"\/><\/svg>',\n    wave:'<svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"#e9d9bc\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M6 20c4-4 8-4 12 0s8 4 12 0 8-4 12 0\"\/><path d=\"M6 30c4-4 8-4 12 0s8 4 12 0 8-4 12 0\" stroke=\"#e08a3c\"\/><\/svg>',\n    map:'<svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"#e9d9bc\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M9 13l10-4 10 4 10-4v26l-10 4-10-4-10 4z\"\/><path d=\"M19 9v26M29 13v26\" stroke=\"#e08a3c\"\/><\/svg>'\n  };\n\n  var G = {\n    water_shoes:{n:\"Astral Brewer 2.0 Water Shoes\", q:\"astral brewer 2.0 water shoes\", c:\"Narrows \\u00b7 footwear\", ic:\"shoe\", w:\"Closed-toe, grippy, fast-draining for slick river rock.\"},\n    neoprene_socks:{n:\"NRS HydroSkin Neoprene Socks\", q:\"NRS HydroSkin wetsocks neoprene\", c:\"Narrows \\u00b7 warmth\", ic:\"wave\", w:\"Keeps feet warm in cold Virgin River water.\"},\n    trekking_poles:{n:\"Black Diamond Trekking Poles\", q:\"black diamond trail trekking poles\", c:\"Stability\", ic:\"wave\", w:\"Balance against current and on uneven ground.\"},\n    dry_bag:{n:\"Earth Pak Roll-Top Dry Bag\", q:\"earth pak waterproof dry bag 10L\", c:\"Dry storage\", ic:\"pack\", w:\"Keeps phone, layers, and snacks dry.\"},\n    phone_pouch:{n:\"Hiearcool Waterproof Phone Pouch\", q:\"hiearcool waterproof phone pouch\", c:\"Electronics\", ic:\"aid\", w:\"Shoot photos in the water without the risk.\"},\n    trail_shoes:{n:\"Merrell Moab 3 Hiking Shoes\", q:\"merrell moab 3 hiking shoes\", c:\"Footwear\", ic:\"shoe\", w:\"Traction and comfort on slickrock and switchbacks.\"},\n    gloves:{n:\"Mechanix Tactical Gloves\", q:\"mechanix wear tactical gloves\", c:\"Grip\", ic:\"aid\", w:\"Protect your hands on the Angels Landing chains.\"},\n    sun_hoodie:{n:\"BALEAF UPF 50 Sun Hoodie\", q:\"baleaf UPF 50 sun hoodie\", c:\"Sun cover\", ic:\"sun\", w:\"Lightweight sun protection where there's no shade.\"},\n    sun_hat:{n:\"Columbia Bora Bora Booney Hat\", q:\"columbia bora bora booney hat\", c:\"Sun cover\", ic:\"sun\", w:\"Wide brim for full-exposure trails.\"},\n    sunscreen:{n:\"Sun Bum SPF 50 Sunscreen\", q:\"sun bum SPF 50 sunscreen\", c:\"Sun protection\", ic:\"sun\", w:\"Reef-safe, sweat-resistant.\"},\n    sunglasses:{n:\"Goodr Polarized Sunglasses\", q:\"goodr polarized sunglasses\", c:\"Eyes\", ic:\"sun\", w:\"Cut glare off rock and water.\"},\n    cooling_towel:{n:\"Mission Cooling Towel\", q:\"mission cooling towel\", c:\"Cooling\", ic:\"drop\", w:\"Drop your core temp fast in the heat.\"},\n    reservoir:{n:\"CamelBak Crux 3L Reservoir\", q:\"camelbak crux 3L reservoir\", c:\"Hydration\", ic:\"drop\", w:\"Carry enough water for exposed trails.\"},\n    electrolytes:{n:\"Liquid I.V. Hydration Multiplier\", q:\"liquid IV hydration multiplier\", c:\"Electrolytes\", ic:\"drop\", w:\"Replace what desert heat pulls out of you.\"},\n    day_pack:{n:\"Osprey Talon 22 \/ Tempest 20\", q:\"osprey talon 22 tempest 20 daypack\", c:\"Day pack\", ic:\"pack\", w:\"Ventilated daypack for water, layers, and snacks.\"},\n    quick_dry:{n:\"BALEAF Quick-Dry Hiking Shirt\", q:\"baleaf quick dry hiking shirt UPF 50\", c:\"Layers\", ic:\"sun\", w:\"Dries fast, no cotton.\"},\n    first_aid:{n:\"Adventure Medical First-Aid Kit\", q:\"adventure medical kits ultralight watertight\", c:\"Safety\", ic:\"aid\", w:\"Compact, waterproof, trail-ready.\"},\n    headlamp:{n:\"Black Diamond Spot 400 Headlamp\", q:\"black diamond spot 400 headlamp\", c:\"Light\", ic:\"aid\", w:\"Hands-free light for pre-dawn starts.\"},\n    water_filter:{n:\"Sawyer Squeeze Water Filter\", q:\"sawyer squeeze water filter system\", c:\"Water\", ic:\"drop\", w:\"Drink safely from any backcountry source.\"},\n    bivvy:{n:\"SOL Emergency Bivvy\", q:\"SOL emergency bivvy\", c:\"Emergency\", ic:\"aid\", w:\"Emergency warmth if you're caught out.\"},\n    multitool:{n:\"Leatherman Wave Plus Multi-Tool\", q:\"leatherman wave plus multitool\", c:\"Tools\", ic:\"aid\", w:\"Pliers, blades, and drivers in one.\"},\n    pack_weekend:{n:\"Gregory Paragon 58 \/ Maven 58\", q:\"gregory paragon 58 maven 58 backpack\", c:\"Overnight pack\", ic:\"pack\", w:\"The 50\\u201358L sweet spot for a night or two out.\"},\n    pack_multiday:{n:\"Osprey Atmos AG 65 \/ Aura AG 65\", q:\"osprey atmos AG 65 aura AG 65 backpack\", c:\"Multi-day pack\", ic:\"pack\", w:\"Anti-Gravity suspension for 60\\u201370L multi-day loads.\"},\n    map:{n:\"Nat Geo Zion Trails Map\", q:\"national geographic zion trails illustrated map\", c:\"Navigation\", ic:\"map\", w:\"Waterproof topo map \\u2014 don't rely on cell service.\"}\n  };\n\n  var STEPS = [\n    {id:\"route\", tag:\"Step 1 \\u00b7 Route\", q:\"Which Zion hike are you doing?\", opts:[\n      {v:\"narrows\", lab:\"The Narrows\", sub:\"River hike through the canyon\"},\n      {v:\"angels\", lab:\"Angels Landing\", sub:\"Chains, cliffs, big exposure\"},\n      {v:\"desert\", lab:\"Desert day hike\", sub:\"Watchman, Canyon Overlook, rim trails\"},\n      {v:\"easy\", lab:\"Easy \/ family hike\", sub:\"Emerald Pools, Pa'rus, Riverside\"},\n      {v:\"backcountry\", lab:\"Backcountry \/ multi-day\", sub:\"West Rim, Trans-Zion, remote\"},\n      {v:\"unsure\", lab:\"Not sure yet\", sub:\"Give me a solid all-rounder\"}\n    ]},\n    {id:\"season\", tag:\"Step 2 \\u00b7 Timing\", q:\"When are you going?\", opts:[\n      {v:\"summer\", lab:\"Summer\", sub:\"Jun\\u2013Aug \\u00b7 extreme heat + monsoon\"},\n      {v:\"fall\", lab:\"Fall\", sub:\"Sep\\u2013Nov \\u00b7 mild, early monsoon\"},\n      {v:\"winter\", lab:\"Winter\", sub:\"Dec\\u2013Feb \\u00b7 cold, icy, cold water\"},\n      {v:\"spring\", lab:\"Spring\", sub:\"Mar\\u2013May \\u00b7 snowmelt, high water\"}\n    ]},\n    {id:\"length\", tag:\"Step 3 \\u00b7 Trip length\", q:\"How long are you out?\", opts:[\n      {v:\"day\", lab:\"Just a day hike\", sub:\"Out and back, no overnight\"},\n      {v:\"overnight\", lab:\"Overnight\", sub:\"One night in the backcountry\"},\n      {v:\"multiday\", lab:\"Multi-day\", sub:\"Two or more nights\"}\n    ]},\n    {id:\"group\", tag:\"Step 4 \\u00b7 Group\", q:\"Who's going?\", opts:[\n      {v:\"solo\", lab:\"Just me\", sub:\"Solo hiker\"},\n      {v:\"pair\", lab:\"Two of us\", sub:\"Couple or pair\"},\n      {v:\"group\", lab:\"Group of friends\", sub:\"3+ adults\"},\n      {v:\"family\", lab:\"Family with kids\", sub:\"Little ones along\"}\n    ]},\n    {id:\"exp\", tag:\"Step 5 \\u00b7 Experience\", q:\"How much hiking experience?\", opts:[\n      {v:\"first\", lab:\"First-timer\", sub:\"New to this or to Zion\"},\n      {v:\"some\", lab:\"Some experience\", sub:\"I've done a few hikes\"},\n      {v:\"exp\", lab:\"Experienced\", sub:\"I know what I'm doing\"}\n    ]},\n    {id:\"heat\", tag:\"Step 6 \\u00b7 Heat & sun\", q:\"How do you handle heat and sun?\", opts:[\n      {v:\"hot\", lab:\"I run hot\", sub:\"Sun and heat get to me fast\"},\n      {v:\"avg\", lab:\"Average\", sub:\"Normal tolerance\"},\n      {v:\"cool\", lab:\"I handle it well\", sub:\"Heat doesn't bother me much\"}\n    ]}\n  ];\n\n  var answers = {};\n  var idx = 0;\n\n  var elQuiz=document.getElementById(\"gbQuiz\"), elResults=document.getElementById(\"gbResults\");\n  var elBar=document.getElementById(\"gbBar\"), elCount=document.getElementById(\"gbCount\");\n  var elTag=document.getElementById(\"gbStepTag\"), elQ=document.getElementById(\"gbQ\"), elOpts=document.getElementById(\"gbOpts\");\n  var elBack=document.getElementById(\"gbBack\");\n\n  function renderStep(){\n    var s=STEPS[idx];\n    elBar.style.width=((idx)\/STEPS.length*100)+\"%\";\n    elCount.textContent=\"Question \"+(idx+1)+\" of \"+STEPS.length;\n    elTag.textContent=s.tag;\n    elQ.textContent=s.q;\n    elOpts.innerHTML=s.opts.map(function(o){\n      var sel=answers[s.id]===o.v?' aria-pressed=\"true\"':' aria-pressed=\"false\"';\n      return '<button class=\"gb-opt\"'+sel+' data-v=\"'+o.v+'\"><span class=\"lab\">'+o.lab+'<\/span><span class=\"sub\">'+o.sub+'<\/span><\/button>';\n    }).join(\"\");\n    elBack.disabled = idx===0;\n    elOpts.querySelectorAll(\".gb-opt\").forEach(function(b){\n      b.addEventListener(\"click\",function(){\n        answers[s.id]=b.dataset.v;\n        if(idx < STEPS.length-1){ idx++; renderStep(); }\n        else { buildKit(); }\n      });\n    });\n  }\n  elBack.addEventListener(\"click\",function(){ if(idx>0){ idx--; renderStep(); } });\n\n  function buildKit(){\n    var a=answers, E=[], R=[], O=[], notes=[], cond=[];\n    function push(arr,ids){ ids.forEach(function(i){ if(arr.indexOf(i)<0) arr.push(i); }); }\n\n    if(a.route===\"narrows\"){ push(E,[\"water_shoes\",\"neoprene_socks\",\"trekking_poles\",\"dry_bag\"]); push(R,[\"phone_pouch\",\"quick_dry\"]); cond.push([\"Water\",\"River hike, thigh-deep\",0]); cond.push([\"Terrain\",\"Slick submerged rock\",0]); }\n    if(a.route===\"angels\"){ push(E,[\"trail_shoes\",\"reservoir\",\"electrolytes\"]); push(R,[\"gloves\",\"sun_hoodie\",\"first_aid\"]); cond.push([\"Exposure\",\"Extreme \\u2014 chained spine\",1]); notes.push(\"Angels Landing needs a permit (seasonal lottery). Lock one in before your trip \\u2014 no permit, no summit.\"); }\n    if(a.route===\"desert\"){ push(E,[\"sun_hoodie\",\"sun_hat\",\"reservoir\",\"electrolytes\"]); push(R,[\"sunscreen\",\"cooling_towel\",\"sunglasses\"]); cond.push([\"Sun\",\"Full exposure, little shade\",1]); }\n    if(a.route===\"easy\"){ push(E,[\"trail_shoes\",\"reservoir\",\"sunscreen\"]); push(R,[\"sun_hat\",\"first_aid\"]); cond.push([\"Terrain\",\"Well-maintained trails\",0]); }\n    if(a.route===\"backcountry\"){ push(E,[\"trail_shoes\",\"reservoir\",\"water_filter\",\"first_aid\",\"headlamp\"]); push(R,[\"bivvy\",\"multitool\",\"map\"]); cond.push([\"Remote\",\"Self-sufficient \\u2014 no services\",1]); }\n    if(a.route===\"unsure\"){ push(E,[\"trail_shoes\",\"reservoir\",\"sun_hoodie\",\"electrolytes\"]); push(R,[\"sunscreen\",\"first_aid\",\"sun_hat\"]); cond.push([\"Route\",\"All-rounder day kit\",0]); }\n\n    if(a.season===\"summer\"){ push(R,[\"electrolytes\",\"cooling_towel\"]); push(O,[\"sunglasses\"]); cond.push([\"Heat\",\"95\\u2013105\\u00b0F peak\",1]);\n      if(a.route===\"narrows\"||a.route===\"backcountry\") notes.push(\"Summer is monsoon season. Check the flash-flood forecast every morning \\u2014 a storm miles away can turn a slot canyon into a wall of water in minutes.\"); }\n    if(a.season===\"winter\"){ push(R,[\"quick_dry\"]); cond.push([\"Cold\",\"Icy trails \\u00b7 ~40s\\u00b0F water\",1]);\n      if(a.route===\"narrows\") notes.push(\"Winter Narrows means dangerously cold water. Rent a full drysuit package from a Springdale outfitter (see In-Town Gear) \\u2014 neoprene socks alone won't cut it.\"); }\n    if(a.season===\"spring\"){ cond.push([\"Runoff\",\"Snowmelt \\u2014 higher, colder water\",0]);\n      if(a.route===\"narrows\") notes.push(\"Spring snowmelt raises the Virgin River. Check the flow rate \\u2014 the Narrows closes above roughly 150 CFS.\"); }\n    if(a.season===\"fall\"){ cond.push([\"Season\",\"Mild \\u2014 early monsoon possible\",0]); }\n\n    if(a.length===\"day\"){ push(R,[\"day_pack\"]); }\n    if(a.length===\"overnight\"){ push(E,[\"pack_weekend\",\"headlamp\",\"first_aid\"]); push(R,[\"water_filter\",\"bivvy\"]); cond.push([\"Trip\",\"Overnight \\u2014 carry shelter & water\",0]); }\n    if(a.length===\"multiday\"){ push(E,[\"pack_multiday\",\"headlamp\",\"water_filter\",\"first_aid\"]); push(R,[\"bivvy\",\"multitool\",\"map\"]); cond.push([\"Trip\",\"Multi-day \\u2014 full self-support\",1]); }\n\n    if(a.group===\"family\"){ push(R,[\"first_aid\",\"sunscreen\"]); notes.push(\"Hiking with kids: double the water and sun protection, keep the hike short, and turn back earlier than you think you need to.\"); }\n    if(a.group===\"group\"){ push(O,[\"first_aid\"]); }\n\n    if(a.exp===\"first\"){ push(R,[\"first_aid\"]); push(O,[\"map\",\"trekking_poles\"]); notes.push(\"First time at Zion? Ride the shuttle, start with a shorter hike, download an offline map, and tell someone your plan and return time.\"); }\n\n    if(a.heat===\"hot\"){ push(E,[\"sun_hoodie\"]); push(R,[\"cooling_towel\",\"electrolytes\"]); push(O,[\"sunglasses\"]); }\n\n    R=R.filter(function(i){return E.indexOf(i)<0;});\n    O=O.filter(function(i){return E.indexOf(i)<0 && R.indexOf(i)<0;});\n    var seen={}; cond=cond.filter(function(c){ if(seen[c[0]])return false; seen[c[0]]=1; return true; });\n\n    renderResults(E,R,O,notes,cond);\n  }\n\n  function itemCard(id){\n    var g=G[id]; if(!g) return \"\";\n    return '<div class=\"gb-item\"><div class=\"gb-ic\">'+(IC[g.ic]||IC.pack)+'<\/div>'\n      + '<div class=\"body\"><span class=\"cat\">'+g.c+'<\/span><h4>'+g.n+'<\/h4><p>'+g.w+'<\/p>'\n      + '<a class=\"amz\" href=\"'+amz(g.q)+'\" target=\"_blank\" rel=\"sponsored nofollow noopener\">Amazon \\u2197<\/a><\/div><\/div>';\n  }\n  function groupBlock(title,label,ids){\n    if(!ids.length) return \"\";\n    return '<div class=\"gb-group\"><h3>'+title+'<\/h3><div class=\"glabel\">'+label+'<\/div>'\n      + '<div class=\"gb-grid\">'+ids.map(itemCard).join(\"\")+'<\/div><\/div>';\n  }\n\n  function renderResults(E,R,O,notes,cond){\n    var routeLabel={narrows:\"the Narrows\",angels:\"Angels Landing\",desert:\"a desert day hike\",easy:\"an easy hike\",backcountry:\"the backcountry\",unsure:\"Zion\"}[answers.route]||\"Zion\";\n    var html='<div class=\"gb-res-head\"><span class=\"eyebrow\">Your personalized kit<\/span>'\n      + '<h2>Your '+routeLabel+' kit<\/h2>'\n      + '<p>Built from your six answers. Start with the essentials, add the recommended gear if you can, and grab the extras for comfort.<\/p>';\n    if(cond.length){ html+='<div class=\"gb-readout\">'+cond.map(function(c){return '<span class=\"gb-chip'+(c[2]?' warn':'')+'\"><b>'+c[0]+':<\/b> '+c[1]+'<\/span>';}).join(\"\")+'<\/div>'; }\n    html+='<\/div>';\n\n    if(notes.length){ html+='<div class=\"gb-notes\">'+notes.map(function(n){return '<div class=\"gb-note\"><span class=\"i\">!<\/span><span>'+n+'<\/span><\/div>';}).join(\"\")+'<\/div>'; }\n\n    html+=groupBlock(\"Essentials\",\"Don't leave the trailhead without these.\",E);\n    html+=groupBlock(\"Recommended\",\"Strongly worth bringing for your conditions.\",R);\n    html+=groupBlock(\"Nice to have\",\"Comfort and extra safety margin.\",O);\n\n    html+='<div class=\"gb-actions\"><button class=\"gb-btn gb-restart\" id=\"gbRestart\">\\u21ba Start over<\/button>'\n      + '<span class=\"gb-tag-note\">Links are affiliate-ready \\u2014 swap YOURTAG-20 for your Associates tag to earn.<\/span><\/div>'\n      + '<p class=\"gb-disc\">Recommendations are a starting point based on commonly recommended Zion gear. Confirm fit and current availability on Amazon, and always check NPS alerts and the flash-flood forecast before heading out.<\/p>';\n\n    elResults.innerHTML=html;\n    elQuiz.style.display=\"none\";\n    elResults.classList.add(\"show\");\n    document.getElementById(\"gbRestart\").addEventListener(\"click\",function(){\n      answers={}; idx=0; elResults.classList.remove(\"show\"); elResults.innerHTML=\"\"; elQuiz.style.display=\"block\"; renderStep();\n      elQuiz.scrollIntoView({behavior:\"smooth\"});\n    });\n    elResults.scrollIntoView({behavior:\"smooth\"});\n  }\n\n  renderStep();\n})();\n<\/script>\n\n<div class=\"amz-backdrop\" id=\"amzBackdrop\"><\/div>\n<aside class=\"amz-panel\" id=\"amzPanel\" aria-hidden=\"true\" aria-label=\"Product preview\">\n  <button class=\"close\" id=\"amzClose\" aria-label=\"Close preview\">&times;<\/button>\n  <div class=\"p-eyebrow\">Gear preview<\/div>\n  <div class=\"p-icon\" id=\"amzIcon\"><\/div>\n  <h3 id=\"amzName\"><\/h3>\n  <p class=\"p-why\" id=\"amzWhy\"><\/p>\n  <a class=\"p-open\" id=\"amzOpen\" href=\"#\" target=\"_blank\" rel=\"sponsored nofollow noopener\">Open on Amazon &#8599;<\/a>\n  <div class=\"p-note\">Opens Amazon in a new tab. As an Amazon Associate, ZionGearBuilder.com earns from qualifying purchases.<\/div>\n<\/aside>\n<script>\n(function(){\n  var panel=document.getElementById('amzPanel'), bd=document.getElementById('amzBackdrop');\n  var nameEl=document.getElementById('amzName'), whyEl=document.getElementById('amzWhy');\n  var openEl=document.getElementById('amzOpen'), iconEl=document.getElementById('amzIcon');\n  function openPanel(name,why,url,ico){\n    nameEl.textContent=name||'This item';\n    whyEl.textContent=why||'';\n    whyEl.style.display=why?'block':'none';\n    iconEl.innerHTML=ico||'';\n    iconEl.style.display=ico?'flex':'none';\n    openEl.href=url;\n    panel.classList.add('show'); bd.classList.add('show'); panel.setAttribute('aria-hidden','false');\n  }\n  function closePanel(){ panel.classList.remove('show'); bd.classList.remove('show'); panel.setAttribute('aria-hidden','true'); }\n  document.getElementById('amzClose').addEventListener('click',closePanel);\n  bd.addEventListener('click',closePanel);\n  document.addEventListener('keydown',function(e){ if(e.key==='Escape') closePanel(); });\n\n  function hasClass(a,c){ return (' '+(a.className||'')+' ').indexOf(' '+c+' ')>-1; }\n  function isAmz(a){\n    if(a.closest && a.closest('.amz-split')) return false;\n    if(a.closest && a.closest('#amzPanel')) return false;\n    var rel=(a.getAttribute && a.getAttribute('rel'))||'';\n    var txt=(a.textContent||'').toLowerCase();\n    return rel.indexOf('sponsored')>-1 && (hasClass(a,'amz') || txt.indexOf('amazon')>-1);\n  }\n  function transformOne(a){\n    if(a.dataset.amzSplit) return;\n    if(!isAmz(a)) return;\n    a.dataset.amzSplit='1';\n    var url=a.href;\n    var card=(a.closest && a.closest('.gb-item,.prod-card,.kit-card,.pick,article,li'))||a.parentElement;\n    var h=card&&card.querySelector('h2,h3,h4'); var name=h?h.textContent.trim():a.textContent.trim();\n    var p=card&&card.querySelector('p'); var why=p?p.textContent.trim():'';\n    var s=card&&card.querySelector('.gb-ic svg, .prod-media svg, svg'); var ico=s?s.outerHTML:'';\n    var wrap=document.createElement('span'); wrap.className='amz-split';\n    var prev=document.createElement('button'); prev.type='button'; prev.className='amz-prev'; prev.title='Quick preview'; prev.textContent='Amazon';\n    prev.addEventListener('click',function(){ openPanel(name,why,url,ico); });\n    var nt=document.createElement('a'); nt.className='amz-nt'; nt.href=url; nt.target='_blank';\n    nt.rel='sponsored nofollow noopener'; nt.title='Open in a new tab'; nt.setAttribute('aria-label','Open on Amazon in a new tab'); nt.innerHTML='&#8599;';\n    wrap.appendChild(prev); wrap.appendChild(nt);\n    if(a.parentNode) a.parentNode.replaceChild(wrap,a);\n  }\n  function scan(root){\n    if(!root || root.nodeType!==1) return;\n    if(root.matches && root.matches('a')) transformOne(root);\n    if(root.querySelectorAll) root.querySelectorAll('a').forEach(transformOne);\n  }\n  scan(document.body);\n  new MutationObserver(function(muts){\n    muts.forEach(function(m){ m.addedNodes.forEach(scan); });\n  }).observe(document.body,{childList:true,subtree:true});\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>ZIONGEARBUILDER Gear Builder Pre-Built Kits Bug-Out &amp; Prep Gear Shop More Parks Backpack Fitter In-Town Gear Menu Zion National Park \u00b7 Utah Gear that knowsthe canyon Zion isn&#8217;t one trip. The Narrows, Angels Landing, and a July desert day hike each punish different mistakes. Answer a few questions and get the exact kit for your &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"_genesis_block_theme_hide_title":false,"footnotes":""},"class_list":["post-10","page","type-page","status-publish","hentry","post","without-featured-image"],"featured_image_src":null,"featured_image_src_square":null,"_links":{"self":[{"href":"https:\/\/ziongearbuilder.com\/index.php?rest_route=\/wp\/v2\/pages\/10","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ziongearbuilder.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ziongearbuilder.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ziongearbuilder.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ziongearbuilder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10"}],"version-history":[{"count":22,"href":"https:\/\/ziongearbuilder.com\/index.php?rest_route=\/wp\/v2\/pages\/10\/revisions"}],"predecessor-version":[{"id":45,"href":"https:\/\/ziongearbuilder.com\/index.php?rest_route=\/wp\/v2\/pages\/10\/revisions\/45"}],"wp:attachment":[{"href":"https:\/\/ziongearbuilder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}