/* Loaded after style.css so hero wordmark tracking remains readable. */
.hero h1 { letter-spacing: .08em; }
.brand { letter-spacing: 0; }
.brand { display: inline-flex; align-items: center; letter-spacing: 0; }
.brand-logo { display: block; width: 132px; height: auto; max-width: 100%; }
.site-header { background: #fff; color: var(--ink); }
.site-header .brand { position: absolute; left: 50%; top: 10px; transform: translateX(-50%); margin: 0; }
.footer-logo { display: block; width: 132px; height: auto; }
.site-footer { background: #fff; color: var(--ink); }
.brand-symbol, .footer-brand .brand-symbol { font-size: 1.75rem; font-weight: 900; line-height: .8; letter-spacing: -.08em; }
.brand-symbol span { color: var(--pink); }
.brand-name, .footer-brand .brand-name { font-size: 1.14rem; font-weight: 900; letter-spacing: .03em; }
.footer-brand { display: inline-flex; align-items: center; gap: 8px; color: #fff; }

/* Individual service imagery and a compact desktop card rhythm. */
.service-image {
  display: block;
  width: calc(100% + 40px);
  height: 156px;
  margin: -24px -20px 22px;
  object-fit: cover;
}

.service-card .service-lead {
  margin: 0 0 12px;
  font-weight: 800;
  line-height: 1.6;
}

.policy-header { position: relative; background: var(--ink); }
.policy-page { padding: 106px 0 120px; background: #fff; }
.policy-wrap { width: min(820px, calc(100% - 64px)); }
.policy-kicker { margin: 0 0 10px; color: var(--pink); font-size: .82rem; font-weight: 900; letter-spacing: .1em; }
.policy-page h1 { margin: 0 0 54px; font-size: clamp(2.4rem, 5vw, 4.3rem); line-height: 1.1; letter-spacing: -.06em; }
.policy-intro { margin: 0 0 52px; font-size: 1rem; line-height: 2; }
.policy-page section { padding: 30px 0; border-top: 1px solid var(--line); }
.policy-page h2 { margin: 0 0 16px; font-size: 1.15rem; line-height: 1.5; }
.policy-page p { margin: 0 0 16px; font-size: .93rem; line-height: 2; }
.policy-page p:last-child { margin-bottom: 0; }
.policy-page ol { margin: 0; padding-left: 1.5em; font-size: .93rem; line-height: 2; }
.policy-contact { padding: 20px 24px; background: var(--pink-light); }
.policy-contact a { text-decoration: underline; text-underline-offset: .2em; }

@media (min-width: 921px) {
  .services { align-items: stretch; }
  .service-card { min-height: 0; padding-bottom: 28px; }
  .service-card .service-no { margin-bottom: 22px; }
  .service-card h3 { margin-bottom: 10px; }
}

@media (max-width: 720px) {
  .brand-logo { width: 118px; }
  .site-header .brand { margin: 0; }
  .footer-logo { width: 116px; }
  .footer-brand { margin-bottom: 14px; }
  .policy-page { padding: 70px 0 80px; }
  .policy-wrap { width: min(100% - 38px, 820px); }
  .policy-page h1 { margin-bottom: 38px; }
}
