/* Business Anchor: site-wide refresh.
   One calm type system, gold accents, pill buttons and a cleaner services layout.
   Loaded last, after site.css, pages.css, photos.css, theme.css and doors.css. */

:root {
  --font-accent: "Instrument Serif", "Iowan Old Style", Georgia, serif;
  --gold: #e9c27a;
  --gold-ink: #e9c27a;          /* gold used for small text */
  --mono: var(--font);          /* retire the monospace look everywhere */
  --radius-lg: 20px;
}
html[data-theme="light"] { --gold-ink: #9a6a1c; }

body { font-size: 1.0625rem; line-height: 1.65; text-rendering: optimizeLegibility; }

/* ---------- Headings: one weight, one rhythm ---------- */
.film__title, .page-hero__title, .h2, .band__title,
.prose h2, .prose h3, .cell h3, .reason h3, .service__name, .team__name, .site-card__name,
.detail__aside-title, .next-title, .site-footer h3, .faq__item summary, .post-feature .h2 {
  font-weight: 600;
  text-wrap: balance;
}
.film__title {
  max-width: 14ch;
  font-size: clamp(2.6rem, 5.3vw, 5.1rem);
  line-height: 1.02;
  letter-spacing: -0.035em;
}
.page-hero__title {
  max-width: 18ch;
  font-size: clamp(2.4rem, 4.8vw, 4.25rem);
  line-height: 1.04;
  letter-spacing: -0.035em;
}
.h2 {
  max-width: 20ch;
  font-size: clamp(2rem, 3.6vw, 3.1rem);
  line-height: 1.07;
  letter-spacing: -0.03em;
}
.prose h2 { letter-spacing: -0.025em; }
.cell h3, .reason h3, .service__name, .team__name, .site-card__name { letter-spacing: -0.02em; }
.cell--hero h3 { font-weight: 600; letter-spacing: -0.03em; line-height: 1.06; }
.faq__item summary { font-size: 1.08rem; }
.film__body, .page-hero__lede, .lede { line-height: 1.65; text-wrap: pretty; }
.lede { max-width: 58ch; }

/* Accent words: refined serif italic in gold */
.doors__title em, .rotator__word, .statement__word.is-accent, .accent, .h2 em, .page-hero__title em, .film__title em {
  font-family: var(--font-accent); font-style: italic; font-weight: 400; letter-spacing: -0.01em; color: var(--gold);
}
.doors__title em, .statement__word.is-accent { font-size: 1.1em; line-height: 0.9; }
.rotator__word { font-size: 1.08em; color: #f3d38f; }
.rotator__box { height: 1.18em; }
.rotator__box::after { height: 0.05em; background: linear-gradient(90deg, rgba(233, 194, 122, 0.9), rgba(233, 194, 122, 0.15)); }
html[data-theme="light"] .statement__word.is-accent { color: #b5862f; }

/* ---------- Small labels: plain words with a short gold rule ---------- */
.label, .film__kicker, .doors__label, .room__num {
  display: inline-flex; align-items: center; gap: 0.7rem;
  margin: 0 0 1.1rem;
  color: var(--gold-ink) !important;
  font-family: var(--font) !important;
  font-size: 0.95rem !important; font-weight: 500 !important;
  letter-spacing: 0.01em !important; text-transform: none !important;
}
.label::before, .film__kicker::before, .doors__label::before, .room__num::before {
  content: ""; width: 1.6rem; height: 1px; background: currentColor; opacity: 0.7; flex: none;
}
.doors__label::after { content: none; }
.film__kicker { text-shadow: 0 1px 14px rgba(0, 0, 0, 0.5); }

/* Other places that used the monospace style */
.team__role, .site-card__industry, .copy-card figcaption, .post-meta, .site-footer__hours, .step__num, .tab__count {
  font-family: var(--font); letter-spacing: 0; text-transform: none;
}
.team__role, .site-card__industry, .copy-card figcaption { color: var(--gold-ink); font-size: 0.92rem; font-weight: 500; }
.step__num { color: var(--gold-ink); font-size: 1rem; font-weight: 600; }
.direct__v { font-family: var(--font); font-size: 1.08rem; font-weight: 500; }
.door-tile__sign { font-family: var(--font); letter-spacing: 0.14em; }

/* ---------- Buttons: soft pills ---------- */
.book, .header-cta, .send, .room__cta, .room__ghost, .statement__cta { border-radius: 999px; }
.book { padding: 0.95rem 1.5rem; font-weight: 600; }
.header-cta { padding: 0.6rem 1.15rem; }
.text-link::after { background: var(--gold); }
html[data-theme="light"] .text-link::after { background: var(--cobalt); }

/* ---------- Services: clean cards instead of long rows ---------- */
.services, .services--compact {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem;
  border-top: 0; margin-top: clamp(2.25rem, 4vw, 3.25rem);
}
.service { border-bottom: 0; min-width: 0; }
.service__link, .service__link.has-photo, .services--compact .service__link.has-photo {
  position: relative; display: flex; flex-direction: column; align-items: stretch; gap: 0; height: 100%; text-align: left;
  padding: 0.75rem 0.75rem 1.5rem; border: 1px solid var(--line); border-radius: var(--radius-lg);
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.01));
  text-decoration: none;
  transition: transform 300ms cubic-bezier(.2, .8, .2, 1), border-color 300ms ease, box-shadow 300ms ease;
}
.service__link:hover { transform: translateY(-4px); border-color: rgba(233, 194, 122, 0.45); box-shadow: 0 30px 60px -36px rgba(0, 0, 0, 0.7); }
.service__photo { order: -2; aspect-ratio: 16 / 10; border-radius: 14px; margin-bottom: 1.25rem; }
.service__photo::after { background: linear-gradient(180deg, rgba(7, 11, 36, 0) 40%, rgba(7, 11, 36, 0.45) 100%); }
.service__link:not(.has-photo)::before { /* a quiet branded tile when a service has no photo yet */
  content: ""; order: -2; display: block; flex: none; width: 100%; aspect-ratio: 16 / 10; margin-bottom: 1.25rem; border-radius: 14px;
  background:
    radial-gradient(circle at 30% 25%, rgba(59, 73, 255, 0.55), rgba(59, 73, 255, 0) 55%),
    radial-gradient(circle at 80% 90%, rgba(233, 194, 122, 0.25), rgba(233, 194, 122, 0) 50%),
    var(--raised);
}
.service__chip {
  order: -1; justify-self: auto; align-self: flex-start; margin: 0 0.5rem 0.5rem; padding: 0; border: 0; border-radius: 0;
  color: var(--gold-ink); font-family: var(--font); font-size: 0.88rem; font-weight: 500; white-space: normal;
}
.service__chip > span { display: none; }
.service__name, .services--compact .service__name {
  margin: 0 0.5rem; font-size: clamp(1.25rem, 1.7vw, 1.5rem); line-height: 1.15; color: var(--ink);
}
.service__link:hover .service__name { color: var(--ink); transform: none; }
.service__body { margin: 0.6rem 0.5rem 0; max-width: none; font-size: 0.98rem; line-height: 1.6; }
.service__link::after {
  content: "Learn more  →"; white-space: pre; margin: auto 0.5rem 0; padding-top: 1.1rem;
  color: var(--ink); font-size: 0.92rem; font-weight: 600;
}
.service__link:hover::after { color: var(--gold-ink); }
.service__link:hover .service__chip { color: var(--gold-ink); border: 0; }
@media (max-width: 1000px) { .services, .services--compact { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px)  { .services, .services--compact { grid-template-columns: 1fr; } }

html[data-theme="light"] .service__link { background: #fff; border-color: rgba(11, 16, 48, 0.08); box-shadow: 0 18px 40px -30px rgba(11, 16, 48, 0.35); }
html[data-theme="light"] .service__link:hover { border-color: rgba(154, 106, 28, 0.4); box-shadow: 0 30px 60px -34px rgba(11, 16, 48, 0.4); }

/* ---------- Lists and small details ---------- */
.reason { padding: 1.5rem 0; }
.reason__dot { background: var(--gold); width: 0.55rem; height: 0.55rem; margin-top: 0.6rem; }
.faq__item summary::after { color: var(--gold-ink); font-family: var(--font); font-weight: 400; }
.area-links a { font-weight: 500; }
.area-links a:hover { color: var(--gold-ink); }
.checklist li::before { border-radius: 50%; }
.about__statement { border-left-color: var(--gold); font-weight: 500; }
.post-feature { border-left-color: var(--gold); }

/* ---------- Day view colours (outside the dark photo areas) ---------- */
html[data-theme="light"] :is(.h2, .page-hero__title, .prose h2, .prose h3, .cell h3, .reason h3, .service__name, .team__name, .site-card__name, .faq__item summary, .detail__aside-title):not(:is(.film, .page-hero, .band, .cell--hero, .doors, .about__badge, .team__photo) *) {
  color: #0b1030 !important;
}
html[data-theme="light"] :is(.lede, .prose p, .aside-text, .service__body, .reason p, .cell p, .faq__item p):not(:is(.film, .page-hero, .band, .cell--hero, .doors) *) {
  color: #4a5175 !important;
}
html[data-theme="light"] .label:not(:is(.film, .page-hero, .band, .doors) *) { color: var(--gold-ink) !important; }
html[data-theme="light"] :is(.film, .page-hero, .band) .label { color: var(--gold) !important; }
html[data-theme="light"] .statement__word { color: #0b1030; }
html[data-theme="light"] .statement__word.is-ask { color: #2635f2; }

/* ---------- About photo: softer frame ---------- */
.about__figure { border-radius: var(--radius-lg); box-shadow: 0 40px 80px -40px rgba(3, 6, 25, 0.75); }
html[data-theme="light"] .about__figure { box-shadow: 0 34px 70px -38px rgba(11, 16, 48, 0.35), 0 0 0 1px rgba(11, 16, 48, 0.06); }

@media (max-width: 860px) {
  .film__title { max-width: 15ch; font-size: clamp(2.3rem, 10vw, 3.6rem); }
  .page-hero__title { font-size: clamp(2.2rem, 9vw, 3.2rem); }
  .label, .film__kicker { font-size: 0.9rem !important; }
}
