/* Nova's four-point star is the shared disclosure control. */
.nova-disclosure-icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.nova-disclosure-icon img {
  display: block;
  width: 34px;
  height: 34px;
  max-width: none;
  transform: rotate(0deg);
  filter: drop-shadow(0 2px 1.5px #21095835);
  transition: transform .3s cubic-bezier(.2,.7,.2,1), filter .3s ease;
}
.service summary { grid-template-columns: 48px 1.3fr 1fr 44px; }
.faq-list summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 44px;
  padding-right: 0;
  list-style: none;
}
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::marker, .service summary::marker { content: ''; }
.service summary:focus-visible, .faq-list summary:focus-visible {
  outline: 3px solid var(--purple);
  outline-offset: 5px;
  border-radius: 4px;
}
summary:hover .nova-disclosure-icon img,
summary:focus-visible .nova-disclosure-icon img {
  filter: drop-shadow(0 3px 2px #21095845) brightness(1.08);
}
details[open] > summary .nova-disclosure-icon img { transform: rotate(45deg); }
@media(max-width:1100px) {
  .service summary { grid-template-columns: 28px 1.4fr 1fr 44px; }
}
@media(max-width:760px) {
  .service summary { grid-template-columns: 23px minmax(0,1fr) 44px; }
  .faq-list summary { gap: 14px; }
}
@media(prefers-reduced-motion:reduce) {
  .nova-disclosure-icon, .nova-disclosure-icon img { transition: none; }
}
@media(forced-colors:active) {
  .nova-disclosure-icon img { forced-color-adjust: none; }
}

/* The NOVA star is the shared symbol for actions across the site. */
.nova-action-icon{display:inline-block;width:24px!important;height:24px!important;max-width:none!important;flex:0 0 auto;object-fit:contain!important;vertical-align:middle;background:transparent;border:0;border-radius:0;padding:0;filter:drop-shadow(0 1.5px 1px #21095838);transition:transform .25s ease,filter .25s ease}
a:hover .nova-action-icon,button:hover .nova-action-icon,a:focus-visible .nova-action-icon,button:focus-visible .nova-action-icon{transform:rotate(35deg)}
.menu-toggle .nova-action-icon{width:22px!important;height:22px!important}
.menu-toggle[aria-expanded="true"] .nova-action-icon{transform:rotate(45deg)}
.photo-zoom{display:inline-flex;align-items:center;justify-content:center;gap:10px}
.photo-zoom .nova-action-icon{width:22px!important;height:22px!important}
.social-post-credit .nova-action-icon,.project-browser .nova-action-icon,.project-card-copy .nova-action-icon,.project-shop-caption .nova-action-icon{width:18px!important;height:18px!important}
.project-motion-toggle .nova-action-icon{width:18px!important;height:18px!important}
.preview-edit{display:inline-flex;align-items:center;gap:10px}
button.nova-labeled-control{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:auto;height:auto;min-width:44px;min-height:44px;padding:10px 12px;font-size:12px;line-height:1.4;border-radius:24px;white-space:nowrap}
button.nova-labeled-control .nova-action-icon{width:20px!important;height:20px!important}
.project-swipe-controls{flex-wrap:wrap}
.project-swipe-controls>div{margin-left:auto}
@media(prefers-reduced-motion:reduce){.nova-action-icon{transition:none}}

/* The glass effect follows only the NOVA silhouette; no disc behind the star. */
.button-purple .nova-action-icon,.button-discover .nova-action-icon,.nav-contact .nova-action-icon,.photo-zoom .nova-action-icon,.client-result-link .nova-action-icon,.menu-toggle .nova-action-icon{width:30px!important;height:30px!important;padding:0;border-radius:0;background:transparent}

/* Navigation remains available throughout every landing page. */
:root { --nova-header-height: 112px; --nova-header-compact-height: 76px; --nova-header-gutter: max(56px, calc((100% - 1320px) / 2)); }
html.header-is-compact { --nova-header-height: var(--nova-header-compact-height); }
html { scroll-padding-top: calc(var(--nova-header-height) + 24px); }
.header.wrap {
  position: sticky;
  top: 0;
  z-index: 30;
  width: 100%;
  height: var(--nova-header-height);
  padding-inline: var(--nova-header-gutter);
  background: rgba(8, 8, 8, .94);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  backdrop-filter: blur(18px) saturate(140%);
  transition: height .25s ease, background-color .25s ease, box-shadow .25s ease;
}
.header .brand { transition: width .25s ease, height .25s ease, margin-left .25s ease; }
.header-is-compact .header {
  background: rgba(8, 8, 8, .72);
  box-shadow: 0 5px 24px #08080812;
}
.header-is-compact .header .brand { width: 148px; height: 64px; margin-left: -22px; }
.header-is-compact .header .nav-contact { padding-block: 10px; }
.skip { z-index: 40; }
.header .menu-toggle {
  align-items: center;
  justify-content: center;
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  padding: 4px;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.header .menu-toggle .nova-action-icon { width: 40px!important; height: 40px!important; }
.header-is-compact .header .menu-toggle .nova-action-icon { width: 36px!important; height: 36px!important; }
@media(max-width:1100px) {
  :root { --nova-header-gutter: 32px; }
  .header nav {
    top: 100%;
    left: var(--nova-header-gutter);
    right: var(--nova-header-gutter);
    max-height: calc(100vh - var(--nova-header-height) - 12px);
    max-height: calc(100dvh - var(--nova-header-height) - 12px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
}
@media(max-width:760px) {
  :root { --nova-header-height: 85px; --nova-header-compact-height: 64px; --nova-header-gutter: 20px; }
  .header-is-compact .header .brand { width: 132px; height: 60px; margin-left: -20px; }
}
