/* Eastwind — base
   Element defaults only. Component styling belongs in GenerateBlocks Global Styles. */

body {
  background: var(--ew-paper);
  color: var(--ew-body);
  font-family: var(--ew-sans);
  font-weight: 400;
  font-size: var(--ew-t-body);
  line-height: 1.66;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--ew-serif);
  font-weight: 400;
  font-optical-sizing: auto;
  color: var(--ew-ink);
  text-wrap: balance;
}

h1 { font-size: var(--ew-t-h1); line-height: 1.12; }
h2 { font-size: var(--ew-t-h2); line-height: 1.18; }
h3 { font-size: var(--ew-t-h3); line-height: 1.30; }

p { text-wrap: pretty; }

/* ---- Links ---- */
a {
  color: var(--ew-terracotta);
  text-decoration: none;
  transition: color var(--ew-dur) ease;
}
a:hover,
a:focus-visible { color: var(--ew-terracotta-dk); }

/* Prose links get an underline; navigation and buttons do not. */
.entry-content p a,
.ew-prose a {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

/* On dark grounds */
.ew-on-dark { color: var(--ew-cream-body); }
.ew-on-dark h1, .ew-on-dark h2, .ew-on-dark h3 { color: var(--ew-cream); }
.ew-on-dark a { color: var(--ew-terracotta-hi); }
.ew-on-dark a:hover, .ew-on-dark a:focus-visible { color: var(--ew-cream); }

/* ---- Focus ---- */
:focus-visible {
  outline: 2px solid var(--ew-umber);
  outline-offset: 3px;
}
.ew-on-dark :focus-visible,
.site-footer :focus-visible {
  outline-color: var(--ew-sand);
}

/* ---- Skip link ---- */
.ew-skip-link {
  position: absolute;
  left: -9999px;
  z-index: 999;
  padding: 14px 22px;
  background: var(--ew-forest);
  color: var(--ew-cream);
  font-family: var(--ew-sans);
  font-size: 12px;
  letter-spacing: var(--ew-track-btn);
  text-transform: uppercase;
}
.ew-skip-link:focus {
  left: 12px;
  top: 12px;
}

/* ---- Utility: the uppercase label ---- */
.ew-kicker {
  font-family: var(--ew-caps);
  font-size: var(--ew-t-kicker);
  font-weight: 500;
  letter-spacing: var(--ew-track-kicker);
  text-transform: uppercase;
  color: var(--ew-muted);
  line-height: 1;
}
.ew-on-dark .ew-kicker { color: var(--ew-sage); }

/* ---- Media ---- */
img, video { max-width: 100%; height: auto; display: block; }

/* Stop images collapsing before they load */
.ew-media { background: var(--ew-media-placeholder); }

/* ---- Fact table: 1px gap grid ---- */
.ew-facts {
  display: grid;
  gap: 1px;
  background: var(--ew-rule-grid);
  border: 1px solid var(--ew-rule-grid);
}
.ew-facts > * { background: var(--ew-paper); }
.ew-on-dark .ew-facts { background: var(--ew-rule-dark); border-color: var(--ew-rule-dark); }
.ew-on-dark .ew-facts > * { background: var(--ew-forest); }

/* ---- Print ---- */
@media print {
  .main-navigation, .ew-hero-montage, .site-footer nav { display: none; }
  body { background: #fff; color: #000; }
}

/* ---- UX audit 2026-10-03 (web interface guidelines) ---- */
html { color-scheme: light; scroll-padding-top: 96px; }
@media (max-width: 899.98px) { html { scroll-padding-top: 76px; scroll-padding-bottom: calc(80px + env(safe-area-inset-bottom)); } }
a, button, input, select, summary, label, .ew-btn { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
.ew-price, .ew-price--villa, .ew-price--card, .ew-table td, .ew-kv__v { font-variant-numeric: tabular-nums lining-nums; }
/* Inline text links (phone, email, "Full transfer table") keep their layout but get a 44px-tall hit area */
a[href^="tel:"], a[href^="mailto:"], a.ew-text-link { padding-block: 12px; margin-block: -12px; }
a.ew-h3, .ew-h3 > a { padding-block: 11px; margin-block: -11px; }
/* Visually hidden, still announced (the parent theme does not ship this class) */
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.screen-reader-text:focus { position: static !important; width: auto; height: auto; margin: 0; clip: auto; clip-path: none; overflow: visible; white-space: normal; }
