/* ==========================================================================
   BRANDING page — capability, not case study
   ========================================================================== */
.hl-brand-section {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 var(--padding-x);
}
.hl-brand-statement {
  max-width: calc(var(--container-max) + 2 * var(--padding-x));
  margin: 8px auto 0;
  padding: 0 var(--padding-x);
}
.hl-brand-statement p {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: clamp(22px, 2.4vw, 32px);
  line-height: 1.4;
  color: var(--color-ink);
  max-width: 980px;
}

/* capability list */
.hl-brand-caps {
  margin: 72px auto 0;
  border-top: 0.5px solid var(--color-line);
}
.hl-brand-cap {
  display: grid;
  grid-template-columns: 56px 1.1fr 2fr;
  gap: 24px;
  align-items: baseline;
  padding: 26px 0;
  border-bottom: 0.5px solid var(--color-line);
}
.hl-brand-cap-num {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 1px;
  color: var(--color-text-2);
  padding-top: 6px;
}
.hl-brand-cap-title {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(22px, 2.4vw, 30px);
  letter-spacing: -0.5px;
  text-transform: uppercase;
  line-height: 1.02;
  color: var(--color-ink);
}
.hl-brand-cap-title .hl-headline-serif { letter-spacing: -0.5px; }
.hl-brand-cap-desc {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.65;
  color: var(--color-text-1);
}

/* section heading */
.hl-brand-head {
  max-width: calc(var(--container-max) + 2 * var(--padding-x));
  margin: 0 auto;
  padding: 0 var(--padding-x);
}
.hl-brand-head .hl-eyebrow { margin-bottom: 12px; }
.hl-brand-head h2 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(28px, 3vw, 44px);
  letter-spacing: -1px;
  text-transform: uppercase;
  line-height: 1;
  color: var(--color-ink);
}

/* type specimen */
.hl-brand-specimen {
  max-width: var(--container-max);
  margin: 28px auto 0;
  padding: 0 var(--padding-x);
  display: grid;
  gap: 18px;
}
.hl-spec-row { border-top: 0.5px solid var(--color-line); padding-top: 16px; }
.hl-spec-label {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--color-text-2);
  margin-bottom: 8px;
}
.hl-spec-display {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(40px, 8vw, 110px);
  letter-spacing: -2px;
  line-height: 0.9;
  text-transform: uppercase;
  color: var(--color-ink);
}
.hl-spec-serif {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: clamp(36px, 6vw, 80px);
  line-height: 1;
  color: var(--color-ink);
}
.hl-spec-body {
  font-family: var(--font-body);
  font-size: clamp(15px, 1.4vw, 18px);
  line-height: 1.7;
  color: var(--color-text-1);
  max-width: 720px;
}

/* colour palette */
.hl-brand-palette {
  max-width: var(--container-max);
  margin: 28px auto 0;
  padding: 0 var(--padding-x);
  display: grid;
  grid-template-columns: repeat(10, 1fr);
  gap: 0;
  border: 0.5px solid var(--color-line);
}
.hl-swatch { aspect-ratio: 3 / 4; position: relative; }
.hl-swatch span {
  position: absolute;
  left: 8px;
  bottom: 8px;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 9px;
  letter-spacing: 1px;
  text-transform: uppercase;
  opacity: 0.85;
}

/* image gallery — breadth */
.hl-brand-gallery {
  max-width: var(--container-max);
  margin: 28px auto 0;
  padding: 0 var(--padding-x);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.hl-brand-gallery figure { margin: 0; position: relative; overflow: hidden; aspect-ratio: 4 / 5; background: var(--color-bg-soft); }
.hl-brand-gallery img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.6s var(--ease); }
.hl-brand-gallery figure:hover img { transform: scale(1.04); }
.hl-brand-gallery figcaption {
  position: absolute;
  left: 12px;
  bottom: 10px;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(255,255,255,0.95);
  text-shadow: 0 1px 6px rgba(0,0,0,0.5);
}

/* logo moment */
.hl-brand-logo {
  max-width: var(--container-max);
  margin: 28px auto 0;
  padding: 64px var(--padding-x);
  background: var(--color-ink);
  display: flex;
  align-items: center;
  justify-content: center;
}
.hl-brand-logo img { height: clamp(80px, 14vw, 150px); width: auto; }

@media (max-width: 900px) {
  .hl-brand-palette { grid-template-columns: repeat(5, 1fr); }
}
@media (max-width: 767px) {
  .hl-brand-cap { grid-template-columns: 1fr; gap: 8px; padding: 22px 0; }
  .hl-brand-cap-num { display: none; }
  .hl-brand-gallery { grid-template-columns: 1fr 1fr; }
  .hl-brand-palette { grid-template-columns: repeat(5, 1fr); }
}


/* prose + result line (founder-first copy) */
.hl-brand-prose { max-width: calc(var(--container-max) + 2 * var(--padding-x)); margin: 22px auto 0; padding: 0 var(--padding-x); }
.hl-brand-prose p { font-family: var(--font-body); font-size: clamp(15px, 1.5vw, 18px); line-height: 1.7; color: var(--color-text-1); max-width: 820px; }
.hl-brand-prose p + p { margin-top: 14px; }
.hl-brand-result { max-width: calc(var(--container-max) + 2 * var(--padding-x)); margin: 24px auto 0; padding: 0 var(--padding-x); font-family: var(--font-serif); font-style: italic; font-size: clamp(22px, 2.4vw, 32px); line-height: 1.4; color: var(--color-ink); }
.hl-brand-result span { display: block; max-width: 980px; }

/* ----- brand book as a horizontal luxury moodboard rail (Palace-inspired) ----- */
.hl-brand-rail-wrap { margin: 28px 0 0; }

.hl-brand-rail {
  display: flex;
  gap: clamp(20px, 2.4vw, 44px);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  padding: 4px var(--padding-x) 10px;
  padding-left: max(var(--padding-x), calc((100vw - var(--container-max)) / 2));
  scroll-padding-left: max(var(--padding-x), calc((100vw - var(--container-max)) / 2));
  scrollbar-width: none;
  cursor: grab;
}
.hl-brand-rail::-webkit-scrollbar { height: 0; display: none; }
.hl-brand-rail.is-dragging { cursor: grabbing; scroll-snap-type: none; }
.hl-brand-rail.is-dragging * { user-select: none; }

.hl-rail-card {
  flex: 0 0 clamp(288px, 30vw, 396px);
  scroll-snap-align: start;
}
.hl-rail-media {
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--color-bg-soft);
  margin: 0;
}
.hl-rail-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.8s var(--ease);
}
.hl-rail-card:hover .hl-rail-media img { transform: scale(1.04); }

.hl-rail-body { padding-top: 20px; }
.hl-rail-num {
  display: block;
  font-family: var(--font-serif);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(52px, 5.6vw, 90px);
  line-height: 1;
  color: var(--color-ink);
  margin-bottom: 16px;
}
.hl-rail-title {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(19px, 1.8vw, 25px);
  letter-spacing: -0.3px;
  text-transform: uppercase;
  line-height: 1.04;
  color: var(--color-ink);
}
.hl-rail-script {
  font-family: 'Pinyon Script', cursive;
  font-weight: 400;
  font-size: clamp(28px, 2.8vw, 40px);
  line-height: 1.05;
  color: var(--color-text-2);
  margin: 2px 0 12px;
}
.hl-rail-desc {
  font-family: var(--font-body);
  font-size: 14.5px;
  line-height: 1.62;
  color: var(--color-text-1);
  max-width: 360px;
}

/* prev / next */
.hl-rail-nav {
  display: flex;
  gap: 12px;
  justify-content: flex-end;
  max-width: calc(var(--container-max) + 2 * var(--padding-x));
  margin: 22px auto 0;
  padding: 0 var(--padding-x);
}
.hl-rail-btn {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  border: 0.5px solid var(--color-line);
  background: var(--color-bg);
  color: var(--color-ink);
  font-size: 19px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.25s var(--ease), color 0.25s var(--ease), border-color 0.25s var(--ease), opacity 0.25s var(--ease);
}
.hl-rail-btn:hover { background: var(--color-ink); color: var(--color-bg); border-color: var(--color-ink); }
.hl-rail-btn:disabled { opacity: 0.28; cursor: default; background: var(--color-bg); color: var(--color-ink); border-color: var(--color-line); }

@media (max-width: 767px) {
  .hl-rail-card { flex-basis: 78vw; }
  .hl-rail-num { font-size: clamp(48px, 16vw, 80px); }
}
