/* ============================================================
   CMS additions — keep the approved style.css pristine.
   Hero titles are rendered as <span class="hero-title"> (not an
   <h1>) for cleaner on-page SEO, restyled to look identical.
   ============================================================ */
.hero-title{
  display:block;
  font-family:var(--serif);
  font-weight:500;
  line-height:1.02;
  letter-spacing:.005em;
  font-size:clamp(2.6rem,1.6rem + 4.6vw,5.4rem);
}
.hero-title .accent{ font-style:italic; color:var(--gold); font-weight:500; }
.hero .hero-title{ max-width:16ch; margin:0 0 1.4rem; text-shadow:0 2px 30px rgba(0,0,0,.25); }
.page-hero .hero-title{ max-width:20ch; }
@media (max-width:900px){ .hero .hero-title{ margin-bottom:1.1rem; } }

/* Header nav dropdowns (only render if a menu item has children) */
.nav .has-children{ position:relative; }
.nav .submenu{ display:none; position:absolute; top:100%; left:0; min-width:190px;
  background:rgba(251,248,241,.98); border:1px solid var(--beige-line); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:.5rem 0; flex-direction:column; gap:0; }
.nav .has-children:hover .submenu{ display:flex; }
.nav .submenu a{ color:var(--ink) !important; padding:.5rem 1.1rem; font-size:.74rem; }
.nav .submenu a::after{ display:none; }
@media (max-width:900px){
  .nav .submenu{ position:static; display:flex; box-shadow:none; border:0; background:transparent; padding:.2rem 0 .2rem 1rem; }
  .nav .submenu a{ color:var(--ink) !important; font-size:1.05rem; }
}

/* Page loader (optional, theme setting) */
#page-loader{ position:fixed; inset:0; z-index:2000; background:var(--ivory); display:flex; align-items:center; justify-content:center; transition:opacity .5s ease; }
#page-loader.hide{ opacity:0; pointer-events:none; }
#page-loader .spin{ width:42px; height:42px; border:3px solid var(--beige-line); border-top-color:var(--gold); border-radius:50%; animation:dhrspin .8s linear infinite; }
@keyframes dhrspin{ to{ transform:rotate(360deg); } }
