/* Sokol design foundations. See docs/design-system.md. */
@font-face {
  font-family: Inter;
  src: url('/fonts/inter-variable-4.1.woff2') format('woff2');
  font-style: normal;
  font-weight: 100 900;
  font-display: optional;
}
:root {
  color-scheme: light;
  --ink: #0a321e; --forest: var(--ink); --cliff: #05140f;
  --text: #152b22; --paper: #f6f3ec; --surface: #fffaf4;
  --sand: #c8a06e; --line: #c9cfc5; --muted: #506157;
  --link-underline: #152b2233; --link-underline-active: var(--text);
  --soft: #0a321e12; --attention: #c8a06e33;
  --unit: .5rem;
  --grid-columns: 12; --text-columns: 8;
  --grid-gap: calc(4 * var(--unit));
  --gutter: clamp(32px, 4vw, 64px);
  --content-width: 1408px;
  --layout-grid-step: var(--unit);
  --reading-width: calc((100% + var(--grid-gap)) * var(--text-columns) / var(--grid-columns) - var(--grid-gap));
  font-family: Inter, system-ui, Arial, sans-serif;
  font-size: 16px; font-weight: 400;
  font-optical-sizing: auto;
  font-feature-settings: 'liga' 1, 'calt' 1;
  color: var(--text); background: var(--paper);
}
* { box-sizing: border-box; }
body { margin: 0; min-height: 100svh; display: flex; flex-direction: column; }
body > main, body > .shell { flex: 1; }
a { color: inherit; text-decoration-line: underline; text-decoration-thickness: 1px; text-underline-offset: .175em; text-decoration-color: var(--link-underline); text-decoration-skip-ink: none; transition: text-decoration-color .2s ease-out; }
a:hover, a:focus-visible { text-decoration-color: var(--link-underline-active); transition: none; }
a:has(> img:only-child) { text-decoration-line: none; }
a:focus-visible, summary:focus-visible, audio:focus-visible { outline: 3px solid var(--sand); outline-offset: 6px; }
button, input, select, textarea { font: inherit; }
@media (max-width: 1200px) { :root { --text-columns: 10; } }
@media (max-width: 650px) {
  :root { --grid-columns: 4; --text-columns: 4; --grid-gap: 16px; --gutter: 24px; }
}
/* Text styles get a font-aware cap-to-baseline box rounded to the 8px module.
   Borders, nested cards and controls have local origins; not every edge is a baseline. */
@supports (text-box: trim-both cap alphabetic) and (padding-top: round(up, 1cap, 8px)) {
  h1, h2, h3, p:not(.price), dt, dd, .price > span, .brand, .landing-brand,
  .header > span, figcaption > strong, figcaption > span, .site-footer > * {
    text-box: trim-both cap alphabetic;
    padding-block-start: calc(var(--text-inset, 0px) + round(up, 1cap, var(--unit)) - 1cap);
  }
}
@media (prefers-reduced-motion: reduce) { a { transition: none; } }

/* Same markup and layout on public, private and service pages. */
.site-footer { width: min(var(--content-width), calc(100% - 2 * var(--gutter))); margin-inline: auto; margin-top: 32px; padding-block: 32px; box-shadow: inset 0 1px var(--line); display: grid; grid-template-columns: repeat(var(--grid-columns), minmax(0, 1fr)); gap: 24px var(--grid-gap); align-items: start; color: var(--muted); font-size: .875rem; line-height: 1.5rem; }
.site-footer > * { grid-column: span 4; min-width: 0; }
.site-footer > a { justify-self: end; }
@media (max-width: 650px) {
  .site-footer > * { grid-column: 1 / -1; }
  .site-footer > a { justify-self: start; }
}
