*{margin:0;padding:0;box-sizing:border-box;}
:root{
  --g1:#0d3b2e;--g2:#1a5c3e;--g3:#2d8a5e;--g4:#4cb87a;--g5:#a8e6c3;--g6:#e8f7f0;
  --cream:#faf8f4;--border:#d4e8dd;--text:#1a2e25;--muted:#6b8c7a;
  --r:16px;--r-sm:10px;--shadow:0 4px 24px rgba(13,59,46,.10);--shadow-lg:0 12px 48px rgba(13,59,46,.18);
}
html{scroll-behavior:smooth;}
body{font-family:'Montserrat';background:var(--cream);color:var(--text);min-height:100vh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;}

/* ── NAV ── */
.top-nav{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(13,59,46,.96);backdrop-filter:blur(8px);padding:0 clamp(16px,5vw,48px);height:56px;display:flex;align-items:center;justify-content:space-between;}
.nav-brand{font-family:'Montserrat';color:#fff;font-size:20px;}
.nav-brand em{color:var(--g4);font-style:italic;}
.nav-links{display:flex;align-items:center;gap:clamp(12px,2vw,28px);}
.nav-link{color:rgba(255,255,255,.75);font-size:13px;font-weight:500;text-decoration:none;transition:color .15s;}
.nav-link:hover{color:#fff;}
.nav-cta{background:var(--g4);color:var(--g1)!important;padding:7px 18px;border-radius:20px;font-weight:700!important;}
.nav-cta:hover{background:var(--g5)!important;}
@media(max-width:600px){.nav-links .nav-link:not(.nav-cta){display:none;}}

/* ── HERO ── */
.hero{background:var(--g1);padding:clamp(80px,12vw,120px) clamp(20px,5vw,48px) clamp(60px,10vw,100px);text-align:center;position:relative;overflow:hidden;}
.hero::before{content:'';position:absolute;width:600px;height:600px;border-radius:50%;background:rgba(76,184,122,.06);top:-200px;right:-150px;pointer-events:none;}
.hero::after{content:'';position:absolute;width:400px;height:400px;border-radius:50%;background:rgba(76,184,122,.04);bottom:-100px;left:-100px;pointer-events:none;}
.hero-eyebrow{display:inline-block;background:rgba(76,184,122,.15);color:var(--g4);font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:5px 14px;border-radius:20px;margin-bottom:20px;border:1px solid rgba(76,184,122,.25);}
.hero h1{font-family:'Montserrat';font-size:clamp(32px,6vw,62px);color:#fff;line-height:1.1;margin-bottom:18px;position:relative;}
.hero h1 em{color:var(--g4);font-style:italic;}
.hero-sub{font-size:clamp(14px,2vw,18px);color:rgba(255,255,255,.7);max-width:560px;margin:0 auto 36px;line-height:1.7;position:relative;}
.hero-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;position:relative;}
.hero-btn{display:inline-flex;align-items:center;gap:8px;padding:clamp(12px,2vw,15px) clamp(20px,3vw,32px);border-radius:30px;font-size:clamp(13px,1.5vw,15px);font-weight:700;text-decoration:none;transition:all .2s;}
.hero-btn-primary{background:var(--g4);color:var(--g1);}
.hero-btn-primary:hover{background:var(--g5);transform:translateY(-1px);}
.hero-btn-sec{background:rgba(255,255,255,.1);color:#fff;border:1.5px solid rgba(255,255,255,.25);}
.hero-btn-sec:hover{background:rgba(255,255,255,.18);}
.hero-trust{margin-top:32px;color:rgba(255,255,255,.4);font-size:14px;position:relative;}

/* ── SECTIONS ── */
.section{padding:clamp(56px,8vw,96px) clamp(20px,5vw,48px);}
.section-inner{max-width:1100px;margin:0 auto;}
.sec-label{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--g3);}
.sec-title{font-family:'Montserrat';font-size:clamp(24px,4vw,40px);color:var(--g1);margin:10px 0 14px;line-height:1.2;}
.sec-sub{font-size:clamp(13px,1.5vw,16px);color:var(--muted);max-width:620px;line-height:1.7;margin-bottom:clamp(28px,4vw,48px);}

/* ── FEATURE GROUPS ── */
.feat-group{margin-bottom:clamp(48px,6vw,80px);}
.feat-group-title{font-family:'Montserrat';font-size:clamp(20px,3vw,28px);color:var(--g1);margin-bottom:8px;}
.feat-group-sub{font-size:14px;color:var(--muted);margin-bottom:24px;line-height:1.6;}
.feat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:clamp(10px,2vw,16px);}
.feat-card{background:#fff;border:1px solid var(--border);border-radius:var(--r);padding:clamp(16px,2.5vw,22px);transition:all .2s;}
.feat-card:hover{box-shadow:var(--shadow);transform:translateY(-2px);border-color:var(--g5);}
.feat-card-icon{font-size:24px;margin-bottom:10px;line-height:1;}
.feat-card-title{font-size:14px;font-weight:700;color:var(--g1);margin-bottom:6px;}
.feat-card-desc{font-size:14px;color:var(--muted);line-height:1.65;}
.feat-tag{display:inline-block;font-size:9px;font-weight:700;background:var(--g6);color:var(--g3);border-radius:4px;padding:2px 6px;margin-left:5px;vertical-align:middle;letter-spacing:.04em;}

/* ── PORTAL HIGHLIGHT ── */
.portal-highlight{background:var(--g1);border-radius:20px;padding:clamp(28px,4vw,48px);color:#fff;display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,4vw,40px);margin-bottom:clamp(28px,4vw,48px);}
.portal-highlight h3{font-family:'Montserrat';font-size:clamp(18px,3vw,26px);margin-bottom:14px;color:#fff;}
.portal-highlight p{font-size:13px;color:rgba(255,255,255,.75);line-height:1.7;}
.portal-highlight ul{list-style:none;margin-top:14px;display:flex;flex-direction:column;gap:8px;}
.portal-highlight li{font-size:13px;color:rgba(255,255,255,.8);display:flex;align-items:flex-start;gap:8px;}
.portal-highlight li::before{content:'✓';color:var(--g4);font-weight:700;flex-shrink:0;margin-top:1px;}
.portal-divider{width:1px;background:rgba(255,255,255,.1);}
@media(max-width:640px){.portal-highlight{grid-template-columns:1fr;}.portal-divider{width:100%;height:1px;}}

/* ── STATS ── */
.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:clamp(28px,4vw,48px);}
.stat-card{background:#fff;border:1px solid var(--border);border-radius:var(--r);padding:20px;text-align:center;}
.stat-num{font-family:'Montserrat';font-size:32px;color:var(--g1);}
.stat-lbl{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-top:4px;}

/* ── FORUM / ADMIN SECTION ── */
.new-features{background:linear-gradient(135deg,var(--g6) 0%,#fff 100%);border:1.5px solid var(--border);border-radius:20px;padding:clamp(24px,4vw,40px);margin-bottom:clamp(28px,4vw,48px);}
.new-badge{display:inline-block;background:var(--g3);color:#fff;font-size:10px;font-weight:700;padding:3px 8px;border-radius:4px;letter-spacing:.05em;margin-bottom:14px;}
.new-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:14px;margin-top:20px;}
.new-item{display:flex;gap:12px;align-items:flex-start;}
.new-icon{width:38px;height:38px;border-radius:10px;background:var(--g6);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;border:1px solid var(--border);}
.new-text-title{font-size:13px;font-weight:700;color:var(--g1);}
.new-text-sub{font-size:11px;color:var(--muted);margin-top:2px;line-height:1.5;}

/* ── QUOTE ── */
.quote-box{background:var(--g1);border-radius:var(--r);padding:clamp(24px,4vw,40px);color:#fff;margin-bottom:clamp(28px,4vw,48px);position:relative;}
.quote-box::before{content:'"';position:absolute;top:16px;left:24px;font-family:'Montserrat';font-size:80px;color:rgba(76,184,122,.2);line-height:1;}
.quote-box p{font-size:clamp(14px,2vw,17px);color:rgba(255,255,255,.9);line-height:1.7;font-style:italic;position:relative;z-index:1;padding-left:8px;}
.quote-box cite{display:block;font-size:14px;color:var(--g4);margin-top:12px;font-style:normal;font-weight:600;position:relative;z-index:1;padding-left:8px;}

/* ── PLANS ── */
.plans-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:clamp(12px,2vw,20px);margin-bottom:clamp(20px,3vw,32px);}
.plan-card{background:#fff;border:1.5px solid var(--border);border-radius:var(--r);padding:28px;display:flex;flex-direction:column;gap:8px;}
.plan-card.featured{border-color:var(--g3);box-shadow:0 0 0 4px rgba(45,138,94,.08);}
.plan-badge{font-size:11px;font-weight:700;padding:3px 10px;border-radius:6px;display:inline-block;width:fit-content;}
.plan-badge.gray{background:#f1f5f9;color:var(--muted);}
.plan-badge.green{background:var(--g6);color:var(--g2);}
.plan-badge.blue{background:#dbeafe;color:#1d4ed8;}
.plan-price{font-family:'Montserrat';font-size:32px;color:var(--g1);margin:8px 0 4px;}
.plan-price sub{font-size:14px;color:var(--muted);font-family:'DM Sans',sans-serif;}
.plan-desc{font-size:14px;color:var(--muted);line-height:1.6;padding-bottom:12px;border-bottom:1px solid var(--border);}
.plan-item{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--text);padding:3px 0;}
.plan-check{color:var(--g3);font-weight:700;flex-shrink:0;}

/* ── NUTRI SEARCH ── */
.search-box{background:#fff;border:1.5px solid var(--border);border-radius:var(--r);padding:clamp(20px,3vw,32px);}
.search-inputs{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap;align-items:flex-end;}
.search-fg{display:flex;flex-direction:column;gap:5px;}
.search-fg label{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;}
.search-fg select{padding:11px 14px;border:1.5px solid var(--border);border-radius:var(--r-sm);font-family:'DM Sans',sans-serif;font-size:14px;outline:none;background:#fff;cursor:pointer;color:var(--text);transition:border-color .15s;}
.search-fg select:focus{border-color:var(--g3);}
.search-btn{background:var(--g3);color:#fff;border:none;padding:12px 28px;border-radius:var(--r-sm);font-family:'DM Sans',sans-serif;font-size:14px;font-weight:700;cursor:pointer;transition:background .2s;white-space:nowrap;align-self:flex-end;}
.search-btn:hover{background:var(--g2);}

/* ── NUTRI CARD ── */
.nutri-card{background:#fff;border:1.5px solid var(--border);border-radius:var(--r);padding:18px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .2s;}
.nutri-card:hover{box-shadow:var(--shadow);}
.nc-header{display:flex;align-items:center;gap:12px;}
.nc-av{width:52px;height:52px;border-radius:50%;background:var(--g3);color:#fff;font-size:18px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;}
.nc-av img{width:100%;height:100%;object-fit:cover;}
.nc-info-name{font-weight:700;font-size:15px;color:var(--g1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.nc-info-sub{font-size:14px;color:var(--muted);margin-top:1px;}
.nc-info-crn{font-size:11px;color:var(--g3);font-weight:600;margin-top:2px;}
.nc-meta{font-size:14px;color:var(--muted);display:flex;align-items:center;gap:5px;}
.nc-stars{display:flex;gap:1px;}
.nc-star-on{color:#e84f4f;}
.nc-star-off{color:#ddd;}
.nc-comment{background:#f8fdfb;border-radius:8px;padding:8px 12px;font-size:14px;}
.nc-comment-hdr{display:flex;align-items:center;gap:6px;margin-bottom:4px;}
.nc-comment-av{width:22px;height:22px;border-radius:50%;background:var(--g3);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.nc-wa{display:flex;align-items:center;justify-content:center;gap:8px;background:#25d366;color:#fff;font-weight:700;font-size:13px;padding:10px;border-radius:var(--r-sm);text-decoration:none;transition:background .2s;}
.nc-wa:hover{background:#128c47;}
.nc-actions{display:flex;gap:8px;}
.nc-perfil{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;background:var(--g6);color:var(--g2);font-weight:700;font-size:14px;padding:9px;border-radius:var(--r-sm);text-decoration:none;border:1.5px solid var(--border);transition:all .15s;}
.nc-perfil:hover{background:var(--border);}

/* ── CTA FOOTER ── */
.cta-section{background:var(--g1);padding:clamp(48px,6vw,80px) clamp(20px,5vw,48px);text-align:center;}
.cta-section h3{font-family:'Montserrat';font-size:clamp(24px,4vw,38px);color:#fff;margin-bottom:14px;}
.cta-section p{color:rgba(255,255,255,.7);font-size:clamp(13px,1.5vw,16px);margin-bottom:32px;line-height:1.7;}

/* ── LOGIN CARD ── */
.login-section{background:#fff;padding:clamp(40px,6vw,72px) clamp(20px,5vw,48px);border-top:1px solid var(--border);}
.login-wrap{max-width:420px;margin:0 auto;}
.login-card{border:1.5px solid var(--border);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);}
.login-tabs{display:flex;border-bottom:1px solid var(--border);background:#f8fafc;}
.login-tab{flex:1;padding:14px;font-size:13px;font-weight:600;cursor:pointer;border:none;background:none;color:var(--muted);transition:all .15s;}
.login-tab.active{color:var(--g2);background:#fff;border-bottom:2px solid var(--g3);}
.login-body{padding:clamp(20px,4vw,28px);}
.login-body h2{font-family:'Montserrat';font-size:22px;color:var(--g1);margin-bottom:4px;}
.login-body p{font-size:13px;color:var(--muted);margin-bottom:20px;}
.lf-group{margin-bottom:14px;}
.lf-group label{display:block;font-size:14px;font-weight:600;color:var(--muted);margin-bottom:5px;text-transform:uppercase;letter-spacing:.04em;}
.lf-group input{width:100%;padding:11px 14px;border:1.5px solid var(--border);border-radius:var(--r-sm);font-family:'DM Sans',sans-serif;font-size:14px;outline:none;transition:border-color .15s;background:#fff;}
.lf-group input:focus{border-color:var(--g3);}
.lf-btn{width:100%;padding:13px;background:var(--g3);color:#fff;border:none;border-radius:var(--r-sm);font-family:'DM Sans',sans-serif;font-size:15px;font-weight:700;cursor:pointer;transition:background .2s;margin-top:4px;}
.lf-btn:hover{background:var(--g2);}
.lf-btn:disabled{background:#ccc;cursor:not-allowed;}
.alert{padding:12px 14px;border-radius:var(--r-sm);font-size:13px;margin-bottom:16px;}
.alert-error{background:#fee2e2;color:#b91c1c;border:1px solid #fecaca;}
.alert-success{background:var(--g6);color:var(--g2);border:1px solid var(--border);}
.tab-content{display:none;}
.tab-content.active{display:block;}
.login-footer-link{text-align:center;margin-top:16px;padding-top:16px;border-top:1px solid var(--border);}
.login-footer-link a{color:var(--g3);font-size:13px;text-decoration:none;font-weight:500;}
.login-footer-link a:hover{text-decoration:underline;}

footer{background:var(--g1);color:rgba(255,255,255,.5);text-align:center;padding:20px;font-size:14px;}

/* ── Nutri search results grid ── */
#nutri-resultado > div{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:14px;}

@media(max-width:480px){
  .hero-btns{flex-direction:column;align-items:center;}
  .hero-btn{width:100%;justify-content:center;}
  .plans-grid{grid-template-columns:1fr;}
}
</style>