/* ==========================================================================
   HERO — full image with text overlaid on the right
   ========================================================================== */
.hl-hero {
  position: relative;
  min-height: 720px;
  height: calc(100vh - 70px);
  max-height: 900px;
  overflow: hidden;
}

.hl-hero-img {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background: var(--color-bg);
}
.hl-hero-img > img,
.hl-hero-img > video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 15% center;
  will-change: transform;
}
.hl-hero-img-credit {
  position: absolute;
  left: 24px;
  bottom: 20px;
  display: flex;
  gap: 16px;
  align-items: baseline;
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 11px;
  color: #2A1810;
  opacity: 0.7;
  z-index: 2;
}
.hl-hero-img-credit strong {
  font-family: var(--font-display);
  font-weight: 500;
  font-style: normal;
  font-size: 9px;
  letter-spacing: 2px;
  margin-right: 6px;
}

.hl-hero-text {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(48%, 620px);
  padding: 64px var(--padding-x);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 32px;
  z-index: 2;
}
.hl-hero-mark {
  height: clamp(96px, 9.5vw, 150px);
  width: auto;
  display: block;
  align-self: flex-start;
  margin-bottom: 8px;
}

.hl-headline {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(34px, 4.5vw, 64px);
  line-height: 1;
  letter-spacing: -1.5px;
  text-transform: uppercase;
  margin: 0 0 32px;
  color: var(--color-ink);
  white-space: nowrap;
}
.hl-headline-serif {
  font-family: var(--font-serif);
  font-style: italic;
  font-weight: 500;
  text-transform: none;
  letter-spacing: -1px;
}

/* Typo composée — chaque ligne a sa taille et son indentation */
.hl-h-l1 {
  font-size: 0.62em;
  line-height: 1.05;
  padding-left: 4em;
  display: block;
  margin-bottom: 0.05em;
}
.hl-h-l2 {
  font-size: 1em;
  line-height: 0.92;
  display: block;
}
.hl-h-l3 {
  font-size: 1em;
  line-height: 0.92;
  padding-left: 1.4em;
  display: block;
}
.hl-h-l3 .hl-headline-serif {
  font-size: 1.18em;
}
.hl-h-dot {
  color: var(--color-accent);
  text-shadow: 0 0 1px rgba(10,10,10,0.4);
}

.hl-sub {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 17px;
  line-height: 1.55;
  max-width: 460px;
  color: var(--color-text-1);
  margin-bottom: 40px;
}
.hl-hero-text .hl-rule {
  margin: 28px 0 24px;
}
.hl-pillars-head .hl-rule {
  margin-top: 32px;
}
.hl-studio-head .hl-rule {
  margin-top: 40px;
}
.hl-quote .hl-rule--accent {
  width: 64px;
  height: 2px;
  margin-bottom: 32px;
}

.hl-cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

/* ==========================================================================
   PACKAGING PAGE
   ========================================================================== */
.hl-pack-hero {
  padding: 120px var(--padding-x) 80px;
  background: var(--color-bg);
}
.hl-pack-hero-inner {
  max-width: var(--container-max);
  margin: 0 auto;
}
.hl-pack-headline {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(56px, 9vw, 140px);
  letter-spacing: -3px;
  text-transform: uppercase;
  line-height: 0.88;
  margin: 16px 0 0;
}
.hl-pack-hero .hl-sub {
  max-width: 640px;
  margin-bottom: 0;
}
.hl-pack-intro {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 32px;
  align-items: start;
  margin-top: 40px;
  max-width: 980px;
}
.hl-pack-intro p {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: clamp(16px, 1.3vw, 20px);
  line-height: 1.55;
  color: var(--color-text-1);
}
.hl-pack-intro-meta {
  grid-column: 1 / -1;
  font-family: var(--font-display) !important;
  font-style: normal !important;
  font-weight: 500 !important;
  font-size: 11px !important;
  letter-spacing: 2.5px !important;
  text-transform: uppercase;
  color: var(--color-text-2);
  margin-top: 8px;
}
.hl-pack-intro-meta em {
  color: var(--color-ink);
  font-style: normal;
  border-bottom: 1px solid var(--color-ink);
  padding-bottom: 1px;
}

.hl-pack-grid-section {
  padding: 64px var(--padding-x) 120px;
  background: var(--color-bg);
}
.hl-pack-inner {
  max-width: var(--container-max);
  margin: 0 auto;
}
.hl-pack-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 16px 12px;
  margin-top: 56px;
}
.hl-pack-card {
  display: block;
  color: inherit;
  cursor: pointer;
}

/* Exact placement matching the LANDING PAGE moodboard reference */
.hl-pack-card[data-pos="1"]  { grid-column: 1 / 6;  grid-row: 1; margin-top: 0; align-self: end; }
.hl-pack-card[data-pos="2"]  { grid-column: 7 / 13; grid-row: 1; }
.hl-pack-card[data-pos="3"]  { grid-column: 3 / 7;  grid-row: 2; }
.hl-pack-card[data-pos="4"]  { grid-column: 9 / 13; grid-row: 2; text-align: center; }
.hl-pack-card[data-pos="5"]  { text-align: center; }
.hl-pack-card[data-pos="6"] .hl-pack-img { aspect-ratio: 1 / 1; }
.hl-pack-card[data-pos="8"] .hl-pack-img { aspect-ratio: 3 / 4; }
.hl-pack-card[data-pos="9"] { text-align: center; }
.hl-pack-card[data-pos="9"] .hl-pack-img {
  aspect-ratio: auto;
}
.hl-pack-card[data-pos="9"] .hl-pack-img > img {
  position: static !important;
  inset: auto !important;
  width: 100% !important;
  height: auto !important;
  padding: 0 !important;
  object-fit: unset !important;
  display: block;
  mix-blend-mode: multiply;
}
.hl-pack-card[data-pos="5"]  { grid-column: 3 / 12; grid-row: 3; }
.hl-pack-card[data-pos="6"]  { grid-column: 1 / 6;  grid-row: 4; }
.hl-pack-card[data-pos="7"]  { grid-column: 7 / 13; grid-row: 4; margin-top: 24px; }
.hl-pack-card[data-pos="8"]  { grid-column: 5 / 9;  grid-row: 15; }
.hl-pack-card[data-pos="9"]  { grid-column: 1 / 13; grid-row: 6; }
.hl-pack-card[data-pos="10"] { grid-column: 1 / 7;  grid-row: 7; }
.hl-pack-card[data-pos="11"] { grid-column: 8 / 13; grid-row: 7; margin-top: 0; align-self: end; }
.hl-pack-card[data-pos="12"] { grid-column: 1 / 5;  grid-row: 8; }
.hl-pack-card[data-pos="13"] { grid-column: 5 / 13; grid-row: 8; margin-top: 0; align-self: end; text-align: center; }
.hl-pack-card[data-pos="14"] { grid-column: 3 / 11; grid-row: 9; }
.hl-pack-card[data-pos="15"] { grid-column: 4 / 12; grid-row: 10; }
.hl-pack-card[data-pos="16"] { grid-column: 1 / 6;  grid-row: 11; }
.hl-pack-card[data-pos="17"] { grid-column: 7 / 10; grid-row: 11; margin-top: 0; align-self: end; }
.hl-pack-card[data-pos="17"] .hl-pack-img { aspect-ratio: 4 / 5; }
.hl-pack-card[data-pos="18"] { text-align: center; }
.hl-pack-card[data-pos="18"] { grid-column: 1 / 13; grid-row: 12; }
.hl-pack-card[data-pos="19"] { grid-column: 4 / 12; grid-row: 13; }
.hl-pack-card[data-pos="20"] { grid-column: 1 / 13; grid-row: 14; }

/* pos 18 — Always Fabulous: show full image (product + Eiffel) without cropping, no side bars */
.hl-pack-card[data-pos="18"] .hl-pack-img {
  background: transparent;
}
.hl-pack-card[data-pos="18"] .hl-pack-img > img {
  object-fit: contain;
  background: transparent;
}

.hl-pack-img--wide { aspect-ratio: 21 / 9; }

/* Centered text under products that float visually (portrait/tall/square floating) */
.hl-pack-card:has(.hl-pack-img--floating.hl-pack-img--portrait),
.hl-pack-card:has(.hl-pack-img--floating.hl-pack-img--tall),
.hl-pack-card:has(.hl-pack-img--floating.hl-pack-img--square) {
  text-align: center;
}

/* Composite — background image with a transparent product overlapping bottom-right */
.hl-pack-img--composite {
  background: transparent;
  overflow: visible;
}
.hl-pack-img--composite > img:not(.hl-pack-overlay) {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hl-pack-overlay {
  position: absolute;
  bottom: -8%;
  right: -10%;
  width: 55%;
  height: auto;
  z-index: 2;
  mix-blend-mode: multiply;
}


.hl-pack-img {
  background: var(--color-bg-soft);
  margin-bottom: 6px;
  overflow: hidden;
  position: relative;
  transition: filter 0.3s var(--ease);
}
.hl-pack-img--portrait  { aspect-ratio: 4 / 5; }
.hl-pack-img--tall      { aspect-ratio: 3 / 4; }
.hl-pack-img--square    { aspect-ratio: 1 / 1; }
.hl-pack-img--landscape { aspect-ratio: 16 / 10; }
.hl-pack-img > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s var(--ease);
}
/* Floating: transparent product that floats on the page bg, no rectangular wrapper feel */
.hl-pack-img--floating {
  background: transparent !important;
}
.hl-pack-img--floating > img {
  object-fit: contain;
  padding: 1%;
  mix-blend-mode: multiply;
  transition: transform 0.5s var(--ease) !important;
}
/* Floating products keep transparency always — bg stays transparent on hover */
.hl-pack-card:hover .hl-pack-img--floating {
  filter: none !important;
  background: transparent !important;
}
/* Subtle movement on hover for floating products */
.hl-pack-card:hover .hl-pack-img--floating > img {
  transform: scale(1.04) translateY(-4px) !important;
  mix-blend-mode: multiply !important;
}
.hl-pack-card:hover .hl-pack-img > img {
  transform: scale(1.03);
}
.hl-pack-card:hover .hl-pack-img {
  filter: brightness(1.04);
}
.hl-pack-img[data-tone="goldsilver"] { background: linear-gradient(135deg, #E8D7A8 0%, #C9B07A 40%, #8E8E94 100%); }
.hl-pack-img[data-tone="ink"]        { background: linear-gradient(135deg, #2A2A2C 0%, #0A0A0A 60%, #6B0A1A 100%); }
.hl-pack-img[data-tone="bare"]       { background: linear-gradient(135deg, #F5EDE3 0%, #D8C5B0 60%, #8A6F58 100%); }
.hl-pack-img[data-tone="riviera"]    { background: linear-gradient(135deg, #E8DCC0 0%, #D8A878 40%, #1F4060 100%); }
.hl-pack-img[data-tone="peony"]      { background: linear-gradient(135deg, #F2A06A 0%, #C24A2E 60%, #2E6E78 100%); }
.hl-pack-img[data-tone="banani"]     { background: linear-gradient(135deg, #FFB8C8 0%, #E94A78 50%, #6E1530 100%); }
.hl-pack-img[data-tone="candy"]      { background: linear-gradient(135deg, #FFD66E 0%, #FF6EB4 50%, #6E84FF 100%); }
.hl-pack-img[data-tone="rose"]       { background: linear-gradient(135deg, #E8C9C0 0%, #A36A60 100%); }
.hl-pack-meta {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 13px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--color-ink);
  }
.hl-pack-meta span:first-child { display: none; }
.hl-pack-title {
  font-family: var(--font-serif);
  font-style: italic;
  font-weight: 400;
  font-size: 15px;
  letter-spacing: 0;
  text-transform: none;
  line-height: 1.3;
  margin: 0 0 0;
  color: var(--color-text-1);
  border-bottom: 0.5px solid var(--color-text-1);
  display: inline-block;
  padding-bottom: 1px;
  transition: border-color 0.3s var(--ease), color 0.3s var(--ease);
}
.hl-pack-title::after {
  content: ' ↗';
  font-style: normal;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 0.85em;
  letter-spacing: 0;
  color: var(--color-text-2);
  display: inline-block;
  margin-left: 4px;
  transition: transform 0.4s var(--ease), color 0.3s var(--ease);
}
.hl-pack-card:hover .hl-pack-title::after {
  transform: translate(3px, -3px);
  color: var(--color-ink);
}
.hl-pack-title .hl-headline-serif {
  font-size: 1em;
  letter-spacing: 0;
}
.hl-pack-card:hover .hl-pack-title {
  color: var(--color-ink);
  border-bottom-color: var(--color-accent);
}
.hl-pack-tag {
  display: none;
}

/* ==========================================================================
   CONTENT GALLERY — 3 vertical marquee columns
   ========================================================================== */
.hl-feed {
  background: var(--color-bg);
  padding: 80px 0 100px;
  overflow: hidden;
  border-top: 0.5px solid var(--color-line);
  scroll-margin-top: 72px;
}
.hl-feed-head {
  max-width: var(--container-max);
  margin: 0 auto 40px;
  padding: 0 var(--padding-x);
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
}
.hl-feed-stage {
  position: relative;
  overflow: hidden;
  height: 150vh;
  min-height: 1100px;
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 var(--padding-x);
}
.hl-feed-cols {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  height: 100%;
  position: relative;
  transition: transform 0.7s var(--ease), opacity 0.6s var(--ease);
}
.hl-feed-cols::before,
.hl-feed-cols::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  height: 90px;
  z-index: 3;
  pointer-events: none;
}
.hl-feed-cols::before { top: 0; background: linear-gradient(to bottom, var(--color-bg) 0%, transparent 100%); }
.hl-feed-cols::after { bottom: 0; background: linear-gradient(to top, var(--color-bg) 0%, transparent 100%); }
.hl-feed-col {
  overflow: hidden;
  position: relative;
}
.hl-feed-track {
  display: flex;
  flex-direction: column;
  gap: 16px;
  will-change: transform;
}
.hl-feed-shuffle {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--color-ink);
  background: none;
  border: 0.5px solid var(--color-line);
  padding: 9px 18px;
  border-radius: 999px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  transition: background 0.25s var(--ease), color 0.25s var(--ease);
}
.hl-feed-shuffle:hover,
.hl-feed-shuffle:focus-visible,
.hl-feed-shuffle:active,
.hl-feed-shuffle.is-spinning {
  background: var(--color-accent);
  border-color: var(--color-accent);
  color: var(--color-ink);
}
.hl-feed-shuffle span { display: inline-block; font-size: 14px; transition: transform 0.6s var(--ease); }
.hl-feed-shuffle.is-spinning span { transform: rotate(360deg); }
/* Detail / spotlight — slides in from the right on click */
.hl-feed-detail {
  position: absolute;
  inset: 0;
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 14px;
  background: var(--color-bg);
  transform: translateX(100%);
  transition: transform 0.7s var(--ease);
  padding: 16px clamp(56px, 8vw, 120px) 24px;
}
.hl-feed-stage.is-detail .hl-feed-cols { transform: translateX(-100%); }
.hl-feed-stage.is-detail .hl-feed-detail { transform: translateX(0); }
.hl-feed-detail-media {
  max-width: 100%;
  min-height: 0;
  display: flex;
  align-items: flex-start;
  justify-content: center;
}
.hl-feed-detail-media img,
.hl-feed-detail-media video {
  max-width: 100%;
  max-height: 74vh;
  width: auto;
  height: auto;
  display: block;
  box-shadow: 0 30px 80px rgba(10, 10, 10, 0.22);
  background: #000;
}
.hl-feed-detail-cap {
  position: static;
  margin: 0;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--color-text-2);
}
.hl-feed-back {
  position: absolute;
  left: 16px;
  top: 16px;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  border: 0.5px solid var(--color-line);
  background: var(--color-bg);
  color: var(--color-ink);
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 6;
  transition: background 0.25s var(--ease), color 0.25s var(--ease);
}
.hl-feed-back:hover { background: var(--color-ink); color: var(--color-bg); }

@media (max-width: 1000px) {
  .hl-feed-cols { grid-template-columns: repeat(3, 1fr); }
  .hl-feed-col:nth-child(4) { display: none; }
}
@media (max-width: 640px) {
  .hl-feed-stage { height: 130vh; min-height: 760px; }
  .hl-feed-cols { grid-template-columns: 1fr 1fr; gap: 8px; }
  .hl-feed-col:nth-child(3), .hl-feed-col:nth-child(4) { display: none; }
  .hl-feed-detail { padding: 16px; }
  .hl-feed-back { left: 8px; width: 44px; height: 44px; font-size: 18px; }
}
.hl-feed-item {
  position: relative;
  display: block;
  aspect-ratio: 9 / 16;
  overflow: hidden;
  background: var(--color-bg-soft);
  cursor: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2736%27%20height%3D%2736%27%20viewBox%3D%270%200%20269.45%20269.47%27%3E%3Cpath%20d%3D%27M26.61%2C262.5c-6.17-.36-13.2%2C12.05-22.5%2C3.39-4.15-3.86-5.06-10.39-.94-14.95%2C2.21-2.45%2C3.65-5.71%2C3.68-9.26.06-7.5%2C1.64-15.29%2C7.3-20.95L163.18%2C71.65l-32.84-32.89c1.52-2.94%2C3.36-5.03%2C5.57-6.95%2C9.98-12.88%2C27.49-13.4%2C38.82-1.96l15.09%2C15.24%2C36.64-36.78c9.96-10%2C25.12-10.54%2C35.16-.85s9.91%2C25.07%2C0%2C34.99l-37.21%2C37.19%2C17.99%2C18.43c10.06%2C10.31%2C6.1%2C26.88-4.63%2C35.37-2.19%2C2.42-3.95%2C4.02-7.04%2C5.66l-32.97-32.83L51.23%2C252.82c-6.84%2C6.84-14.55%2C10.27-24.62%2C9.68ZM140.31%2C154.81l52.98-53.05-25.61-25.65-78.61%2C78.64%2C51.24.06Z%27%20fill%3D%27%23000%27%20stroke%3D%27%23fff%27%20stroke-width%3D%278%27%20stroke-miterlimit%3D%2710%27%2F%3E%3Cpath%20d%3D%27M12.71%2C261c-.32%2C0-1.27%2C0-2.95-1.56-1.82-1.69-2.65-4.72-.59-7%2C3.28-3.63%2C5.11-8.25%2C5.15-13.01.06-7.7%2C1.91-13.26%2C5.64-16.99l61.73-61.76c1.17-.04%2C38.27.36%2C52.44.7l-85.11%2C85.12c-5.59%2C5.59-11.27%2C8.08-18.41%2C8.08h0c-.61%2C0-1.23-.02-1.86-.06-.2-.01-.4-.02-.6-.02-3.75%2C0-6.9%2C2.01-9.68%2C3.79-2.07%2C1.32-4.21%2C2.69-5.75%2C2.69Z%27%20fill%3D%27%23daff00%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-miterlimit%3D%2710%27%2F%3E%3C%2Fsvg%3E") 1 35, pointer;
}
.hl-feed-item--video::before {
  content: '\25B6';
  position: absolute;
  top: 11px;
  right: 12px;
  z-index: 2;
  font-size: 10px;
  color: rgba(255, 255, 255, 0.92);
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.5);
}
.hl-feed-item img,
.hl-feed-item video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s var(--ease);
}
.hl-feed-item:hover img,
.hl-feed-item:hover video {
  transform: scale(1.03);
}
.hl-feed-item figcaption {
  position: absolute;
  left: 14px;
  bottom: 12px;
  right: 14px;
  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.55);
  opacity: 0;
  transform: translateY(4px);
  transition: opacity 0.35s var(--ease), transform 0.35s var(--ease);
  z-index: 2;
}
.hl-feed-item::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(10, 10, 10, 0.38) 0%, transparent 42%);
  opacity: 0;
  transition: opacity 0.35s var(--ease);
  pointer-events: none;
}
.hl-feed-item:hover figcaption { opacity: 1; transform: translateY(0); }
.hl-feed-item:hover::after { opacity: 1; }

/* ==========================================================================
   PILLARS — Three disciplines merged with thumbnails
   ========================================================================== */
.hl-pillars {
  padding: 100px var(--padding-x);
  background: var(--color-bg);
}
.hl-pillars-inner {
  max-width: var(--container-max);
  margin: 0 auto;
}
.hl-pillars-head {
  margin-bottom: 64px;
}
.hl-pillars-title {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(56px, 9vw, 140px);
  letter-spacing: -3px;
  text-transform: uppercase;
  line-height: 0.88;
  margin: 16px 0 0;
}
.hl-pillars-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
}
.hl-pillar {
  display: flex;
  flex-direction: column;
}
.hl-pillar-num {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--color-text-2);
  margin-bottom: 14px;
}
.hl-pillar-img {
  display: block;
  aspect-ratio: 4 / 5;
  background: var(--color-bg-soft);
  margin-bottom: 22px;
  overflow: hidden;
  position: relative;
  transition: transform 0.4s var(--ease);
}
.hl-pillar-img::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.18), transparent 55%);
  pointer-events: none;
}
.hl-pillar-img:hover {
  transform: translateY(-4px);
}
.hl-pillar-img[data-tone="goldsilver"] { background: linear-gradient(135deg, #E8D7A8 0%, #C9B07A 40%, #8E8E94 100%); }
.hl-pillar-img--photo {
  background: var(--color-bg-soft);
}
.hl-pillar-img--photo > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.hl-pillar-img--photo .hl-pillar-featured {
  color: rgba(255, 255, 255, 0.95);
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.5);
}
.hl-pillar-img--photo .hl-pillar-featured em {
  color: var(--color-accent);
}
.hl-pillar-img[data-tone="candy"]      { background: linear-gradient(135deg, #FFD66E 0%, #FF6EB4 50%, #6E84FF 100%); }
.hl-pillar-img[data-tone="prism"]      { background: linear-gradient(135deg, #FFD6E0 0%, #B8D6FF 35%, #D6FFB8 60%, #FFF1B8 100%); }
.hl-pillar-featured {
  position: absolute;
  left: 14px;
  bottom: 12px;
  right: 14px;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  color: rgba(20,20,20,0.85);
  z-index: 2;
}
.hl-pillar-featured em {
  font-family: var(--font-serif);
  font-style: italic;
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 0;
  text-transform: none;
  margin-right: 8px;
}
.hl-pillar-name {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(22px, 2.4vw, 32px);
  letter-spacing: -0.5px;
  text-transform: uppercase;
  line-height: 1.0;
  margin: 0 0 24px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--color-ink);
}
/* Every pillar title is exactly three lines of equal height (no stray 4th line) */
.hl-pillar-name .pl {
  display: block;
  white-space: nowrap;
}
.hl-pillar-desc {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 17px;
  line-height: 1.55;
  color: var(--color-text-1);
  max-width: 95%;
}
.hl-pillars-foot {
  margin-top: 48px;
  display: flex;
  justify-content: flex-end;
}

/* ==========================================================================
   CONTENT PAGE
   ========================================================================== */
.hl-content-hero {
  padding: 120px var(--padding-x) 96px;
  background: var(--color-bg);
  border-bottom: 0.5px solid var(--color-line);
}
.hl-content-hero-inner {
  max-width: var(--container-max);
  margin: 0 auto;
}
.hl-content-headline {
  margin-top: 24px;
  margin-bottom: 32px;
  white-space: normal;
}
.hl-content-hero .hl-sub {
  margin-bottom: 40px;
  max-width: 640px;
}
.hl-content-hero .hl-sub a {
  border-bottom: 0.5px solid var(--color-line-strong);
  transition: border-color 0.3s var(--ease);
}
.hl-content-hero .hl-sub a:hover {
  border-bottom-color: var(--color-accent);
}

.hl-content-grid-section {
  padding: 96px var(--padding-x);
  background: var(--color-bg);
}
.hl-content-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.hl-tile {
  position: relative;
  aspect-ratio: 4 / 5;
  margin: 0;
  overflow: hidden;
}
.hl-tile figcaption {
  position: absolute;
  left: 14px;
  bottom: 12px;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(255,255,255,0.85);
  text-shadow: 0 1px 2px rgba(0,0,0,0.25);
}
.hl-tile[data-tone="amber"]     { background: linear-gradient(135deg, #C49A6C 0%, #7A4E2A 100%); }
.hl-tile[data-tone="rose"]      { background: linear-gradient(135deg, #E8C9C0 0%, #A36A60 100%); }
.hl-tile[data-tone="ink"]       { background: linear-gradient(135deg, #2A2A2C 0%, #0A0A0A 100%); }
.hl-tile[data-tone="bare"]      { background: linear-gradient(135deg, #F5EDE3 0%, #D8C5B0 60%, #8A6F58 100%); }
.hl-tile[data-tone="prism"]     { background: linear-gradient(135deg, #FFD6E0 0%, #B8D6FF 35%, #D6FFB8 60%, #FFF1B8 100%); }
.hl-tile[data-tone="banani"]    { background: linear-gradient(135deg, #FFB8C8 0%, #E94A78 50%, #6E1530 100%); }
.hl-tile[data-tone="candy"]     { background: linear-gradient(135deg, #FFD66E 0%, #FF6EB4 50%, #6E84FF 100%); }
.hl-tile[data-tone="goldsilver"]{ background: linear-gradient(135deg, #E8D7A8 0%, #C9B07A 40%, #8E8E94 100%); }
.hl-tile[data-tone="riviera"]   { background: linear-gradient(135deg, #E8DCC0 0%, #D8A878 40%, #1F4060 100%); }
.hl-tile[data-tone="bare"] figcaption { color: rgba(20,20,20,0.7); text-shadow: none; }
.hl-tile[data-tone="prism"] figcaption{ color: rgba(20,20,20,0.7); text-shadow: none; }
.hl-content-note {
  margin-top: 40px;
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 14px;
  color: var(--color-text-2);
}
.hl-content-note a {
  border-bottom: 0.5px solid var(--color-line-strong);
}

/* ==========================================================================
   SELECTED WORK BAND
   ========================================================================== */
.hl-selected {
  padding: 88px var(--padding-x) 72px;
  background: var(--color-bg);
}
.hl-selected-inner {
  max-width: var(--container-max);
  margin: 0 auto;
}
.hl-selected-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 40px;
  gap: 16px;
}
.hl-selected-more {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
  border-bottom: 1px solid transparent;
  transition: border-color 0.3s var(--ease);
}
.hl-selected-more:hover,
.hl-selected-more:focus-visible {
  border-bottom-color: var(--color-accent);
}
.hl-selected-scroll {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
}
.hl-card-disc {
  display: block;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--color-text-2);
  margin-bottom: 14px;
}
.hl-card {
  cursor: pointer;
  transition: transform 0.4s var(--ease);
  display: block;
  color: inherit;
}
.hl-card:hover {
  transform: translateY(-4px);
}
.hl-card:hover .hl-card-title {
  color: var(--color-ink);
}
.hl-card-img {
  aspect-ratio: 4 / 5;
  background: var(--color-bg-soft);
  margin-bottom: 18px;
  overflow: hidden;
  position: relative;
}
.hl-card-img[data-tone="goldsilver"] { background: linear-gradient(135deg, #E8D7A8 0%, #C9B07A 40%, #8E8E94 100%); }
.hl-card-img[data-tone="candy"]      { background: linear-gradient(135deg, #FFD66E 0%, #FF6EB4 50%, #6E84FF 100%); }
.hl-card-img[data-tone="prism"]      { background: linear-gradient(135deg, #FFD6E0 0%, #B8D6FF 35%, #D6FFB8 60%, #FFF1B8 100%); }
.hl-card-img::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.18), transparent 55%);
  pointer-events: none;
}
.hl-card-meta {
  display: flex;
  gap: 14px;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--color-text-2);
  margin-bottom: 10px;
}
.hl-card-num {
  color: var(--color-ink);
}
.hl-card-cli {
  flex: 1;
}
.hl-card-title {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 22px;
  letter-spacing: -0.5px;
  text-transform: uppercase;
  line-height: 1;
  margin: 0 0 8px;
}
.hl-card-title .hl-headline-serif {
  font-size: 1.15em;
  letter-spacing: -0.5px;
}
.hl-card-tag {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 14px;
  line-height: 1.5;
  color: var(--color-text-1);
  max-width: 92%;
}

/* ==========================================================================
   STICKER — Award badge top of hero
   ========================================================================== */
.hl-sticker {
  position: absolute;
  right: 28px;
  top: 28px;
  width: 110px;
  height: 110px;
  z-index: 3;
  pointer-events: none;
  animation: hl-sticker-spin 18s linear infinite;
}
.hl-sticker-svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.hl-sticker-center {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: var(--color-accent);
  font-family: var(--font-display);
  font-weight: 500;
  text-transform: uppercase;
  animation: hl-sticker-counter 18s linear infinite;
}
.hl-sticker-mark {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 16px;
  line-height: 1;
  margin-bottom: 2px;
}
.hl-sticker-eye {
  font-size: 8px;
  letter-spacing: 2px;
  color: #FFFFFF;
}
.hl-sticker-yr {
  font-size: 16px;
  letter-spacing: -0.5px;
  margin-top: 2px;
}
@keyframes hl-sticker-spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
@keyframes hl-sticker-counter {
  from { transform: rotate(0deg); }
  to   { transform: rotate(-360deg); }
}
@media (prefers-reduced-motion: reduce) {
  .hl-sticker, .hl-sticker-center { animation: none !important; }
}

/* ==========================================================================
   CREDENTIALS BAND
   ========================================================================== */
.hl-creds {
  background: var(--color-ink);
  color: var(--color-bg);
  padding: 18px var(--padding-x);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
}
.hl-creds-l {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
  display: flex;
  align-items: center;
}
.hl-creds-l strong {
  background: var(--color-accent);
  color: var(--color-ink);
  padding: 3px 8px;
  font-weight: 500;
  letter-spacing: 1px;
  margin-right: 12px;
}
.hl-creds-r {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 14px;
  color: rgba(245,242,236,0.9);
}

/* ==========================================================================
   SERVICES
   ========================================================================== */
.hl-services {
  padding: 100px var(--padding-x);
  background: var(--color-bg);
}
.hl-services-inner {
  max-width: var(--container-max);
  margin: 0 auto;
}
.hl-services-eye {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--color-text-2);
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}
.hl-services-eye::before {
  content: '';
  width: 32px;
  height: 1px;
  background: var(--color-line-strong);
}
.hl-services-title {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: var(--size-h2);
  letter-spacing: -1px;
  text-transform: uppercase;
  margin: 0 0 64px;
  line-height: 0.95;
}
.hl-serif-italic {
  font-family: var(--font-serif);
  font-style: italic;
  font-weight: 500;
  text-transform: none;
}

.hl-srv {
  display: grid;
  grid-template-columns: 140px 1fr 320px 60px;
  gap: 32px;
  padding: 40px 0;
  border-top: 0.5px solid var(--color-line);
  align-items: baseline;
  cursor: pointer;
  transition: padding 0.4s var(--ease), background-color 0.4s var(--ease);
}
.hl-srv:last-child {
  border-bottom: 0.5px solid var(--color-line);
}
.hl-srv:hover,
.hl-srv:focus-visible {
  padding-left: 16px;
  padding-right: 16px;
  background: rgba(232, 255, 0, 0.08);
  outline: none;
}
.hl-srv:hover .hl-srv-arrow,
.hl-srv:focus-visible .hl-srv-arrow {
  transform: translateX(8px);
  color: var(--color-ink);
}
.hl-srv-num {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 17px;
  color: var(--color-text-2);
}
.hl-srv-name {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: var(--size-h3);
  letter-spacing: -1px;
  text-transform: uppercase;
  line-height: 0.95;
  margin: 0;
}
.hl-srv-desc {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 16px;
  line-height: 1.6;
  color: var(--color-text-1);
  margin: 0;
}
.hl-srv-arrow {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 22px;
  text-align: right;
  color: var(--color-text-2);
  transition: transform 0.4s var(--ease), color 0.4s var(--ease);
}

/* ==========================================================================
   STUDIO / ABOUT
   ========================================================================== */
.hl-studio {
  padding: 120px var(--padding-x);
  background: var(--color-bg);
  position: relative;
  overflow: hidden;
}
.hl-studio::before {
  content: '';
  position: absolute;
  top: 0;
  left: var(--padding-x);
  right: var(--padding-x);
  height: 0.5px;
  background: var(--color-line);
}
.hl-studio-inner {
  max-width: var(--container-max);
  margin: 0 auto;
}
.hl-studio-head {
  margin-bottom: 64px;
  display: grid;
  grid-template-columns: 1.8fr 1fr;
  gap: 64px;
  align-items: start;
}
.hl-studio-head-text .hl-rule {
  margin: 40px 0 28px;
}
.hl-studio-head-text .hl-eyebrow {
  gap: 0;
}
.hl-studio-head-text .hl-eyebrow::before {
  display: none;
}
.hl-studio-portrait {
  margin: 0;
  position: relative;
}
.hl-studio-portrait img {
  width: 100%;
  height: auto;
  display: block;
  background: var(--color-bg-soft);
}
.hl-studio-portrait figcaption {
  margin-top: 12px;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--color-text-1);
  line-height: 1.7;
}
.hl-studio-portrait figcaption em {
  font-family: var(--font-serif);
  font-style: italic;
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 0;
  text-transform: none;
  color: var(--color-text-2);
}
.hl-studio-lead {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(36px, 5vw, 68px);
  line-height: 1;
  letter-spacing: -1.5px;
  text-transform: uppercase;
  margin: 24px 0 0;
  max-width: 1100px;
}

.hl-studio-split {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 80px;
  align-items: start;
  padding-bottom: 88px;
  border-bottom: 0.5px solid var(--color-line);
  margin-bottom: 64px;
}
.hl-studio-body {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 48px;
  align-items: start;
  margin-top: 8px;
}
.hl-studio-narrative {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.hl-studio-narrative p {
  font-family: var(--font-serif);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(15px, 1.05vw, 18px);
  line-height: 1.55;
  color: var(--color-text-1);
}
.hl-studio-narrative p strong {
  font-family: var(--font-display);
  font-style: normal;
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--color-ink);
  display: inline-block;
  margin-right: 4px;
}
.hl-studio-narrative p em {
  font-style: italic;
  color: var(--color-text-2);
}

.hl-studio-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px 24px;
  margin: 0;
}
.hl-studio-stats > div {
  padding-top: 16px;
  border-top: 0.5px solid var(--color-line);
}
.hl-studio-stats dt {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--color-text-2);
  margin-bottom: 8px;
}
.hl-studio-stats dd {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(32px, 3vw, 44px);
  line-height: 0.95;
  letter-spacing: -1px;
  color: var(--color-ink);
  margin: 0;
}
.hl-stat-em {
  color: var(--color-accent);
  text-shadow: 0 0 1px rgba(10,10,10,0.4);
}

.hl-studio-principles {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  padding: 0;
  margin: 0;
}
.hl-studio-principles li {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding-top: 16px;
  border-top: 1px solid var(--color-ink);
}
.hl-prn-num {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 2.5px;
  color: var(--color-text-2);
}
.hl-prn-name {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(20px, 1.8vw, 26px);
  line-height: 1.05;
  letter-spacing: -0.5px;
  text-transform: uppercase;
}

/* ==========================================================================
   FAQ
   ========================================================================== */
.hl-faq {
  padding: 120px var(--padding-x);
  background: var(--color-bg);
  border-top: 0.5px solid var(--color-line);
}
.hl-faq-inner {
  max-width: var(--container-max);
  margin: 0 auto;
}
.hl-faq-head {
  margin-bottom: 56px;
}
.hl-faq-title {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(40px, 6vw, 88px);
  letter-spacing: -2px;
  text-transform: uppercase;
  line-height: 0.92;
  margin: 16px 0 0;
}
.hl-faq-list {
  border-top: 0.5px solid var(--color-line);
}
.hl-faq-item {
  border-bottom: 0.5px solid var(--color-line);
  padding: 24px 0;
}
.hl-faq-item > summary {
  cursor: pointer;
  list-style: none;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(20px, 2vw, 28px);
  letter-spacing: -0.5px;
  text-transform: uppercase;
  color: var(--color-ink);
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  transition: color 0.3s var(--ease);
}
.hl-faq-item > summary::-webkit-details-marker { display: none; }
.hl-faq-item > summary::after {
  content: '+';
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 1.1em;
  color: var(--color-text-2);
  transition: transform 0.4s var(--ease), color 0.3s var(--ease);
  flex-shrink: 0;
}
.hl-faq-item[open] > summary::after {
  content: '×';
  color: var(--color-ink);
  transform: rotate(0deg);
}
.hl-faq-item[open] > summary {
  color: var(--color-ink);
}
.hl-faq-item p {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: clamp(17px, 1.4vw, 20px);
  line-height: 1.55;
  color: var(--color-text-1);
  margin-top: 16px;
  max-width: 880px;
}

/* ==========================================================================
   QUOTE / MANIFESTO
   ========================================================================== */
.hl-quote {
  padding: 120px var(--padding-x);
  background: var(--color-ink);
  color: var(--color-bg);
  position: relative;
  overflow: hidden;
}
.hl-quote::before {
  content: 'h';
  font-family: var(--font-serif);
  font-style: italic;
  font-weight: 500;
  font-size: var(--size-h-mark-xl);
  position: absolute;
  right: -60px;
  bottom: -140px;
  color: rgba(232, 255, 0, 0.07);
  line-height: 0.8;
  pointer-events: none;
}
.hl-quote-inner {
  max-width: var(--container-max);
  margin: 0 auto;
  position: relative;
}
.hl-quote-eye {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--color-accent);
  margin-bottom: 32px;
}
.hl-quote-text {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: var(--size-quote);
  line-height: 1.2;
  max-width: 880px;
  font-weight: 500;
  letter-spacing: -0.5px;
  margin: 0;
}
.hl-quote-em {
  color: var(--color-accent);
}
.hl-quote-author {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 3px;
  text-transform: uppercase;
  margin-top: 40px;
  color: #888;
  display: block;
}

/* ==========================================================================
   CLIENTS GRID
   ========================================================================== */
.hl-clients {
  padding: 80px var(--padding-x);
  background: var(--color-bg);
}
.hl-clients-inner {
  max-width: var(--container-max);
  margin: 0 auto;
}
.hl-clients-eye {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--color-text-2);
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 48px;
}
.hl-clients-eye::before {
  content: '';
  width: 32px;
  height: 1px;
  background: var(--color-line-strong);
}
.hl-clients-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1px;
  background: var(--color-line);
  border: 0.5px solid var(--color-line);
}
.hl-cli {
  background: var(--color-bg);
  padding: 32px 16px;
  text-align: center;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 15px;
  letter-spacing: 1.5px;
  color: var(--color-ink);
  transition: background-color 0.3s var(--ease);
  cursor: pointer;
}
.hl-cli:hover {
  background: var(--color-accent);
}

/* ==========================================================================
   LET'S TALK — Final editorial CTA section
   ========================================================================== */
.hl-talk {
  padding: 120px var(--padding-x);
  background: var(--color-bg);
  border-top: 0.5px solid var(--color-line);
}
.hl-talk-inner {
  max-width: var(--container-max);
  margin: 0 auto;
}
.hl-talk-headline {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(36px, 5vw, 76px);
  letter-spacing: -1.5px;
  text-transform: uppercase;
  line-height: 0.95;
  margin: 16px 0 0;
  white-space: nowrap;
}
.hl-talk .hl-rule {
  margin: 40px 0 56px;
}
.hl-talk-grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 64px;
  align-items: start;
}
.hl-talk-lead {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: clamp(20px, 1.6vw, 26px);
  line-height: 1.45;
  color: var(--color-text-1);
  margin-bottom: 32px;
  max-width: 540px;
}
.hl-talk-mail {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(22px, 2.2vw, 36px);
  letter-spacing: -0.5px;
  text-transform: lowercase;
  border-bottom: 1px solid var(--color-ink);
  padding-bottom: 8px;
  transition: color 0.3s var(--ease), border-color 0.3s var(--ease);
  display: inline-block;
}
.hl-talk-mail:hover {
  color: var(--color-text-2);
  border-bottom-color: var(--color-accent);
}
.hl-talk-meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px 24px;
  margin: 0;
}
.hl-talk-meta > div {
  padding-top: 14px;
  border-top: 0.5px solid var(--color-line);
}
.hl-talk-meta dt {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--color-text-2);
  margin-bottom: 8px;
}
.hl-talk-meta dd {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 15px;
  line-height: 1.4;
  color: var(--color-text-1);
  margin: 0;
}
.hl-talk-meta dd a {
  border-bottom: 0.5px solid transparent;
  transition: border-color 0.3s var(--ease);
}
.hl-talk-meta dd a:hover {
  border-bottom-color: var(--color-accent);
}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.hl-foot {
  padding: 48px var(--padding-x) 24px;
  background: var(--color-bg);
  border-top: 0.5px solid var(--color-line);
}
.hl-foot-inner {
  max-width: var(--container-max);
  margin: 0 auto;
}
.hl-foot-mark {
  margin-bottom: 32px;
}
.hl-foot-h {
  width: auto;
  height: 80px;
  display: block;
}

/* ----- barre réassurance ----- */
.hl-foot-reassurance {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 32px;
  padding: 18px 0 24px;
  border-bottom: 0.5px solid var(--color-line);
  margin-bottom: 32px;
}
.hl-foot-reassurance-item {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.hl-foot-reassurance-fig {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(20px, 2vw, 28px);
  line-height: 1;
  color: var(--color-ink);
  letter-spacing: -0.5px;
}
.hl-foot-reassurance-fig sup {
  font-size: 0.6em;
  vertical-align: super;
  color: var(--color-accent);
}
.hl-foot-reassurance-lab {
  font-family: var(--font-display);
  font-size: 10px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--color-text-2);
}

/* ----- colonnes ----- */
.hl-foot-top {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 24px 32px;
  padding-bottom: 32px;
  border-bottom: 0.5px solid var(--color-line);
  align-items: start;
}
.hl-foot-col {
  min-width: 0;
  overflow-wrap: break-word;
  word-break: break-word;
}
.hl-foot-tag {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 15px;
  max-width: 320px;
  color: var(--color-text-1);
  line-height: 1.5;
}
.hl-foot-clients {
  font-family: var(--font-display);
  font-size: 11px;
  letter-spacing: 1px;
  color: var(--color-text-2);
  margin-top: 14px;
  line-height: 1.6;
}
.hl-foot-col-h {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 3px;
  text-transform: uppercase;
  margin-bottom: 12px;
  color: var(--color-text-2);
}
.hl-foot-col-b {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 14px;
  line-height: 1.7;
  color: var(--color-text-1);
}
.hl-foot-col-b a {
  border-bottom: 0.5px solid transparent;
  transition: border-color 0.3s var(--ease);
}
.hl-foot-col-b a:hover,
.hl-foot-col-b a:focus-visible {
  border-bottom-color: var(--color-accent);
}

/* ----- nav arborescence dans le footer ----- */
.hl-foot-nav {
  display: flex;
  flex-direction: column;
  gap: 5px;
  font-family: var(--font-serif);
  font-size: 14px;
  line-height: 1.7;
}
.hl-foot-nav a {
  color: var(--color-text-1);
  border-bottom: 0.5px solid transparent;
  transition: border-color 0.3s var(--ease);
}
.hl-foot-nav a:hover {
  border-bottom-color: var(--color-accent);
}

/* ----- badge reconnaissance ----- */
.hl-foot-badge {
  margin-top: 16px;
  padding: 8px 10px;
  border: 0.5px solid var(--color-line);
  display: inline-block;
}
.hl-foot-badge p {
  font-family: var(--font-display);
  font-size: 9px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--color-text-2);
  line-height: 1.5;
}

/* ----- barre bas ----- */
.hl-foot-bottom {
  padding-top: 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 12px;
  color: var(--color-text-2);
}
.hl-foot-bottom a {
  font-family: var(--font-display);
  font-style: normal;
  font-size: 10px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--color-text-2);
  border-bottom: 0.5px solid transparent;
  transition: border-color 0.2s;
}
.hl-foot-bottom a:hover {
  border-bottom-color: var(--color-text-2);
}

@media (max-width: 1100px) {
  .hl-foot-top { grid-template-columns: 1fr 1fr; gap: 32px 24px; }
}
@media (max-width: 767px) {
  .hl-foot-top { grid-template-columns: 1fr; gap: 24px; }
  .hl-foot-reassurance { gap: 16px 20px; }
  .hl-foot-mark { margin-bottom: 20px; }
  .hl-foot-bottom { flex-direction: column; align-items: flex-start; gap: 8px; }
}

/* ----- mentions légales ----- */
.hl-foot-legal {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 0.5px solid var(--color-line);
  font-family: var(--font-body);
  font-size: 11px;
  line-height: 1.5;
  color: var(--color-text-2);
}
