/* Hierarchical navigation, category pages, and case-study template styling. */
@media (min-width: 1021px) {
	.site-header__inner { gap: clamp(14px, 1.55vw, 24px); }
	.site-nav__list > li { position: relative; }
	.site-nav__list li.menu-item-has-children { position: relative; }
	.site-nav__list .submenu-toggle {
		display: inline-grid;
		width: 25px;
		height: 25px;
		place-items: center;
		padding: 0;
		border: 0;
		border-radius: 50%;
		color: #6d22b0;
		background: transparent;
		font-size: 18px;
		line-height: 1;
		cursor: pointer;
	}
	.site-nav__list .submenu-toggle:hover,
	.site-nav__list .submenu-toggle:focus-visible { background: #f4eafa; outline: none; }
	.site-nav__list .submenu-toggle span { transition: transform .18s ease; }
	.site-nav__list .submenu-toggle[aria-expanded="true"] span { transform: rotate(180deg); }
	.site-nav__list li.is-submenu-open > .sub-menu { display: block; }
	.site-nav__list .submenu-view-parent { display: none; }
	.site-nav__list .sub-menu {
		position: absolute;
		z-index: 50;
		top: calc(100% + 10px);
		left: -14px;
		display: none;
		min-width: 250px;
		max-width: 310px;
		margin: 0;
		padding: 9px;
		list-style: none;
		border: 1px solid #eee8f2;
		border-radius: 14px;
		background: #fff;
		box-shadow: 0 18px 42px rgba(32, 23, 68, .14);
	}
	.site-nav__list li:hover > .sub-menu,
	.site-nav__list li:focus-within > .sub-menu { display: block; }
	.site-nav__list .sub-menu li { position: relative; }
	.site-nav__list .sub-menu a {
		display: block;
		padding: 9px 11px;
		border-radius: 8px;
		font-size: 12px;
		line-height: 1.4;
	}
	.site-nav__list .sub-menu a:hover,
	.site-nav__list .sub-menu a:focus { background: #f7f2fc; }
	.site-nav__list .sub-menu .sub-menu { top: -10px; left: calc(100% + 5px); }
	.site-nav__list > li:nth-last-child(-n+2) .sub-menu .sub-menu { right: calc(100% + 5px); left: auto; }
	.site-nav__list > li:nth-last-child(-n+2) > .sub-menu { right: -8px; left: auto; }
	.hero { position: relative; display: block; min-height: 560px; padding-top: 82px; padding-bottom: 45px; }
	.hero__copy { width: min(51%, 610px); padding-right: 12px; }
	.hero__visual { position: absolute; top: 0; right: -22px; z-index: 1; width: 69%; height: 100%; min-height: 0; overflow: hidden; }
	.hero__visual img { width: 100%; height: 100%; max-height: none; object-fit: contain; }
	.hero__shape--mint { width: 65%; height: 72%; top: 5%; left: 26%; }
	.hero__shape--orange { width: 31%; height: 34%; right: -2%; top: 13%; }
	.hero__shape--violet { width: 32%; height: 34%; bottom: 0; left: 20%; }
}

.page-hero--split .page-hero__inner { display: grid; grid-template-columns: minmax(260px, .85fr) minmax(340px, 1.15fr); gap: 44px; align-items: center; }
.page-hero__visual { margin: 0; }
.page-hero__visual img { width: 100%; max-height: 330px; object-fit: cover; border-radius: 22px; box-shadow: 0 18px 45px rgba(40, 22, 72, .12); }
.page-hero__visual figcaption { margin-top: 8px; color: #777184; font-size: 11px; }
.page-breadcrumbs { margin-bottom: 18px; color: #6e687d; font-size: 12px; }
.page-breadcrumbs a { color: #6920ae; }
.page-breadcrumbs span { padding-inline: 7px; color: #a49cad; }
.hierarchy-section { margin: 42px 0 54px; }
.hierarchy-section > h2 { margin: 0 0 9px; color: #211744; font-size: clamp(25px, 3vw, 34px); letter-spacing: -.035em; }
.hierarchy-section > p { max-width: 760px; margin: 0 0 22px; color: #686276; }
.hierarchy-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 17px; }
.hierarchy-card { min-width: 0; overflow: hidden; border: 1px solid #ece6f0; border-radius: 16px; background: #fff; box-shadow: 0 9px 24px rgba(35, 20, 64, .045); }
.hierarchy-card__body { display: block; min-height: 100%; padding: 19px 20px; }
.hierarchy-card__image { width: calc(100% + 40px); height: 170px; margin: -19px -20px 16px; object-fit: cover; }
.hierarchy-card__eyebrow { display: block; margin-bottom: 7px; color: #858092; font-size: 10px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.hierarchy-card h3 { margin: 0 0 8px; color: #4f1688; font-size: 18px; line-height: 1.25; }
.hierarchy-card p { margin: 0; color: #686276; font-size: 13px; }
.hierarchy-card__children { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 15px; }
.hierarchy-card__children span { padding: 5px 9px; border-radius: 999px; color: #60467a; background: #f7f1fc; font-size: 10px; }
.hierarchy-card:hover { border-color: #d7c0ec; box-shadow: 0 14px 30px rgba(35, 20, 64, .085); transform: translateY(-2px); transition: .2s ease; }
.hierarchy-card__body:focus-visible { outline: 3px solid #9e62d2; outline-offset: -3px; }
.taxonomy-hero { padding: 58px 0 38px; background: linear-gradient(120deg, #f2e8ff, #edfaf4); }
.taxonomy-hero__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .88fr); gap: 38px; align-items: center; }
.taxonomy-hero h1 { margin: 0; color: #6c19c2; font-size: clamp(36px, 5vw, 58px); line-height: 1.08; letter-spacing: -.045em; }
.taxonomy-description { max-width: 780px; margin-top: 14px; color: #5b566b; }
.taxonomy-hero__visual { margin: 0; }
.taxonomy-hero__visual img { width: 100%; max-height: 270px; object-fit: cover; border: 6px solid rgba(255,255,255,.8); border-radius: 24px 24px 82px 24px; box-shadow: 0 18px 45px rgba(40, 22, 72, .12); }
.taxonomy-hero__visual figcaption { margin: 7px 4px 0; color: #777184; font-size: 10px; }
.taxonomy-tree { padding-top: 35px; }
.taxonomy-tree .hierarchy-card { position: relative; }
.taxonomy-depth { margin-top: 18px; padding-top: 16px; border-top: 1px solid #eee8f2; }
.taxonomy-depth h4 { margin: 0 0 10px; color: #777184; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.taxonomy-depth ul { display: flex; flex-wrap: wrap; gap: 7px; margin: 0; padding: 0; list-style: none; }
.taxonomy-depth a { display: block; padding: 5px 9px; border-radius: 999px; color: #60467a; background: #f7f1fc; font-size: 10px; }
.taxonomy-note { margin-top: 18px; color: #777184; font-size: 12px; }
.case-template-label { margin: 0 16px 16px; color: #9a4d0e; font-size: 11px; font-weight: 700; }
.case-sample-notice { margin: 0 0 28px; padding: 18px 20px; border: 1px solid #ffd59b; border-left: 5px solid #ff8c24; border-radius: 12px; color: #553819; background: #fff8ed; }
.case-sample-notice strong { display: block; color: #a94e04; font-size: 12px; letter-spacing: .07em; }
.case-sample-notice p { margin: 7px 0 0; }
.case-snapshot { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 22px 0 34px; }
.case-snapshot div { padding: 13px 14px; border: 1px solid #eee8f2; border-radius: 11px; background: #fff; }
.case-snapshot dt { color: #777184; font-size: 10px; }
.case-snapshot dd { margin: 4px 0 0; color: #241842; font-size: 13px; font-weight: 700; }
.single-case-content .entry-content { max-width: 860px; }
.single-case-content .entry-content h2 { padding-top: 10px; }
.single-case-content .entry-content h2::after { display: block; width: 42px; height: 3px; margin-top: 10px; border-radius: 2px; background: linear-gradient(90deg, #7b1ad8, #ff7628); content: ""; }

@media (max-width: 1020px) {
	.site-header__inner { position: relative; min-height: 76px; }
	.site-nav__toggle { display: flex; order: 3; width: 42px; height: 42px; flex: 0 0 42px; flex-direction: column; align-items: center; justify-content: center; gap: 5px; margin-left: 0; border: 1px solid #ece8f0; border-radius: 50%; background: #fff; }
	.site-nav { position: absolute; top: 100%; left: -22px; right: -22px; display: none; max-height: calc(100vh - 78px); overflow-y: auto; padding: 12px 22px 22px; background: #fff; box-shadow: 0 18px 30px rgba(25, 15, 47, .12); }
	.site-nav.is-open { display: block; }
	.site-nav__list { display: block; }
	.site-nav__list li { display: block; border-bottom: 1px solid #f1edf4; }
	.site-nav__list li.menu-item-has-children { position: relative; }
	.site-nav__list a { display: block; padding: 10px 6px; font-size: 13px; }
	.site-nav__list .sub-menu { position: static; display: block; min-width: 0; max-width: none; margin: 0; padding: 0 0 5px 14px; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
	.site-nav__list .sub-menu a { padding: 8px 6px; color: #5f5870; font-size: 12px; }
	.site-nav__list .sub-menu .sub-menu { padding-left: 14px; }
	.site-nav__list li.menu-item-has-children > a { padding-right: 46px; }
	.site-nav__list .submenu-toggle {
		position: absolute;
		top: 4px;
		right: 3px;
		z-index: 1;
		width: 34px;
		height: 34px;
		border: 1px solid #eee8f2;
		background: #fff;
	}
	.site-nav.has-submenu-controls .site-nav__list .sub-menu { display: none; }
	.site-nav.has-submenu-controls .site-nav__list li.is-submenu-open > .sub-menu { display: block; }
	.site-nav__list .submenu-view-parent { display: block; }
	.site-nav__list .submenu-view-parent > a {
		color: #6c19c2;
		font-weight: 750;
	}
	.hero { position: relative; display: block; min-height: 0; padding-top: 38px; padding-bottom: 22px; }
	.hero__copy { width: min(100%, 660px); }
	.hero__visual { position: relative; top: auto; right: auto; width: 100%; height: clamp(220px, 49vw, 420px); min-height: 0; margin-top: 6px; }
	.hero__visual img { width: 100%; height: 100%; max-height: none; object-fit: contain; }
	.page-hero--split .page-hero__inner { grid-template-columns: 1fr 1.1fr; gap: 26px; }
	.taxonomy-hero__inner { grid-template-columns: 1fr 1fr; gap: 24px; }
	.hierarchy-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
	.site-header__inner { min-height: 70px; }
	.site-nav { left: -14px; right: -14px; max-height: calc(100vh - 70px); }
	.page-hero--split .page-hero__inner { grid-template-columns: 1fr; gap: 20px; }
	.page-hero__visual img { max-height: 220px; }
	.taxonomy-hero__inner { grid-template-columns: 1fr; gap: 20px; }
	.taxonomy-hero__visual img { max-height: 215px; }
	.hierarchy-section { margin: 28px 0 38px; }
	.hierarchy-grid { grid-template-columns: 1fr; gap: 11px; }
	.hierarchy-card__body { padding: 16px; }
	.hierarchy-card__image { width: calc(100% + 32px); height: 180px; margin: -16px -16px 13px; }
	.case-snapshot { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
