:root {
  --forest: #173a35;
  --forest-2: #244b43;
  --sand: #f2e5ce;
  --cream: #fffaf2;
  --coral: #b34f3c;
  --coral-bright: #e68169;
  --mint: #74c4b1;
  --charcoal: #202824;
  --muted: #64706a;
  --line: rgba(23, 58, 53, .18);
  --max: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--charcoal); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; font-size: 16px; line-height: 1.6; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button { font: inherit; }
:focus-visible { outline: 3px solid var(--coral); outline-offset: 4px; }
.wrap { width: min(calc(100% - 2.5rem), var(--max)); margin-inline: auto; }
.skip { position: fixed; z-index: 1000; left: 1rem; top: -5rem; padding: .7rem 1rem; color: var(--cream); background: var(--forest); }
.skip:focus { top: 1rem; }
.brand { display: inline-flex; align-items: center; gap: .7rem; text-decoration: none; line-height: 1; }
.brand img { width: 52px; height: 52px; flex: 0 0 auto; }
.brand-copy { display: grid; gap: .18rem; }
.brand-copy b { font-size: .95rem; letter-spacing: .08em; }
.brand-copy small { font-size: .58rem; letter-spacing: .32em; }
.brand-copy span { color: var(--coral); font-size: .36rem; font-weight: 800; letter-spacing: .1em; white-space: nowrap; }
.design-switcher { position: relative; z-index: 70; color: #dce8e3; background: #0d2925; border-bottom: 1px solid rgba(255,255,255,.12); }
.switcher-inner { min-height: 42px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.switcher-inner > span { color: #9fb9b0; font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.switcher-links { display: flex; align-items: center; gap: .3rem; }
.switcher-links a { padding: .28rem .52rem; border-radius: 999px; color: #c4d6d0; text-decoration: none; font-size: .73rem; font-weight: 700; }
.switcher-links a:hover, .switcher-links a[aria-current="page"] { color: #0d2925; background: var(--mint); }
.language { display: inline-flex; gap: .2rem; }
.language button { min-width: 40px; min-height: 36px; border: 1px solid currentColor; padding: .28rem .48rem; color: inherit; background: transparent; cursor: pointer; font-size: .7rem; font-weight: 800; }
.language button[aria-pressed="true"] { color: var(--cream); background: var(--forest); border-color: var(--forest); }
.menu-toggle { display: none; min-height: 44px; border: 1px solid currentColor; padding: .5rem .7rem; color: inherit; background: transparent; cursor: pointer; }
.mobile-actions { display: none; align-items: center; gap: .55rem; }
.portrait-crop { position: relative; width: 100%; aspect-ratio: 4 / 5; overflow: hidden; background: #d6d2ca; }
.portrait-crop img { width: 100%; height: 100%; object-fit: cover; object-position: center top; transform: scale(1.65); transform-origin: 50% 23%; filter: saturate(.86) contrast(1.035); }
.button { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; padding: .72rem 1.1rem; border: 1px solid transparent; text-decoration: none; font-weight: 750; }
.button:active { transform: translateY(1px); }
.eyebrow { margin: 0 0 .9rem; font-size: .74rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.8rem; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

@media (max-width: 760px) {
  .wrap { width: min(calc(100% - 1.5rem), var(--max)); }
  .switcher-inner { min-height: 48px; }
  .switcher-inner > span { display: none; }
  .switcher-links { width: 100%; justify-content: center; }
  .switcher-links a { font-size: .68rem; }
  .menu-toggle { display: inline-flex; }
  .mobile-actions { display: flex; }
  .brand { gap: .55rem; }
  .brand img { width: 46px; height: 46px; }
  .brand-copy b { font-size: .82rem; }
  .brand-copy small { font-size: .5rem; }
  .brand-copy span { font-size: .31rem; }
  .mobile-language button { min-width: 36px; min-height: 38px; padding-inline: .35rem; }
}

@media (max-width: 390px) {
  .brand img { width: 42px; height: 42px; }
  .brand-copy b { font-size: .76rem; }
  .brand-copy small { font-size: .46rem; }
  .brand-copy span { display: none; }
  .mobile-actions { gap: .35rem; }
  .mobile-language button { min-width: 32px; padding-inline: .25rem; }
  .menu-toggle { padding-inline: .55rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
