/*
Theme Name: Novo Ingredients
Theme URI: https://www.novoingredients.com
Description: Lightweight block theme for Novo Ingredients (child of Twenty Twenty-Five).
Author: Novo Ingredients LLC
Template: twentytwentyfive
Version: 1.0.0
Text Domain: novo
*/

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; }

/* Header */
.novo-header { position: sticky; top: 0; z-index: 50; background: #fff; border-bottom: 1px solid #e3e8dc; }
.novo-header .wp-block-site-logo img { height: 56px; width: auto; }
.novo-header .wp-block-navigation a { text-decoration: none; font-weight: 600; }
.novo-header .wp-block-navigation a:hover { color: var(--wp--preset--color--leaf); }

/* Hero */
.novo-hero .wp-block-cover__inner-container { max-width: 1200px; margin: 0 auto; padding: 0 1.5rem; }
.novo-hero h1 { text-wrap: balance; }
.novo-eyebrow { text-transform: uppercase; letter-spacing: .12em; font-size: .8rem; font-weight: 700; color: var(--wp--preset--color--leaf); margin-bottom: .5rem; }
.novo-hero .novo-eyebrow { color: var(--wp--preset--color--lime); }

/* Buttons */
.wp-block-button__link { border-radius: 6px; font-weight: 700; padding: .85em 1.5em; transition: background .15s, transform .15s; }
.wp-block-button__link:hover { transform: translateY(-1px); }
.is-style-outline > .wp-block-button__link { border: 2px solid currentColor; background: transparent; }

/* Cards */
.novo-card { background: #fff; border: 1px solid #e3e8dc; border-radius: 10px; padding: 1.5rem; height: 100%; transition: box-shadow .15s, transform .15s; }
.novo-card:hover { box-shadow: 0 8px 24px rgba(31,77,10,.12); transform: translateY(-2px); }
.novo-card h3 { margin-top: 0; }
.novo-card a { font-weight: 700; text-decoration: none; }

/* Stat */
.novo-stat { font-size: clamp(2.5rem, 6vw, 4rem); font-weight: 800; line-height: 1; color: var(--wp--preset--color--leaf); margin: 0; }

/* Tables */
.wp-block-table table { border-collapse: collapse; width: 100%; font-size: .95rem; }
.wp-block-table thead { background: var(--wp--preset--color--forest); color: #fff; }
.wp-block-table th, .wp-block-table td { padding: .65rem .9rem; border: 0; border-bottom: 1px solid #e3e8dc; text-align: left; }
.wp-block-table tbody tr:nth-child(even) { background: #f6f4ec; }

/* Image polish */
.wp-block-image img, .wp-block-cover img { border-radius: 8px; }
.wp-block-cover img { border-radius: 0; }

/* Form */
.novo-form { display: grid; gap: 1rem; max-width: 640px; }
.novo-form .row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.novo-form label { font-weight: 600; font-size: .9rem; display: block; margin-bottom: .25rem; }
.novo-form input, .novo-form select, .novo-form textarea { width: 100%; padding: .7rem .8rem; border: 1px solid #b9c4ac; border-radius: 6px; font: inherit; background: #fff; }
.novo-form input:focus, .novo-form select:focus, .novo-form textarea:focus { outline: 3px solid rgba(95,143,0,.35); border-color: var(--wp--preset--color--leaf); }
.novo-form button { background: var(--wp--preset--color--forest); color: #fff; border: 0; border-radius: 6px; padding: .9rem 1.6rem; font: inherit; font-weight: 700; cursor: pointer; justify-self: start; }
.novo-form button:hover { background: var(--wp--preset--color--leaf); }
.novo-form .hp { position: absolute; left: -9999px; }
.novo-notice { padding: 1rem 1.25rem; border-radius: 6px; margin-bottom: 1rem; font-weight: 600; }
.novo-notice.ok { background: #eaf1e0; color: #234d0c; }
.novo-notice.err { background: #fdecea; color: #8a1c10; }
@media (max-width: 640px) { .novo-form .row { grid-template-columns: 1fr; } }

/* Footer */
.novo-footer a { color: #d8e6c3; text-decoration: none; }
.novo-footer a:hover { color: #fff; text-decoration: underline; }
.novo-footer h4 { color: #fff; }

/* Remove default gaps between header / main / footer */
.wp-site-blocks > * + * { margin-block-start: 0; }
.novo-stat { margin-bottom: .25rem; }
.novo-card p:last-child { margin-bottom: 0; }

/* Form box model fix + mobile header */
.novo-form, .novo-form * { box-sizing: border-box; }
.novo-form .row > div { min-width: 0; }
@media (max-width: 600px) {
  .novo-header .novo-nav-cta .wp-block-button__link { padding: .5em .9em; font-size: .85rem; }
  .novo-header .wp-block-site-logo img { height: 44px; }
}

/* ---- Mobile menu: make section titles stand out from their pages ---- */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-submenu__toggle {
  font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--wp--preset--color--forest);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  font-weight: 400; text-transform: none; letter-spacing: 0; font-size: .98rem; color: var(--wp--preset--color--ink);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item.has-child { margin-top: .6rem; }

/* ---- Mobile tables: each row becomes a card ---- */
@media (max-width: 640px) {
  .wp-block-table table, .wp-block-table tbody, .wp-block-table tr, .wp-block-table td { display: block; width: 100%; }
  .wp-block-table thead { display: none; }
  .wp-block-table tbody tr { border: 1px solid #e3e8dc; border-radius: 8px; margin-bottom: .85rem; padding: .35rem 0; background: #fff !important; }
  .wp-block-table td { border: 0 !important; padding: .3rem .9rem !important; }
  .wp-block-table td:first-child { font-weight: 700; font-size: 1.02rem; padding-top: .55rem !important; }
  .wp-block-table table:has(thead th:nth-child(3)) td:nth-child(3)::before { content: "Dosage: "; font-weight: 700; }
  .wp-block-table table:has(thead th:nth-child(2):last-child) td:nth-child(2)::before { content: ""; }
}

/* Split hero (text panel + photo) */
.novo-split-hero .novo-eyebrow { color: var(--wp--preset--color--lime); }
.novo-split-hero .wp-block-image img { border-radius: 10px; box-shadow: 0 10px 30px rgba(0,0,0,.35); }
