/* MOWW design system — components on top of Blocksy globals.
   Tokens map to Blocksy palette (Customizer ▸ Colors):
   1 forest #1E3D2F · 2 leaf #6AA84F · 3 ink #191514 · 4 heading · 5 tint #ECF2EA
   6 surface #FFFFFF · 7 cream bg #FAF8F4 · 8 orange #D9822B */
:root {
  --mw-forest: var(--theme-palette-color-1, #1E3D2F);
  --mw-leaf: var(--theme-palette-color-2, #6AA84F);
  --mw-ink: var(--theme-palette-color-3, #191514);
  --mw-tint: var(--theme-palette-color-5, #ECF2EA);
  --mw-surface: var(--theme-palette-color-6, #FFFFFF);
  --mw-cream: var(--theme-palette-color-7, #FAF8F4);
  --mw-orange: var(--theme-palette-color-8, #D9822B);
  --mw-ink-soft: rgba(25, 21, 20, 0.72);
  --mw-ink-mute: rgba(25, 21, 20, 0.6);
  --mw-line: rgba(25, 21, 20, 0.1);
  --mw-cream-soft: rgba(250, 248, 244, 0.75);
}
body { background: var(--mw-cream); -webkit-font-smoothing: antialiased; }
::selection { background: rgba(106, 168, 79, 0.25); }
html { scroll-behavior: smooth; }

/* ---- Layout ---- */
[data-unbk-section] > [data-unbk-container] {
  box-sizing: border-box;
  width: 100%;
  max-width: calc(1200px + 64px);
  margin-inline: auto;
  padding-inline: 32px;
}
.mw-section { padding-block: clamp(64px, 9vw, 110px); }
.mw-section--tight-top { padding-top: clamp(28px, 4vw, 40px); }
.mw-section--header { padding-block: clamp(72px, 10vw, 120px) clamp(56px, 8vw, 100px); }
.mw-section--tint { background: var(--mw-tint); }
.mw-section--forest { background: var(--mw-forest); }
.mw-section--night { background: #191514; }
.mw-hidden { display: none; }

/* ---- Type ---- */
.mw-kicker {
  font-size: 13px; font-weight: 600; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--mw-orange); margin: 0 0 16px;
}
.mw-kicker--leaf { color: var(--mw-leaf); }
.mw-kicker--forest { color: var(--mw-forest); }
h1.mw-h1 { font-size: clamp(44px, 6.5vw, 88px); line-height: 1.02; margin: 0 0 24px; max-width: 16ch; text-wrap: balance; }
h1.mw-h1--sub { font-size: clamp(40px, 5.5vw, 76px); line-height: 1.04; margin: 0; max-width: 18ch; }
h1.mw-h1--contact { font-size: clamp(36px, 4.5vw, 60px); line-height: 1.06; margin: 0; }
h2.mw-h2 { font-size: clamp(32px, 4vw, 48px); line-height: 1.1; margin: 0; }
h2.mw-h2--lg { font-size: clamp(34px, 4.2vw, 54px); line-height: 1.08; }
h2.mw-h2--md { font-size: clamp(30px, 3.8vw, 44px); line-height: 1.12; }
h3.mw-h3 { font-size: clamp(26px, 3vw, 36px); line-height: 1.15; margin: 0 0 32px; max-width: 18ch; }
.mw-measure { max-width: 22ch; }
.mw-mb-lg { margin-bottom: clamp(36px, 5vw, 56px); }
.mw-mb-md { margin-bottom: clamp(24px, 3.5vw, 44px); }
.mw-mb-sm { margin-bottom: 20px; }
.mw-em { font-style: italic; }
.mw-em--forest { font-style: italic; color: var(--mw-forest); }
.mw-em--leaf { font-style: italic; color: var(--mw-leaf); }
.mw-lede { font-size: 18px; line-height: 1.65; color: var(--mw-ink-soft); max-width: 60ch; margin: 0; }
.mw-lede--lg { font-size: 20px; line-height: 1.7; }
.mw-lede--xl { font-size: 19px; line-height: 1.7; max-width: 62ch; }
.mw-statement {
  font-size: clamp(26px, 3.2vw, 42px); font-weight: 600; letter-spacing: -0.02em;
  line-height: 1.25; margin: 0; max-width: 30ch; text-wrap: pretty;
}
.mw-statement--md { font-size: clamp(24px, 3vw, 38px); line-height: 1.3; max-width: 34ch; }
.mw-on-dark { color: var(--mw-cream); }
.mw-on-dark-soft { color: rgba(250, 248, 244, 0.65); }

/* ---- Buttons ---- */
.mw-btn {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--mw-forest); color: var(--mw-cream);
  padding: 15px 30px; border-radius: 999px;
  font-size: 16px; font-weight: 600; text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.mw-btn:hover { background: var(--mw-leaf); color: var(--mw-ink); }
.mw-btn--light { background: var(--mw-cream); color: var(--mw-forest); font-weight: 700; }
.mw-btn--light:hover { background: var(--mw-leaf); color: var(--mw-ink); }
.mw-btn--outline {
  background: transparent; border: 1.5px solid var(--mw-cream-soft); color: var(--mw-cream);
}
.mw-btn--outline:hover { border-color: var(--mw-cream); background: rgba(250, 248, 244, 0.12); color: var(--mw-cream); }
.mw-arrow-link {
  font-size: 16.5px; font-weight: 700; color: var(--mw-forest); text-decoration: none;
  display: inline-flex; align-items: center; gap: 8px; transition: color 0.2s ease;
}
.mw-arrow-link:hover { color: var(--mw-leaf); }
.mw-btn-row { display: flex; gap: 16px; flex-wrap: wrap; margin: 0; }

/* ---- Hero / CTA bands ---- */
.mw-hero { position: relative; min-height: clamp(560px, 85vh, 820px); display: flex; align-items: flex-end; overflow: hidden; }
.mw-hero__bg, .mw-cta__bg {
  position: absolute; inset: 0; background-size: cover;
  background-position: 50% 100%; background-repeat: no-repeat;
}
.mw-hero__overlay {
  position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(to top, rgba(25,21,20,0.78) 0%, rgba(25,21,20,0.34) 42%, rgba(25,21,20,0.1) 70%, rgba(25,21,20,0.18) 100%);
}
.mw-hero__inner { position: relative; z-index: 2; padding-block: clamp(120px, 16vw, 180px) clamp(64px, 9vw, 96px); }
.mw-hero__lede { font-size: 20px; line-height: 1.6; color: rgba(250,248,244,0.92); max-width: 56ch; margin: 0 0 40px; }
.mw-cta { position: relative; min-height: 480px; display: flex; align-items: center; overflow: hidden; }
.mw-cta__bg { background-position: center; }
.mw-cta__overlay {
  position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(to right, rgba(25,21,20,0.72) 0%, rgba(25,21,20,0.35) 70%, rgba(25,21,20,0.2) 100%);
}
.mw-cta__inner { position: relative; z-index: 2; padding-block: clamp(72px, 10vw, 96px); }
@media (min-width: 1025px) and (prefers-reduced-motion: no-preference) {
  .mw-hero__bg--fixed, .mw-cta__bg--fixed { background-attachment: fixed; }
}

/* ---- Media ---- */
.mw-media { border-radius: 16px; overflow: hidden; }
.mw-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.mw-media--s300 { height: clamp(220px, 40vw, 300px); }
.mw-media--s380 { height: clamp(240px, 45vw, 380px); }
.mw-media--s420 { height: clamp(260px, 50vw, 420px); }
.mw-media--s460 { height: clamp(280px, 55vw, 460px); }
.mw-media--s520 { height: clamp(300px, 60vw, 520px); }

/* ---- Grids & splits ---- */
.mw-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: 28px; }
.mw-card {
  background: var(--mw-surface); border: 1px solid rgba(25,21,20,0.08); border-radius: 14px;
  padding: 36px; display: flex; flex-direction: column; gap: 18px;
  transition: border-color 0.2s ease; text-decoration: none; color: var(--mw-ink);
}
.mw-card:hover { border-color: var(--mw-leaf); }
.mw-card__num {
  width: 44px; height: 44px; border-radius: 12px; background: var(--mw-tint);
  display: flex; align-items: center; justify-content: center;
  color: var(--mw-forest); font-size: 17px; font-weight: 800;
}
h3.mw-card__title { font-size: 23px; margin: 0; letter-spacing: -0.01em; }
.mw-card__text { font-size: 16.5px; line-height: 1.65; color: var(--mw-ink-soft); margin: 0; }
.mw-split { display: grid; grid-template-columns: 1.25fr 1fr; gap: clamp(40px, 6vw, 72px); align-items: center; }
.mw-split--head { display: grid; grid-template-columns: 1.3fr 1fr; gap: clamp(40px, 6vw, 64px); align-items: center; }
.mw-split--def { display: grid; grid-template-columns: minmax(300px, 460px) 1fr; gap: clamp(40px, 6vw, 72px); align-items: center; }
@media (max-width: 900px) {
  .mw-split, .mw-split--head, .mw-split--def { grid-template-columns: 1fr; }
}
.mw-split--even { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr)); gap: clamp(40px, 6vw, 64px); align-items: center; }
.mw-split--mission { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr)); gap: clamp(36px, 5vw, 56px); }
.mw-split--challenge { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(360px, 100%), 1fr)); gap: clamp(40px, 6vw, 64px); }
.mw-split--contact { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(400px, 100%), 1fr)); gap: clamp(48px, 7vw, 80px); align-items: start; }
.mw-stack { display: flex; flex-direction: column; gap: 22px; align-items: flex-start; }
.mw-stack--24 { gap: 24px; }
.mw-stack--28 { gap: 28px; }

/* ---- Numbered list (challenge) ---- */
.mw-numlist { display: flex; flex-direction: column; }
.mw-numlist__row { display: flex; gap: 18px; align-items: baseline; padding: 18px 0; border-top: 1px solid var(--mw-line); }
.mw-numlist__row:last-child { border-bottom: 1px solid var(--mw-line); }
.mw-numlist__num { font-size: 15px; font-weight: 800; color: var(--mw-orange); min-width: 28px; }
.mw-numlist__text { font-size: 17px; line-height: 1.5; color: rgba(25,21,20,0.85); margin: 0; }

/* ---- Callouts ---- */
.mw-callout { background: var(--mw-tint); border-radius: 16px; padding: clamp(28px, 4vw, 44px) clamp(28px, 4.5vw, 48px); max-width: 1100px; }
.mw-callout__text { font-size: 21px; line-height: 1.6; color: var(--mw-forest); margin: 0; text-wrap: pretty; }
.mw-callout--forest { background: var(--mw-forest); display: flex; flex-direction: column; justify-content: center; gap: 20px; max-width: none; }
.mw-callout--forest .mw-callout__text { font-size: 24px; line-height: 1.55; color: var(--mw-cream); }
.mw-callout--glow { background: rgba(106,168,79,0.1); border: 1px solid rgba(106,168,79,0.3); max-width: none; margin-top: clamp(48px, 6vw, 72px); }
.mw-callout--glow .mw-callout__text { color: var(--mw-cream); max-width: 62ch; }

/* ---- Team ---- */
.mw-team { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(400px, 100%), 1fr)); gap: 32px; }
.mw-team-card { background: var(--mw-surface); border: 1px solid rgba(25,21,20,0.08); border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; }
.mw-team-card__photo { height: clamp(320px, 50vw, 440px); }
.mw-team-card__photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
.mw-team-card__body { padding: 32px 36px 40px; display: flex; flex-direction: column; gap: 12px; }
h3.mw-team-card__name { font-size: 26px; margin: 0; letter-spacing: -0.01em; }
.mw-role { font-size: 13px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--mw-leaf); }
.mw-team-card__bio { font-size: 16px; line-height: 1.7; color: var(--mw-ink-soft); margin: 0; }

/* ---- Definition quote ---- */
.mw-quote-mark { font-size: 72px; line-height: 0.5; font-weight: 800; color: var(--mw-leaf); font-style: italic; }
blockquote.mw-blockquote {
  margin: 0; padding: 0; border: 0; font-size: clamp(22px, 2.5vw, 29px); font-weight: 500;
  letter-spacing: -0.01em; line-height: 1.45; color: var(--mw-cream); text-wrap: pretty;
}
.mw-quote-src { font-size: 14px; color: rgba(250,248,244,0.55); }

/* ---- Sorting journey ---- */
.mw-journey { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr)); gap: 32px; }
.mw-journey__item { display: flex; flex-direction: column; }
.mw-journey__img { height: 260px; border-radius: 12px; overflow: hidden; background: rgba(250,248,244,0.06); }
.mw-journey__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.mw-journey__row { display: flex; gap: 18px; padding: 22px 4px 0; align-items: baseline; }
.mw-journey__num { font-size: 34px; font-weight: 800; color: var(--mw-leaf); letter-spacing: -0.02em; line-height: 1; }
.mw-journey__text { font-size: 16px; line-height: 1.6; color: rgba(250,248,244,0.85); margin: 0; }

/* ---- Beyond plastic cards ---- */
.mw-beyond { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(380px, 100%), 1fr)); gap: 28px; }
.mw-beyond-card { background: var(--mw-tint); border-radius: 16px; padding: 44px 44px 48px; display: flex; flex-direction: column; gap: 18px; }
.mw-tag { font-size: 13px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--mw-orange); }
h3.mw-beyond-card__title { font-size: 28px; margin: 0; letter-spacing: -0.01em; }
.mw-beyond-card__text { font-size: 17px; line-height: 1.7; color: rgba(25,21,20,0.75); margin: 0; }

/* ---- CTA strip (Projects bottom) ---- */
.mw-cta-strip { display: flex; align-items: center; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
.mw-cta-strip h2 { max-width: 26ch; text-wrap: balance; }

/* ---- Contact ---- */
.mw-contact-org { border-top: 1px solid var(--mw-line); padding-top: 28px; display: flex; flex-direction: column; gap: 8px; width: 100%; }
.mw-contact-org__name { font-size: 17px; font-weight: 700; }
.mw-contact-org__sub { font-size: 15px; color: rgba(25,21,20,0.55); }
.mw-mail-row { display: flex; gap: 20px; margin-top: 10px; flex-wrap: wrap; }
.mw-mail-link { font-size: 16px; font-weight: 600; color: var(--mw-forest); text-decoration: none; }
.mw-mail-link:hover { color: var(--mw-leaf); }
.mw-form-card { background: var(--mw-surface); border: 1px solid rgba(25,21,20,0.08); border-radius: 16px; padding: clamp(28px, 4vw, 48px); }
.mw-form-card .ff-el-form-control, .mw-form-card input[type="text"], .mw-form-card input[type="email"], .mw-form-card textarea {
  font-family: inherit; font-size: 16px; padding: 13px 16px;
  border: 1px solid rgba(25,21,20,0.2); border-radius: 7px;
  background: var(--mw-cream); color: var(--mw-ink); width: 100%;
}
.mw-form-card input:focus, .mw-form-card textarea:focus {
  outline: none; border-color: var(--mw-forest); box-shadow: 0 0 0 3px rgba(30,61,47,0.12);
}
.mw-form-card .ff-el-input--label label, .mw-form-card label { font-size: 14.5px; font-weight: 600; }
.mw-form-card .ff-btn-submit, .mw-form-card button[type="submit"] {
  font-family: inherit; background: var(--mw-forest); color: var(--mw-cream); border: none;
  padding: 15px 30px; border-radius: 999px; font-size: 16px; font-weight: 700; cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
}
.mw-form-card .ff-btn-submit:hover, .mw-form-card button[type="submit"]:hover { background: var(--mw-leaf); color: var(--mw-ink); }

/* ---- Header assists ---- */
.site-title { font-size: 23px; font-weight: 800; letter-spacing: -0.02em; }
.site-title::after { content: "."; color: var(--mw-leaf); }
header [data-row*="middle"] { backdrop-filter: blur(10px); }

/* ---- Footer ---- */
footer.ct-footer { background: #191514; color: var(--mw-cream); }
footer.ct-footer [data-row] > div { max-width: calc(1200px + 64px); }
footer.ct-footer .widget-title {
  font-size: 13px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--mw-leaf); margin-bottom: 18px;
}
.mw-foot-brand { font-size: 26px; font-weight: 800; letter-spacing: -0.02em; color: var(--mw-cream); }
.mw-foot-brand span { color: var(--mw-leaf); }
.mw-foot-text { font-size: 15px; line-height: 1.6; color: rgba(250,248,244,0.6); max-width: 32ch; margin: 12px 0 0; }
.mw-foot-links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.mw-foot-links a { font-size: 15px; color: rgba(250,248,244,0.75); text-decoration: none; }
.mw-foot-links a:hover { color: var(--mw-cream); }
.mw-foot-cta {
  margin-top: 14px; display: inline-flex; align-self: flex-start;
  border: 1.5px solid rgba(250,248,244,0.35); color: var(--mw-cream);
  padding: 10px 20px; border-radius: 999px; font-size: 14px; font-weight: 600; text-decoration: none;
  transition: border-color 0.2s ease, color 0.2s ease;
}
.mw-foot-cta:hover { border-color: var(--mw-leaf); color: var(--mw-leaf); }
footer.ct-footer .ct-footer-copyright { font-size: 13.5px; color: rgba(250,248,244,0.5); }
footer.ct-footer [data-row="bottom"] { border-top: 1px solid rgba(250,248,244,0.12); }

/* ---- Footer layout (programmatic columns) ---- */
footer.ct-footer [data-row="middle"] .ct-container {
  display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 48px;
  padding-block: 80px 64px; align-items: start;
}
@media (max-width: 999px) { footer.ct-footer [data-row="middle"] .ct-container { grid-template-columns: 1fr 1fr; } }
@media (max-width: 599px) { footer.ct-footer [data-row="middle"] .ct-container { grid-template-columns: 1fr; } }
footer.ct-footer [data-row="bottom"] .ct-container { padding-block: 24px 32px; }

/* ---- Utilities ---- */
.mw-col { display: flex; flex-direction: column; gap: 24px; }
.mw-prose-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(360px, 100%), 1fr)); gap: 40px; max-width: 1100px; }
.mw-self-center { align-self: center; }
/* Margin-utilities sist i kaskaden så de vinner över komponenternas margin:0 */
.mw-mb-lg { margin-bottom: clamp(36px, 5vw, 56px); }
.mw-mb-md { margin-bottom: clamp(24px, 3.5vw, 44px); }
.mw-mb-sm { margin-bottom: 20px; }
