:root {
  --offwhite: #F7F4EF;
  --ink: #241d15;
  --ink-soft: #6f6353;
  --line: #d9cbae;
  --bs-body-bg: var(--offwhite);
  --bs-body-color: var(--ink);
  --bs-body-font-family: 'DM Sans', system-ui, sans-serif;
}
html { background: var(--offwhite); }
body {
  background:
    radial-gradient(1100px circle at 0% 100%, rgba(245, 233, 168, 0.8) 0%, rgba(245, 233, 168, 0) 70%),
    radial-gradient(1100px circle at 100% 0%, rgba(15, 76, 92, 0.20) 0%, rgba(15, 76, 92, 0) 70%),
    var(--offwhite);
  background-attachment: fixed, fixed, fixed; color: var(--ink); font-family: 'DM Sans', system-ui, sans-serif; }
h1 { font-family: 'Playfair Display', Georgia, serif; font-weight: 700; letter-spacing: -0.01em; line-height: 1.05; font-size: clamp(2.75rem, 7vw, 5rem); }
.hero { min-height: 100vh; padding: 3rem 0 4rem; }
.eyebrow { font-weight: 500; font-size: 1rem; letter-spacing: .01em; margin-bottom: 1.25rem; }
.underlined { position: relative; display: inline-block; }
.underlined svg { position: absolute; left: 0; bottom: -.12em; width: 100%; height: .25em; overflow: visible; }
.underlined path { fill: none; stroke: #A8BFD0; stroke-width: 3; stroke-linecap: round; }
.lead-copy { font-size: 1.2rem; line-height: 1.65; }
.sub-copy { font-size: 1.2rem; line-height: 1.65; color: var(--ink); }
.rule { width: 56px; height: 2px; background: var(--ink); border: 0; opacity: 1; margin: 1.5rem 0; }
.social { display: flex; gap: 16px; margin-top: 1.25rem; }
.social a { display: inline-flex; line-height: 0; transition: opacity .15s; }
.social a:hover { opacity: .65; }
.social img { width: 32px; height: 32px; display: block; }
.photo-frame { aspect-ratio: 1 / 1; border-radius: 50%; overflow: hidden; background: #ece5d8; position: relative; width: 120px; flex-shrink: 0; }
.photo-frame img { width: 100%; height: 100%; object-fit: cover; display: block; position: relative; z-index: 1; }

/* Divider under the social icons */
.divider { border: 0; border-top: 1px solid var(--line); opacity: 1; margin: 2.5rem 0; }

/* Link stack (replaces Beacons) */
.link-stack { display: flex; flex-direction: column; gap: 16px; margin-top: 2rem; }
.link-card {
  display: block; background: #fff; border: 1px solid var(--line); border-radius: 24px;
  padding: 1.25rem 1.5rem; color: var(--ink); text-decoration: none; text-align: left;
  box-shadow: 0 1px 2px rgba(36, 29, 21, .05), 0 6px 18px rgba(36, 29, 21, .06);
  transition: transform .15s ease, box-shadow .15s ease;
}
.link-card:hover { color: var(--ink); transform: translateY(-2px); box-shadow: 0 2px 4px rgba(36, 29, 21, .06), 0 10px 24px rgba(36, 29, 21, .09); }
.link-card:focus-visible { outline: 2px solid #0F4C5C; outline-offset: 3px; }
.link-title { display: block; font-family: 'Playfair Display', Georgia, serif; font-size: 1.5rem; font-weight: 700; line-height: 1.25; color: var(--ink); margin-bottom: .4rem; }
.link-title--serif { font-family: 'Playfair Display', Georgia, serif; font-weight: 700; color: var(--ink); line-height: 1.25; }
.link-title--serif .underlined svg { bottom: -.1em; }
.link-copy { display: block; font-size: 1.05rem; line-height: 1.5; color: var(--ink); }
.link-card--feature { background: #0F4C5C; border: 1.5px solid #0F4C5C; color: #fff; }
.link-card--feature:hover { color: #fff; }
.link-card--feature .link-title, .link-card--feature .link-copy, .link-card--feature .link-cta { color: #fff; }
.link-card--feature .link-eyebrow { color: #C9A227; }
.link-card--feature .underlined path { stroke: #C9A227; }
.link-card--feature:focus-visible { outline-color: #C9A227; }
.link-eyebrow { display: block; font-size: .8rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #0F4C5C; margin-bottom: .5rem; }
.link-cta { display: inline-block; margin-top: .75rem; font-weight: 700; color: #0F4C5C; }
.disclosure { font-size: .8rem; color: var(--ink); margin: 1rem 0 0; }
.about .lead-copy, .about .sub-copy { font-size: 1.1rem; }
.about-heading { font-family: 'Playfair Display', Georgia, serif; font-weight: 700; font-size: 2rem; line-height: 1.2; color: var(--ink); margin-bottom: 1rem; }
.hero .container { padding-left: calc(var(--bs-gutter-x) * .5 + 24px); padding-right: calc(var(--bs-gutter-x) * .5 + 24px); }
/* Coming soon: card isn't clickable yet */
.link-card.is-coming-soon { cursor: default; }
.link-card.is-coming-soon:hover { transform: none; box-shadow: 0 1px 2px rgba(36, 29, 21, .05), 0 6px 18px rgba(36, 29, 21, .06); }
.coming-soon { display: inline-block; margin-top: .9rem; padding: .3rem .8rem; border-radius: 999px; background: #C9A227; color: #241d15; font-size: .8rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
