/* NutraWorld Shop — estilos das seções de produtos.
   Paleta e tipografia seguem o design aprovado no Claude Design:
   verde  #16A34A   |  azul-marinho #0B3D63   |  azul-céu (ofertas) #7DD3FC
   tinta  #142A1E   |  texto secundário #55645C / #5B6B62
   fontes: IBM Plex Slab (títulos) / IBM Plex Sans (corpo) */

.nws-grid, .nws-shop, .nws-cat-grid, .nws-lang {
    font-family: 'Inter', sans-serif;
    color: #142A1E;
    box-sizing: border-box;
}
.nws-grid *, .nws-shop *, .nws-cat-grid *, .nws-lang * { box-sizing: border-box; }

/* ---------- Grades de cards ---------- */
.nws-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(5, minmax(0, 1fr));
}
.nws-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

@media (max-width: 1024px) {
    .nws-grid--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .nws-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
    .nws-grid--5, .nws-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
}

.nws-card {
    background: #FFFFFF;
    border: 1px solid rgba(20, 42, 30, 0.08);
    border-radius: 14px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: box-shadow .18s ease, transform .18s ease;
}
.nws-card:hover {
    box-shadow: 0 10px 24px rgba(20, 42, 30, 0.10);
    transform: translateY(-2px);
}
.nws-card__media {
    position: relative;
    padding: 26px 0;
    display: flex;
    justify-content: center;
}
.nws-card__media img {
    max-width: 70%;
    max-height: 140px;
    object-fit: contain;
}
.nws-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    font-size: 11px;
    font-weight: 600;
    padding: 4px 9px;
    border-radius: 20px;
}
.nws-badge--dark { background: #16A34A; color: #FFFFFF; }
.nws-badge--blue { background: #7DD3FC; color: #0C4A6E; }

.nws-card__body { padding: 16px; display: flex; flex-direction: column; flex-grow: 1; }
.nws-card__category { font-size: 12px; font-weight: 600; }
.nws-card__name {
    font-size: 15.5px;
    font-weight: 600;
    margin: 8px 0 10px;
    line-height: 1.35;
    flex-grow: 1;
}
.nws-card__price {
    font-family: 'Poppins', sans-serif;
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 12px;
}
.nws-card__from { font-size: 12px; font-weight: 500; color: #93A096; margin-right: 2px; }
.nws-card__btn {
    display: block;
    text-align: center;
    padding: 11px;
    border-radius: 7px;
    font-size: 13.5px;
    font-weight: 600;
    text-decoration: none;
}
.nws-card__btn--outline { border: 1px solid #142A1E; color: #142A1E !important; }
.nws-card__btn--fill { background: #16A34A; color: #FFFFFF !important; }

.nws-empty { font-size: 14px; color: #55645C; padding: 24px 0; }

/* ---------- Categorias ---------- */
.nws-cat-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 16px;
}
@media (max-width: 900px) { .nws-cat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 520px) { .nws-cat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.nws-cat-tile {
    display: block;
    border: 1px solid rgba(20, 42, 30, 0.10);
    border-radius: 12px;
    padding: 22px 16px;
    text-align: center;
    text-decoration: none;
    color: #142A1E;
    transition: box-shadow .18s ease, transform .18s ease;
}
.nws-cat-tile:hover { box-shadow: 0 10px 24px rgba(20, 42, 30, 0.10); transform: translateY(-2px); }
.nws-cat-tile__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    border-radius: 50%;
    margin: 0 auto 14px;
}
.nws-cat-tile__label { font-size: 14.5px; font-weight: 600; }

/* ---------- Loja: busca, ordenação, filtros ---------- */
.nws-shop__toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
    margin-bottom: 24px;
}
.nws-shop__search input {
    width: 100%;
    max-width: 340px;
    padding: 11px 14px;
    font-size: 13.5px;
    border: 1px solid rgba(20, 42, 30, 0.16);
    border-radius: 8px;
    background: #F7F5EF;
    font-family: inherit;
}
.nws-shop__sort { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.nws-shop__sort label { font-size: 13px; color: #55645C; }
.nws-shop__sort select {
    padding: 9px 12px;
    font-size: 13.5px;
    border: 1px solid rgba(20, 42, 30, 0.16);
    border-radius: 8px;
    background: #F7F5EF;
    font-family: inherit;
    font-weight: 600;
}
.nws-shop__body { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 32px; }
@media (max-width: 860px) { .nws-shop__body { grid-template-columns: 1fr; } }

.nws-shop__filters h4 { font-size: 14px; font-weight: 600; margin: 0 0 14px; }
.nws-filter-item {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 7px 0;
    font-size: 13.5px;
    cursor: pointer;
}
.nws-filter-item__icon {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.nws-filter-item__icon svg { width: 16px; height: 16px; }

/* ---------- Seletor de idioma ---------- */
.nws-lang { position: relative; display: inline-block; }
.nws-lang__toggle {
    display: flex;
    align-items: center;
    gap: 7px;
    font-family: inherit;
    font-size: 15px;
    font-weight: 600;
    border: 1px solid rgba(20, 42, 30, 0.16);
    border-radius: 20px;
    padding: 7px 12px;
    background: #FFFFFF;
    color: #142A1E;
    cursor: pointer;
}
.nws-lang__code { font-size: 12px; font-weight: 700; }
.nws-lang__menu {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    background: #FFFFFF;
    border: 1px solid rgba(20, 42, 30, 0.12);
    border-radius: 12px;
    box-shadow: 0 14px 30px rgba(20, 42, 30, 0.16);
    overflow: hidden;
    min-width: 190px;
    z-index: 40;
}
.nws-lang__item {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    text-align: left;
    border: none;
    background: #FFFFFF;
    font-family: inherit;
    padding: 11px 14px;
    font-size: 13.5px;
    font-weight: 500;
    color: #142A1E;
    cursor: pointer;
}
.nws-lang__item:hover { background: #EFFBF4; }
.nws-lang__item.is-active { font-weight: 700; background: #EFFBF4; }

/* =====================================================================
 * PÁGINAS PRONTAS — [nws_home] e [nws_shop_page]
 * ===================================================================== */
.nws-page { font-family: 'Inter', sans-serif; color: #142A1E; background: #FFFFFF; font-size: 16px; }
.nws-page *, .nws-page *::before, .nws-page *::after { box-sizing: border-box; }
.nws-page a { text-decoration: none; color: inherit; }
.nws-page h1, .nws-page h2, .nws-page h3 { font-family: 'Poppins', sans-serif; font-weight: 600; margin: 0; }

.nws-page a.nws-btn,
.nws-page button.nws-btn {
    display: inline-block;
    padding: 14px 26px;
    border-radius: 8px;
    font-weight: 600;
    font-size: 15.5px;
    white-space: nowrap;
    font-family: 'Inter', sans-serif;
    border: none;
    cursor: pointer;
    line-height: 1.2;
    transition: background .15s ease, opacity .15s ease;
}
.nws-page a.nws-btn--fill,
.nws-page button.nws-btn--fill { background: #16A34A; color: #FFFFFF !important; }
.nws-page a.nws-btn--fill:hover,
.nws-page button.nws-btn--fill:hover { background: #128A40; }
.nws-page button.nws-btn--fill:disabled { opacity: 0.65; cursor: default; }
.nws-page a.nws-btn--outline,
.nws-page button.nws-btn--outline { border: 2px solid rgba(20,42,30,0.28); color: #142A1E !important; background: transparent; }
.nws-page a.nws-btn--outline:hover,
.nws-page button.nws-btn--outline:hover { background: #0B2A1D; color: #FFFFFF !important; border-color: #0B2A1D; }

/* Header */
.nws-header { width: 100%; background: #0B2338; border-bottom: 1px solid rgba(255,255,255,0.08); }
.nws-header__inner { max-width: 1240px; margin: 0 auto; padding: 16px 24px; display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.nws-header__logo { flex-shrink: 0; }
.nws-header__logo img { height: 72px !important; width: auto !important; max-width: 340px; display: block; }
.nws-nav { display: flex; gap: 28px; flex-wrap: wrap; }
.nws-nav a { font-size: 15px; font-weight: 500; color: #E7EFF6; }
.nws-nav a:hover { color: #4ADE80; }
.nws-header__actions { display: flex; align-items: center; gap: 14px; flex-shrink: 0; }
@media (max-width: 760px) {
    .nws-header__inner { padding: 12px 16px; }
    .nws-header__logo img { height: 44px !important; max-width: 220px; }
    .nws-nav {
        order: 3;
        width: 100%;
        justify-content: center;
        gap: 18px;
        padding-top: 10px;
        margin-top: 4px;
        border-top: 1px solid rgba(255,255,255,0.12);
    }
    .nws-nav a { font-size: 13.5px; }
}

/* Hero */
.nws-hero { width: 100%; background: linear-gradient(135deg,#EAFBF1 0%,#E7F5FF 100%); }
.nws-hero__inner { max-width: 1240px; margin: 0 auto; padding: 56px 24px; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 48px; align-items: center; }
@media (max-width: 900px) { .nws-hero__inner { grid-template-columns: 1fr; padding: 40px 20px; } }
.nws-hero__badge { display: inline-block; font-size: 13.5px; font-weight: 600; color: #0369A1; background: #DFF3FF; padding: 7px 14px; border-radius: 20px; margin-bottom: 20px; }
.nws-hero__content h1 { font-size: 42px; line-height: 1.18; margin: 0 0 18px; }
@media (max-width: 480px) { .nws-hero__content h1 { font-size: 30px; } }
.nws-hero__content p { font-size: 17px; line-height: 1.65; color: #3F5C4C; max-width: 480px; margin: 0 0 28px; }
.nws-hero__cta { display: flex; gap: 14px; flex-wrap: wrap; }
.nws-hero__visual { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; }
@media (max-width: 480px) { .nws-hero__visual { gap: 10px; } }
.nws-bottle-tile { background: #FFFFFF; border: 1px solid rgba(20,42,30,0.08); box-shadow: 0 4px 14px rgba(20,42,30,0.06); border-radius: 16px; padding: 18px 10px 14px; display: flex; flex-direction: column; align-items: center; gap: 10px; transition: box-shadow .15s ease, transform .15s ease; }
.nws-bottle-tile:hover { box-shadow: 0 10px 24px rgba(20, 42, 30, 0.10); transform: translateY(-2px); }
.nws-bottle-tile__icon { width: 46px; height: 46px; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.nws-bottle-tile span:last-child { font-size: 12.5px; font-weight: 500; color: #55645C; text-align: center; }

/* Section wrapper */
.nws-section { max-width: 1240px; margin: 0 auto; padding: 56px 24px; }
.nws-section--tint { max-width: none; background: #EFFBF4; }
.nws-section--tint > * { max-width: 1240px; margin-left: auto; margin-right: auto; }
.nws-section--narrow { max-width: 860px; }
.nws-section h2 { font-size: 28px; margin-bottom: 8px; }
.nws-section__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin-bottom: 28px; flex-wrap: wrap; }
.nws-section__head h2 { margin-bottom: 6px; }
.nws-section__head p { font-size: 15px; color: #55645C; margin: 0; max-width: 540px; }
.nws-section__head > a { font-size: 14.5px; font-weight: 600; color: #16A34A; white-space: nowrap; }

/* Trust */
.nws-trust__grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 18px; }
@media (max-width: 900px) { .nws-trust__grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 560px) { .nws-trust__grid { grid-template-columns: 1fr; } }
.nws-trust__card { border: 1px solid rgba(11,42,29,0.10); border-radius: 12px; padding: 22px; }
.nws-trust__card h3 { font-size: 16.5px; margin-bottom: 8px; }
.nws-trust__card p { font-size: 14.5px; color: #55645C; line-height: 1.6; margin: 0; }

/* How it works */
.nws-steps { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 24px; }
@media (max-width: 700px) { .nws-steps { grid-template-columns: 1fr; } }
.nws-step__n { display: block; font-family: 'Poppins', sans-serif; font-size: 32px; font-weight: 600; color: #0284C7; margin-bottom: 8px; }
.nws-step h3 { font-size: 17px; margin-bottom: 8px; }
.nws-step p { font-size: 15px; color: #55645C; line-height: 1.65; margin: 0; }

/* FAQ */
.nws-faq__item { border-bottom: 1px solid rgba(11,42,29,0.10); padding: 20px 0; }
.nws-faq__item h3 { font-size: 16.5px; margin-bottom: 8px; }
.nws-faq__item p { font-size: 15px; color: #55645C; line-height: 1.65; margin: 0; }

/* Shop page banner */
.nws-banner { width: 100%; background: #0B2338; color: #FFFFFF; }
.nws-banner__inner { max-width: 1240px; margin: 0 auto; padding: 36px 24px; }
.nws-banner__crumb { font-size: 13px; color: #9FC2DD; }
.nws-banner__inner h1 { font-size: 30px; color: #FFFFFF; margin: 10px 0 6px; }
.nws-banner__inner p { font-size: 15px; color: #D7ECFA; margin: 0; }

/* "Can't find the product?" request form */
.nws-request { width: 100%; background: #0B2338; color: #FFFFFF; }
.nws-request__inner { max-width: 640px; margin: 0 auto; padding: 64px 24px; text-align: center; }
.nws-request__inner h2 { font-size: 28px; color: #FFFFFF; margin-bottom: 12px; }
.nws-request__inner > p { font-size: 15.5px; color: #C9D6E2; line-height: 1.6; margin: 0 0 32px; }
.nws-request__form { display: grid; gap: 16px; text-align: left; }
.nws-request__field label { display: block; font-size: 13.5px; font-weight: 600; color: #E7EFF6; margin-bottom: 6px; }
.nws-request__field input {
    width: 100%;
    padding: 13px 14px;
    font-size: 15px;
    font-family: inherit;
    border: 1px solid rgba(255,255,255,0.22);
    border-radius: 8px;
    background: rgba(255,255,255,0.06);
    color: #FFFFFF;
}
.nws-request__field input::placeholder { color: #8FA3B5; }
.nws-request__field input:focus { outline: none; border-color: #4ADE80; background: rgba(255,255,255,0.1); }
.nws-request__form .nws-btn { margin-top: 4px; justify-self: start; }
@media (max-width: 480px) { .nws-request__form .nws-btn { width: 100%; } }
.nws-request__msg { font-size: 14px; margin: 10px 0 0; min-height: 1.4em; }
.nws-request__msg.is-success { color: #4ADE80; font-weight: 600; }
.nws-request__msg.is-error { color: #F87171; font-weight: 600; }

/* Footer */
.nws-footer { width: 100%; background: #0B2338; color: #C9D6E2; }
.nws-footer__inner { max-width: 1240px; margin: 0 auto; padding: 48px 24px 24px; }
.nws-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 32px; margin-bottom: 32px; }
@media (max-width: 800px) { .nws-footer__grid { grid-template-columns: 1fr 1fr; } }
.nws-footer__logo { height: 46px; width: auto; display: block; margin-bottom: 14px; }
.nws-footer__col--brand p { font-size: 14px; line-height: 1.6; color: #C9D6E2; max-width: 280px; margin: 0; }
.nws-footer__col h4 { font-size: 13.5px; font-weight: 600; color: #FFFFFF; margin: 0 0 12px; font-family: 'Inter', sans-serif; }
.nws-footer__col a { display: block; font-size: 14px; color: #C9D6E2; margin-bottom: 9px; }
.nws-footer__col a:hover { color: #4ADE80; }
.nws-footer__bottom { border-top: 1px solid rgba(255,255,255,0.14); padding-top: 20px; display: flex; justify-content: space-between; gap: 12px; font-size: 12.5px; color: #9FB0C0; flex-wrap: wrap; }
