/*
Theme Name: Arthaweg
Theme URI:
Author: Arthaweg
Description: Bilingual theme for an independent finance consulting practice. Warm sand palette, Source Serif 4 and Archivo, five page layouts. Built to pair with Polylang.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: arthaweg
Tags: business, two-columns, custom-menu, custom-logo, translation-ready
*/

/* ---------- tokens ---------- */
:root {
  --aw-paper: #FBF8F3;
  --aw-sand: #F4EFE6;
  --aw-rule: #E8E1D6;
  --aw-rule-strong: #E2D9C9;
  --aw-field: #DDD3C2;
  --aw-ink: #24221F;
  --aw-body: #4A453E;
  --aw-muted: #7A7266;
  --aw-faint: #94897A;
  --aw-dim: #A39885;
  --aw-green: #1B4D3E;
  --aw-green-dark: #14382D;
  --aw-serif: "Source Serif 4", Georgia, "Times New Roman", serif;
  --aw-sans: Archivo, "Helvetica Neue", Helvetica, Arial, sans-serif;
  --aw-wrap: 1060px;
  --aw-gutter: 28px;
}

/* ---------- base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--aw-paper);
  color: var(--aw-ink);
  font-family: var(--aw-sans);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--aw-green); text-decoration: none; }
a:hover, a:focus { color: var(--aw-green-dark); text-decoration: underline; text-underline-offset: 3px; }
:focus-visible { outline: 2px solid var(--aw-green); outline-offset: 2px; }
input, textarea, button, select { font: inherit; }
figure { margin: 0; }
.screen-reader-text {
  position: absolute !important; width: 1px; height: 1px; overflow: hidden;
  clip: rect(1px,1px,1px,1px); clip-path: inset(50%); white-space: nowrap;
}
.skip-link:focus {
  position: fixed; top: 8px; left: 8px; z-index: 100; width: auto; height: auto;
  clip: auto; clip-path: none; background: var(--aw-green); color: var(--aw-paper);
  padding: 10px 16px; border-radius: 2px;
}

.aw-page { display: flex; flex-direction: column; min-height: 100vh; }
.aw-main { flex: 1 0 auto; }
.aw-wrap { max-width: var(--aw-wrap); margin: 0 auto; padding-left: var(--aw-gutter); padding-right: var(--aw-gutter); }

/* ---------- header ---------- */
.aw-header {
  border-bottom: 1px solid var(--aw-rule);
  background: var(--aw-paper);
  position: sticky; top: 0; z-index: 20;
}
.aw-header__inner {
  max-width: var(--aw-wrap); margin: 0 auto;
  padding: 18px var(--aw-gutter);
  display: flex; align-items: baseline; gap: 30px; flex-wrap: wrap;
}
.aw-brand { display: flex; align-items: center; margin-right: auto; order: 1; }
.aw-nav { order: 2; }
.aw-lang { order: 3; }
.aw-nav-toggle { order: 4; }
.aw-brand:hover { text-decoration: none; }
.aw-brand svg, .aw-brand img { display: block; }
.aw-brand img { max-height: 28px; width: auto; }
.aw-brand svg { height: 28px; width: auto; }

.aw-nav ul {
  list-style: none; margin: 0; padding: 0;
  display: flex; gap: 24px; flex-wrap: wrap; align-items: baseline;
}
.aw-nav a {
  font-size: 14px; color: var(--aw-body);
  padding-bottom: 3px; border-bottom: 2px solid transparent;
}
.aw-nav a:hover { color: var(--aw-green); text-decoration: none; border-bottom-color: var(--aw-rule-strong); }
.aw-nav .current-menu-item > a,
.aw-nav .current_page_item > a,
.aw-nav .current-menu-ancestor > a {
  color: var(--aw-green); border-bottom-color: var(--aw-green);
}

.aw-lang { display: flex; gap: 7px; align-items: baseline; font-size: 13px; letter-spacing: 0.06em; }
.aw-lang ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 7px; align-items: baseline; }
.aw-lang li + li::before { content: "/"; color: #CFC7B8; margin-right: 7px; }
.aw-lang a, .aw-lang span { font-weight: 500; color: var(--aw-dim); text-transform: uppercase; }
.aw-lang a:hover { color: var(--aw-green-dark); text-decoration: none; }
.aw-lang .current-lang > a, .aw-lang .current-lang > span { color: var(--aw-green); }

/* --- mobile nav --- */
.aw-nav-state { display: none; }
.aw-nav-toggle { display: none; }
.aw-nav-toggle__bars { display: block; width: 22px; height: 14px; position: relative; }
.aw-nav-toggle__bars span {
  position: absolute; left: 0; width: 100%; height: 1.5px;
  background: var(--aw-ink); border-radius: 1px;
  transition: transform 0.22s ease, opacity 0.18s ease;
}
.aw-nav-toggle__bars span:nth-child(1) { top: 0; }
.aw-nav-toggle__bars span:nth-child(2) { top: 6.25px; }
.aw-nav-toggle__bars span:nth-child(3) { top: 12.5px; }
.aw-nav-state:checked ~ .aw-nav-toggle .aw-nav-toggle__bars span:nth-child(1) { transform: translateY(6.25px) rotate(45deg); }
.aw-nav-state:checked ~ .aw-nav-toggle .aw-nav-toggle__bars span:nth-child(2) { opacity: 0; }
.aw-nav-state:checked ~ .aw-nav-toggle .aw-nav-toggle__bars span:nth-child(3) { transform: translateY(-6.25px) rotate(-45deg); }
.aw-nav-state:focus-visible ~ .aw-nav-toggle { outline: 2px solid var(--aw-green); outline-offset: 4px; }

/* ---------- sections ---------- */
.aw-section { border-top: 1px solid var(--aw-rule); }
.aw-section > .aw-wrap { padding-top: 64px; padding-bottom: 64px; }
.aw-section--flush { border-top: 0; }
.aw-section--sand { background: var(--aw-sand); }
.aw-section--green { background: var(--aw-green); color: var(--aw-paper); }
.aw-section--green a { color: var(--aw-paper); }
.aw-section--tight > .aw-wrap { padding-top: 52px; padding-bottom: 52px; }
.aw-hero > .aw-wrap { padding-top: 88px; padding-bottom: 68px; }

/* ---------- type ---------- */
.aw-kicker {
  font-size: 13px; letter-spacing: 0.13em; text-transform: uppercase;
  color: var(--aw-muted); margin: 0 0 26px;
}
.aw-eyebrow {
  font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--aw-faint); margin: 0 0 14px;
}
.aw-num { font-size: 12px; letter-spacing: 0.12em; color: var(--aw-faint); margin: 0 0 16px; }

h1, h2, h3, h4 { font-family: var(--aw-serif); font-weight: 400; letter-spacing: -0.01em; text-wrap: pretty; }
.aw-display {
  font-size: clamp(36px, 4.6vw, 58px); line-height: 1.1;
  letter-spacing: -0.02em; margin: 0;
}
.aw-h1 {
  font-size: clamp(31px, 3.9vw, 50px); line-height: 1.12;
  letter-spacing: -0.02em; margin: 0 0 22px;
}
.aw-h2 { font-size: clamp(26px, 2.8vw, 34px); line-height: 1.2; margin: 0 0 12px; }
.aw-h3 { font-size: 21px; font-weight: 600; line-height: 1.25; margin: 0 0 12px; }
.aw-h3--lg { font-size: 25px; margin: 0; }
.aw-lead {
  font-size: clamp(17px, 1.4vw, 19px); line-height: 1.65;
  color: var(--aw-body); max-width: 52ch; margin: 0 0 40px; text-wrap: pretty;
}
.aw-lead--hero { max-width: 46ch; margin: 28px 0 36px; }
.aw-body { font-size: 16px; line-height: 1.68; color: var(--aw-body); text-wrap: pretty; }
.aw-body--sm { font-size: 15px; line-height: 1.6; }
.aw-bio p { font-size: 17px; line-height: 1.72; color: var(--aw-body); margin: 0 0 20px; text-wrap: pretty; }
.aw-note { font-size: 16px; line-height: 1.7; color: var(--aw-body); max-width: 56ch; margin: 0; }

/* ---------- buttons ---------- */
.wp-block-buttons { display: flex; gap: 14px; flex-wrap: wrap; }
.wp-block-button__link, .aw-btn {
  display: inline-block; background: var(--aw-green); color: var(--aw-paper);
  padding: 14px 26px; font-size: 15px; border-radius: 2px; border: 0;
  font-family: var(--aw-sans); line-height: 1.3; cursor: pointer;
}
.wp-block-button__link:hover, .aw-btn:hover {
  background: var(--aw-green-dark); color: var(--aw-paper); text-decoration: none;
}
.aw-btn--ghost > .wp-block-button__link, .aw-btn--ghost.aw-btn {
  background: transparent; color: var(--aw-ink); border: 1px solid var(--aw-field);
}
.aw-btn--ghost > .wp-block-button__link:hover, .aw-btn--ghost.aw-btn:hover {
  background: transparent; color: var(--aw-ink); border-color: var(--aw-ink);
}
.aw-btn--light > .wp-block-button__link {
  background: var(--aw-paper); color: var(--aw-ink); padding: 15px 28px;
}
.aw-btn--light > .wp-block-button__link:hover { background: #FFFFFF; color: var(--aw-ink); }

/* ---------- grids ---------- */
.aw-split, .aw-grid-2, .aw-grid-3, .aw-cards, .aw-tiles, .aw-rowset {
  display: grid; gap: 52px;
}
.aw-split { grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: 56px; align-items: center; }
.aw-split--top { align-items: start; }
.aw-grid-2 { grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); gap: 44px; align-items: start; }
.aw-grid-3 { grid-template-columns: repeat(auto-fit, minmax(min(230px, 100%), 1fr)); gap: 36px; }
.aw-cards { grid-template-columns: repeat(auto-fit, minmax(min(290px, 100%), 1fr)); gap: 26px; }
.aw-tiles {
  grid-template-columns: repeat(auto-fit, minmax(min(270px, 100%), 1fr));
  gap: 1px; background: var(--aw-rule-strong);
}


/* --- neutralise WordPress layout margins inside grid containers --- */
.aw-grid-3 > *, .aw-grid-2 > *, .aw-split > *, .aw-cards > *,
.aw-tiles > *, .aw-service-row > *, .aw-row > *, .aw-sectors > *,
.aw-closing > .aw-wrap > *, .aw-rowset > * {
  margin-block-start: 0;
}

/* ---------- facts ---------- */
.aw-figure, .aw-fact p.aw-figure {
  font-family: var(--aw-serif); font-size: 36px; line-height: 1.1;
  color: var(--aw-green); margin: 0; max-width: none;
}
.aw-fact p:not(.aw-figure) { font-size: 15px; line-height: 1.55; color: var(--aw-body); margin: 13px 0 0; max-width: 30ch; }

/* ---------- service tiles ---------- */
.aw-tile { background: var(--aw-sand); padding: 30px 26px 34px; }
.aw-section:not(.aw-section--sand) .aw-tile { background: var(--aw-paper); }
.aw-tile p:last-child { margin-bottom: 0; }

/* ---------- service rows ---------- */
.aw-service-row {
  border-top: 1px solid var(--aw-rule); padding: 38px 0;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(250px, 100%), 1fr)); gap: 30px;
}
.aw-format { font-size: 14px; color: var(--aw-green); margin: 14px 0 0; }
.aw-service-row ul, .aw-list {
  margin: 0; padding-left: 18px; color: var(--aw-body); font-size: 15px; line-height: 1.8;
}
.aw-service-row .aw-body { margin: 0 0 18px; }
.aw-closer { border-top: 1px solid var(--aw-rule); padding-top: 38px; }

/* ---------- sectors + quote ---------- */
.aw-sectors { display: flex; flex-direction: column; }
.aw-sectors p, .aw-sectors li {
  border-top: 1px solid var(--aw-rule); padding: 11px 0; margin: 0;
  font-size: 15px; color: var(--aw-body); list-style: none;
}
.aw-sectors ul { margin: 0; padding: 0; }
.aw-quote {
  margin: 0; border-left: 2px solid var(--aw-green); padding: 4px 0 4px 26px;
}
.aw-quote p {
  font-family: var(--aw-serif); font-size: clamp(20px, 2.1vw, 26px); line-height: 1.45;
  font-style: italic; margin: 0 0 16px; text-wrap: pretty;
}
.aw-quote cite, .aw-quote footer, .aw-quote .wp-block-quote__citation {
  font-size: 14px; color: var(--aw-muted); font-style: normal; display: block;
}

/* ---------- closing band ---------- */
.aw-closing > .aw-wrap {
  display: flex; gap: 36px; align-items: flex-end; flex-wrap: wrap;
  padding-top: 66px; padding-bottom: 66px;
}
.aw-closing h2 {
  font-size: clamp(25px, 2.9vw, 38px); line-height: 1.2; color: var(--aw-paper);
  margin: 0; max-width: 26ch; flex: 1 1 320px;
}

/* ---------- portrait ---------- */
.aw-portrait { aspect-ratio: 4 / 5; border: 1px solid var(--aw-rule); border-radius: 2px; overflow: hidden; }
.aw-portrait img { width: 100%; height: 100%; object-fit: cover; }
.aw-portrait--empty {
  background-image: repeating-linear-gradient(135deg, var(--aw-sand) 0 8px, var(--aw-paper) 8px 16px);
  display: flex; align-items: center; justify-content: center;
  font-family: ui-monospace, Menlo, monospace; font-size: 11px;
  letter-spacing: 0.06em; color: var(--aw-faint); text-align: center; padding: 16px;
}

/* ---------- label / value rows (CV, contact) ---------- */
.aw-rows { border-top: 1px solid var(--aw-rule); margin-top: 30px; padding-top: 26px; }
.aw-row {
  display: flex; gap: 20px; padding: 9px 0; font-size: 15px;
  color: var(--aw-body); flex-wrap: wrap;
}
.aw-row p { margin: 0; }
.aw-row > *:first-child {
  min-width: 96px; color: var(--aw-faint); font-variant-numeric: tabular-nums;
}
.aw-row--ruled { border-top: 1px solid var(--aw-rule); padding: 13px 0; }
.aw-row--ruled > *:first-child { min-width: 92px; }
.aw-row--ruled > *:last-child { color: var(--aw-ink); }

/* ---------- case cards ---------- */
.aw-case {
  border: 1px solid var(--aw-rule); border-radius: 2px;
  padding: 28px 26px 30px; background: #FFFFFF;
}
.aw-case h2, .aw-case h3 {
  font-family: var(--aw-serif); font-weight: 600; font-size: 20px;
  line-height: 1.3; margin: 0 0 13px;
}
.aw-case .aw-body, .aw-case p { font-size: 15px; line-height: 1.65; color: var(--aw-body); margin: 0 0 18px; }
.aw-result {
  font-size: 14px; color: var(--aw-green); margin: 0;
  border-top: 1px solid var(--aw-rule); padding-top: 15px;
}

/* ---------- form ---------- */
.aw-form, .aw-form-shell {
  background: var(--aw-sand); padding: 30px 26px 32px;
  border: 1px solid var(--aw-rule); border-radius: 2px;
}
.aw-form label, .aw-form-shell label {
  display: flex; flex-direction: column; gap: 8px;
  font-size: 13px; color: var(--aw-muted); margin-bottom: 18px;
}
.aw-form input[type="text"], .aw-form input[type="email"], .aw-form input[type="tel"], .aw-form textarea,
.aw-form-shell input[type="text"], .aw-form-shell input[type="email"],
.aw-form-shell input[type="tel"], .aw-form-shell textarea {
  width: 100%; border: 1px solid var(--aw-field); background: var(--aw-paper);
  padding: 11px 12px; font-size: 15px; color: var(--aw-ink); border-radius: 2px;
}
.aw-form textarea, .aw-form-shell textarea { resize: vertical; min-height: 120px; }
.aw-form-note { font-size: 12px; line-height: 1.6; color: var(--aw-faint); margin: 14px 0 0; }
.wpcf7 form .wpcf7-response-output { border-color: var(--aw-rule-strong); font-size: 14px; margin: 16px 0 0; }
.wpcf7-not-valid-tip { color: #8A2B20; font-size: 12px; }

/* ---------- footer ---------- */
.aw-footer { border-top: 1px solid var(--aw-rule); background: var(--aw-sand); }
.aw-footer__inner {
  max-width: var(--aw-wrap); margin: 0 auto; padding: 36px var(--aw-gutter);
  display: flex; gap: 28px; flex-wrap: wrap; align-items: baseline;
  font-size: 14px; color: var(--aw-muted);
}
.aw-footer__name { margin-right: auto; }
.aw-footer ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 28px; flex-wrap: wrap; }
.aw-footer a { color: var(--aw-green); }

/* ---------- editor-content safety net ---------- */
.aw-main > .aw-wrap > *:first-child { margin-top: 0; }
.entry-content > p { color: var(--aw-body); max-width: 68ch; }
.entry-content > h2 { font-size: clamp(26px, 2.8vw, 34px); margin: 48px 0 12px; }
.entry-content > h3 { font-size: 21px; font-weight: 600; margin: 32px 0 10px; }
.aw-flow > .aw-wrap { padding-top: 68px; padding-bottom: 92px; }

/* ---------- responsive ---------- */
@media (max-width: 860px) {
  .aw-section > .aw-wrap { padding-top: 48px; padding-bottom: 48px; }
  .aw-flow > .aw-wrap { padding-top: 48px; padding-bottom: 64px; }
  .aw-split, .aw-grid-2 { gap: 36px; }
  .aw-header__inner { gap: 18px; }
  .aw-nav ul { gap: 18px; }
}

/* collapse the nav into a hamburger */
@media (max-width: 760px) {
  .aw-header__inner { align-items: center; row-gap: 0; }
  .aw-nav-toggle {
    display: flex; align-items: center; justify-content: center;
    order: 3; width: 34px; height: 34px; margin-right: -6px;
    cursor: pointer; background: none; border: 0;
  }
  .aw-lang { order: 2; }
  .aw-nav {
    order: 4; flex-basis: 100%;
    display: grid; grid-template-rows: 0fr;
    transition: grid-template-rows 0.26s ease;
    overflow: hidden;
  }
  .aw-nav > * { min-height: 0; overflow: hidden; }
  .aw-nav-state:checked ~ .aw-nav { grid-template-rows: 1fr; }
  .aw-nav ul {
    flex-direction: column; gap: 0;
    border-top: 1px solid var(--aw-rule); margin-top: 16px;
  }
  .aw-nav li { border-bottom: 1px solid var(--aw-rule); }
  .aw-nav a {
    display: block; padding: 14px 0; font-size: 16px;
    border-bottom: 0; border-left: 2px solid transparent; padding-left: 0;
  }
  .aw-nav a:hover { border-bottom-color: transparent; }
  .aw-nav .current-menu-item > a,
  .aw-nav .current_page_item > a { border-bottom-color: transparent; }
}

/* no-JS-free fallback: if grid-rows animation is unsupported, still toggle */
@supports not (grid-template-rows: 0fr) {
  @media (max-width: 760px) {
    .aw-nav { display: none; }
    .aw-nav-state:checked ~ .aw-nav { display: block; }
  }
}
@media (max-width: 600px) {
  :root { --aw-gutter: 20px; }
  .aw-closing > .aw-wrap { padding-top: 48px; padding-bottom: 48px; }
}
@media print {
  .aw-header, .aw-footer, .wp-block-buttons { display: none; }
  body { background: #fff; }
}
