/* Nocturne: complete palette, compatible with every named colour override. */
:root {
  --ink: #f0f0eb;
  --muted: #b8bcb9;
  --line: #767676;
  --paper: #000000;
  --wash: #181818;
  --accent: #c1d8a4;
  --accent-deep: #c1d8a4;
  --accent-light: #c1d8a4;
  --on-accent: #000000;
  --band: #000000;
  --on-band: #f0f0eb;
  --font: "Inter", system-ui, sans-serif;
  --font-display: "Space Grotesk", system-ui, sans-serif;
  --catchline-weight: 500;
  --display-weight: 500;
  --display-tracking: -.04em;
  --h1-size: 2.8rem;
  --h1-size-wide: 4rem;
  --h2-size: 2.2rem;
  --radius-card: 0px;
  --radius-shot: 0px;
  --radius-cta: 0px;
  --card-pad: 1.5rem;
  --section-y: 4rem;
  --hero-y: 2rem;
  --header-bg: var(--paper);
  --header-ink: var(--ink);
  --header-border: 1px solid var(--line);
}
/* Body-local values win over palette values inherited from :root, including
   custom colours. Keep the dark canvas and adapt the selected light accent.
   Rebind header aliases here: inherited aliases resolve at their origin. */
.pack-nocturne {
  color-scheme: dark;
  --card-bg: var(--paper);
  --card-border: 1px solid var(--line);
  --shot-bg: var(--line);
  --ink: #f0f0eb;
  --muted: #b8bcb9;
  --line: #767676;
  --paper: #000000;
  --wash: #181818;
  --accent: var(--accent-light);
  --accent-deep: var(--accent-light);
  --on-accent: #000000;
  --band: #000000;
  --on-band: #f0f0eb;
  --header-bg: var(--paper);
  --header-ink: var(--ink);
  --header-border: 1px solid var(--line);
}
.hero-nocturne { padding-bottom: 0; }
.nocturne-image { background: var(--wash); }
.nocturne-image img { display: block; width: 100%; aspect-ratio: 2 / 1; object-fit: cover; }
.nocturne-caption { position: relative; background: var(--paper); padding: 2rem 0; display: grid; gap: 1.5rem; }
.nocturne-heading, .nocturne-summary { min-width: 0; }
.hero-nocturne h1 { line-height: 1.05; }
.pack-nocturne .services .card { background: var(--paper); border: 0; }
.pack-nocturne .why-us .card { border: 0; border-top: 1px solid var(--line); padding-inline: 0; text-align: left; }
.pack-nocturne .cards > * { min-width: 0; }
@media (min-width: 800px) {
  .hero-nocturne.hero-with-image .nocturne-caption { margin-top: -5rem; margin-left: 3rem; padding: 2.5rem 0 2.5rem 2.5rem; }
  .nocturne-caption { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 3rem; }
  .pack-nocturne .gallery .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pack-nocturne .gallery .shot:first-child { grid-column: 1 / -1; aspect-ratio: 2 / 1; }
}
@media (max-width: 799px) {
  .pack-nocturne { --section-y: 2.5rem; --hero-y: 1.5rem; }
  .nocturne-image img { aspect-ratio: 4 / 3; }
  .nocturne-caption { padding-top: 1.75rem; }
}

/* Cinematic throughout: a narrow introduction to the business, expansive
   photographs, spacious service titles and a quiet contact column. Every
   section stays on the black canvas, even with a light named palette. */
/* Still the widest pack, deliberately — but 80rem was set against the
   old 75rem default and is now well clear of every other pack. */
.pack-nocturne { --measure: 70rem; }
.pack-nocturne .services, .pack-nocturne .gallery { background: var(--paper); }
.pack-nocturne .why-us .card { padding-block: 1.5rem; }
.pack-nocturne .why-us .card-icon { display: none; }
.pack-nocturne .services .cards { grid-template-columns: minmax(0, 1fr); gap: 0; }
.pack-nocturne .services .card { padding: 2rem 0; border-top: 1px solid var(--line); }
.pack-nocturne :where(.services .card) h3 { font-size: clamp(1.6rem, 3vw, 2.5rem); }
.pack-nocturne .services .card p { max-width: 36rem; }
.pack-nocturne .about { max-width: 52rem; padding-block: clamp(3rem, 7vw, 6rem); }
.pack-nocturne .about-copy p:first-child { font-size: 1.4rem; color: var(--ink); }
.pack-nocturne .gallery .cards { gap: 2rem; }
.pack-nocturne .gallery .shot { aspect-ratio: 4 / 3; }
.pack-nocturne .testimonials { max-width: 58rem; }
.pack-nocturne .testimonials .cards { grid-template-columns: minmax(0, 1fr); }
.pack-nocturne .testimonial { border: 0; border-top: 1px solid var(--line); padding: 2rem 0; }
.pack-nocturne .testimonial .quote { font-size: clamp(1.4rem, 3vw, 2rem); color: var(--ink); }
.pack-nocturne .testimonial .quote::before { content: none; }
.pack-nocturne .contact { max-width: 58rem; border-top: 1px solid var(--line); }
.pack-nocturne :is(.area, .hours) { max-width: 58rem; padding-block: 1.75rem; }
.pack-nocturne .enquiry-form { max-width: none; }
.pack-nocturne .enquiry-form :is(input, select, textarea) { border-radius: 0; }
@media (min-width: 900px) {
  .pack-nocturne .services .card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 3rem; }
  .pack-nocturne .services .card p { margin: 0; align-self: center; }
  .pack-nocturne .gallery .shot:first-child { aspect-ratio: 2 / 1; }
}
