
:root{--forest:#0e271a;--forest2:#163b29;--forest3:#1f4d36;--cream:#f4efe0;--cream2:#e9e2cb;--sage:#9bb09a;--lime:#c6f36b;--ink:#10231a;--serif:'Fraunces',Georgia,'Times New Roman',serif;--sans:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;--r:18px;
box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
*,*::before,*::after{box-sizing:inherit}html{scroll-behavior:smooth;scroll-padding-top:80px}
body{margin:0;background:var(--forest);color:var(--cream);font:16px/1.65 var(--sans);-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.1;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(2.6rem,7.5vw,5.4rem)}h2{font-size:clamp(1.9rem,4.5vw,3rem)}h3{font-size:1.3rem}
p{margin:0 0 1em}a{color:inherit}button{font:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--lime);outline-offset:3px}
.wrap{max-width:1160px;margin:0 auto;padding:0 22px}
section{padding:92px 0;position:relative}
.light{background:var(--cream);color:var(--ink)}.mid{background:var(--forest2)}
.lead{color:var(--sage);max-width:60ch;font-size:1.08rem}.light .lead{color:#4d6455}
.btn{display:inline-flex;align-items:center;gap:.5em;border:0;border-radius:99px;padding:.9em 1.6em;font-weight:600;text-decoration:none;transition:transform .2s,box-shadow .2s,background .2s}
.btn:hover{transform:translateY(-2px)}
.btn.lime{background:var(--lime);color:var(--forest);box-shadow:0 8px 30px -8px rgba(198,243,107,.55)}
.btn.ghost{background:transparent;color:var(--cream);border:1.5px solid rgba(244,239,224,.4)}
.btn.dark{background:var(--forest);color:var(--cream)}.btn.sm{padding:.5em 1em;font-size:.85rem}
.grid{display:grid;gap:18px}.g2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.g4{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.card{background:var(--forest2);border:1px solid rgba(155,176,154,.18);border-radius:var(--r);padding:26px;transition:transform .25s,border-color .25s}
.card:hover{transform:translateY(-4px);border-color:var(--lime)}
.light .card{background:#fff;border-color:#e1dac1;color:var(--ink)}
/* nav */
.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:rgba(14,39,26,.88);backdrop-filter:blur(14px);border-bottom:1px solid rgba(155,176,154,.15)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:68px}
.logo{font-family:var(--serif);font-weight:700;font-size:1.35rem;text-decoration:none;display:flex;align-items:center;gap:.6em}
.logo i{font-style:normal;background:var(--lime);color:var(--forest);border-radius:10px;padding:.1em .45em;font-size:1.05rem}
.logo i.lg{background:url(../img/gec-logo.png) center/contain no-repeat;width:2.9em;height:2.9em;padding:0;border-radius:0;flex:none}
.logo{line-height:1.15}.logo>span{min-width:0}
@media(max-width:820px){}
@media(max-width:860px){.nav .logo{font-size:1.02rem;gap:.55em}.nav .logo i.lg{width:2.5em;height:2.5em}.nav .logo small{font-size:.66rem;margin-top:3px}.nav .wrap{height:64px}.links{top:64px!important}}
.logo small{font:500 .72rem var(--sans);color:var(--sage);display:block;line-height:1}
.links{display:flex;gap:22px;align-items:center}.links a{text-decoration:none;color:var(--sage);font-size:.93rem}.links a:hover{color:var(--cream)}
.burger{display:none;background:none;border:1px solid rgba(155,176,154,.4);color:var(--cream);border-radius:10px;padding:.4em .7em}
@media(max-width:860px){.burger{display:block}.links{position:absolute;top:68px;left:0;right:0;background:var(--forest);flex-direction:column;align-items:stretch;padding:18px 22px;gap:14px;display:none;border-bottom:1px solid rgba(155,176,154,.2)}.links.open{display:flex}section{padding:64px 0}}
/* hero */
.hero{padding:70px 0 0;overflow:hidden;background:radial-gradient(900px 500px at 80% 10%,rgba(198,243,107,.16),transparent 60%),linear-gradient(180deg,var(--forest),var(--forest2))}
.hero::before{content:"";position:absolute;inset:0;opacity:.35;background:repeating-radial-gradient(circle at 78% 30%,transparent 0 26px,rgba(155,176,154,.18) 27px 28px)}
.hero .wrap{position:relative}
.pill{display:inline-flex;gap:.6em;align-items:center;background:rgba(198,243,107,.12);border:1px solid rgba(198,243,107,.4);color:var(--lime);border-radius:99px;padding:.4em 1em;font-size:.88rem;margin-bottom:22px}
.pill b{width:8px;height:8px;border-radius:50%;background:var(--lime);animation:pulse 1.8s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(198,243,107,.7)}100%{box-shadow:0 0 0 12px transparent}}
.hero p.lead{font-size:1.2rem;margin:18px 0 30px}.cta{display:flex;flex-wrap:wrap;gap:12px}
.stats{display:flex;flex-wrap:wrap;gap:34px;margin:44px 0 0;padding-bottom:30px}.stats div{font-size:.9rem;color:var(--sage)}.stats b{display:block;font:600 2rem var(--serif);color:var(--cream)}
.ridge{display:block;width:100%;height:auto;margin-top:-10px}.flag{transform-origin:0 100%;animation:wave 3s ease-in-out infinite}
@keyframes wave{50%{transform:skewY(-6deg)}}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s,transform .7s}.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
/* benefits */
.ben{display:flex;gap:16px}.ben .ic{flex:none;width:52px;height:52px;border-radius:14px;background:rgba(198,243,107,.14);display:grid;place-items:center;font-size:1.5rem}
.ben p{color:var(--sage);margin:0;font-size:.95rem}
/* pricing */
.plan{position:relative;overflow:hidden}.plan .price{font:700 3.2rem var(--serif);line-height:1}.plan .price small{font:500 1rem var(--sans);color:#6b7d70}
.plan ul{list-style:none;padding:0;margin:20px 0 24px}.plan li{padding:7px 0 7px 28px;position:relative;border-bottom:1px dashed #d8d0b5}.plan li::before{content:"✓";position:absolute;left:0;color:#3d7a2a;font-weight:700}
.plan.feat{background:var(--forest);color:var(--cream);border-color:var(--lime)}.plan.feat li{border-color:rgba(155,176,154,.25)}.plan.feat li::before{color:var(--lime)}
.tag{position:absolute;top:18px;right:-34px;background:var(--lime);color:var(--forest);font-size:.75rem;font-weight:700;padding:4px 40px;transform:rotate(35deg)}
/* calc */
.calc{margin-top:30px;display:flex;flex-wrap:wrap;gap:24px;align-items:center;background:var(--forest);color:var(--cream);border-radius:var(--r);padding:26px}
.calc input[type=range]{width:100%;accent-color:#c6f36b}.calc .out{font:700 2.2rem var(--serif);color:var(--lime)}
/* hikes */
.hike{position:relative;overflow:hidden}.hike::after{content:"";position:absolute;right:-6px;bottom:-4px;width:130px;height:78px;opacity:.14;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 60'%3E%3Cpath d='M0 60 L30 12 L48 38 L66 6 L100 60Z' fill='%23163b29'/%3E%3C/svg%3E") no-repeat}
.hike .row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-top:10px}
.old{color:#8a9a8c;text-decoration:line-through}.new{font:700 1.8rem var(--serif);color:var(--lime)}
.hike .new{color:#2f7d3a}
.save{background:var(--lime);color:var(--forest);border-radius:99px;font-size:.75rem;font-weight:700;padding:3px 10px}
.pts{display:inline-block;margin-top:12px;font-size:.82rem;border:1px solid rgba(155,176,154,.4);border-radius:99px;padding:2px 12px;color:var(--sage)}
.note{margin-top:28px;padding:16px 20px;border-left:3px solid var(--lime);background:rgba(198,243,107,.07);color:var(--sage);font-size:.9rem;border-radius:0 12px 12px 0}
.light .note{background:#ece6cf;color:#4d6455;border-color:#3d7a2a}
.svc .big{font-size:2rem}.svc .p{font:700 1.7rem var(--serif);color:var(--lime);margin:6px 0 0}.svc small{color:var(--sage)}
.rw{text-align:center}.rw .big{font-size:2.6rem}
details{background:#fff;border:1px solid #e1dac1;border-radius:14px;padding:16px 20px;margin-bottom:10px}summary{cursor:pointer;font-weight:600}details p{margin:10px 0 0;color:#4d6455}
footer{padding:44px 0;text-align:center;color:var(--sage);font-size:.9rem;border-top:1px solid rgba(155,176,154,.15)}
/* modal */
.modal{position:fixed;inset:0;background:rgba(5,15,10,.75);backdrop-filter:blur(6px);z-index:100;display:none;align-items:center;justify-content:center;padding:16px}.modal.open{display:flex}
.box{background:var(--cream);color:var(--ink);border-radius:22px;width:100%;max-width:470px;max-height:92vh;overflow:auto;padding:28px;animation:pop .3s}
@keyframes pop{from{transform:scale(.94);opacity:0}}
.tabs{display:flex;background:#e4dcc2;border-radius:99px;padding:4px;margin-bottom:18px}.tabs button{flex:1;border:0;background:none;border-radius:99px;padding:.6em;font-weight:600;color:#4d6455}.tabs button.on{background:var(--forest);color:var(--cream)}
label{display:block;font-size:.85rem;font-weight:600;margin:12px 0 4px;color:#33493b}
input,select{width:100%;padding:.75em .9em;border:1.5px solid #cfc7aa;border-radius:12px;background:#fff;font:inherit;color:var(--ink)}input:focus,select:focus{outline:2px solid var(--forest3);border-color:transparent}
.err{color:#b3261e;font-size:.88rem;margin-top:10px;min-height:1.2em}.hint{font-size:.82rem;color:#5d7064}
.ok{text-align:center;padding:10px 0}.ok .big{font-size:3rem}
/* app */
.app{display:none;min-height:100vh;background:var(--cream);color:var(--ink)}.app.on{display:grid;grid-template-columns:250px 1fr}
.side{background:var(--forest);color:var(--cream);padding:24px 16px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:6px}
.side .logo{margin-bottom:22px}.side .nv{display:flex;gap:12px;align-items:center;text-align:left;background:none;border:0;color:var(--sage);padding:.8em 1em;border-radius:12px}
.side .nv.on,.side .nv:hover{background:var(--forest3);color:var(--cream)}.side .sp{flex:1}
.main{padding:34px clamp(18px,4vw,48px) 60px;min-width:0}
.main h2{font-size:clamp(1.7rem,3.5vw,2.4rem)}
.status{display:inline-block;border-radius:99px;padding:3px 12px;font-size:.8rem;font-weight:600}.st-p{background:#ffe9b8;color:#7a5200}.st-a{background:#d3f2a8;color:#245c10}
.stat{background:#fff;border:1px solid #e1dac1;border-radius:var(--r);padding:20px}.stat b{display:block;font:700 2rem var(--serif);line-height:1.2}.stat span{color:#5d7064;font-size:.88rem}
.stat.hl{background:var(--forest);color:var(--cream)}.stat.hl span{color:var(--sage)}.stat.hl b{color:var(--lime)}
.bar{height:10px;background:#e4dcc2;border-radius:99px;overflow:hidden;margin-top:10px}.bar i{display:block;height:100%;background:linear-gradient(90deg,#3d7a2a,var(--lime));border-radius:99px;transition:width .6s}
.panel{background:#fff;border:1px solid #e1dac1;border-radius:var(--r);padding:24px;margin-top:22px}
.steps{display:flex;gap:10px;align-items:center;margin-bottom:14px;font-weight:600}.steps span{width:28px;height:28px;border-radius:50%;background:var(--forest);color:var(--lime);display:grid;place-items:center;font-size:.85rem}
.chips{display:flex;flex-wrap:wrap;gap:9px}.chip{border:1.5px solid #cfc7aa;background:#faf7ec;border-radius:99px;padding:.5em 1.1em;color:var(--ink);transition:.2s}.chip:hover{border-color:var(--forest)}.chip.on{background:var(--forest);color:var(--lime);border-color:var(--forest)}
.acts{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}.act{text-align:left;border:1.5px solid #e1dac1;background:#fff;border-radius:14px;padding:14px;color:var(--ink)}.act:hover,.act.on{border-color:var(--forest);background:#f1f6e4}.act small{color:#5d7064;display:block}
.detail{margin-top:18px;background:linear-gradient(135deg,var(--forest),var(--forest3));color:var(--cream);border-radius:var(--r);padding:24px;animation:pop .3s}
.detail dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:16px 0}.detail dt{font-size:.8rem;color:var(--sage)}.detail dd{margin:0;font-weight:600;font-size:1.05rem}
.demo{font-size:.8rem;color:var(--sage);margin-top:10px}
table{width:100%;border-collapse:collapse;font-size:.92rem}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid #eae3cb;white-space:nowrap}th{color:#5d7064;font-weight:600;font-size:.82rem}
.tw{overflow-x:auto;margin:0 -4px}
.tw td:last-child{white-space:normal}.tw td:last-child .btn{margin:2px 4px 2px 0}
.rew{display:flex;flex-direction:column;gap:6px}.rew .big{font-size:2.4rem}.rew .c{font:700 1.6rem var(--serif)}
.rew button:disabled{opacity:.45;cursor:not-allowed}
.kv{display:grid;grid-template-columns:150px 1fr;gap:0}.kv>*{padding:13px 0;border-bottom:1px solid #eae3cb}.kv dt{color:#5d7064}.kv dd{margin:0;font-weight:600}
.toast{position:fixed;left:50%;bottom:calc(88px + env(safe-area-inset-bottom,0px));transform:translate(-50%,30px);background:var(--forest);color:var(--lime);padding:.8em 1.4em;border-radius:99px;opacity:0;transition:.3s;z-index:200;box-shadow:0 10px 30px rgba(0,0,0,.35);pointer-events:none;max-width:90vw;text-align:center}.toast.on{opacity:1;transform:translate(-50%,0)}
@media(max-width:820px){.app.on{grid-template-columns:1fr}.side{position:fixed;top:auto;bottom:0;left:0;right:0;height:auto;flex-direction:row;padding:6px 6px calc(6px + env(safe-area-inset-bottom,0px));z-index:60;justify-content:space-around;gap:0}.side .logo,.side .sp,.side .who{display:none}.side .nv{flex-direction:column;gap:2px;font-size:.7rem;padding:.5em .6em;text-align:center}.main{padding-bottom:110px}.kv{grid-template-columns:110px 1fr}}
.ico{width:1.25em;height:1.25em;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.22em;flex:none}
.big .ico{width:42px;height:42px;stroke:var(--lime);stroke-width:1.4}
.ben .ic .ico{width:26px;height:26px;stroke:var(--lime)}.light .ben .ic{background:#e3edcf}.light .ben .ic .ico,.light .rw .big .ico,.stat .big .ico{stroke:#2f6a22}
.chip .ico{margin-right:.35em}.side .nv .ico{width:1.3em;height:1.3em}.ok .big .ico{width:56px;height:56px;stroke:#2f6a22}
details{color:var(--ink)}.mid details{background:var(--forest);border-color:rgba(155,176,154,.28);color:var(--cream)}.mid details p{color:var(--sage)}.mid details[open]{border-color:var(--lime)}
.cres{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;width:100%}.cres>div{background:var(--forest2);border-radius:14px;padding:16px 18px}.cres .out{font-size:1.45rem;margin:6px 0 8px;line-height:1.2}

.side .nv{text-decoration:none;cursor:pointer}.side nav{display:flex;flex-direction:column;gap:6px}
@media(min-width:821px){.side nav{flex:1 1 auto;min-height:0;overflow-y:auto;scrollbar-width:thin}.side .sp{display:none}.side .logo,.side .who{flex:none}.side #out{flex:none;margin-top:4px;border-top:1px solid rgba(155,176,154,.18);border-radius:0 0 12px 12px}}
@media(max-height:760px) and (min-width:821px){.side{padding:16px 12px}.side .logo{margin-bottom:10px}.side .nv{padding:.6em .9em}}
@media(max-width:820px){.side{overflow-x:auto;justify-content:flex-start!important}.side .nv{flex:none}}
.authpage{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(800px 420px at 80% 0,rgba(198,243,107,.16),transparent 60%),linear-gradient(180deg,var(--forest),var(--forest2))}
.authpage .box{box-shadow:0 30px 80px -20px rgba(0,0,0,.5)}.authpage .top{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:10px}.authpage .top>a:last-child{color:#4d6455;font-size:.88rem}
@media(max-width:820px){.side nav{display:contents}}

[hidden]{display:none!important}i[data-icon]{display:contents;font-style:normal}

body.wait .main{visibility:hidden}.rowline{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:8px 0}

/* login page: popup look over a blurred copy of the website */
.bg{position:fixed;inset:0;width:100%;height:100%;border:0;filter:blur(7px) brightness(.5);transform:scale(1.04);pointer-events:none}
.authpage{position:fixed;inset:0;min-height:0;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(5,15,10,.55);backdrop-filter:blur(2px);overflow:auto}
.authpage .box{max-height:92vh;overflow:auto;margin:auto}
@media(max-width:600px){.bg{display:none}.authpage{background:linear-gradient(180deg,var(--forest),var(--forest2))}}

/* payment page + locked sidebar */
.side .nv.locked{opacity:.38;cursor:not-allowed;pointer-events:none}
.info-note{background:#e6efcf;color:#33493b;border-left:3px solid #3d7a2a;border-radius:0 12px 12px 0;padding:14px 18px;margin:16px 0}
.warn-note{background:#fde8e6;color:#8a1f17;border-left:3px solid #b3261e;border-radius:0 12px 12px 0;padding:14px 18px;margin:16px 0}
.paygrid{display:grid;grid-template-columns:minmax(0,300px) 1fr;gap:28px;align-items:start;margin-top:14px}
.qrcard{text-align:center}.qrcard img{width:100%;max-width:300px;border-radius:14px;border:1px solid #e1dac1}
.how{margin:0 0 14px;padding-left:20px}.how li{margin-bottom:8px}
#preview{display:block;max-width:240px;max-height:240px;border-radius:12px;border:1px solid #e1dac1;margin-top:10px}
.btn.rcbtn{color:var(--ink);border:1.5px solid #cfc7aa;background:#fff}.btn.rcbtn:hover{border-color:var(--forest)}
.btn.rjbtn{color:#b3261e;border-color:#e5b5b1;background:#fff}.btn.rjbtn:hover{background:#fde8e6;border-color:#b3261e}
@media(max-width:700px){.paygrid{grid-template-columns:1fr}.qrcard{max-width:300px;margin:0 auto}}


.st-x{background:#fde8e6;color:#b3261e}
textarea{width:100%;padding:.75em .9em;border:1.5px solid #cfc7aa;border-radius:12px;background:#fff;font:inherit;color:var(--ink);resize:vertical}
.fgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 20px;align-items:end}
.fgrid>div{display:flex;flex-direction:column;justify-content:flex-end;min-width:0}
.fgrid>div[hidden]{display:none!important}
.fgrid label{margin:10px 0 6px}
.fgrid .hint{margin:6px 0 0;min-height:1.2em}
.fgrid input,.fgrid select{box-sizing:border-box;width:100%}
.fgrid input,.fgrid select{height:3.1em}.fgrid input[type=file]{height:auto;padding:.55em .7em;font-size:.9rem;background:#faf7ec}
.fgrid textarea{width:100%}
@media(max-width:700px){.fgrid{grid-template-columns:1fr}}
.indem{max-height:170px;overflow:auto;background:#faf7ec;border:1px solid #e1dac1;border-radius:12px;padding:14px;font-size:.86rem;color:#33493b;margin:10px 0 14px}




.app.on{min-height:100vh}
.stat.rew{display:flex;flex-direction:column;gap:6px}.stat.rew .big .ico{stroke:#2f6a22}
.modal .box .tabs button{font:inherit}
.topbar{display:flex;gap:12px;align-items:center;justify-content:space-between;margin:-10px 0 22px;position:relative;z-index:30}
.gs{position:relative;flex:1;max-width:520px}.gs .ico{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#7a8a7e;pointer-events:none}.gs input{padding-left:42px;background:#fff;border-radius:99px}
.gres{display:none;position:absolute;left:0;right:0;top:calc(100% + 6px);background:#fff;border:1px solid #e1dac1;border-radius:16px;box-shadow:0 20px 40px -20px rgba(14,39,26,.5);max-height:360px;overflow:auto;padding:6px}.gres.on{display:block}
.gres h6{margin:8px 10px 4px;font:700 .68rem var(--sans);letter-spacing:.08em;text-transform:uppercase;color:#7a8a7e}
.gres button,.npanel button.ni{display:flex;width:100%;gap:10px;align-items:center;text-align:left;border:0;background:none;padding:9px 10px;border-radius:10px;font:inherit;cursor:pointer;color:var(--ink)}
.gres button:hover,.npanel button.ni:hover{background:#f4efe0}.gres small{color:#6b7d70;margin-left:auto;font-size:.76rem}
.bellw{position:relative}.bell{position:relative;width:44px;height:44px;border-radius:50%;border:1px solid #e1dac1;background:#fff;display:grid;place-items:center;cursor:pointer;color:var(--ink)}
.bell:hover{border-color:var(--forest)}.bdg{position:absolute;top:-3px;right:-3px;min-width:19px;height:19px;border-radius:99px;background:#d9362b;color:#fff;font:700 .68rem var(--sans);display:grid;place-items:center;padding:0 5px;border:2px solid var(--cream)}
.npanel{display:none;position:absolute;right:0;top:calc(100% + 8px);width:min(380px,88vw);background:#fff;border:1px solid #e1dac1;border-radius:18px;box-shadow:0 24px 48px -20px rgba(14,39,26,.55);padding:8px;max-height:70vh;overflow:auto}.npanel.on{display:block}
.npanel h5{margin:8px 10px 6px;font:700 .95rem var(--serif)}.npanel .ni{align-items:flex-start!important}.npanel .ni .ib{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center}.npanel .ni .ib .ico{width:18px;height:18px}
.npanel .ni b{display:block;font-size:.88rem;line-height:1.3}.npanel .ni small{color:#6b7d70;font-size:.78rem;line-height:1.35;display:block;margin-top:2px}
.rg{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:18px;align-items:start}@media(max-width:900px){.rg{grid-template-columns:1fr}}
.evl button{display:flex;width:100%;align-items:center;gap:10px;text-align:left;border:1.5px solid transparent;background:#faf6e8;border-radius:14px;padding:11px 14px;margin-bottom:8px;font:inherit;cursor:pointer;color:var(--ink)}
.evl button:hover{border-color:#cfc7aa}.evl button.on{background:var(--forest);color:var(--cream)}.evl b{display:block;line-height:1.25}.evl small{opacity:.7;font-size:.76rem}.evl .ct{margin-left:auto;background:#e3edcf;color:#2f6a22;border-radius:99px;font:700 .78rem var(--sans);padding:3px 10px}.evl button.on .ct{background:var(--lime);color:#10231a}
.annc{border-left:4px solid var(--lime);background:#f6f9e8;border-radius:0 14px 14px 0;padding:12px 16px;margin-bottom:10px}.annc b{display:block}.annc small{color:#6b7d70}.annc p{margin:4px 0 0;font-size:.92rem}

/* ---- richer app look ---- */
.av{flex:none;width:34px;height:34px;border-radius:50%;display:inline-grid;place-items:center;font:700 .78rem var(--sans);color:#10231a;letter-spacing:.02em}
.who{display:flex;gap:10px;align-items:center;padding:10px 10px 14px;margin:-8px 0 8px;border-bottom:1px solid rgba(155,176,154,.18)}
.who b{display:block;font-size:.88rem;line-height:1.2;color:var(--cream)}.who small{color:var(--sage);font-size:.74rem}
.hcard{position:relative;overflow:hidden;border-radius:24px;padding:28px 30px;color:var(--cream);background:radial-gradient(600px 300px at 85% 0,rgba(198,243,107,.22),transparent 60%),linear-gradient(135deg,#0e271a,#1f4d36);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center}
.hcard::before{content:"";position:absolute;inset:0;opacity:.3;background:repeating-radial-gradient(circle at 92% 20%,transparent 0 22px,rgba(155,176,154,.22) 23px 24px);pointer-events:none}
.hcard>*{position:relative}.hcard h2{color:var(--cream);margin:0 0 6px}.hcard p{color:var(--sage);margin:0 0 14px}
.hcard .pillrow{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.hcard .qa{display:inline-flex;gap:6px;align-items:center;border:1.5px solid rgba(244,239,224,.35);color:var(--cream);background:transparent;border-radius:99px;padding:.45em 1em;font-size:.85rem;font-weight:600}
.hcard .qa:hover{border-color:var(--lime);color:var(--lime)}
.mcard{width:300px;max-width:100%;aspect-ratio:1.6;border-radius:18px;padding:18px 20px;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(145deg,#c6f36b 0%,#9ad94a 55%,#6fb83a 100%);color:#0e271a;box-shadow:0 20px 40px -18px rgba(0,0,0,.6);transform:rotate(-1.5deg);position:relative;overflow:hidden}
.mcard::after{content:"";position:absolute;right:-30px;bottom:-30px;width:170px;height:100px;opacity:.16;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 60'%3E%3Cpath d='M0 60 L30 12 L48 38 L66 6 L100 60Z' fill='%230e271a'/%3E%3C/svg%3E") no-repeat}
.mcard.off{filter:grayscale(.85) brightness(.9);opacity:.8}
.mcard .t{display:flex;justify-content:space-between;align-items:center;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.mcard .t i{font:700 .95rem var(--serif);font-style:normal;background:#0e271a;color:var(--lime);border-radius:8px;padding:.1em .5em;letter-spacing:0}
.mcard .nm{font:700 1.25rem var(--serif);line-height:1.15}
.mcard .r{display:flex;gap:22px;font-size:.78rem}.mcard .r small{display:block;opacity:.7;font-size:.66rem;text-transform:uppercase;letter-spacing:.06em}.mcard .r b{font-weight:600}
.sgrid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:18px}
.sc{background:#fff;border:1px solid #e1dac1;border-radius:18px;padding:18px 20px;display:flex;gap:14px;align-items:center;transition:transform .2s,box-shadow .2s}
.sc:hover{transform:translateY(-3px);box-shadow:0 14px 30px -18px rgba(14,39,26,.5)}
.sc .ib{flex:none;width:46px;height:46px;border-radius:14px;display:grid;place-items:center}
.sc .ib .ico{width:24px;height:24px;stroke-width:1.7}
.sc b{display:block;font:700 1.7rem var(--serif);line-height:1.1}.sc span.l{color:#5d7064;font-size:.84rem}.sc span.l{line-height:1.25}.sc small{display:block;color:#7a8a7e;font-size:.74rem}
.t-g{background:#e3edcf;color:#2f6a22}.t-y{background:#ffe9b8;color:#7a5200}.t-b{background:#d6e6f5;color:#1f5a8a}.t-r{background:#fde8e6;color:#b3261e}.t-d{background:#0e271a;color:#c6f36b}
.ring{position:relative;width:70px;height:70px;flex:none}.ring svg{transform:rotate(-90deg)}.ring b{position:absolute;inset:0;display:grid;place-items:center;font:700 1.05rem var(--serif)}
.track{position:relative;height:12px;background:#e4dcc2;border-radius:99px;margin:56px 40px 56px}
.track .fill{position:absolute;left:0;top:0;bottom:0;border-radius:99px;background:linear-gradient(90deg,#3d7a2a,#c6f36b)}
.track .mk{position:absolute;top:-6px;transform:translateX(-50%);text-align:center;font-size:.72rem;color:#5d7064;white-space:nowrap}
.track .mk i{display:block;width:4px;height:24px;margin:0 auto;border-radius:3px;background:#b9b293}.track .mk:nth-child(even) span{top:auto;bottom:30px}.track .mk.hit i{background:#2f6a22}
.track .mk span{position:absolute;top:30px;left:50%;transform:translateX(-50%);line-height:1.25}
.sec-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:12px}.sec-h h3{margin:0}
.two{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:18px;margin-top:18px;align-items:start}.two .panel{margin-top:0}
@media(max-width:980px){.two{grid-template-columns:1fr}.hcard{grid-template-columns:1fr}.mcard{transform:none}}
.seg{display:flex;height:16px;border-radius:99px;overflow:hidden;background:#eee7cf;margin:10px 0 14px}.seg i{display:block;height:100%}
.legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;font-size:.88rem}.legend span{display:flex;align-items:center;gap:8px}.legend i{width:10px;height:10px;border-radius:50%;flex:none}.legend b{margin-left:auto}
.person{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid #eae3cb}.person:last-child{border:0}
.person .nm{flex:1;min-width:140px}.person .nm b{display:block;font-size:.92rem;line-height:1.25}.person .nm small{color:#6b7d70;font-size:.78rem}
.days{font-size:.78rem;font-weight:700;border-radius:99px;padding:3px 10px;background:#ffe9b8;color:#7a5200;white-space:nowrap}
.srch{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.srch .in{position:relative;flex:1 1 280px}.srch .in .ico{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#7a8a7e}.srch input{padding-left:42px}
.fchips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.fchips .chip{font-size:.84rem;padding:.4em .95em}.fchips .chip em{font-style:normal;opacity:.65;margin-left:4px}
.mrow{display:flex;gap:10px;align-items:center}.mrow b{display:block;line-height:1.2}.mrow small{color:#6b7d70;font-size:.78rem}
.act{transition:transform .2s,box-shadow .2s}.act:hover{transform:translateY(-2px);box-shadow:0 10px 24px -16px rgba(14,39,26,.6)}
.picker-h{display:flex;align-items:center;gap:10px;margin-bottom:4px}



/* ===== Dashboard banner pictures =====
   To use your own photo: put the file in assets/img/banner/ and change the file name below.
   - member-banner.jpg : the "Hello, name" banner on the member dashboard
   - admin-banner.jpg  : the "Admin dashboard" banner
   Tip: a wide landscape photo, about 1600 x 600 px, under 400 KB. A dark green layer is put on top so the text stays readable.
   If the file is missing, the green gradient is shown instead. */
:root{--member-banner:url(../img/banner/member-banner.jpg);--admin-banner:url(../img/banner/admin-banner.jpg);--banner-shade:linear-gradient(135deg,rgba(14,39,26,.78),rgba(31,77,54,.55))}
.hcard.member{background:var(--banner-shade),var(--member-banner) center/cover no-repeat,linear-gradient(135deg,#0e271a,#1f4d36)}
.hcard.admin{background:var(--banner-shade),var(--admin-banner) center/cover no-repeat,linear-gradient(135deg,#0e271a,#1f4d36)}
.boot #site{visibility:hidden}

/* ===== Hero background video =====
   File: assets/video/hero.mp4 (optional poster: assets/video/hero-poster.jpg).
   The green layer on top keeps the text readable. Make it lighter/darker by changing the two .8 / .55 numbers. */
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero-shade{position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,rgba(14,39,26,.8),rgba(14,39,26,.55) 60%,rgba(14,39,26,.85))}
.hero .wrap,.hero .ridge{position:relative;z-index:1}
@media(prefers-reduced-motion:reduce){.hero-video{display:none}}

/* ===== Sponsor logos ===== */
#sponsors{padding:44px 0 40px;text-align:center;background:#fff;color:var(--ink)}
.sp-tag{display:block;font:500 .78rem var(--sans);letter-spacing:.22em;text-transform:uppercase;color:#5d7064;margin-bottom:12px}
.sponsors{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 28px}
.sponsors a{display:block;width:120px;height:120px}
.sponsors img{width:100%;height:100%;object-fit:contain;display:block}
@media(max-width:480px){.sponsors a{width:84px;height:84px}.sponsors{gap:6px 14px}}
