:root {
  --color-primary: #0e4361;
  --color-primary-contrast: #ffffff;
  --color-bg: #f7fafc;
  --color-surface: #ffffff;
  --color-text: #183142;
  --color-muted: #607486;
  --font-heading: "Playfair Display", Georgia, serif;
  --font-body: "Poppins", Arial, sans-serif;
  --radius: 18px;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-body);
}

h1,
h2,
h3 {
  color: var(--color-primary);
  font-family: var(--font-heading);
}

a {
  color: var(--color-primary);
}

.container-wide {
  width: min(1180px, calc(100% - 2rem));
  margin-inline: auto;
}

.section-space {
  padding-block: clamp(3.5rem, 7vw, 7rem);
}

.soft-card {
  background: var(--color-surface);
  border: 1px solid color-mix(in srgb, var(--color-primary) 12%, transparent);
  border-radius: var(--radius);
  box-shadow: 0 16px 44px color-mix(in srgb, var(--color-primary) 10%, transparent);
}

.image-frame {
  overflow: hidden;
  border-radius: var(--radius);
  background: var(--color-surface);
}

.image-frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 767px) {
  .container-wide {
    width: min(100% - 1.25rem, 1180px);
  }
}
