@layer gc-components {
.gc-shell{
	width: 100%;
	margin-right: auto;
	margin-left: auto;
}

.gc-shell--content{
	max-width: var(--gc-content);
}

.gc-shell--wide, .gc-shell--wide{
	max-width: var(--gc-wide);
}

.gc-shell--reading{
	max-width: var(--gc-reading);
}

.gc-block, .gc-page-intro, .gc-grid, .gc-empty, .gc-disclosure{
	width: 100%;
	max-width: var(--gc-shell-width);
	margin-right: auto;
	margin-left: auto;
}

/* A bleed band spans the viewport; only its inner column carries the inset.
   Declared beside `.gc-block` at the components layer, directly after the
   `.gc-block` width rule it overrides -- same layer, higher specificity,
   no cross-layer fight. The skin repeats the same declaration unlayered
   for the two hero bands, so they can never regress to the 1200px box. */
.gc-block.gc-block--bleed, section.gc-block--bleed{
	width: 100%;
	max-width: none;
	margin-right: 0;
	margin-left: 0;
	border-radius: 0;
}

/* Nested blocks fill their shell: a shell is the single source of section
   width, so grids/intros inside one must not re-constrain or overflow.
   Bleed bands are never nested: if a band ends up inside a shell, move it
   out in the template instead of un-breaking it here. */
.gc-shell .gc-block:not(.gc-block--bleed), .gc-shell .gc-page-intro, .gc-shell .gc-grid, .gc-shell .gc-empty, .gc-shell .gc-disclosure{
	max-width: none;
}

/* Hero geometry lives in generator-base.css (one contract, one grid owner).
   What stays here is what a component layer owns: the shared type scale and
   measure, so no hero on the site can drift from another. */

.gc-page-intro__copy{
	min-width: 0;
}

.gc-home-hero .gc-lede{
	max-width: 680px;
}

.gc-hero__copy{
	min-width: 0;
}

.gc-eyebrow, .gc-card__label{
	margin: 0;
	color: var(--gc-accent);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0;
	line-height: 1.3;
	text-transform: uppercase;
}

.gc-breadcrumbs{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	margin: 0;
	color: var(--gc-faint);
	font-size: 0.72rem;
	font-weight: 800;
	line-height: 1.3;
	text-transform: none;
}

.gc-breadcrumbs a{
	color: var(--gc-muted);
	text-decoration: none;
}

.gc-breadcrumbs a:hover{
	color: var(--gc-accent);
}

.gc-breadcrumbs__separator{
	color: var(--gc-line);
}

.gc-home-hero h1, .gc-page-intro h1{
	max-width: var(--gc-hero-h1-measure);
	margin: 12px 0 18px;
	color: var(--gc-ink);
	font-size: var(--gc-hero-h1-size);
	font-weight: 800;
	line-height: 1.04;
	letter-spacing: -0.015em;
	text-wrap: balance;
}

.gc-lede{
	max-width: var(--gc-hero-lede-measure);
	margin: 0;
	color: var(--gc-muted);
	font-size: 1.02rem;
	line-height: 1.62;
}

.gc-actions{
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 28px;
}

.gc-button{
	display: inline-flex;
	min-height: 46px;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border-radius: var(--gc-radius-md);
	padding: 0 18px;
	font-size: 0.82rem;
	font-weight: 800;
	text-decoration: none;
}

.gc-button-primary{
	border: 2px solid var(--gc-accent);
	background: var(--gc-accent);
	color: var(--gc-ink);
	box-shadow: 0 6px 18px color-mix(in srgb, var(--gc-accent) 20%, transparent);
}

.gc-hero__copy .gc-button, .gc-calculator-actions__controls .gc-button{
	margin-top: 18px;
}

.gc-button + .gc-button{
	margin-left: 10px;
}

.gc-button-primary:visited{
	color: var(--gc-surface);
}

.gc-button-primary:hover, .gc-button-primary:focus-visible{
	border-color: var(--gc-navy);
	background: var(--gc-navy);
	color: var(--gc-surface);
}

.gc-button-secondary{
	border: 1px solid var(--gc-line);
	background: var(--gc-surface);
	color: var(--gc-navy);
}

.gc-button-secondary:hover{
	border-color: var(--gc-accent);
	color: var(--gc-accent);
}

.gc-button-tertiary{
	border: 1px solid var(--gc-line);
	background: var(--gc-paper);
	color: var(--gc-ink);
}

.gc-button-tertiary:hover{
	border-color: var(--gc-caution);
	color: var(--gc-warning);
}

/* Disabled buttons (F-006): native disabled and aria-disabled links share one muted treatment. */
.gc-button:disabled, .gc-button[aria-disabled="true"]{
	border-color: var(--gc-line);
	background: var(--gc-paper);
	color: var(--gc-faint);
	cursor: not-allowed;
	opacity: 0.75;
}

.gc-button:disabled:hover, .gc-button[aria-disabled="true"]:hover{
	border-color: var(--gc-line);
	background: var(--gc-paper);
	color: var(--gc-faint);
}

.gc-icon{
	width: 16px;
	height: 16px;
	color: var(--gc-accent);
	stroke-width: 2.2;
}

/* Geometry lives in the generator skin's layout contract, which must beat
   the unlayered critical <style> in header.php. Keep only vertical rhythm
   here: column width and gutters come from there. */
.gc-block--section{
	padding-bottom: 96px;
}

.gc-home-main{
	padding-top: 54px;
}

.gc-home-main .gc-block--section{
	margin-bottom: 32px;
	border: 1px solid var(--gc-line);
	border-radius: var(--gc-radius-lg);
	background: var(--gc-surface);
	box-shadow: 0 10px 28px rgba(23, 40, 50, 0.035);
	padding-top: 54px;
}

.gc-home-main .gc-block--section:nth-of-type(2){
	background: var(--gc-paper);
}

.gc-block--section > .gc-grid, .gc-home-grid{
	max-width: none;
	margin-right: 0;
	margin-left: 0;
	padding-right: 0;
	padding-left: 0;
}

.gc-section-heading{
	max-width: 760px;
	margin-bottom: 38px;
}

.gc-section-heading-row{
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	max-width: none;
}

.gc-block--section .gc-section-heading h2{
	margin: 10px 0 0;
	color: var(--gc-ink);
	font-size: clamp(1.7rem, 2.4vw, 2rem);
	font-weight: 700;
	line-height: 1.08;
	letter-spacing: 0;
}

.gc-block--section h3{
	margin: 14px 0 8px;
	color: var(--gc-navy);
	font-size: 1.05rem;
	line-height: 1.25;
}

.gc-block--section p{
	color: var(--gc-muted);
}

.gc-section-heading{
	max-width: 850px;
}

> .gc-text-link{
	margin-top: 18px;
}

.gc-grid--cards, .gc-grid--guides{
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.gc-card{
	display: flex;
	flex-direction: column;
	border: 1px solid var(--gc-line);
	border-radius: var(--gc-radius-md);
	background: var(--gc-surface);
	padding: 26px;
	box-shadow: 0 1px 0 rgba(23, 40, 50, 0.025);
	transition: border-color 160ms ease;
}

.gc-card:hover{
	border-color: rgba(44, 104, 118, 0.42);
	box-shadow: 0 1px 0 rgba(23, 40, 50, 0.025);
}

.gc-card__body, .gc-card > p:not(.gc-card__label){
	color: var(--gc-muted);
	font-size: 0.84rem;
	line-height: 1.6;
}

.gc-card__title{
	margin: 12px 0 8px;
	color: var(--gc-navy);
	font-size: 1.24rem;
	line-height: 1.2;
}

.gc-card__topline{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.gc-card__topline span{
	border: 1px solid var(--gc-line);
	border-radius: var(--gc-radius-sm);
	background: var(--gc-paper);
	padding: 4px 8px;
	color: var(--gc-faint);
	font-size: 0.68rem;
	font-weight: 800;
	white-space: nowrap;
}

.gc-grid--guides .gc-card{
	min-height: 258px;
}

.gc-grid--guides .gc-card__title{
	font-size: 1.6rem;
	line-height: 1.08;
}

.gc-card__title a{
	color: inherit;
	text-decoration: none;
}

.gc-card__title a:hover{
	color: var(--gc-accent);
}

.gc-card__meta{
	margin: 20px 0 0;
	color: var(--gc-faint);
	font-size: 0.72rem;
}

.gc-card__meta + .gc-card__meta{
	margin-top: 8px;
}

.gc-card__action, .gc-text-link{
	display: inline-flex;
	align-items: center;
	gap: 5px;
	margin-top: 14px;
	color: var(--gc-accent);
	font-size: 0.78rem;
	font-weight: 800;
	text-decoration: none;
}

.gc-card__action{
	min-height: 44px;
	margin-top: auto;
}

.gc-card__action:hover, .gc-text-link:hover{
	color: var(--gc-navy);
}

.gc-grid{
	gap: 0;
	border-top: 1px solid var(--gc-line);
	border-bottom: 1px solid var(--gc-line);
}

.gc-card__title{
	font-size: 1.08rem;
	font-weight: 700;
}

.gc-section-heading{
	max-width: var(--gc-content);
	margin-right: auto;
	margin-left: auto;
	padding-top: 0;
}

.gc-pagination{
	max-width: var(--gc-content);
	margin: 0 auto;
	padding: 0 var(--gc-gutter) 72px;
}

.gc-pagination .nav-links{
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}

.gc-pagination .page-numbers{
	display: inline-flex;
	min-width: 44px;
	min-height: 44px;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--gc-line);
	border-radius: var(--gc-radius-sm);
	padding: 0 12px;
	background: var(--gc-surface);
	color: var(--gc-navy);
	font-size: 0.82rem;
	font-weight: 800;
	text-decoration: none;
}

.gc-pagination .page-numbers.current, .gc-pagination .page-numbers:hover{
	border-color: var(--gc-accent);
	background: var(--gc-tint);
	color: var(--gc-navy);
}

.gc-list-meta{
	max-width: var(--gc-content);
	margin: 0 auto 20px;
	padding: 0 var(--gc-gutter);
	color: var(--gc-muted);
	font-size: 0.9rem;
}

.gc-page-intro{
	display: block;
	padding-block: var(--gc-hero-pad-block) 40px;
}

.gc-page-intro__copy{
	max-width: var(--gc-hero-copy-measure);
}

p:not(.gc-card__label){
	margin: 10px 0 0;
	color: var(--gc-muted);
	font-size: 0.9rem;
	line-height: 1.55;
}

p:not(.gc-card__label){
	max-width: 760px;
	margin: 6px 0 0;
	color: var(--gc-muted);
	font-size: 0.84rem;
	line-height: 1.5;
}

.gc-button{
	flex: 0 0 auto;
}

p:not(.gc-card__label){
	margin: 10px 0 0;
	color: var(--gc-muted);
	font-size: 0.88rem;
	line-height: 1.55;
}

p:not(.gc-card__label){
	max-width: 700px;
	margin: 10px 0 0;
	color: var(--gc-muted);
	font-size: 0.88rem;
	line-height: 1.55;
}

a.gc-button-primary{
	color: var(--gc-surface);
}

a.gc-button-primary:hover, a.gc-button-primary:visited{
	color: var(--gc-surface);
}

/* Article/guide content element system: tables, lists, checklists, display math.
   Post bodies render bare <table>/<ul> markup, so the theme owns their styling
   here instead of per-post fixes. */
.gc-detail__main table{
	width: 100%;
	border-collapse: collapse;
	margin: 1.5rem 0;
	font-size: 0.88rem;
	line-height: 1.6;
}

.gc-detail__main th, .gc-detail__main td{
	padding: 0.7rem 0.8rem;
	border: 1px solid var(--gc-line);
	text-align: left;
	vertical-align: top;
}

.gc-detail__main thead th{
	background: var(--gc-tint);
	color: var(--gc-navy);
	font-weight: 800;
	white-space: nowrap;
}

.gc-detail__main tbody tr:nth-child(even){
	background: rgba(23, 40, 50, 0.025);
}

.gc-detail__main ul{
	margin: 1rem 0;
	padding-left: 1.4rem;
}

.gc-detail__main li + li{
	margin-top: 0.45rem;
}

/* Checklist lists carry their own boxes; drop the native bullets. */
.gc-detail__main li:has( > input[type="checkbox"]){
	list-style: none;
}

.gc-detail__main li > input[type="checkbox"]{
	margin-right: 0.55rem;
	accent-color: var(--gc-accent);
}

/* Display-math paragraphs rendered by MathJax. */
.gc-detail__main .mjx-container[jax="CHTML"][display="true"]{
	margin: 1.2rem 0;
	overflow-x: auto;
	overflow-y: hidden;
}

/* Article related-articles: three-column card grid. */
.gc-article-related{
	max-width: var(--gc-content);
	margin: 0 auto;
	padding: 44px var(--gc-gutter) 80px;
	border-top: 1px solid var(--gc-line);
}

.gc-article-related .gc-section-heading{
	margin-bottom: 24px;
}

.gc-article-related__grid{
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.gc-card--article .gc-card__title{
	font-size: 1.05rem;
	line-height: 1.3;
}

@media (max-width: 900px) {
	.gc-article-related__grid{
		grid-template-columns: 1fr;
	}
}

.gc-section-heading{
	margin-bottom: 0;
}

.gc-section-heading > p:not(.gc-card__label){
	max-width: 680px;
	margin: 12px 0 0;
	color: var(--gc-muted);
	font-size: 0.88rem;
	line-height: 1.55;
}

.gc-grid{
	margin-top: 24px;
	padding: 0;
}

.gc-card{
	min-height: 250px;
}

.gc-calculator-disclaimer{
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 36px;
	padding: 18px 0 40px;
	border-top: 1px solid var(--gc-line);
	color: var(--gc-faint);
}

.gc-calculator-disclaimer__icon{
	flex: 0 0 16px;
	margin-top: 2px;
	color: var(--gc-muted);
}

.gc-calculator-disclaimer__text{
	max-width: none;
	color: var(--gc-faint);
	font-size: 0.68rem;
	line-height: 1.55;
}

.gc-grid{
	padding: 0 var(--gc-gutter) 72px;
}

p:not(.gc-card__label){
	margin: 10px 0 0;
	color: var(--gc-muted);
	font-size: 0.88rem;
	line-height: 1.55;
}

p:not(.gc-card__label){
	max-width: 760px;
	margin: 0;
	color: var(--gc-muted);
	font-size: 0.9rem;
	line-height: 1.6;
}

.gc-section-heading{	max-width: none;
	margin-right: 0;
	margin-left: 0;
	text-align: left;
}

.gc-grid{
	margin-bottom: 30px;
}

.gc-grid:last-child{
	margin-bottom: 0;
}

.gc-methodology-page{
	max-width: var(--gc-shell-width);
	margin: 0 auto;
	padding: 0 var(--gc-gutter) 80px;
}

.gc-methodology-section{
	border-top: 1px solid var(--gc-line);
	padding: 30px 0 0;
}

.gc-methodology-section + .gc-methodology-section{
	margin-top: 46px;
}

.gc-methodology-section__heading{
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 22px;
}

.gc-methodology-section__heading h2{
	max-width: 760px;
	margin: 8px 0 0;
	color: var(--gc-ink);
	font-size: 1.72rem;
	line-height: 1.16;
}

.gc-methodology-flow{
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	border-top: 1px solid var(--gc-line);
	border-bottom: 1px solid var(--gc-line);
}

.gc-methodology-step{
	min-width: 0;
	padding: 22px 24px 24px;
	border-left: 1px solid var(--gc-line);
}

.gc-methodology-step:first-child{
	border-left: 0;
}

.gc-methodology-step__number{
	display: block;
	color: var(--gc-accent);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0;
}

.gc-methodology-step h3, .gc-methodology-definition h3{
	margin: 12px 0 8px;
	color: var(--gc-navy);
	font-size: 1.05rem;
	line-height: 1.2;
}

.gc-methodology-step p, .gc-methodology-definition p, .gc-methodology-editorial-evidence p, .gc-methodology-note{
	margin: 0;
	color: var(--gc-muted);
	font-size: 0.88rem;
	line-height: 1.6;
}

.gc-methodology-definitions{
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 42px;
}

.gc-methodology-definition{
	border-top: 1px solid var(--gc-line);
	padding: 18px 0 20px;
}

.gc-methodology-editorial-evidence{
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.gc-methodology-editorial-evidence > div{
	min-width: 0;
	border-top: 2px solid var(--gc-accent);
	padding-top: 14px;
}

.gc-methodology-editorial-evidence strong{
	display: block;
	margin-bottom: 8px;
	color: var(--gc-navy);
	font-size: 0.95rem;
}

.gc-methodology-note{
	max-width: 820px;
	margin-top: 24px;
	color: var(--gc-faint);
	font-size: 0.78rem;
}

.gc-methodology-actions{
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 42px;
}

p:not(.gc-card__label){
	max-width: 720px;
	margin: 0;
	color: var(--gc-muted);
	font-size: 0.9rem;
	line-height: 1.6;
}

.gc-topic-nav{
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
	max-width: var(--gc-content);
	margin: 0 auto 28px;
	padding: 0 var(--gc-gutter);
}

.gc-topic-nav a{
	min-height: 44px;
	padding: 8px 0;
	color: var(--gc-muted);
	font-size: 0.82rem;
	font-weight: 800;
	text-decoration: none;
}

.gc-topic-nav a:hover, .gc-topic-nav a.is-current{
	color: var(--gc-ink);
	border-bottom: 2px solid var(--gc-accent);
}

.gc-empty{
	padding: 24px;
	color: var(--gc-muted);
}

.gc-disclosure{
	padding: 14px var(--gc-gutter) 72px;
	color: var(--gc-faint);
	font-size: 0.72rem;
}

.gc-guide-toc{
	align-self: start;
	position: sticky;
	top: 24px;
	border-top: 2px solid var(--gc-accent);
	background: var(--gc-paper);
	padding-top: 14px;
}

.gc-guide-toc h2{
	margin: 0 0 14px;
	color: var(--gc-navy);
	font-size: 1.25rem;
	line-height: 1.25;
}

.gc-guide-toc ol{
	display: grid;
	gap: 8px;
	margin: 0;
	padding: 14px 0 0;
	list-style: none;
}

.gc-guide-toc a{
	color: var(--gc-accent);
	font-size: 0.82rem;
	font-weight: 700;
	line-height: 1.45;
	text-decoration: none;
}

.gc-guide-toc a{
	display: block;
	border-left: 2px solid transparent;
	padding: 3px 0 3px 10px;
}

.gc-guide-toc a:hover, .gc-guide-toc a:focus-visible, .gc-guide-toc a.is-active{
	border-left-color: var(--gc-accent);
	color: var(--gc-navy);
}

.gc-detail__main, .gc-content-narrow{
	color: var(--gc-body-copy);
	font-size: 1rem;
	line-height: 1.75;
}

.gc-detail__main h2, .gc-content-narrow h2{
	margin: 28px 0 10px;
	color: var(--gc-navy);
	font-size: 1.45rem;
	line-height: 1.2;
}

.gc-content-narrow{
	max-width: var(--gc-reading);
	margin: 0 auto;
	padding: 0 var(--gc-gutter) 80px;
}

.gc-auth-form{
	display: grid;
	max-width: 500px;
	gap: 14px;
	border: 1px solid var(--gc-line);
	border-radius: var(--gc-radius-md);
	background: var(--gc-surface);
	padding: 24px;
}

.gc-auth-layout{
	display: grid;
	grid-template-columns: minmax(0, 500px) minmax(280px, 1fr);
	gap: 22px;
	max-width: var(--gc-content);
	margin: 0 auto;
	padding: 0 var(--gc-gutter) 80px;
}

.gc-auth-layout--single{
	grid-template-columns: minmax(0, 620px);
	justify-content: start;
}

.gc-auth-layout__main{
	min-width: 0;
	color: var(--gc-body-copy);
}

.gc-auth-layout__main > p:first-child{
	margin-top: 0;
}

.gc-auth-layout .gc-auth-form{
	max-width: none;
}

.gc-auth-context{
	height: max-content;
	border: 1px solid var(--gc-line);
	border-top: 4px solid var(--gc-accent);
	border-radius: var(--gc-radius-md);
	background: var(--gc-tint);
	box-shadow: 0 8px 22px rgba(23, 40, 50, 0.035);
	padding: 24px;
}

.gc-auth-context h2{
	margin: 10px 0 0;
	color: var(--gc-ink);
	font-size: 1.28rem;
	line-height: 1.2;
}

.gc-auth-context p:not(.gc-card__label){
	margin: 10px 0 0;
	color: var(--gc-muted);
	font-size: 0.88rem;
	line-height: 1.55;
}

.gc-auth-context__list{
	display: grid;
	gap: 10px;
	margin: 16px 0 0;
	padding: 0;
	list-style: none;
}

.gc-auth-context__list li{
	margin: 0;
	border-top: 1px solid var(--gc-line);
	padding-top: 10px;
	color: var(--gc-muted);
	font-size: 0.82rem;
	line-height: 1.5;
}

.gc-auth-context__list li:first-child{
	border-top: 0;
	padding-top: 0;
}

.gc-auth-form label{
	display: grid;
	gap: 6px;
	color: var(--gc-navy);
	font-size: 0.8rem;
	font-weight: 700;
}

.gc-auth-form input:not([type="checkbox"]){
	width: 100%;
	border: 1px solid var(--gc-line);
	border-radius: var(--gc-radius-sm);
	background: var(--gc-paper);
	padding: 10px 12px;
	color: var(--gc-ink);
}

.gc-auth-form input[type="hidden"]{
	display: none;
}

.gc-auth-form .gc-checkbox-label{
	display: flex;
	grid-template-columns: none;
	align-items: flex-start;
	gap: 8px;
	color: var(--gc-muted);
	font-weight: 500;
}

.gc-auth-form .gc-checkbox-label input{
	margin-top: 5px;
}

.gc-auth-status{
	min-height: 1.5em;
	color: var(--gc-positive);
	font-size: 0.8rem;
}

.gc-auth-status.is-error{
	color: var(--gc-negative);
}

.gc-content-narrow li{
	margin: 10px 0;
}

.gc-card--tool{
	border-top-color: var(--gc-line);
}

a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
	outline: 3px solid var(--gc-focus);
	outline-offset: 3px;
}

@media (max-width: 1040px) {
	.gc-grid--cards, .gc-grid--guides{
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.gc-auth-layout{
		grid-template-columns: 1fr;
	}

}

.gc-text-link{
	align-self: center;
	margin: 0;
	padding: 14px 16px;
	white-space: nowrap;
}

@media (max-width: 1040px) {

	.gc-text-link{
		padding-top: 0;
	}
}

@media (max-width: 900px) {

	.gc-guide-toc{
		position: static;
		margin: 0 0 28px;
	}

}

@media (max-width: 760px) {
	.gc-home-grid .gc-card:nth-child(n + 4){
		display: none;
	}

	.gc-home-hero h1, .gc-page-intro h1{
		font-size: var(--gc-hero-h1-size-mobile);
	}

	.gc-button{
		justify-self: start;
	}

	.gc-block--section, .gc-page-intro, .gc-grid, .gc-methodology-page, .gc-content-narrow, .gc-auth-layout{
		padding-right: var(--gc-gutter-mobile);
		padding-left: var(--gc-gutter-mobile);
	}

	.gc-block--section .gc-home-grid{
		padding-right: 0;
		padding-left: 0;
	}

	.gc-grid{
		border-bottom: 0;
	}

	.gc-section-heading-row{
		display: block;
	}

	.gc-section-heading-row .gc-text-link{
		margin-top: 12px;
	}

	.gc-grid--cards, .gc-grid--guides, .gc-methodology-flow, .gc-methodology-definitions, .gc-methodology-editorial-evidence{
		grid-template-columns: 1fr;
	}

	.gc-methodology-section + .gc-methodology-section{
		margin-top: 36px;
	}

	.gc-methodology-section__heading h2{
		font-size: 1.42rem;
	}

	.gc-methodology-step{
		border-top: 1px solid var(--gc-line);
		border-left: 0;
	}

	.gc-methodology-step:first-child{
		border-top: 0;
	}

	.gc-methodology-definitions{
		column-gap: 0;
	}

	.gc-methodology-editorial-evidence{
		gap: 0;
	}

	.gc-methodology-editorial-evidence > div{
		border-top: 1px solid var(--gc-line);
		border-top-color: var(--gc-line);
		padding: 18px 0;
	}

	.gc-methodology-editorial-evidence > div:first-child{
		border-top: 0;
	}

	.gc-card__topline{
		display: grid;
		align-items: start;
		justify-content: stretch;
		gap: 8px;
	}

	.gc-card__topline span{
		justify-self: start;
		white-space: normal;
	}

}
.gc-relations-subtitle{ font-size: 1.35rem; font-weight: 800; letter-spacing: 0; margin: 0 0 18px; color: var(--gc-ink); }
.gc-grid.gc-grid--cards.gc-relations-grid{ display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 20px; padding: 0 0 32px; }
@media (max-width: 900px) { .gc-grid.gc-grid--cards.gc-relations-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }}
@media (max-width: 560px) { .gc-grid.gc-grid--cards.gc-relations-grid{ grid-template-columns: 1fr; }}
.gc-calculator-category-nav{ margin: 0 0 36px; }

/* Container queries: grids respond to their actual container (sidebar,
   embed, narrow pattern columns), not just the viewport. Viewport media
   rules below stay as the base behavior; these only collapse earlier
   where the container is genuinely narrow. */
.gc-block--section, .gc-article-related, .gc-calculator-relations, .gc-calculator-directory, .gc-shell--wide{
	container-type: inline-size;
}

@container (max-width: 1020px) {
	.gc-grid--cards, .gc-grid--guides, .gc-article-related__grid, .gc-grid.gc-grid--cards.gc-relations-grid{
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}}

@container (max-width: 700px) {
	.gc-grid--cards, .gc-grid--guides, .gc-article-related__grid, .gc-grid.gc-grid--cards.gc-relations-grid{
		grid-template-columns: 1fr;
	}}

/* Article featured image: native responsive thumbnail between hero and body. */
.gc-article-figure{ max-width: var(--gc-content); margin: 28px auto 0; padding: 0 var(--gc-gutter); }
.gc-article-figure img{ display: block; width: 100%; height: auto; border: 1px solid var(--gc-line); border-radius: var(--gc-radius-lg); }

/* Search form: single branded pattern reused on 404, search and widgets. */
.gc-search-form{ max-width: 560px; margin: 20px auto 0; }
.gc-search-form__label{ display: block; margin-bottom: 8px; font-size: 0.78rem; font-weight: 800; color: var(--gc-muted); }
.gc-search-form__row{ display: flex; gap: 10px; }
.gc-search-form__input{ flex: 1; min-width: 0; min-height: 46px; border: 1px solid var(--gc-line); border-radius: var(--gc-radius-md); background: var(--gc-surface); padding: 0 14px; color: var(--gc-ink); }
.gc-search-form__input:focus{ outline: 2px solid var(--gc-focus); outline-offset: 1px; border-color: var(--gc-focus); }

/* Language switcher: quiet uppercase codes, never competing with the CTA. */
.gc-lang-switcher{ display: inline-flex; align-items: center; gap: 2px; }
.gc-lang-switcher__link, .gc-lang-switcher__current{ display: inline-flex; min-height: 44px; align-items: center; padding: 0 8px; font-size: 0.74rem; font-weight: 800; letter-spacing: 0.04em; text-decoration: none; }
.gc-lang-switcher__link{ color: var(--gc-muted); }
.gc-lang-switcher__link:hover{ color: var(--gc-accent); }
.gc-lang-switcher__current{ color: var(--gc-surface); border-bottom: 2px solid var(--gc-accent); }

/* Error page: one narrow centered panel, vertically settled between header and footer. */
.gc-error-page{ display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 62vh; padding-top: 40px; padding-bottom: 64px; text-align: center; }
.gc-error-page__code{ margin: 6px 0 0; color: var(--gc-navy); font-size: clamp(4.5rem, 12vw, 7.5rem); font-weight: 800; line-height: 1; letter-spacing: -0.03em; }
.gc-error-page h1{ margin-top: 10px; }
.gc-error-page .gc-lede{ max-width: 560px; margin-right: auto; margin-left: auto; }
.gc-error-page .gc-search-form{ width: 100%; margin-right: auto; margin-left: auto; }
.gc-error-page__links{ display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 28px; }
}
