/* ==========================================================================
   Bonnie theme: WordPress additions on top of main.css
   (admin bar, text logo, still mode, contact form, default pages, editor
   content). Colours use the same variables, so the editor's palette applies.
   ========================================================================== */

/* ---------- Admin bar: keep the fixed header and mobile menu below it ---------- */
body.admin-bar { --admin-offset: 32px; }
@media (max-width: 782px) { body.admin-bar { --admin-offset: 46px; } }
body.admin-bar .site-header { top: var(--admin-offset); }
body.admin-bar .preload .preloader,
.preload body.admin-bar .preloader { top: var(--admin-offset); }
@media (max-width: 880px) {
  body.admin-bar .nav__list { inset: calc(var(--header-h) + var(--admin-offset)) 0 auto 0; }
}
/* Under 600px WordPress lets the admin bar scroll away with the page. */
@media (max-width: 600px) {
  body.admin-bar #wpadminbar { position: fixed; }
}

/* ---------- Text logo (chosen in the editor, or when no image is set) ---------- */
.brand--text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 54px;
  padding: 6px 14px;
  text-decoration: none;
  color: var(--night);
  line-height: 1.05;
}
.brand__text {
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
}
.brand__tagline {
  margin-top: 3px;
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 0.9rem;
  color: var(--gold-deep);
  white-space: nowrap;
}
.brand img { max-width: 220px; object-fit: contain; }
@media (max-width: 880px) {
  .brand--text { min-height: 46px; padding: 4px 10px; }
  .brand__text { font-size: 0.86rem; }
  .brand__tagline { font-size: 0.78rem; }
}
@media (max-width: 380px) {
  .brand__text { white-space: normal; }
  .brand__tagline { display: none; }
}

/* ---------- Still mode (animations switched off) and single switches ---------- */
.bonnie-still *, .bonnie-still *::before, .bonnie-still *::after {
  animation-duration: 0.01ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: 0.01ms !important;
  scroll-behavior: auto !important;
}
.bonnie-still .marquee__track,
.no-marquee .marquee__track { animation: none; }
.no-marquee .marquee__track { transform: none; }
.bonnie-still .preloader,
.bonnie-still .cursor-ring,
.bonnie-still .fireflies,
.bonnie-still .hero__mouse-glow { display: none !important; }

/* ---------- Contact form (home contact section) ---------- */
.contact-form {
  margin-top: clamp(2.5rem, 6vw, 4rem);
  max-width: 860px;
}
.contact-form__intro {
  font-family: var(--font-serif);
  font-size: var(--step-1);
  color: var(--on-night-soft);
  margin: 0 0 1.5rem;
}
.contact-form__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.1rem 1.25rem;
}
.contact-form .field { margin: 0; display: grid; gap: 0.45rem; }
.contact-form .field--wide { grid-column: 1 / -1; }
.contact-form label {
  font-size: var(--step--1);
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--gold);
}
.contact-form input,
.contact-form textarea {
  width: 100%;
  min-height: 50px;
  padding: 0.8rem 1rem;
  border: 1px solid var(--line-night);
  border-radius: var(--radius-sm);
  background: rgba(var(--night-2-rgb), 0.7);
  color: var(--on-night);
  font: inherit;
  transition: border-color 0.3s, background-color 0.3s;
}
.contact-form textarea { min-height: 150px; resize: vertical; }
.contact-form input:focus-visible,
.contact-form textarea:focus-visible { border-color: var(--gold); outline-offset: 1px; }
.contact-form__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.5rem;
  margin-top: 1.5rem;
}
.contact-form__status { margin: 0; font-weight: 600; }
.contact-form__status[data-kind="success"] { color: var(--gold-light); }
.contact-form__status[data-kind="error"] { color: #f4b4a4; }
.contact-form[aria-busy="true"] .btn { opacity: 0.6; }
.contact-form__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 640px) { .contact-form__grid { grid-template-columns: 1fr; } }

/* ---------- Default pages, posts and 404 ---------- */
.page-hero {
  position: relative;
  overflow: hidden;
  padding: calc(var(--header-h) + clamp(3rem, 9vh, 6rem)) 0 clamp(3rem, 7vh, 5rem);
}
.page-hero__title {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: var(--step-4);
  line-height: 1;
  color: var(--on-night);
  margin: 0;
  max-width: 18ch;
}
.page-hero .lede { color: var(--on-night-soft); margin-top: 1.25rem; }
.page-hero--404 { min-height: 80vh; display: flex; align-items: center; }
.page-hero__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 2rem; }

.page-content { padding: clamp(3.5rem, 9vh, 6rem) 0; }
.entry-content { max-width: 820px; }
.entry-content > * + * { margin-top: 1.1em; }
.entry-content h2, .entry-content h3, .entry-content h4 { color: var(--ink); margin-top: 1.6em; }
.entry-content h2 { font-size: var(--step-3); }
.entry-content h3 { font-size: var(--step-2); }
.entry-content p, .entry-content li { color: var(--ink-soft); }
.entry-content a { color: var(--ocean); }
.entry-content ul { list-style: disc; padding-left: 1.4em; }
.entry-content ol { padding-left: 1.4em; }
.entry-content img { border-radius: var(--radius-sm); height: auto; }
.entry-content blockquote {
  margin: 1.6em 0;
  padding-left: 1.25rem;
  border-left: 2px solid var(--gold);
  font-family: var(--font-serif);
  font-size: var(--step-1);
  color: var(--ink);
}
.entry-content .alignwide { max-width: min(1200px, 100%); }
.entry-content .alignfull { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); max-width: 100vw; }
.entry-content .wp-block-button__link { border-radius: 999px; background: var(--gold); color: var(--night); }
.post-list { list-style: none !important; padding: 0 !important; display: grid; gap: 2rem; }
.post-list__item a { font-family: var(--font-serif); font-size: var(--step-2); font-weight: 600; color: var(--ink); text-decoration: none; }
.post-list__date { display: block; font-size: var(--step--1); color: var(--gold-deep); margin: 0.3rem 0 0.6rem; }
.nav-links { display: flex; gap: 0.75rem; margin-top: 2rem; }

/* WordPress core classes */
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.alignleft { float: left; margin: 0.4em 1.4em 1em 0; }
.alignright { float: right; margin: 0.4em 0 1em 1.4em; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.wp-caption-text, .wp-element-caption { font-size: var(--step--1); color: var(--ink-soft); }
