/* Graphical site map, websnoogie.com. Scoped under .gsm-page so it cannot restyle the shared modules. */
.gsm-page{margin:0}
.gsm-page{--cream:#fbf6ec;--tan:#f3e8d3;--line:#e3ddd5;--ink:#1c1a1a;--muted:#5a5552;--maroon:#680000;--maroon-2:#8a1414;--navy:#0B1F3A;--navy-2:#16325c;--yellow:#F5B800;--gut:64px;--tx:28px;--card-h:330px}
.gsm-page .gsm-main{background:var(--cream);color:var(--ink);font-family:"Source Sans 3",system-ui,sans-serif;overflow-x:clip}
.gsm-page .gsm-wrap{max-width:1410px;margin:0 auto;padding:0 20px}

/* intro band */
.gsm-page .gsm-intro{background:var(--tan);padding:34px 0 30px;border-bottom:1px solid var(--line)}
.gsm-page .gsm-intro .gsm-wrap{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:28px 48px;align-items:end}
.gsm-page .gsm-intro h2{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-size:clamp(1.55rem,2.6vw,2.15rem);line-height:1.15;margin:0 0 10px;color:var(--navy);font-weight:800}
.gsm-page .gsm-intro p{margin:0;font-size:1.08rem;line-height:1.6;max-width:62ch;color:#2b2625}
.gsm-page .gsm-find{display:flex;flex-direction:column;gap:6px}
.gsm-page .gsm-find label{font-weight:700;color:var(--navy);font-size:1rem}
.gsm-page .gsm-find input{width:100%;font:inherit;font-size:1.05rem;padding:13px 16px;border:2px solid var(--navy);border-radius:12px;background:#fff;color:var(--ink);min-height:48px}
.gsm-page .gsm-find input:focus{outline:3px solid var(--yellow);outline-offset:2px}
.gsm-page .gsm-found{font-size:.98rem;color:var(--muted);min-height:1.4em}

/* map frame */
.gsm-page .gsm{position:relative;max-width:1410px;margin:0 auto;padding:30px 20px 60px}
.gsm-page .gsm-wire{position:fixed;left:0;top:0;width:100vw;height:100vh;pointer-events:none;overflow:hidden;z-index:6}
.gsm-page .gsm-wire .track{fill:none;stroke:#c9bfb2;stroke-width:3;stroke-dasharray:2 9;stroke-linecap:round}
.gsm-page .gsm-wire .run{fill:none;stroke:var(--maroon);stroke-width:5;stroke-linecap:round}
.gsm-page .gsm-wire .branch{fill:none;stroke-width:4;stroke-linecap:round}
.gsm-page .gsm-wire .head{fill:var(--maroon)}
.gsm-page .gsm-wire .stn{fill:#fff;stroke-width:4}

/* menu panel */
.gsm-page .gsm-menu{background:var(--maroon);color:#fff;border-radius:16px;padding:22px 24px 24px;position:relative;z-index:7;box-shadow:0 10px 26px rgba(104,0,0,.22)}
.gsm-page .gsm-menu h2{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-size:1.5rem;margin:0 0 4px;color:#fff;font-weight:800}
.gsm-page .gsm-menu>p{margin:0 0 16px;color:#f4e3e3;max-width:70ch;line-height:1.5}
.gsm-page .gsm-menu .rowlabel{font-weight:700;font-size:1rem;color:var(--yellow);margin:12px 0 8px}
.gsm-page .gsm-menu ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.gsm-page .gsm-menu a{display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:8px 16px;border-radius:999px;background:rgba(255,255,255,.12);color:#fff;text-decoration:none;font-weight:600;border:1px solid rgba(255,255,255,.28);transition:background .2s}
.gsm-page .gsm-menu a:hover,.gsm-page .gsm-menu a:focus-visible{background:rgba(255,255,255,.26)}
.gsm-page .gsm-menu a:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}
.gsm-page .gsm-menu .dot{width:12px;height:12px;border-radius:50%;background:var(--c);box-shadow:0 0 0 2px #fff;flex:none}

/* section band */
.gsm-page .gsm-sec{position:relative;margin-top:56px;padding:34px 0 46px var(--gut);background:var(--tint);box-shadow:0 0 0 100vmax var(--tint);clip-path:inset(0 -100vmax);scroll-margin-top:96px}
.gsm-page .gsm-sec[hidden]{display:none}
.gsm-page .gsm-node{position:relative;display:grid;grid-template-columns:1fr auto;gap:6px 18px;align-items:center;background:var(--c);color:#fff;border-radius:16px;padding:18px 22px;max-width:980px;box-shadow:0 8px 22px rgba(11,31,58,.16)}
.gsm-page .gsm-node h2{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-size:clamp(1.45rem,2.4vw,2rem);line-height:1.12;margin:0;color:#fff;font-weight:800}
.gsm-page .gsm-node .cnt{background:#fff;color:var(--c);font-weight:700;border-radius:999px;padding:4px 14px;font-size:1rem;white-space:nowrap}
.gsm-page .gsm-node .lead{grid-column:1/-1;margin:0;font-size:1.05rem;line-height:1.45;color:#fff;opacity:.97}
.gsm-page .gsm-node .via{grid-column:1/-1;margin:2px 0 0;font-size:.98rem;color:#fff}
.gsm-page .gsm-node .via a{color:#fff;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.gsm-page .gsm-node .via a:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}
.gsm-page .gsm-part{margin:30px 0 0}
.gsm-page .gsm-part h3{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-size:1.25rem;margin:0 0 2px;color:var(--c);font-weight:800}
.gsm-page .gsm-rail{position:relative;height:0;border-top:3px solid var(--c);margin:24px 0 28px;transform-origin:left center;border-radius:3px}
.gsm-page details.gsm-fold>summary{cursor:pointer;margin-top:26px;list-style:none;display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:10px 20px;border-radius:999px;background:var(--c);color:#fff;font-weight:700;font-size:1.05rem}
.gsm-page details.gsm-fold>summary::-webkit-details-marker{display:none}
.gsm-page details.gsm-fold>summary:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}
.gsm-page details.gsm-fold[open]>summary .more{display:none}
.gsm-page details.gsm-fold:not([open])>summary .less{display:none}

/* cards */
.gsm-page .gsm-rail::before{content:"";position:absolute;left:26px;top:-27px;width:3px;height:24px;background:var(--c);border-radius:2px}
@media (max-width:640px){.gsm-page .gsm-rail::before{left:22px}}
.gsm-page .gsm-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(262px,1fr));gap:34px 22px}
.gsm-page .gsm-cell{position:relative;margin:0;padding:0}
.gsm-page .gsm-cell[hidden]{display:none}
.gsm-page .gsm-cell::before{content:"";position:absolute;left:26px;top:-34px;width:3px;height:34px;background:var(--c);transform-origin:top;border-radius:2px}
.gsm-page .gsm-cell::after{content:"";position:absolute;left:19px;top:-8px;border:8px solid transparent;border-top:10px solid var(--c);border-bottom:0;z-index:2}
.gsm-page .gsm-card{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:28% 1fr;height:var(--card-h);background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;color:inherit;text-decoration:none;box-shadow:0 2px 8px rgba(40,25,10,.07);transition:transform .22s ease,box-shadow .22s ease}
.gsm-page .gsm-card:hover{transform:translateY(-3px);box-shadow:0 10px 22px rgba(40,25,10,.16)}
.gsm-page .gsm-card:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}
.gsm-page .gsm-shot{position:relative;display:block;overflow:hidden;background:var(--tint);border-bottom:3px solid var(--c)}
.gsm-page .gsm-shot img{display:block;width:100%;height:100%;object-fit:cover}
.gsm-page .gsm-kind{position:absolute;left:8px;bottom:6px;background:rgba(11,31,58,.88);color:#fff;font-size:.82rem;font-weight:600;line-height:1;padding:5px 9px;border-radius:999px}
.gsm-page .gsm-body{display:flex;flex-direction:column;padding:14px 16px 12px;min-height:0}
.gsm-page .gsm-body h3{margin:0 0 7px;font-family:"Bricolage Grotesque",system-ui,sans-serif;font-size:1.1rem;line-height:1.22;font-weight:800;color:var(--navy);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.gsm-page .gsm-body p{margin:0;font-size:.98rem;line-height:1.45;color:#3a3532;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.gsm-page .gsm-path{margin-top:auto;padding-top:8px;font-size:.88rem;color:var(--c);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* motion (only when JS is on and motion is allowed) */
.gsm-page.js .gsm-cell::before{transform:scaleY(0);transition:transform .45s ease var(--d,0s)}
.gsm-page.js .gsm-cell::after{opacity:0;transition:opacity .2s ease calc(var(--d,0s) + .35s)}
.gsm-page.js .gsm-cell.in::before{transform:scaleY(1)}
.gsm-page.js .gsm-cell.in::after{opacity:1}
.gsm-page.js .gsm-rail{transform:scaleX(0);transition:transform .9s ease}
.gsm-page.js .gsm-part.in>.gsm-rail,.gsm-page.js .gsm-sec.in>.gsm-rail{transform:scaleX(1)}
.gsm-page.js .gsm-node{opacity:.0;transform:translateX(-14px);transition:opacity .5s ease,transform .5s ease}
.gsm-page.js .gsm-sec.in .gsm-node{opacity:1;transform:none}
.gsm-page.js .gsm-wire .branch{transition:stroke-dashoffset .8s ease}
@media (prefers-reduced-motion:reduce){
 .gsm-page.js .gsm-cell::before,.gsm-page.js .gsm-cell::after,.gsm-page.js .gsm-rail,.gsm-page.js .gsm-node,.gsm-page.js .gsm-wire .branch{transition:none!important}
 .gsm-page.js .gsm-cell::before{transform:none}.gsm-page.js .gsm-cell::after{opacity:1}.gsm-page.js .gsm-rail{transform:none}.gsm-page.js .gsm-node{opacity:1;transform:none}
 .gsm-page .gsm-card{transition:none}.gsm-page .gsm-card:hover{transform:none}
}

/* phones */
@media (max-width:1024px){.gsm-page .gsm-intro .gsm-wrap{grid-template-columns:1fr}}
@media (max-width:640px){
 .gsm-page{--gut:38px;--tx:14px}
 .gsm-page .gsm-menu ul{gap:8px}
 .gsm-page .gsm-menu h2{font-size:1.3rem}
 .gsm-page .gsm-wrap{padding:0 16px}
 .gsm-page .gsm{padding:22px 16px 48px}
 .gsm-page .gsm-menu{padding:18px 16px 20px}
 .gsm-page .gsm-menu a{padding:8px 13px;font-size:.98rem}
 .gsm-page .gsm-sec{padding:26px 0 38px var(--gut);margin-top:44px}
 .gsm-page .gsm-node{padding:15px 16px;grid-template-columns:1fr}
 .gsm-page .gsm-node .cnt{justify-self:start;grid-row:2}
 .gsm-page .gsm-grid{grid-template-columns:1fr;gap:34px 0}
 .gsm-page .gsm-cell::before{left:22px}.gsm-page .gsm-cell::after{left:15px}
 .gsm-page .gsm-sec{padding-right:0}
}
