/* House of Zejd — component styles. Values come from tokens.css. */
.hz, .hz * { box-sizing: border-box; }
.hz { font-family: var(--font-sans); color: var(--ink-muted); background: var(--paper); font-size: 16px; line-height: 27px; -webkit-font-smoothing: antialiased; }
:where(.hz) a { color: inherit; text-decoration: none; }
:where(.hz) img { display: block; max-width: 100%; }
.hz :focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.hz-container { max-width: var(--container); margin: 0 auto; padding: 0 var(--space-8); }
.hz-section { padding: var(--space-24) 0; }
.hz-band { background: var(--paper-alt); }

/* type */
.hz-display, .hz-h1, .hz-h2, .hz-h3 { font-family: var(--font-display); color: var(--ink); margin: 0; font-weight: 400; }
.hz-display { font-size: 44px; line-height: 52px; }
.hz-display em, .hz-h1 em { font-style: italic; color: var(--olive); }
.hz-h1 { font-size: 32px; line-height: 40px; }
.hz-h2 { font-size: 24px; line-height: 32px; font-weight: 500; }
.hz-h3 { font-size: 19px; line-height: 26px; font-weight: 500; }
.hz-eyebrow { display: block; font: 700 11px/16px var(--font-sans); letter-spacing: .2em; text-transform: uppercase; color: var(--olive); margin: 0 0 var(--space-3); }
.hz-lead { font-size: 18px; line-height: 30px; font-weight: 300; color: var(--ink-muted); }
:where(.hz) p { margin: 0 0 var(--space-4); }
:where(.hz) p:last-child { margin-bottom: 0; }

/* section heading with the olive-branch rule */
.hz-heading { text-align: center; max-width: var(--measure); margin: 0 auto var(--space-12); }
.hz-heading .hz-rule { display: flex; align-items: center; justify-content: center; gap: var(--space-3); margin-top: var(--space-4); }
.hz-heading .hz-rule::before, .hz-heading .hz-rule::after { content: ""; width: 48px; height: 1px; background: var(--olive-ink); opacity: .6; }
.hz-heading .hz-rule img { width: 34px; height: auto; }
.hz-heading p { margin-top: var(--space-4); }

/* buttons + link */
.hz-btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); height: 48px; padding: 0 var(--space-8); border: 1px solid transparent; border-radius: 0; font: 700 12px/16px var(--font-sans); letter-spacing: .16em; text-transform: uppercase; cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.hz-btn-primary { background: var(--olive); color: var(--on-olive); }
.hz-btn-primary:hover { background: var(--olive-deep); }
.hz-btn-outline { background: transparent; color: var(--ink); border-color: var(--line-strong); }
.hz-btn-outline:hover { border-color: var(--ink); }
.hz-btn-gold { background: var(--gold); color: var(--on-gold); }
.hz-btn-light { background: transparent; color: var(--on-charcoal); border-color: var(--on-charcoal); }
.hz-btn-sm { height: 36px; padding: 0 var(--space-6); }
.hz-link { display: inline-flex; align-items: center; gap: var(--space-3); color: var(--olive); font-weight: 700; font-size: 14px; letter-spacing: .04em; }
.hz-link svg { width: 36px; height: 8px; stroke: currentColor; transition: transform .25s; }
.hz-link:hover svg { transform: translateX(6px); }

/* header */
.hz-header { background: var(--surface); border-bottom: 1px solid var(--line); }
.hz-util { display: flex; justify-content: flex-end; align-items: center; gap: var(--space-4); height: 32px; font-size: 12px; color: var(--ink-subtle); }
.hz-util svg { width: 15px; height: 15px; }
.hz-util .sep { width: 1px; height: 12px; background: var(--line); }
.hz-headrow { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; height: 72px; }
.hz-nav { display: flex; gap: var(--space-8); font: 400 12px/16px var(--font-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--ink); }
.hz-nav.left { justify-content: flex-end; padding-right: var(--space-12); }
.hz-nav.right { justify-content: flex-start; padding-left: var(--space-12); }
.hz-nav a { padding: var(--space-2) 0; border-bottom: 1px solid transparent; }
.hz-nav a:hover, .hz-nav a[aria-current] { border-bottom-color: var(--olive); color: var(--olive); }
.hz-logo img { height: 60px; width: auto; }
[data-theme="dark"] .hz-logo img, [data-theme="dark"] .hz-logo-invert { filter: invert(1) brightness(1.05); }

/* hero */
.hz-hero { position: relative; height: 560px; overflow: hidden; background: var(--charcoal); }
.hz-hero > img { width: 100%; height: 100%; object-fit: cover; }
.hz-hero-copy { position: absolute; left: 0; right: 0; bottom: 0; padding: var(--space-32) 0 var(--space-12); background: linear-gradient(to top, var(--scrim), rgba(0,0,0,0)); color: var(--on-charcoal); }
.hz-hero-copy .hz-eyebrow { color: var(--gold); }
.hz-hero-copy h1 { font: 400 64px/68px var(--font-display); letter-spacing: -.01em; color: #fff; margin: 0 0 var(--space-4); max-width: 720px; }
.hz-hero-copy p { max-width: 520px; font-size: 18px; line-height: 30px; font-weight: 300; margin-bottom: var(--space-6); }
.hz-dots { position: absolute; right: var(--space-8); bottom: var(--space-12); display: flex; gap: var(--space-2); }
.hz-dots span { width: 8px; height: 8px; border-radius: 999px; background: rgba(255,255,255,.45); }
.hz-dots span.on { background: var(--gold); width: 24px; }

/* split feature */
.hz-split { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-16); align-items: center; }
.hz-split.flip .hz-split-media { order: -1; }
.hz-split-media img { width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.hz-split-media.arch img { border-radius: 0; }
.hz-split-media.line img { object-fit: contain; aspect-ratio: auto; max-height: 420px; margin: 0 auto; }
.hz-split-copy .hz-display, .hz-split-copy .hz-h1 { margin-bottom: var(--space-6); }
.hz-split-copy .hz-link { margin-top: var(--space-6); }

/* variety spotlight */
.hz-variety { display: grid; grid-template-columns: 1fr 300px 1fr; gap: var(--space-12); align-items: center; }
.hz-variety-img { position: relative; }
.hz-variety-img::before { content: ""; position: absolute; inset: 14% 2% 6%; border-radius: 999px; background: var(--paper-alt); }
.hz-variety-img img { position: relative; width: 100%; height: 380px; object-fit: contain; }
.hz-variety .hz-h2 { margin-bottom: var(--space-4); }
.hz-fact { border-top: 1px solid var(--line); padding-top: var(--space-4); margin-top: var(--space-4); }
.hz-fact dt { font: 700 11px/16px var(--font-sans); letter-spacing: .2em; text-transform: uppercase; color: var(--olive); }
.hz-fact dd { margin: var(--space-1) 0 0; font: 400 19px/26px var(--font-display); color: var(--ink); }

/* experience card */
.hz-exp-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-8); }
.hz-exp { background: var(--surface); border: 1px solid var(--line); padding: var(--space-8) var(--space-6); text-align: center; transition: box-shadow .25s, transform .25s; }
.hz-exp:hover { box-shadow: var(--shadow-card); transform: translateY(-2px); }
.hz-exp img { height: 120px; width: auto; margin: 0 auto var(--space-6); }
[data-theme="dark"] .hz-exp img { filter: brightness(1.6) saturate(.8); }
.hz-exp .hz-h3 { margin-bottom: var(--space-3); }
.hz-exp p { font-size: 14px; line-height: 22px; }
.hz-exp .hz-link { margin-top: var(--space-4); }

/* category tile */
.hz-tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-4); }
.hz-tile { position: relative; display: block; overflow: hidden; aspect-ratio: 3/4; background: var(--charcoal); }
.hz-tile img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.hz-tile:hover img { transform: scale(1.04); }
.hz-tile-label { position: absolute; left: 0; right: 0; bottom: 0; padding: var(--space-16) var(--space-6) var(--space-6); background: linear-gradient(to top, var(--scrim), rgba(0,0,0,0)); color: var(--on-charcoal); }
.hz-tile-label .hz-h2 { color: #fff; margin-bottom: var(--space-1); }
.hz-tile-label span { font: 700 11px/16px var(--font-sans); letter-spacing: .2em; text-transform: uppercase; color: var(--gold); }

/* checklist */
.hz-checklist { list-style: none; margin: 0; padding: 0; }
.hz-checklist li { position: relative; padding: var(--space-3) 0 var(--space-3) var(--space-8); border-bottom: 1px solid var(--line); color: var(--ink-muted); }
.hz-checklist li::before { content: ""; position: absolute; left: 0; top: 25px; width: 18px; height: 1px; background: var(--olive); }
.hz-checklist li::after { content: ""; position: absolute; left: 13px; top: 22px; width: 6px; height: 6px; border-top: 1px solid var(--olive); border-right: 1px solid var(--olive); transform: rotate(45deg); }
.hz-checklist.bare li { border-bottom: 0; padding-top: var(--space-1); padding-bottom: var(--space-1); }
.hz-checklist.bare li::before { top: 17px; } .hz-checklist.bare li::after { top: 14px; }
.hz-support { display: grid; grid-template-columns: 1fr 1px 1fr; gap: var(--space-12); max-width: 920px; margin: 0 auto; }
.hz-support > .divider { background: var(--olive-ink); opacity: .5; }
.hz-support h3 { padding-bottom: var(--space-3); margin-bottom: var(--space-2); border-bottom: 1px solid var(--ink); }

/* form */
.hz-form { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-6); }
.hz-field { display: flex; flex-direction: column; gap: var(--space-2); }
.hz-field.full { grid-column: 1 / -1; }
.hz-field label { font: 700 11px/16px var(--font-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--ink); }
.hz-field label i { font-style: normal; color: var(--olive); }
.hz-input { font: 400 16px/24px var(--font-sans); color: var(--ink); background: var(--surface); border: 1px solid var(--line-strong); border-radius: 2px; padding: 11px var(--space-4); }
.hz-input::placeholder { color: var(--ink-subtle); }
.hz-input:focus { outline: 2px solid var(--focus); outline-offset: 1px; border-color: var(--focus); }
textarea.hz-input { min-height: 120px; resize: vertical; }
.hz-choices { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.hz-chip { display: inline-flex; align-items: center; gap: var(--space-2); height: 36px; padding: 0 var(--space-4); border: 1px solid var(--line-strong); font-size: 14px; color: var(--ink); cursor: pointer; }
.hz-chip[aria-checked="true"] { background: var(--olive); border-color: var(--olive); color: var(--on-olive); }
.hz-help { font-size: 12px; line-height: 18px; color: var(--ink-subtle); }

/* footer */
.hz-footer { background: var(--charcoal); color: var(--on-charcoal-muted); font-size: 14px; line-height: 24px; }
.hz-footer-top { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: var(--space-12); padding: var(--space-16) 0 var(--space-12); }
.hz-footer h4 { font: 700 11px/16px var(--font-sans); letter-spacing: .2em; text-transform: uppercase; color: var(--on-charcoal); margin: 0 0 var(--space-4); }
.hz-footer .hz-logo-invert { height: 56px; width: auto; filter: invert(1); margin-bottom: var(--space-4); }
.hz-footer nav { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-2) var(--space-6); font: 400 12px/18px var(--font-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--on-charcoal); }
.hz-social { display: flex; gap: var(--space-4); color: var(--on-charcoal); margin-top: var(--space-4); }
.hz-social svg { width: 18px; height: 18px; }
.hz-footer-bar { background: var(--charcoal-deep); padding: var(--space-4) 0; font-size: 12px; }
.hz-footer-bar .hz-container { display: flex; justify-content: space-between; }

/* wordmark (typeset until a House of Zejd logo file is supplied) */
.hz-wordmark { display: inline-flex; flex-direction: column; align-items: center; color: var(--ink); line-height: 1; }
.hz-wordmark .of { font: italic 400 14px/16px var(--font-display); letter-spacing: .04em; color: var(--ink-muted); }
.hz-wordmark .z { font: 500 30px/30px var(--font-display); letter-spacing: .02em; }
.hz-wordmark img { width: 30px; height: auto; margin-top: 4px; }
.hz-footer .hz-wordmark { align-items: flex-start; color: var(--on-charcoal); margin-bottom: var(--space-4); }
.hz-footer .hz-wordmark .of { color: var(--on-charcoal-muted); }
.hz-footer .hz-wordmark img { filter: brightness(1.8); }

/* narrow container + centered intro */
.hz-narrow { max-width: 960px; margin: 0 auto; }
.hz-intro { text-align: center; max-width: 760px; margin: 0 auto; }
.hz-intro .hz-h1 { margin-bottom: var(--space-4); }
.hz-intro .hz-sub { font: 500 18px/26px var(--font-display); color: var(--ink); margin: 0 0 var(--space-3); }
.hz-sprig { display: block; width: 40px; height: auto; margin: var(--space-8) auto; }
.hz-chevron { display: block; width: 28px; height: 14px; margin: var(--space-8) auto 0; stroke: var(--olive-ink); fill: none; }
.hz-banner-img { width: 100%; height: 420px; object-fit: cover; }

/* experiences timeline */
.hz-timeline { position: relative; max-width: 1040px; margin: 0 auto; display: grid; grid-template-columns: 1fr 160px 1fr; row-gap: var(--space-4); }
.hz-tl-item { display: contents; }
.hz-tl-text { align-self: center; position: relative; }
.hz-tl-text h3 { font: 500 15px/22px var(--font-display); letter-spacing: .12em; text-transform: uppercase; color: var(--ink); margin: 0 0 var(--space-2); }
.hz-tl-text p { font-size: 17px; line-height: 29px; color: var(--ink-muted); }
.hz-tl-icon { display: flex; align-items: center; justify-content: center; height: 150px; }
.hz-tl-icon img { max-height: 120px; width: auto; }
[data-theme="dark"] .hz-tl-icon img { filter: brightness(1.6) saturate(.8); }
.hz-tl-item.left .hz-tl-text { grid-column: 1; text-align: right; padding-right: 96px; }
.hz-tl-item.left .hz-tl-icon { grid-column: 2; }
.hz-tl-item.right .hz-tl-icon { grid-column: 2; }
.hz-tl-item.right .hz-tl-text { grid-column: 3; padding-left: 96px; }
.hz-tl-text::after { content: ""; position: absolute; top: 11px; width: 72px; height: 1px; background: var(--olive-ink); opacity: .7; }
.hz-tl-item.left .hz-tl-text::after { right: 0; }
.hz-tl-item.right .hz-tl-text::after { left: 0; }

/* activity block */
.hz-activity { display: grid; grid-template-columns: 5fr 6fr; gap: var(--space-16); align-items: center; max-width: 1040px; margin: 0 auto; }
.hz-activity + .hz-activity { margin-top: var(--space-24); }
.hz-activity.flip .hz-activity-media { order: 2; }
.hz-activity-media img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.hz-activity .hz-h2 { margin-bottom: var(--space-4); }
.hz-activity .desc { font-size: 17px; line-height: 29px; }
.hz-practical { list-style: none; margin: var(--space-6) 0 0; padding: var(--space-4) 0 0; border-top: 1px solid var(--line); font-style: italic; color: var(--ink-subtle); font-size: 15px; line-height: 24px; }
.hz-practical li { padding: 2px 0; }
.hz-practical .loc { font-style: normal; color: var(--ink); margin-top: var(--space-2); }
.hz-practical .loc a { color: var(--olive); font-weight: 700; letter-spacing: .12em; font-size: 12px; text-transform: uppercase; border-bottom: 1px solid currentColor; margin-left: var(--space-2); }
.hz-activity .hz-link { margin-top: var(--space-6); }

/* gift category */
.hz-gifts { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-12) var(--space-8); max-width: 960px; margin: 0 auto; }
.hz-gift { text-align: center; }
.hz-gift-img { background: var(--surface); aspect-ratio: 4/3; display: flex; align-items: center; justify-content: center; overflow: hidden; margin-bottom: var(--space-6); }
.hz-gift-img img { width: 100%; height: 100%; object-fit: cover; }
.hz-gift .hz-h3 { font: 500 15px/22px var(--font-display); letter-spacing: .12em; text-transform: uppercase; margin-bottom: var(--space-3); }
.hz-gift p { font-size: 15px; line-height: 25px; max-width: 400px; margin: 0 auto var(--space-6); }

/* video feature */
.hz-video { position: relative; max-width: 960px; margin: 0 auto; aspect-ratio: 16/9; background: var(--charcoal); overflow: hidden; }
.hz-video img { width: 100%; height: 100%; object-fit: cover; opacity: .85; }
.hz-video button { position: absolute; inset: 0; margin: auto; width: 84px; height: 84px; border-radius: 999px; border: 1px solid var(--on-charcoal); background: var(--scrim); color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.hz-video button svg { width: 22px; height: 24px; margin-left: 4px; fill: currentColor; }
.hz-video figcaption { position: absolute; left: var(--space-6); bottom: var(--space-6); font: 700 11px/16px var(--font-sans); letter-spacing: .2em; text-transform: uppercase; color: var(--on-charcoal); }

/* subscribe */
.hz-subscribe { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-8); align-items: center; max-width: 960px; margin: 0 auto; }
.hz-subscribe form { display: flex; }
.hz-subscribe .hz-input { flex: 1; border-right: 0; border-radius: 0; height: 48px; }

/* forms v2 */
.hz-form-wrap { max-width: 880px; margin: 0 auto; }
.hz-form-head { text-align: center; margin-bottom: var(--space-12); }
.hz-form-head .hz-display { margin-bottom: var(--space-4); }
.hz-form-head .hz-h2 { margin-bottom: var(--space-3); }
.hz-form-head .title2 { font: 500 22px/30px var(--font-display); color: var(--ink); margin: var(--space-6) 0 0; }
.hz-form-head .title2 span { display: block; }
.hz-form-card { background: var(--surface); border: 1px solid var(--line); padding: var(--space-12); }
.hz-fs { border: 0; padding: 0; margin: 0 0 var(--space-12); }
.hz-fs:last-of-type { margin-bottom: var(--space-8); }
.hz-fs legend { font: 500 19px/26px var(--font-display); color: var(--ink); padding: 0; margin-bottom: var(--space-6); width: 100%; border-bottom: 1px solid var(--line); padding-bottom: var(--space-3); }
.hz-fs .hz-form { row-gap: var(--space-6); }
.hz-q { grid-column: 1 / -1; }
.hz-q > .qlabel { display: block; font: 700 11px/16px var(--font-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--ink); margin-bottom: var(--space-3); }
.hz-q > .qlabel i, .hz-field label i { font-style: normal; color: var(--olive); }
.hz-checks { display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-6); }
.hz-check { display: inline-flex; align-items: center; gap: var(--space-2); font-size: 15px; color: var(--ink); cursor: pointer; }
.hz-check input { width: 18px; height: 18px; margin: 0; accent-color: var(--olive); }
.hz-check .other { width: 180px; border: 0; border-bottom: 1px solid var(--line-strong); background: transparent; font: inherit; color: var(--ink); padding: 2px 4px; }
.hz-check .other:focus { outline: 2px solid var(--focus); outline-offset: 2px; }
.hz-consent { display: flex; flex-direction: column; gap: var(--space-3); margin-bottom: var(--space-8); }
.hz-consent .hz-check { align-items: flex-start; } .hz-consent .hz-check input { margin-top: 3px; }
.hz-form-actions { display: flex; align-items: center; gap: var(--space-6); flex-wrap: wrap; }
.hz-req { font-size: 12px; color: var(--ink-subtle); }
.hz-success { display: flex; gap: var(--space-4); align-items: flex-start; border: 1px solid var(--olive); background: var(--paper); padding: var(--space-6); color: var(--ink); }
.hz-success svg { flex: 0 0 22px; width: 22px; height: 22px; stroke: var(--olive); fill: none; stroke-width: 1.6; }
/* contact form as a table */
.hz-form-table { width: 100%; border-collapse: collapse; background: var(--surface); }
.hz-form-table th, .hz-form-table td { border: 1px solid var(--line-strong); padding: var(--space-4) var(--space-6); vertical-align: middle; text-align: left; }
.hz-form-table th { width: 32%; background: var(--paper-alt); font: 700 11px/16px var(--font-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--ink); }
.hz-form-table th i { font-style: normal; color: var(--olive); }
.hz-form-table tr.group th { background: var(--charcoal); color: var(--on-charcoal); font: 500 16px/22px var(--font-display); letter-spacing: .02em; text-transform: none; }
.hz-form-table .hz-input { width: 100%; border: 0; padding: 4px 0; background: transparent; }
.hz-form-table .hz-input:focus { outline-offset: 4px; }
.hz-contact-info { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-8); text-align: center; max-width: 960px; margin: 0 auto; }
.hz-contact-info dt { font: 700 11px/16px var(--font-sans); letter-spacing: .2em; text-transform: uppercase; color: var(--olive); margin-bottom: var(--space-2); }
.hz-contact-info dd { margin: 0; font: 400 19px/28px var(--font-display); color: var(--ink); }

/* placeholders (content Zejd has not supplied yet) */
.hz-ph { color: var(--ink-subtle); border-bottom: 1px dashed var(--line-strong); font-style: normal; }
.hz-ph-box { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-2); min-height: 280px; border: 1px dashed var(--line-strong); background: var(--paper-alt); color: var(--ink-subtle); font: 700 11px/16px var(--font-sans); letter-spacing: .16em; text-transform: uppercase; text-align: center; padding: var(--space-6); }
.hz-ph-box svg { width: 28px; height: 28px; stroke: var(--olive-ink); fill: none; stroke-width: 1.4; }

/* ===== homepage concept ===== */
.hz-hh { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: var(--space-16); min-height: 640px; padding: var(--space-16) 0; }
.hz-hh .hz-eyebrow { margin-bottom: var(--space-6); }
.hz-hh h1 { font: 400 76px/80px var(--font-display); letter-spacing: -.015em; color: var(--ink); margin: 0 0 var(--space-6); }
.hz-hh h1 em { color: var(--olive); }
.hz-hh .hz-lead { max-width: 460px; margin-bottom: var(--space-8); }
.hz-hh-ctas { display: flex; gap: var(--space-4); flex-wrap: wrap; }
.hz-hh-media { position: relative; height: 560px; }
.hz-hh-media .main { position: absolute; right: 0; top: 0; width: 78%; height: 100%; object-fit: cover; border-radius: 999px 999px 0 0; }
.hz-hh-media .inset { position: absolute; left: 0; bottom: 48px; width: 42%; aspect-ratio: 1; object-fit: cover; border: 8px solid var(--paper); }
.hz-hh-media .badge { position: absolute; left: 6%; top: 64px; width: 112px; height: 112px; border-radius: 999px; background: var(--gold); color: var(--on-gold); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; font: italic 400 15px/18px var(--font-display); }
.hz-hh-media .badge b { font: 700 10px/14px var(--font-sans); letter-spacing: .18em; font-style: normal; text-transform: uppercase; margin-top: 4px; }
.hz-pillars { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.hz-pillar { display: block; padding: var(--space-8) var(--space-6); border-right: 1px solid var(--line); transition: background .25s; }
.hz-pillar:last-child { border-right: 0; }
.hz-pillar:hover { background: var(--paper-alt); }
.hz-pillar .n { font: italic 400 15px/20px var(--font-display); color: var(--olive); }
.hz-pillar h3 { font: 400 26px/32px var(--font-display); color: var(--ink); margin: var(--space-2) 0; }
.hz-pillar p { font-size: 14px; line-height: 22px; margin: 0 0 var(--space-3); }
.hz-pillar .go { font: 700 11px/16px var(--font-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--olive); }
.hz-quote { text-align: center; max-width: 820px; margin: 0 auto; }
.hz-quote img { width: 150px; height: auto; margin: 0 auto var(--space-8); }
.hz-quote blockquote { margin: 0 0 var(--space-6); font: 400 38px/50px var(--font-display); color: var(--ink); }
.hz-quote blockquote em { color: var(--olive); }
.hz-quote p { max-width: 620px; margin: 0 auto var(--space-6); }
.hz-band-photo { position: relative; height: 520px; overflow: hidden; background: var(--charcoal); }
.hz-band-photo > img { width: 100%; height: 100%; object-fit: cover; }
.hz-band-photo .panel { position: absolute; top: 50%; left: max(var(--space-8), calc((100% - var(--container)) / 2 + var(--space-8))); transform: translateY(-50%); width: 440px; background: var(--paper); padding: var(--space-12); }
.hz-band-photo .panel .hz-display { font-size: 36px; line-height: 44px; margin-bottom: var(--space-4); }
.hz-band-photo .panel .hz-btn { margin-top: var(--space-6); }
.hz-exp-row { display: grid; grid-template-columns: repeat(5, 1fr); gap: var(--space-6); text-align: center; }
.hz-exp-row img { height: 110px; width: auto; margin: 0 auto var(--space-4); }
[data-theme="dark"] .hz-exp-row img { filter: brightness(1.6) saturate(.8); }
.hz-exp-row h3 { font: 500 14px/20px var(--font-display); letter-spacing: .12em; text-transform: uppercase; color: var(--ink); margin: 0; }
.hz-acts { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-8); }
.hz-act-card img { width: 100%; aspect-ratio: 4/5; object-fit: cover; margin-bottom: var(--space-6); }
.hz-act-card .hz-h2 { margin-bottom: var(--space-2); }
.hz-act-card p { font-size: 15px; line-height: 25px; }
.hz-act-card .meta { font-style: italic; color: var(--ink-subtle); font-size: 14px; margin-bottom: var(--space-4); }
.hz-gift-split { display: grid; grid-template-columns: 7fr 5fr; gap: var(--space-16); align-items: center; }
.hz-gift-split img { width: 100%; aspect-ratio: 7/5; object-fit: cover; }
.hz-gift-split ul { list-style: none; margin: var(--space-6) 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-2) var(--space-6); }
.hz-gift-split li { font: 400 17px/26px var(--font-display); color: var(--ink); border-bottom: 1px solid var(--line); padding: var(--space-2) 0; }
.hz-visit { display: grid; grid-template-columns: 3fr 2fr; gap: var(--space-12); align-items: stretch; }
.hz-visit .hz-video { max-width: none; }
.hz-visit dl { margin: 0; }
.hz-visit dl div { padding: var(--space-4) 0; border-bottom: 1px solid var(--line); }
.hz-visit dt { font: 700 11px/16px var(--font-sans); letter-spacing: .2em; text-transform: uppercase; color: var(--olive); }
.hz-visit dd { margin: var(--space-1) 0 0; font: 400 18px/26px var(--font-display); color: var(--ink); }
.hz-franchise-band { background: var(--charcoal); color: var(--on-charcoal-muted); display: grid; grid-template-columns: 1fr 1fr; }
.hz-franchise-band img { width: 100%; height: 100%; min-height: 420px; object-fit: cover; }
.hz-franchise-band .copy { padding: var(--space-16); align-self: center; max-width: 560px; }
.hz-franchise-band .hz-eyebrow { color: var(--gold); }
.hz-franchise-band .hz-display { color: var(--on-charcoal); margin-bottom: var(--space-4); }
.hz-franchise-band .hz-display em { color: var(--gold); }
.hz-franchise-band .hz-btn { margin-top: var(--space-6); }

@media (max-width: 860px) {
  .hz-container { padding: 0 var(--space-4); }
  .hz-timeline { grid-template-columns: 96px 1fr; }
  .hz-tl-item.left .hz-tl-icon, .hz-tl-item.right .hz-tl-icon { grid-column: 1; }
  .hz-tl-item.left .hz-tl-text, .hz-tl-item.right .hz-tl-text { grid-column: 2; text-align: left; padding: 0; }
  .hz-tl-text::after { display: none; }
  .hz-activity, .hz-gifts, .hz-subscribe, .hz-contact-info { grid-template-columns: 1fr; }
  .hz-hh, .hz-gift-split, .hz-visit, .hz-franchise-band, .hz-acts { grid-template-columns: 1fr; }
  .hz-hh { min-height: 0; } .hz-hh h1 { font-size: 46px; line-height: 52px; } .hz-hh-media { height: 420px; }
  .hz-pillars { grid-template-columns: 1fr 1fr; } .hz-pillar:nth-child(2) { border-right: 0; }
  .hz-exp-row { grid-template-columns: repeat(2, 1fr); }
  .hz-band-photo { height: auto; } .hz-band-photo > img { height: 300px; }
  .hz-band-photo .panel { position: static; transform: none; width: auto; padding: var(--space-8) var(--space-4); }
  .hz-quote blockquote { font-size: 28px; line-height: 38px; }
  .hz-franchise-band .copy { padding: var(--space-8) var(--space-4); }
  .hz-activity.flip .hz-activity-media { order: 0; }
  .hz-support { grid-template-columns: 1fr; } .hz-support > .divider { display: none; }
  .hz-form-card { padding: var(--space-6); }
  .hz-form-table th, .hz-form-table td { display: block; width: 100%; }
  .hz-section { padding: var(--space-16) 0; }
  .hz-split, .hz-variety, .hz-support, .hz-form, .hz-footer-top { grid-template-columns: 1fr; }
  .hz-exp-grid, .hz-tiles { grid-template-columns: 1fr; }
  .hz-nav { display: none; }
  .hz-hero { height: 480px; }
  .hz-hero-copy h1 { font-size: 40px; line-height: 46px; }
  .hz-display { font-size: 34px; line-height: 42px; }
}
.hz-variety-img::before { inset: auto; left: 50%; top: 52%; width: 92%; aspect-ratio: 1; transform: translate(-50%, -50%); border-radius: 50%; }
.hz-variety-img::before { display: none; }
