/* NaturaToday site chrome (header + footer), 30.09.2026.
   Plain CSS with an `ntc-` prefix so it works identically on Astro pages, on the
   standalone landings (own CSS, no Tailwind) and on the static pages in public/.
   Colours = the hub's own leaf/stone palette (tailwind.config.mjs). */
.ntc-header, .ntc-footer { --ntc-leaf-50:#eef7f1; --ntc-leaf-100:#d7ecdd; --ntc-leaf-600:#2D6A4F; --ntc-leaf-700:#235640; --ntc-leaf-800:#1d4634;
  --ntc-ink:#1c1917; --ntc-ink-2:#44403c; --ntc-muted:#57534e; --ntc-line:#e7e5e4; --ntc-paper:#fff; --ntc-cream:#fafaf9;
  font-family: Inter, system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif; line-height: 1.4; box-sizing: border-box; }
.ntc-header *, .ntc-header *::before, .ntc-header *::after,
.ntc-footer *, .ntc-footer *::before, .ntc-footer *::after { box-sizing: border-box; }
.ntc-header ul, .ntc-footer ul { list-style: none; margin: 0; padding: 0; }
.ntc-header p, .ntc-footer p { margin: 0; }
.ntc-header a, .ntc-footer a { text-decoration: none; }
.ntc-header img, .ntc-footer img { display: block; max-width: none; }
.ntc-wrap { max-width: 72rem; margin: 0 auto; padding: 0 1rem; }
@media (min-width: 1024px) { .ntc-wrap { padding: 0 1.5rem; } }
.ntc-flag { width: 1.25rem; height: .875rem; border-radius: 2px; flex: none; box-shadow: 0 0 0 1px rgba(0,0,0,.06); color: var(--ntc-leaf-700); }
.ntc-flag-lg { width: 1.5rem; height: 1rem; }

/* ---------- header ---------- */
.ntc-header { position: sticky; top: 0; z-index: 40; background: rgba(255,255,255,.94); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border-bottom: 1px solid var(--ntc-line); color: var(--ntc-ink); }
.ntc-bar { position: relative; display: flex; align-items: center; gap: .5rem; min-height: 4rem; }
.ntc-logo { display: flex; align-items: center; gap: .6rem; min-width: 0; min-height: 44px; margin-inline-end: .5rem; color: var(--ntc-leaf-700); }
.ntc-logo img { width: 2.25rem; height: 2.25rem; }
.ntc-logo-text { display: flex; flex-direction: column; min-width: 0; line-height: 1.05; }
.ntc-logo-name { font-family: 'Playfair Display', 'Source Serif 4', Georgia, serif; font-size: 1.125rem; font-weight: 600; color: var(--ntc-leaf-700); white-space: nowrap; }
.ntc-logo-tag { display: none; font-size: .6875rem; color: var(--ntc-muted); margin-top: .2rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 18rem; }
@media (min-width: 640px) { .ntc-logo-tag { display: block; } .ntc-logo img { width: 2.5rem; height: 2.5rem; } .ntc-logo-name { font-size: 1.25rem; } }
.ntc-nav { display: none; align-items: center; gap: .25rem; }
@media (min-width: 1024px) { .ntc-nav { display: flex; } }
.ntc-right { margin-inline-start: auto; display: flex; align-items: center; gap: .4rem; flex: none; }

.ntc-header summary { list-style: none; cursor: pointer; }
.ntc-header summary::-webkit-details-marker { display: none; }
.ntc-header details:not([open]) > .ntc-panel { display: none; }
.ntc-dd-rel { position: relative; }
.ntc-chev { width: .45rem; height: .45rem; border-right: 1.8px solid currentColor; border-bottom: 1.8px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .18s ease; flex: none; opacity: .7; }
.ntc-header details[open] > summary .ntc-chev { transform: translateY(1px) rotate(-135deg); }

.ntc-nav-btn { display: inline-flex; align-items: center; gap: .45rem; height: 2.75rem; padding: 0 .85rem; border-radius: .7rem; font-size: .925rem; font-weight: 600; color: var(--ntc-ink-2); white-space: nowrap; transition: background .15s, color .15s; }
.ntc-nav-btn:hover, .ntc-header details[open] > .ntc-nav-btn { background: var(--ntc-leaf-50); color: var(--ntc-leaf-700); }
.ntc-nav-btn[aria-current] { color: var(--ntc-leaf-700); }
.ntc-catalog-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; height: 2.75rem; padding: 0 1.15rem; margin-inline-end: .25rem; border-radius: 999px; background: var(--ntc-leaf-700); color: #fff !important; font-size: .925rem; font-weight: 700; white-space: nowrap; box-shadow: 0 6px 16px -8px rgba(35,86,64,.6); transition: background .15s, transform .15s; }
.ntc-catalog-btn:hover { background: var(--ntc-leaf-800); }
.ntc-catalog-btn:active { transform: scale(.97); }
.ntc-catalog-btn.is-block { display: flex; width: 100%; height: 3rem; margin: .75rem 0 0; font-size: 1rem; }

.ntc-country-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; height: 2.75rem; min-width: 2.75rem; padding: 0 .75rem; border: 1px solid var(--ntc-line); border-radius: 999px; background: var(--ntc-paper); font-size: .875rem; font-weight: 600; color: var(--ntc-ink-2); white-space: nowrap; transition: border-color .15s, background .15s; }
.ntc-country-btn:hover, .ntc-header details[open] > .ntc-country-btn { border-color: var(--ntc-leaf-100); background: var(--ntc-leaf-50); }
.ntc-country-name { display: none; }
@media (min-width: 640px) { .ntc-country-name { display: inline; } }

.ntc-burger { display: inline-flex; align-items: center; gap: .5rem; height: 2.75rem; min-width: 2.75rem; padding: 0 .9rem; border-radius: 999px; background: var(--ntc-leaf-700); color: #fff; font-size: .875rem; font-weight: 700; }
.ntc-burger-lines { display: grid; gap: 3px; width: 16px; }
.ntc-burger-lines i { display: block; height: 2px; border-radius: 2px; background: currentColor; transition: transform .2s, opacity .2s; }
.ntc-mnav[open] .ntc-burger-lines i:nth-child(1) { transform: translateY(5px) rotate(45deg); }
.ntc-mnav[open] .ntc-burger-lines i:nth-child(2) { opacity: 0; }
.ntc-mnav[open] .ntc-burger-lines i:nth-child(3) { transform: translateY(-5px) rotate(-45deg); }
@media (min-width: 1024px) { .ntc-mnav { display: none; } }

.ntc-panel { position: absolute; top: calc(100% + .35rem); z-index: 50; background: var(--ntc-paper); border: 1px solid var(--ntc-line); border-radius: 1rem; box-shadow: 0 18px 40px -18px rgba(28,25,23,.35), 0 2px 6px rgba(28,25,23,.06); padding: .75rem; animation: ntc-in .16s ease-out; color: var(--ntc-ink); }
@keyframes ntc-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.ntc-panel-cats { inset-inline-start: 0; width: 32rem; }
.ntc-cat-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .125rem; }
.ntc-cat-link { display: flex; align-items: center; min-height: 2.5rem; padding: .4rem .75rem; border-radius: .6rem; font-size: .9rem; font-weight: 600; color: var(--ntc-ink-2); }
.ntc-cat-link:hover, .ntc-cat-link[aria-current] { background: var(--ntc-leaf-50); color: var(--ntc-leaf-700); }
.ntc-panel-all { display: flex; align-items: center; min-height: 2.75rem; margin-top: .35rem; padding: 0 .75rem; border-top: 1px solid var(--ntc-line); font-size: .9rem; font-weight: 700; color: var(--ntc-leaf-700); }
.ntc-panel-countries { inset-inline-end: 0; width: min(20rem, calc(100vw - 2rem)); max-height: calc(100dvh - 5rem); overflow-y: auto; padding: .6rem; }
.ntc-panel-title { padding: .35rem .6rem .5rem; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--ntc-muted); }
.ntc-country-link { display: flex; align-items: center; gap: .75rem; min-height: 2.9rem; padding: .35rem .6rem; border-radius: .65rem; font-size: .9rem; line-height: 1.2; color: var(--ntc-ink); }
.ntc-country-link:hover { background: var(--ntc-cream); }
.ntc-country-link.is-current { background: var(--ntc-leaf-50); }
.ntc-country-txt { flex: 1 1 auto; min-width: 0; }
.ntc-country-main { display: block; font-weight: 600; color: var(--ntc-ink); }
.ntc-country-sub { display: block; font-size: .75rem; color: var(--ntc-muted); }
.ntc-check { color: var(--ntc-leaf-600); font-weight: 800; }

.ntc-panel-mobile { inset-inline: 0; top: 100%; border-radius: 0 0 1rem 1rem; border-top: 0; padding: .25rem 1rem 1rem; max-height: calc(100dvh - 4rem); overflow-y: auto; overscroll-behavior: contain; }
.ntc-panel-mobile .ntc-panel-title { padding: 1rem 0 .5rem; }
.ntc-m-cats { display: grid; grid-template-columns: 1fr 1fr; column-gap: .5rem; }
.ntc-m-cat { display: flex; align-items: center; min-height: 2.75rem; padding: .35rem .7rem; margin-bottom: .4rem; border-radius: .6rem; background: var(--ntc-cream); border: 1px solid var(--ntc-line); font-size: .875rem; font-weight: 600; line-height: 1.2; color: var(--ntc-ink); overflow-wrap: anywhere; }
.ntc-m-cat[aria-current] { color: var(--ntc-leaf-700); border-color: var(--ntc-leaf-100); }
.ntc-m-more { margin-top: .5rem; padding-top: .25rem; border-top: 1px solid var(--ntc-line); display: grid; grid-template-columns: 1fr 1fr; column-gap: .5rem; }
.ntc-m-link { display: flex; align-items: center; min-height: 2.75rem; font-weight: 600; font-size: .9rem; color: var(--ntc-leaf-700); }

/* ---------- footer ---------- */
.ntc-footer { margin-top: 4rem; background: var(--ntc-cream); border-top: 1px solid var(--ntc-line); color: var(--ntc-muted); font-size: .9rem; }
@media (min-width: 768px) { .ntc-footer { margin-top: 6rem; } }
.ntc-fgrid { display: grid; gap: 2rem 1.5rem; grid-template-columns: 1fr 1fr; padding-top: 3rem; padding-bottom: 2rem; }
.ntc-fbrand { grid-column: 1 / -1; }
@media (min-width: 1024px) { .ntc-fgrid { grid-template-columns: 1.4fr 1fr 1fr 1fr; } .ntc-fbrand { grid-column: auto; } }
.ntc-flogo { display: inline-flex; align-items: center; gap: .55rem; min-height: 44px; margin-bottom: .5rem; font-family: 'Playfair Display', 'Source Serif 4', Georgia, serif; font-size: 1.2rem; font-weight: 600; color: var(--ntc-leaf-700); }
.ntc-flogo img { width: 2rem; height: 2rem; border-radius: .4rem; }
.ntc-fbrand p { max-width: 24rem; line-height: 1.6; color: var(--ntc-muted); }
.ntc-fmail { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; margin-top: .5rem; font-weight: 600; color: var(--ntc-leaf-700); overflow-wrap: anywhere; }
.ntc-fmail:hover { text-decoration: underline; }
.ntc-ftitle { margin-bottom: .5rem !important; font-size: .75rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; color: var(--ntc-ink); }
.ntc-fcol { min-width: 0; }
.ntc-flink { display: flex; align-items: center; min-height: 44px; font-size: .9rem; line-height: 1.25; color: var(--ntc-muted); overflow-wrap: anywhere; transition: color .15s; }
.ntc-flink:hover { color: var(--ntc-leaf-700); text-decoration: underline; }
.ntc-flink.is-strong { font-weight: 700; color: var(--ntc-leaf-700); }
@media (min-width: 1024px) { .ntc-flink { min-height: 2.1rem; } }
.ntc-fcountries { border-top: 1px solid var(--ntc-line); padding: 1.5rem 0; }
.ntc-fcountries ul { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .5rem; }
.ntc-fcountry { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding: 0 .9rem; border: 1px solid var(--ntc-line); border-radius: 999px; background: var(--ntc-paper); font-size: .85rem; font-weight: 600; color: var(--ntc-ink-2); }
.ntc-fcountry:hover { border-color: var(--ntc-leaf-100); background: var(--ntc-leaf-50); }
.ntc-fcountry.is-current { background: var(--ntc-leaf-700); border-color: var(--ntc-leaf-700); color: #fff; }
.ntc-flegal { border-top: 1px solid var(--ntc-line); background: #f5f5f4; }
.ntc-flegal .ntc-wrap { padding-top: 1.5rem; padding-bottom: 1.5rem; font-size: .8rem; line-height: 1.6; color: var(--ntc-muted); }
.ntc-flegal-row { display: flex; flex-direction: column; gap: .25rem; margin-top: .75rem; }
@media (min-width: 768px) { .ntc-flegal-row { flex-direction: row; align-items: center; justify-content: space-between; } }
.ntc-flegal-row ul { display: flex; flex-wrap: wrap; column-gap: 1.25rem; }
.ntc-flegal-link { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; font-weight: 600; color: var(--ntc-ink-2); }
.ntc-flegal-link:hover { color: var(--ntc-leaf-700); text-decoration: underline; }

/* skip link: off-screen until focused (the Tailwind sr-only 1px box measured as an inner scroll) */
.ntc-skip { position: absolute; top: -5rem; inset-inline-start: .5rem; z-index: 60; display: inline-flex; align-items: center; min-height: 44px; padding: 0 1rem; border-radius: .5rem; background: #235640; color: #fff; font: 600 .875rem/1 Inter, system-ui, sans-serif; text-decoration: none; }
.ntc-skip:focus { top: .5rem; }

/* Shield against tag-level CSS shipped inside migrated WP content (li::before bullets,
   summary::after icons, p font-size, li padding) — those <style> blocks sit later in
   the page and would otherwise leak into the chrome. */
.ntc-header li, .ntc-footer li { padding: 0; margin: 0; border: 0; background: none; list-style: none; }
.ntc-header li::before, .ntc-footer li::before, .ntc-header li::after, .ntc-footer li::after,
.ntc-header summary::after, .ntc-header summary::before { content: none !important; display: none !important; }
.ntc-header p:not([class]), .ntc-footer p:not([class]) { font-size: inherit; margin: 0; }
.ntc-header summary { padding-top: 0; padding-bottom: 0; background-image: none; }
.ntc-header img:hover, .ntc-footer img:hover { transform: none; }

/* ---------- 375px tap targets for text links inside page content (30.09.2026) ----------
   Inline links in paragraphs, lists, tables, breadcrumbs get a 44px touch area through
   padding + an equal negative margin: the text and the layout stay exactly where they
   were, only the tappable box grows. Buttons/cards (btn, cta, card classes) are left alone. */
@media (max-width: 767px) {
  :is(p, li, td, th, dd, dt, small, figcaption, nav, span, strong, em, label, cite) > a:not([class*="btn"]):not([class*="cta"]):not([class*="card"]):not([class*="button"]):not(:empty):not(:has(img, picture, svg)):not(:is(.ntc-header, .ntc-footer) a) {
    padding: 15px 10px; margin: -15px -10px;
  }
  div > a:not([class]):not(:empty):not(:has(img, picture, svg)):not(:is(.ntc-header, .ntc-footer) a) { padding: 15px 10px; margin: -15px -10px; }
  .df-seo-links > a { padding-inline: 14px !important; margin-inline: -14px !important; }
  .sr-only, .honeypot { text-overflow: ellipsis; }
  /* multi-column comparison tables: shrink to fit instead of a sideways scroll */
  .table-wrap table, .g-tablewrap table, .tbl-wrap table, .esb-table-wrap table { min-width: 0 !important; font-size: .78rem; }
  .table-wrap :is(th, td), .g-tablewrap :is(th, td), .tbl-wrap :is(th, td), .esb-table-wrap :is(th, td) { padding: .45rem .35rem !important; overflow-wrap: anywhere; hyphens: auto; }
  .esb-table-wrap :is(th, td) { white-space: normal !important; word-break: break-word; }
  .esb-table-wrap table { display: table !important; overflow: visible !important; width: 100% !important; font-size: .74rem !important; }
  /* CardioNova landing (bg): rotating glow clipped without a scroll box; review meta wraps */
  .cardio-nova-landing .cn-product-showcase::before { display: none; }
  /* decorative oversized glows on two WP landings; the Incasol sale box had a 200px min-width */
  .pk-hero::before, .pk-footer-cta::before { display: none; }
  .sale-box { align-items: stretch !important; }
  .sale-box > *, [class*="-box"] > [class*="__"] { min-width: 0 !important; max-width: 100%; }
  .cardio-nova-landing .cn-review-header > div { min-width: 0; }
  .cardio-nova-landing .cn-review-date { overflow-wrap: anywhere; }
}

/* pl static landings: their header bar is now a <div> under the site header, so the old
   `header a.btn-primary{min-height:44px}` rule no longer matched */
a.btn-primary { min-height: 44px; }
