/* Nutrilates polish layer — sits on top of the original WordPress theme CSS.
   Tokens follow the logo green; one typeface (Figtree, self-hosted). */

@font-face { font-family: "Figtree"; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/figtree-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Figtree"; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/figtree-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Figtree"; font-style: normal; font-weight: 700; font-display: swap; src: url("/assets/fonts/figtree-latin-700-normal.woff2") format("woff2"); }

:root {
  --nl-leaf: #00934d;        /* logo green — accents only */
  --nl-leaf-dark: #007a40;   /* buttons + links (AA on white) */
  --nl-leaf-deep: #0e3b2a;   /* hero band */
  --nl-ink: #17322a;
  --nl-muted: #4a5f57;
  --nl-teal: #2f6f78;
  --nl-sage: #eef4ef;
  --nl-line: #d5e2d8;
  --nl-white: #ffffff;
  --nl-max: 1120px;
  --nl-read: 720px;
  --nl-radius: 14px;
}

/* ---------- base type ---------- */
html body { background: var(--nl-white) !important; color: var(--nl-ink); }
body, body *:not(i):not([class*="fa-"]):not([class*="icon-"]):not(.btt-arrow) {
  font-family: "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif !important;
}
body { font-size: 17px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
body p, body li, body td { font-size: 17px !important; line-height: 1.65 !important; color: var(--nl-ink); }
body h1, body h2, body h3, body h4 { color: var(--nl-ink) !important; letter-spacing: -0.01em; line-height: 1.2 !important; font-weight: 700 !important; }
body h1 { font-size: clamp(30px, 4vw, 40px) !important; margin: 0 0 .6em !important; }
body h2 { font-size: clamp(24px, 3vw, 30px) !important; margin: 1.4em 0 .5em !important; }
body h3 { font-size: 21px !important; margin: 1.3em 0 .4em !important; color: var(--nl-teal) !important; }
body h4 { font-size: 18px !important; }
body h1 strong, body h2 strong, body h3 strong { font-weight: inherit; }
body a { color: var(--nl-leaf-dark); text-decoration-thickness: 1px; text-underline-offset: 3px; }
body a:hover { color: var(--nl-leaf-deep); }
body :focus-visible { outline: 3px solid var(--nl-leaf); outline-offset: 2px; border-radius: 4px; }
::selection { background: #cfe8d7; }

/* ---------- buttons ---------- */
.nl-btn, body .nb-loc .sek-module .sek-module-inner .sek-btn {
  display: inline-block; padding: .75em 1.35em !important; border-radius: 999px !important;
  background: var(--nl-leaf-dark) !important; color: #fff !important; font-weight: 600 !important;
  text-decoration: none !important; line-height: 1.2; border: 2px solid var(--nl-leaf-dark); font-size: 16px;
}
.nl-btn:hover, body .nb-loc .sek-module .sek-module-inner .sek-btn:hover { background: var(--nl-leaf-deep) !important; border-color: var(--nl-leaf-deep); color: #fff !important; }
.nl-btn--ghost { background: transparent !important; color: #fff !important; border-color: rgba(255,255,255,.7); }
.nl-btn--ghost:hover { background: rgba(255,255,255,.12) !important; border-color: #fff; }

/* ---------- header ---------- */
:is(.nl-header, .nl-hero, .nl-services, .nl-footer), :is(.nl-header, .nl-hero, .nl-services, .nl-footer) *, :is(.nl-header, .nl-hero, .nl-services, .nl-footer) *::before, :is(.nl-header, .nl-hero, .nl-services, .nl-footer) *::after { box-sizing: border-box; }
.nl-header { position: sticky; top: 0; z-index: 1000; background: rgba(255,255,255,.97); border-bottom: 1px solid var(--nl-line); backdrop-filter: saturate(1.2) blur(6px); }
.nl-header__inner { max-width: var(--nl-max); margin: 0 auto; padding: 10px 20px; display: flex; align-items: center; gap: 24px; }
.nl-brand { display: flex; align-items: center; gap: 12px; text-decoration: none !important; margin-right: auto; }
.nl-brand img { height: 58px; width: auto; display: block; }
.nl-brand span { color: var(--nl-muted); font-size: 14px; line-height: 1.3; max-width: 12em; }
.nl-nav > ul { display: flex; align-items: center; gap: 4px; list-style: none; margin: 0; padding: 0; }
.nl-nav li { position: relative; list-style: none; margin: 0; }
.nl-nav a, .nl-nav button.nl-sub-toggle {
  display: block; padding: 10px 12px; font-size: 16px !important; font-weight: 600; color: var(--nl-ink) !important;
  text-decoration: none; background: none; border: 0; border-radius: 8px; cursor: pointer; line-height: 1.2;
}
.nl-nav a:hover, .nl-nav button.nl-sub-toggle:hover, .nl-nav [aria-current="page"] { color: var(--nl-leaf-dark) !important; background: var(--nl-sage); }
.nl-sub-toggle::after { content: ""; display: inline-block; width: 7px; height: 7px; margin-left: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-3px) rotate(45deg); transition: transform .15s; }
.nl-sub-toggle[aria-expanded="true"]::after { transform: translateY(1px) rotate(-135deg); }
.nl-sub { display: none; position: absolute; top: 100%; left: 0; min-width: 230px; margin: 0; padding: 8px; list-style: none; background: #fff; border: 1px solid var(--nl-line); border-radius: 12px; box-shadow: 0 12px 30px rgba(23,50,42,.12); }
.nl-sub a { font-weight: 400; }
.nl-has-sub.is-open > .nl-sub { display: block; }
@media (hover: hover) and (min-width: 961px) { .nl-has-sub:hover > .nl-sub, .nl-has-sub:focus-within > .nl-sub { display: block; } }
.nl-nav .nl-nav__cta { margin-left: 8px; }
.nl-nav .nl-nav__cta a { color: #fff !important; padding: .7em 1.25em !important; }
.nl-nav .nl-nav__cta a:hover { background: var(--nl-leaf-deep) !important; color: #fff !important; }
.nl-menu-toggle { display: none; }

@media (max-width: 960px) {
  .nl-brand span { display: none; }
  .nl-brand img { height: 48px; }
  .nl-menu-toggle { display: inline-flex; align-items: center; gap: 8px; padding: 10px 14px; border: 1px solid var(--nl-line); border-radius: 999px; background: #fff; color: var(--nl-ink); font-weight: 600; font-size: 16px; cursor: pointer; }
  .nl-menu-toggle span { width: 18px; height: 2px; background: currentColor; position: relative; display: block; }
  .nl-menu-toggle span::before, .nl-menu-toggle span::after { content: ""; position: absolute; left: 0; width: 18px; height: 2px; background: currentColor; }
  .nl-menu-toggle span::before { top: -6px; } .nl-menu-toggle span::after { top: 6px; }
  .nl-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-bottom: 1px solid var(--nl-line); padding: 8px 16px 20px; max-height: calc(100vh - 70px); overflow-y: auto; }
  .nl-header.is-open .nl-nav { display: block; }
  .nl-nav > ul { flex-direction: column; align-items: stretch; gap: 2px; }
  .nl-nav a, .nl-nav button.nl-sub-toggle { width: 100%; text-align: left; padding: 13px 10px; font-size: 18px !important; }
  .nl-sub { position: static; box-shadow: none; border: 0; border-left: 2px solid var(--nl-line); border-radius: 0; margin: 0 0 6px 12px; padding: 0 0 0 6px; min-width: 0; }
  .nl-nav .nl-nav__cta { margin: 12px 0 0; }
  .nl-nav .nl-nav__cta a { text-align: center; }
}

/* ---------- hide the old theme chrome ---------- */
header.tc-header, #footer, .tc-btt-wrapper, #tc-reset-margin-top, hr.featurette-divider { display: none !important; }
#tc-page-wrap { background: transparent !important; }

/* ---------- page body ---------- */
#main-wrapper.container { max-width: var(--nl-max) !important; width: auto !important; margin: 0 auto !important; padding: 48px 20px 64px !important; }
#main-wrapper .row, #main-wrapper .row-fluid { margin-left: 0 !important; }
#content.span12 { width: 100% !important; float: none !important; margin: 0 !important; }
#content article { padding: 0 !important; }
#content .entry-header { margin: 0 auto 1em !important; max-width: var(--nl-read); text-align: left !important; }
#content .entry-header .entry-title { border: 0 !important; padding: 0 !important; }
#content .entry-header hr, #content .entry-header .entry-meta { display: none !important; }
#content .entry-content { max-width: var(--nl-read); margin: 0 auto; }
#content .entry-content :is(p, h1, h2, h3, h4)[style*="text-align: center"],
#content .entry-content :is(p, h1, h2, h3, h4)[style*="text-align:center"],
#content .entry-content .has-text-align-center { text-align: left !important; }
#content .entry-content img { border-radius: 10px; height: auto; max-width: 100%; }
#content .entry-content img.alignleft { margin: 4px 24px 16px 0; }
#content .entry-content img.alignright { margin: 4px 0 16px 24px; }
#content .entry-content ul { padding-left: 1.2em; }
#content .entry-content hr, #content .entry-content .wp-block-separator { border: 0; border-top: 1px solid var(--nl-line); margin: 2.2em 0; }
#content .entry-content iframe { border: 1px solid var(--nl-line) !important; border-radius: var(--nl-radius); max-width: 100%; }

/* tables (timetable, pricing) */
.nl-table { width: 100% !important; border-collapse: collapse !important; margin: 1.6em 0 !important; float: none !important; border: 0 !important; height: auto !important; }
.nl-table, .nl-table tbody, .nl-table tr, .nl-table td, .nl-table th { background: transparent !important; }
.nl-table td, .nl-table th { padding: 14px 4px !important; border: 0 !important; border-bottom: 1px solid var(--nl-line) !important; text-align: left; width: auto !important; height: auto !important; }
.nl-table tr:first-child td { border-top: 1px solid var(--nl-line) !important; }
.nl-table td:first-child { font-weight: 600; width: 45% !important; }

/* ---------- page-builder (Nimble) sections ---------- */
.sektion-wrapper .sek-section { padding-left: 20px; padding-right: 20px; }
.sektion-wrapper .sek-container-fluid { max-width: var(--nl-max); margin: 0 auto; }
html body [data-sek-id] { border-color: transparent !important; }
html body [data-sek-id="__nimble__0b502aec038e"],
html body [data-sek-id="__nimble__1a5a7213aac0"],
html body [data-sek-id="__nimble__d835e021a956"] { background-color: transparent !important; border: 0 !important; }
html body .nb-loc .sek-row [data-sek-module-type="czr_heading_module"] .sek-heading { color: var(--nl-ink) !important; }
/* sauna page: yellow/orange pills -> calm sage panels */
html body [data-sek-id="__nimble__05c37332ab77"],
html body [data-sek-id="__nimble__97ec2256f38f"] { background-color: var(--nl-sage) !important; border: 1px solid var(--nl-line) !important; border-radius: var(--nl-radius) !important; padding: 18px 22px !important; }
html body [data-sek-id="__nimble__152028198654"],
html body [data-sek-id="__nimble__aea6e52c343d"] { background-color: var(--nl-sage) !important; }
html body [data-sek-id="__nimble__aea6e52c343d"] { border-radius: var(--nl-radius); padding: 10px 6px !important; }
html body [data-sek-id="__nimble__d7e89fcf1b5c"] { background-color: transparent !important; }
.sektion-wrapper .sek-module-inner img { border-radius: 10px; }

/* home: intro gallery + text */
.nl-home .sektion-wrapper [data-sek-id="__nimble__63e2ae52a0b9"] { padding-top: 64px; padding-bottom: 24px; }
.nl-home [data-sek-id="__nimble__63e2ae52a0b9"] .sek-row { flex-direction: column-reverse; gap: 32px; flex-wrap: nowrap; }
.nl-home [data-sek-id="__nimble__63e2ae52a0b9"] .sek-row > .sek-column { flex: 1 1 auto !important; max-width: 100% !important; width: 100% !important; }
.nl-home [data-sek-id="__nimble__63e2ae52a0b9"] p.nl-lead { max-width: 40em; }
.nl-home [data-sek-id="__nimble__63e2ae52a0b9"] .sek-gal-wrapper { display: block !important; }
.nl-home [data-sek-id="__nimble__63e2ae52a0b9"] .sek-gal-items { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 16px !important; }
.nl-home [data-sek-id="__nimble__63e2ae52a0b9"] .sek-img-gal-item { margin: 0 !important; width: auto !important; }
.nl-home [data-sek-id="__nimble__63e2ae52a0b9"] .sek-gal-items img { width: 100% !important; height: auto !important; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
p.nl-lead { font-size: 20px !important; line-height: 1.6 !important; font-weight: 400 !important; text-align: left !important; color: var(--nl-ink) !important; margin: 0 !important; }
.nl-home [data-sek-id="__nimble__63e2ae52a0b9"] .sek-gal-items img { border-radius: 12px; }
@media (max-width: 640px) { .nl-home [data-sek-id="__nimble__63e2ae52a0b9"] .sek-gal-items { grid-template-columns: 1fr !important; } }

/* ---------- home hero ---------- */
.nl-hero { background: var(--nl-leaf-deep); color: #fff; }
.nl-hero__inner { max-width: var(--nl-max); margin: 0 auto; padding: 72px 20px; display: grid; grid-template-columns: 1.1fr .9fr; gap: 48px; align-items: center; }
.nl-hero h1 { color: #fff !important; font-size: clamp(34px, 4.4vw, 52px) !important; font-weight: 600 !important; line-height: 1.12 !important; letter-spacing: -0.015em; margin: 0 0 .5em !important; max-width: 15ch; text-shadow: none !important; }
.nl-hero p { color: #d8e8de !important; font-size: 19px !important; max-width: 34em; margin: 0 0 1.8em; }
.nl-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.nl-hero__actions .nl-btn { background: #fff !important; color: var(--nl-leaf-deep) !important; border-color: #fff; }
.nl-hero__actions .nl-btn:hover { background: #d8e8de !important; border-color: #d8e8de; }
.nl-hero__actions .nl-btn--ghost { background: transparent !important; color: #fff !important; border: 2px solid rgba(255,255,255,.65) !important; }
.nl-hero__actions .nl-btn--ghost:hover { background: rgba(255,255,255,.1) !important; border-color: #fff; }
.nl-hero__photo { margin: 0; }
.nl-hero__photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 200px 200px 18px 18px; display: block; }
@media (max-width: 860px) {
  .nl-hero__inner { grid-template-columns: 1fr; padding: 44px 20px 52px; gap: 32px; }
  .nl-hero__photo img { aspect-ratio: 4 / 3; border-radius: 18px; }
}

/* ---------- home services ---------- */
.nl-services { max-width: var(--nl-max); margin: 0 auto; padding: 40px 20px 80px; }
.nl-services > h2 { margin-top: 0 !important; }
.nl-services__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px; margin-top: 28px; }
.nl-service img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 12px; display: block; margin-bottom: 18px; }
.nl-service h3 { margin: 0 0 .35em !important; color: var(--nl-ink) !important; }
.nl-service p { color: var(--nl-muted) !important; margin: 0 0 .8em; }
.nl-service a { font-weight: 600; }
@media (max-width: 860px) { .nl-services__grid { grid-template-columns: 1fr; gap: 40px; } }

/* ---------- footer ---------- */
.nl-footer { background: var(--nl-sage); border-top: 1px solid var(--nl-line); color: var(--nl-ink); }
.nl-footer__inner { max-width: var(--nl-max); margin: 0 auto; padding: 56px 20px 28px; display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 40px; }
.nl-footer img { mix-blend-mode: multiply; height: 64px; width: auto; display: block; margin-bottom: 14px; }
.nl-footer h2 { font-size: 15px !important; margin: 0 0 .9em !important; color: var(--nl-muted) !important; font-weight: 600 !important; letter-spacing: 0; }
.nl-footer p, .nl-footer li { font-size: 16px !important; margin: 0 0 .45em; }
.nl-footer ul { list-style: none; padding: 0; margin: 0; }
.nl-footer a { color: var(--nl-ink); text-decoration: none; }
.nl-footer a:hover { color: var(--nl-leaf-dark); text-decoration: underline; }
.nl-footer__base { grid-column: 1 / -1; border-top: 1px solid var(--nl-line); padding-top: 20px; margin-top: 8px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; }
.nl-footer__base p { font-size: 14px !important; color: var(--nl-muted) !important; margin: 0; }
@media (max-width: 760px) { .nl-footer__inner { grid-template-columns: 1fr; gap: 28px; } }

@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }

/* content inside page-builder text modules (e.g. sauna benefits) */
.sektion-wrapper .sek-module-inner ul { overflow: visible !important; padding-left: 1.2em !important; margin: 0 0 1em !important; }
.sektion-wrapper .sek-module-inner li { margin: 0 0 .55em !important; list-style: disc; }
.sektion-wrapper .sek-module-inner img.alignright { float: right; width: 40% !important; max-width: 300px !important; height: auto !important; margin: 0 0 16px 28px !important; }
@media (max-width: 640px) { .sektion-wrapper .sek-module-inner img.alignright { float: none; width: 100% !important; max-width: 100% !important; margin: 0 0 16px !important; } }

/* enforce heading colours over theme skin + page-builder rules */
html body :is(#content, .sektion-wrapper) :is(h1, h2, h4), html body :is(#content, .sektion-wrapper) :is(h1, h2, h4) * { color: var(--nl-ink) !important; }
html body :is(#content, .sektion-wrapper) h3, html body :is(#content, .sektion-wrapper) h3 * { color: var(--nl-teal) !important; }
/* the old theme puts a white drop-shadow on headings */
body h1, body h2, body h3, body h4 { text-shadow: none !important; }
