/* ==========================================================================
   OIC Horizon — inner-page components (hz-*). Every menu page is built from
   these blocks, so all pages share one look.
   ========================================================================== */

/* Hero extras ------------------------------------------------------------- */
.crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 22px; padding: 0; font-size: .86rem; color: #A9C7B4; }
.crumbs li + li::before { content: "/"; margin-right: 6px; opacity: .5; }
.crumbs a { color: #DCEBE1; text-decoration: none; }
.crumbs a:hover { color: var(--gold); }
.crumbs [aria-current] { color: var(--white); font-weight: 600; }
.page-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 28px 0 0; }
.page-hero::before {
	content: ""; position: absolute; right: -80px; bottom: -120px; width: 420px; height: 420px; z-index: -1;
	border-radius: 50%; border: 60px solid rgba(245, 183, 42, .08);
}
.page-hero--image::before { display: none; }

/* Closing CTA on inner pages */
.join--page { padding-top: clamp(56px, 6vw, 96px); }
.join__actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; flex: none; }
.join a:not(.btn) { color: var(--green-950); font-weight: 700; }
.btn--outline-dark { border-color: var(--green-900); color: var(--green-900); background: transparent; }
.btn--outline-dark:hover { background: var(--green-900); color: var(--white); }
.join .btn--gold { background: var(--green-900); color: var(--white); }

/* Sections ------------------------------------------------------------------ */
.page-body > * + * { margin-top: 0; }
.hz-section {
	padding-block: clamp(56px, 5vw + 24px, 104px);
	padding-inline: max(var(--gutter), calc((100% - var(--wrap)) / 2));
	background: var(--white);
}
.page-body > .hz-section:nth-child(even) { background: var(--sand); }
.hz-section--narrow { padding-inline: max(var(--gutter), calc((100% - 860px) / 2)); }
/* Vertical rhythm inside sections (overrides the generic .entry-content spacing). */
.page-body :is(h2, h3, h4) { margin-top: 0; }
.page-body .hz-section > * { margin-bottom: 0; }
.page-body .hz-section > * + * { margin-top: 1em; }
.page-body .hz-section > * + :is(h2, h3, h4) { margin-top: 1.6em; }
.page-body .hz-section > :is(.hz-head, .hz-grid, .hz-split, .hz-accordion, .hz-people, .hz-stats, .hz-note, .wp-block-image, .wp-block-buttons, .hz-timeline, .hz-table) + *,
.page-body .hz-section > * + :is(.hz-grid, .hz-split, .hz-accordion, .hz-people, .hz-stats, .hz-note, .wp-block-image, .wp-block-buttons, .hz-timeline, .hz-table) { margin-top: 32px; }
.page-body .hz-head > * + * { margin-top: 12px; }
.page-body .hz-card > * + * { margin-top: 0; }
.page-body .hz-split__col > * + * { margin-top: 16px; }
.hz-section--dark {
	background: var(--green-900) !important; color: #CFE3D6;
	background-image: radial-gradient(circle at 90% 10%, rgba(22, 137, 79, .55), transparent 50%) !important;
}
.hz-section--dark h2, .hz-section--dark h3, .hz-section--dark strong { color: var(--white); }
.hz-section--dark a:not(.wp-block-button__link) { color: var(--gold); }
.hz-section--dark .hz-eyebrow { color: var(--gold); }

.hz-head { max-width: 760px; }
.hz-head > * { margin: 0; }
.hz-head > * + * { margin-top: 12px; }
.hz-eyebrow {
	display: flex; align-items: center; gap: .5em;
	font-size: .78rem !important; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--green-500);
}
.hz-eyebrow::before { content: ""; width: 22px; height: 2px; background: currentColor; border-radius: 2px; flex: none; }
.hz-section h2, .hz-title { font-size: clamp(1.7rem, 1.1rem + 1.8vw, 2.5rem); font-weight: 700; }
.hz-lead, .hz-lead p { font-size: 1.15rem; color: var(--muted); }
.hz-group-title { font-size: 1.5rem !important; padding-top: 12px; }

/* Prose inside sections */
.page-body p, .page-body li { max-width: 75ch; }
.page-body .hz-grid p, .page-body .hz-grid li { max-width: none; }
.page-body ul, .page-body ol { padding-left: 1.25em; }
.page-body li + li { margin-top: .35em; }
.page-body h3 { font-size: 1.3rem; }
.page-body h4 { font-size: 1.08rem; }
.page-body a { font-weight: 600; }

/* Grids & cards --------------------------------------------------------------- */
.hz-grid { display: grid; gap: 20px; grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); align-items: stretch; }
.hz-grid--1 { --cols: 1; }
.hz-grid--2 { --cols: 2; }
.hz-grid--3 { --cols: 3; }
.hz-grid--4 { --cols: 4; }
.hz-grid--5 { --cols: 5; }
.hz-grid > * { margin: 0 !important; }
.hz-grid--single { max-width: 820px; }

.hz-card {
	display: flex; flex-direction: column; gap: 12px; min-width: 0;
	background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg);
	padding: 28px 26px; transition: box-shadow .3s, transform .3s var(--ease);
}
.page-body > .hz-section:nth-child(odd) .hz-card { background: var(--sand); border-color: transparent; }
.hz-card:hover { box-shadow: var(--shadow); }
.hz-card > * { margin: 0 !important; }
.hz-card h3 { font-size: 1.3rem; }
.hz-card h3 a { color: var(--ink); text-decoration: none; }
.hz-card h3 a:hover { color: var(--green-500); }
.hz-card .hz-eyebrow { margin-bottom: -4px !important; }
.hz-card p, .hz-card li { font-size: .97rem; }
.hz-card__link { margin-top: auto !important; padding-top: 6px; }
.hz-card__link a { display: inline-flex; align-items: center; gap: .4em; color: var(--green-700); font-weight: 700; text-decoration: none; }
.hz-card__link a::after { content: "→"; transition: transform .2s var(--ease); }
.hz-card__link a:hover::after { transform: translateX(4px); }
.hz-card__media { margin: -28px -26px 6px !important; border-radius: var(--radius-lg) var(--radius-lg) 0 0; overflow: hidden; aspect-ratio: 16 / 10; background: var(--green-100); }
.hz-card__media img { width: 100%; height: 100%; object-fit: cover; }
.hz-card--icon .hz-card__media { aspect-ratio: auto; margin: 0 !important; width: 64px; height: 64px; border-radius: 16px; background: var(--white); }
.hz-card--icon .hz-card__media img { object-fit: contain; padding: 8px; }

.hz-card--dark, .page-body .hz-section .hz-card.hz-card--dark { background: var(--green-900); border-color: var(--green-900); color: #CFE3D6; }
.hz-card--dark h3, .hz-card--dark h3 a, .hz-card--dark strong { color: var(--white); }
.hz-card--dark .hz-eyebrow { color: var(--gold); }
.hz-card--dark .hz-card__link a, .hz-card--dark a { color: var(--gold); }

.hz-card--stat { gap: 4px; }
.hz-card--stat h3 { font-size: clamp(2rem, 1.4rem + 1.8vw, 2.8rem); color: var(--green-700); letter-spacing: -.03em; }

/* Key facts list inside product cards */
.hz-facts { list-style: none; padding: 14px 0 0 !important; margin: 0; border-top: 1px solid var(--line); display: grid; gap: 8px; }
.hz-facts li { margin: 0 !important; padding-left: 26px; position: relative; }
.hz-facts li::before {
	content: ""; position: absolute; left: 0; top: .35em; width: 16px; height: 16px; border-radius: 50%;
	background: var(--green-100) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230A5A34' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center / 10px no-repeat;
}

/* Disclosure / accordion ------------------------------------------------------- */
.page-body details { border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); }
.page-body details + details { margin-top: 10px; }
.page-body summary {
	cursor: pointer; list-style: none; padding: 16px 52px 16px 20px; position: relative;
	font-weight: 700; color: var(--ink); font-family: var(--font-display);
}
.page-body summary::-webkit-details-marker { display: none; }
.page-body summary::after {
	content: ""; position: absolute; right: 20px; top: 50%; width: 9px; height: 9px; margin-top: -7px;
	border-right: 2px solid var(--green-700); border-bottom: 2px solid var(--green-700); transform: rotate(45deg); transition: transform .2s;
}
.page-body details[open] > summary::after { transform: rotate(-135deg); margin-top: -2px; }
.page-body details[open] > summary { border-bottom: 1px solid var(--line); }
.page-body details > :not(summary) { margin: 14px 20px; }
.page-body details > :last-child { margin-bottom: 18px; }
.hz-card details { background: transparent; }
.hz-card details summary { padding-block: 12px; font-size: .95rem; }
.hz-accordion { display: grid; gap: 10px; max-width: 900px; }
.hz-accordion details + details { margin-top: 0; }

/* Notes, tables, images --------------------------------------------------------- */
.hz-note { padding: 20px 24px; border-radius: var(--radius); background: var(--gold-100); border-left: 4px solid var(--gold); color: #4A3A06; }
.hz-note > * { margin: 0; max-width: none !important; }
.hz-note > * + * { margin-top: .6em; }
.hz-table { overflow-x: auto; border-radius: var(--radius); border: 1px solid var(--line); background: var(--white); }
.hz-table table { width: 100%; border-collapse: collapse; font-size: .94rem; min-width: 520px; }
.hz-table th, .hz-table td { text-align: left; padding: 12px 16px; border-bottom: 1px solid var(--line); vertical-align: top; }
.hz-table tr:first-child td, .hz-table th { background: var(--green-900); color: var(--white); font-weight: 700; }
.hz-table tr:nth-child(even) td { background: var(--sand); }
.hz-table tr:last-child td { border-bottom: 0; }
.page-body .wp-block-image { margin: 0; }
.page-body .wp-block-image img { border-radius: var(--radius-lg); }
.hz-img--feature { max-width: 980px; margin-inline: auto !important; }
.hz-img--feature img { box-shadow: var(--shadow); }
.hz-img--wide img { width: 100%; max-height: 520px; object-fit: cover; }
.hz-img--portrait img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.page-body figcaption { font-size: .88rem; color: var(--muted); margin-top: 10px; text-align: left; }

/* Split rows ----------------------------------------------------------------- */
.hz-split { display: grid; grid-template-columns: 1.2fr 1fr; gap: clamp(28px, 5vw, 72px); align-items: center; }
.hz-split--media { grid-template-columns: .8fr 1.2fr; }
.hz-split > * { margin: 0 !important; }
.hz-split__col > * { margin: 0; }
.hz-split__col > * + * { margin-top: 16px; }

/* Stats ----------------------------------------------------------------------- */
.hz-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.hz-stats > * { margin: 0 !important; }
.hz-stat { padding: 24px; border-radius: var(--radius-lg); background: var(--white); border: 1px solid var(--line); }
.hz-stat:first-child { background: var(--green-900); border-color: var(--green-900); }
.hz-stat:first-child .hz-stat__num { color: var(--gold); }
.hz-stat:first-child .hz-stat__label { color: #BFD6C7; }
.hz-stat > * { margin: 0; }
.hz-stat__num { font-family: var(--font-display); font-weight: 800; font-size: clamp(1.9rem, 1.3rem + 1.6vw, 2.6rem); line-height: 1; color: var(--green-800); letter-spacing: -.03em; }
.hz-stat__label { font-size: .9rem; color: var(--muted); margin-top: 6px !important; }

/* Timeline -------------------------------------------------------------------- */
.hz-timeline { list-style: none; padding: 0 !important; margin: 0; max-width: 860px; position: relative; }
.hz-timeline::before { content: ""; position: absolute; left: 118px; top: 8px; bottom: 8px; width: 2px; background: var(--line); }
.hz-timeline li { display: grid; grid-template-columns: 100px 1fr; gap: 36px; padding: 0 0 28px; margin: 0 !important; max-width: none; position: relative; }
.hz-timeline li::after { content: ""; position: absolute; left: 112px; top: 6px; width: 14px; height: 14px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 4px var(--gold-100); }
.hz-tl-year { font-family: var(--font-display); font-weight: 800; color: var(--green-700); font-size: 1.1rem; text-align: right; }
.hz-tl-body strong { display: block; font-family: var(--font-display); font-size: 1.15rem; color: var(--ink); margin-bottom: 2px; }

/* People ------------------------------------------------------------------------ */
.hz-people { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.hz-people > * { margin: 0 !important; }
.hz-people img { width: 100%; aspect-ratio: 232 / 300; object-fit: cover; border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); transition: transform .3s var(--ease), box-shadow .3s; }
.hz-people .wp-block-image:hover img { transform: translateY(-4px); box-shadow: var(--shadow); }

/* Publications -------------------------------------------------------------------- */
.hz-pub .hz-card__media { aspect-ratio: 3 / 4; background: var(--white); }
.hz-pub .hz-card__media img { object-fit: contain; }
.hz-kind { display: inline-block; margin-left: 8px; padding: 2px 8px; border-radius: 999px; background: var(--green-100); color: var(--green-800); font-size: .72rem; font-weight: 700; letter-spacing: .04em; }

/* Branches -------------------------------------------------------------------------- */
.hz-branch { padding: 0; overflow: hidden; gap: 0; }
.hz-branch > * { margin: 0 !important; }
.hz-branch > :not(.hz-map) { padding-inline: 26px; }
.hz-branch h3 { padding-top: 22px; }
.hz-map iframe { display: block; width: 100%; height: 240px; border: 0; background: var(--green-100); }
.hz-branch-meta { list-style: none; padding: 12px 26px 4px !important; display: grid; gap: 10px; }
.hz-branch-meta li { display: grid; grid-template-columns: 70px 1fr; gap: 12px; margin: 0 !important; font-size: .95rem; }
.hz-branch-meta b { font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); padding-top: 3px; }
.hz-phones { padding: 8px 26px 24px !important; }
.hz-phones table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.hz-phones td { padding: 8px 0; border-top: 1px solid var(--line); vertical-align: top; }
.hz-phones td:first-child { color: var(--muted); width: 45%; padding-right: 12px; }
.hz-phones a { white-space: nowrap; }

/* Region directory (Contact) */
.hz-hub-list { list-style: none; padding: 0 !important; margin: 0; display: grid; gap: 0; }
.hz-hub-list li { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; margin: 0 !important; border-top: 1px solid var(--line); font-size: .93rem; }
.hz-hub-list a { white-space: nowrap; }

/* Shop catalog ------------------------------------------------------------------------ */
.hz-filter { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.hz-filter button {
	padding: 9px 18px; border-radius: 999px; border: 1px solid var(--line); background: var(--white);
	color: var(--ink); font-weight: 600; font-size: .92rem; transition: background-color .2s, color .2s, border-color .2s;
}
.hz-filter button:hover { border-color: var(--green-500); }
.hz-filter button[aria-pressed="true"] { background: var(--green-700); border-color: var(--green-700); color: var(--white); }
.hz-filter__count { margin-left: auto; color: var(--muted); font-size: .9rem; }
.hz-product .hz-price { font-family: var(--font-display); font-weight: 700; color: var(--green-700); font-size: 1.05rem; }
.hz-product.is-hidden { display: none; }
.hz-product--logo .hz-card__media { background: var(--white); }
.hz-product--logo .hz-card__media img { object-fit: contain; padding: 18px 40px; }

/* Buttons block ----------------------------------------------------------------------- */
.page-body .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.page-body .wp-block-button__link {
	display: inline-flex; align-items: center; gap: .5em; padding: .85em 1.45em; border-radius: 999px;
	background: var(--green-700); color: var(--white); font-weight: 700; text-decoration: none; border: 2px solid transparent;
}
.page-body .wp-block-button__link:hover { background: var(--green-800); color: var(--white); }
.page-body .is-style-outline .wp-block-button__link { background: transparent; border-color: var(--green-700); color: var(--green-700); }
.hz-section--dark .wp-block-button__link { background: var(--gold); color: var(--green-950); }
.hz-section--dark .wp-block-button__link:hover { background: #FFC845; color: var(--green-950); }

/* Responsive ---------------------------------------------------------------------------- */
@media (max-width: 1100px) {
	.hz-grid--4, .hz-grid--5 { --cols: 3; }
	.hz-people { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
	.hz-grid--3, .hz-grid--4, .hz-grid--5 { --cols: 2; }
	.hz-split, .hz-split--media { grid-template-columns: 1fr; }
	.hz-people { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.hz-grid { --cols: 1 !important; }
	.hz-stats { grid-template-columns: 1fr 1fr; }
	.hz-timeline::before { left: 7px; }
	.hz-timeline li { grid-template-columns: 1fr; gap: 4px; padding-left: 34px; }
	.hz-timeline li::after { left: 0; }
	.hz-tl-year { text-align: left; }
	.hz-filter__count { margin-left: 0; width: 100%; }
	.page-hero::before { display: none; }
}
