/* ==========================================================================
   Landing pages + thank-you. Tokens: main.css :root (logo palette only).
   ========================================================================== */

/* ---------- 1 · hero + quiz ---------- */
.gf-lph { position: relative; padding-block: calc(var(--header-h) + 48px) var(--s-9); overflow: hidden; }
.gf-lph__bg { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.gf-lph__bg::before {
	content: ""; position: absolute; inset: 0;
	background: repeating-linear-gradient(to bottom, transparent 0 55px, rgba(51, 52, 60, .05) 55px 56px);
	-webkit-mask: radial-gradient(110% 90% at 70% 40%, #000 20%, transparent 75%); mask: radial-gradient(110% 90% at 70% 40%, #000 20%, transparent 75%);
}
.gf-lph__bg::after { content: ""; position: absolute; inset-inline-end: -10%; top: 10%; width: 60%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(191, 156, 89, .2), transparent 62%); }
.gf-lph__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--gutter); align-items: center; }
.gf-lph__copy { grid-column: 1 / span 6; }
.gf-lph__stage { grid-column: 8 / span 5; }
.gf-lph__title { font-size: clamp(3rem, 6.6vw, 7rem); line-height: .95; letter-spacing: -.025em; margin-block: var(--s-5) var(--s-6); }
.gf-lph__lead { max-width: 36ch; font-size: 1.2rem; color: var(--brand); }
.gf-lph__lead b { font-weight: 400; color: var(--gold-ink); }
.gf-lph__trust { display: grid; grid-template-columns: repeat(3, auto); justify-content: start; margin-top: var(--s-7); border-block: 1px solid var(--rule); }
.gf-lph__trust li { display: grid; gap: 2px; padding: 16px 0; padding-inline-end: 28px; }
.gf-lph__trust li + li { padding-inline-start: 28px; border-inline-start: 1px solid var(--rule); }
.gf-lph__trust strong { font-family: var(--f-display); font-weight: 400; font-size: 1.9rem; line-height: 1; color: var(--ink); }
.gf-lph__trust li:first-child strong { color: var(--gold-ink); }
.gf-lph__trust span { font-size: .88rem; color: var(--muted); }
.gf-lph__guarantee { display: inline-flex; align-items: center; gap: 8px; margin-top: var(--s-5); font-size: 1rem; color: var(--ink); }
.gf-lph__guarantee .gf-icon { color: var(--gold-ink); stroke-width: 2.2; }

.gf-quiz {
	position: relative; background: var(--sheet); border-radius: 18px; padding: 26px 28px 20px;
	box-shadow: 0 0 0 1px rgba(51, 52, 60, .06), 0 50px 90px -40px rgba(51, 52, 60, .45);
}
.gf-quiz::before { /* stacked-paper hint */
	content: ""; position: absolute; inset: 14px -10px -12px 10px; z-index: -1; border-radius: 18px; background: var(--sheet);
	box-shadow: 0 0 0 1px rgba(51, 52, 60, .06); transform: rotate(2deg);
}
.gf-quiz__head { display: flex; align-items: center; gap: 10px; font-size: 1.05rem; color: var(--ink); }
.gf-quiz__head .gf-mark { height: 26px; }
.gf-quiz__head small { margin-inline-start: auto; font-size: .9rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.gf-quiz__bar { height: 3px; margin-block: 16px 22px; background: var(--rule); border-radius: 3px; overflow: hidden; }
.gf-quiz__bar span { display: block; height: 100%; background: var(--gold); transform: scaleX(0); transform-origin: right; transition: transform .6s var(--ease); }
.gf-quiz__q { min-height: 250px; display: flex; flex-direction: column; }
.gf-quiz__q[hidden], .gf-quiz__result[hidden] { display: none; }
.gf-quiz__n { font-size: .85rem; letter-spacing: .06em; color: var(--gold-ink); }
.gf-quiz__text { font-family: var(--f-display); font-size: clamp(1.5rem, 2.2vw, 1.95rem); line-height: 1.2; color: var(--ink); margin-top: 8px; }
.gf-quiz__hint { font-size: .95rem; color: var(--muted); margin-top: 8px; }
.gf-quiz__answers { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: auto; padding-top: 24px; }
.gf-quiz__a {
	display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 60px; border-radius: 14px;
	font-size: 1.15rem; color: var(--ink); background: var(--paper); border: 1.5px solid var(--rule);
	transition: background-color .25s, border-color .25s, transform .2s var(--ease);
}
.gf-quiz__a:hover { border-color: var(--ink); }
.gf-quiz__a:active { transform: scale(.97); }
.gf-quiz__a--yes { background: var(--gold); border-color: var(--gold); }
.gf-quiz__a--yes:hover { background: var(--gold-hi); border-color: var(--gold-hi); }
.gf-quiz__a .gf-icon { stroke-width: 2.4; }
.gf-quiz__result { min-height: 250px; }
.gf-quiz__verdict { font-family: var(--f-display); font-size: 1.45rem; line-height: 1.25; color: var(--ink); outline: none; }
.gf-quiz__found { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.gf-quiz__found li { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: var(--r-pill); background: var(--gold-soft); color: var(--gold-ink); font-size: .92rem; }
.gf-quiz__found li::before { content: "✓"; }
.gf-quiz .gf-form { background: none; box-shadow: none; padding: 0; transform: none; margin-top: 8px; }
.gf-quiz .gf-form__head { display: none; }
.gf-quiz__foot { display: flex; justify-content: space-between; align-items: center; margin-top: 16px; padding-top: 14px; border-top: 1px dashed var(--rule); font-size: .92rem; }
.gf-quiz__back { min-height: 36px; color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.gf-quiz__skip { min-height: 36px; display: inline-flex; align-items: center; margin-inline-start: auto; color: var(--muted); text-decoration: underline; text-underline-offset: 4px; }
.gf-quiz.is-result .gf-quiz__skip { display: none; }

/* ---------- 2 · why ---------- */
.gf-why { padding-block: var(--s-9); background: var(--sheet); border-block: 1px solid var(--rule); }
.gf-why__head { display: grid; grid-template-columns: 1.2fr 1fr; gap: var(--s-4) var(--s-7); align-items: end; margin-bottom: var(--s-7); }
.gf-why__head .gf-eyebrow { grid-column: 1 / -1; }
.gf-why__lead { color: var(--muted); font-size: 1.1rem; max-width: 40ch; }
.gf-why__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.gf-why__card {
	position: relative; padding: 24px 22px 26px; border-radius: 14px; background: var(--paper); border: 1px solid transparent;
	transition: transform .5s var(--ease), border-color .4s, background-color .4s, box-shadow .5s var(--ease);
}
.gf-why__card:hover { transform: translateY(-4px); background: var(--sheet); border-color: var(--rule); box-shadow: 0 24px 40px -30px rgba(51, 52, 60, .45); }
.gf-why__n { font-family: var(--f-display); font-size: 2.6rem; line-height: 1; color: transparent; -webkit-text-stroke: 1px var(--gold-ink); }
.gf-why__card h3 { font-size: 1.35rem; margin-top: 18px; color: var(--ink); }
.gf-why__card p { font-size: .98rem; line-height: 1.6; color: var(--brand); margin-top: 8px; }
.gf-why__card.is-match { background: var(--gold-soft); border-color: var(--gold); }
.gf-why__card.is-match::after { content: "✓ ענית כן"; position: absolute; top: 18px; inset-inline-end: 18px; font-size: .8rem; padding: 4px 10px; border-radius: var(--r-pill); background: var(--gold); color: var(--ink); }
.gf-why__cta { display: flex; align-items: center; justify-content: space-between; gap: var(--s-5); margin-top: var(--s-7); padding-top: var(--s-6); border-top: 1px solid var(--rule); }
.gf-why__cta p { font-family: var(--f-display); font-size: 1.6rem; color: var(--ink); }

/* ---------- 3 · decision tree ---------- */
.gf-tree { position: relative; background: var(--ink); color: #fff; padding-block: var(--s-10); overflow: hidden; isolation: isolate; }
.gf-tree::before { content: ""; position: absolute; inset: 0; z-index: -1; background: url(../img/dark-foil.webp) center / cover; opacity: .35; }
.gf-tree::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to left, rgba(51, 52, 60, .95) 30%, rgba(51, 52, 60, .6)); }
.gf-tree__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--gutter); align-items: center; }
.gf-tree__copy { grid-column: 1 / span 5; }
.gf-tree__title { font-size: clamp(2.4rem, 4.6vw, 4.6rem); line-height: 1.02; margin-top: var(--s-5); }
.gf-tree__text { margin-top: var(--s-6); font-size: 1.12rem; line-height: 1.75; color: rgba(255, 255, 255, .8); max-width: 44ch; }
.gf-tree__text b { font-weight: 400; color: var(--gold-hi); }
.gf-tree__diagram { grid-column: 7 / span 6; position: relative; padding-bottom: 96px; }
.gf-tree__node { position: relative; z-index: 1; padding: 20px 22px; border-radius: 14px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .16); }
.gf-tree__node--root { max-width: 380px; margin-inline: auto; text-align: center; font-size: 1.12rem; }
.gf-tree__node--root span { display: block; font-size: .85rem; color: var(--gold-hi); margin-bottom: 4px; letter-spacing: .08em; }
.gf-tree__lines { display: block; width: 72%; height: 90px; margin-inline: auto; fill: none; stroke: var(--gold); stroke-width: 1.5; overflow: visible; }
.gf-tree__branches { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.gf-tree__branches .gf-tree__node { display: grid; gap: 4px; text-align: center; }
.gf-tree__branches small { font-size: .95rem; color: rgba(255, 255, 255, .7); }
.gf-tree__branches b { font-family: var(--f-display); font-weight: 400; font-size: 1.9rem; line-height: 1.1; }
.gf-tree__branches span { font-size: 1rem; color: rgba(255, 255, 255, .8); }
.gf-tree__node--no { background: rgba(191, 156, 89, .16); border-color: var(--gold); }
.gf-tree__node--no b { color: var(--gold-hi); }
.gf-tree__stamp { position: absolute; inset-inline-start: 50%; margin-inline-start: -118px; bottom: 0; top: auto; }

/* ---------- 4 · steps ---------- */
.gf-steps { padding-block: var(--s-10) var(--s-9); }
.gf-steps__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--gutter); align-items: start; }
.gf-steps__head { grid-column: 1 / span 5; position: sticky; top: calc(var(--header-h) + 40px); }
.gf-steps__head .gf-h2 { margin-top: var(--s-4); }
.gf-steps__lead { margin-block: var(--s-5) var(--s-6); color: var(--muted); font-size: 1.1rem; max-width: 34ch; }
.gf-steps__track { grid-column: 7 / span 6; position: relative; }
.gf-steps__rail { position: absolute; inset-inline-start: 21px; top: 22px; bottom: 22px; width: 2px; background: var(--rule); }
.gf-steps__rail span { position: absolute; inset: 0; background: var(--gold); transform-origin: top; }
.gf-steps__list { display: grid; gap: 18px; }
.gf-steps__item { position: relative; display: grid; grid-template-columns: 44px 1fr; gap: 20px; }
.gf-steps__dot {
	position: relative; z-index: 1; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center;
	background: var(--sheet); border: 1.5px solid var(--rule); font-size: 1.05rem; color: var(--muted); transition: background-color .4s, border-color .4s, color .4s;
}
.gf-steps__item.is-lit .gf-steps__dot, html:not(.gf-motion) .gf-steps__dot { background: var(--gold); border-color: var(--gold); color: var(--ink); }
.gf-steps__body { padding: 20px 22px; border-radius: 14px; background: var(--sheet); border: 1px solid var(--rule); }
.gf-steps__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.gf-steps__top h3 { font-size: 1.45rem; color: var(--ink); }
.gf-steps__top span { flex: none; font-size: .85rem; padding: 5px 12px; border-radius: var(--r-pill); background: var(--paper); border: 1px solid var(--rule); }
.gf-steps__body dl { margin: 14px 0 0; display: grid; gap: 8px; }
.gf-steps__body dl > div { display: grid; grid-template-columns: 58px 1fr; gap: 10px; align-items: baseline; }
.gf-steps__body dt { font-size: .82rem; letter-spacing: .06em; color: var(--muted); }
.gf-steps__body .is-us dt { color: var(--gold-ink); }
.gf-steps__body dd { margin: 0; font-size: 1rem; line-height: 1.55; color: var(--brand); }
.gf-steps__body .is-you dd { color: var(--ink); }

/* ---------- 5 · fee receipt ---------- */
.gf-fee { padding-block: var(--s-9) var(--s-10); background: var(--sheet); border-top: 1px solid var(--rule); }
.gf-fee__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--gutter); align-items: center; }
.gf-fee__copy { grid-column: 1 / span 6; }
.gf-fee__copy .gf-h2 { margin-top: var(--s-4); }
.gf-fee__text { margin-top: var(--s-5); font-size: 1.15rem; line-height: 1.75; color: var(--brand); max-width: 42ch; }
.gf-fee__text b { font-weight: 400; color: var(--ink); background: linear-gradient(transparent 62%, rgba(217, 192, 142, .55) 62%); }
.gf-receipt {
	grid-column: 8 / span 5; position: relative; padding: 28px 30px 38px; background: var(--paper); border-radius: 16px 16px 0 0;
	box-shadow: 0 40px 80px -40px rgba(51, 52, 60, .45); rotate: 1.2deg; /* not transform: the reveal animates transform */
	-webkit-mask: linear-gradient(#000, #000) top / 100% calc(100% - 12px) no-repeat, conic-gradient(from 135deg at top, #000 90deg, transparent 0) bottom / 20px 12px repeat-x;
	mask: linear-gradient(#000, #000) top / 100% calc(100% - 12px) no-repeat, conic-gradient(from 135deg at top, #000 90deg, transparent 0) bottom / 20px 12px repeat-x;
}
.gf-receipt__head { display: flex; align-items: center; gap: 10px; padding-bottom: 14px; margin-bottom: 18px; border-bottom: 3px double var(--ink); color: var(--ink); }
.gf-receipt__head .gf-mark { height: 24px; }
.gf-receipt__label { font-size: .95rem; color: var(--muted); }
.gf-receipt__big { display: block; font-family: var(--f-display); font-size: clamp(2.8rem, 4.4vw, 3.8rem); line-height: 1.05; color: var(--ink); font-variant-numeric: tabular-nums; text-align: end; }
.gf-receipt__range { --p: 25%; width: 100%; height: 36px; margin-block: 8px 18px; background: transparent; -webkit-appearance: none; appearance: none; cursor: pointer; direction: ltr; }
.gf-receipt__range::-webkit-slider-runnable-track { height: 6px; border-radius: 6px; background: linear-gradient(to right, var(--gold) var(--p), var(--rule) var(--p)); }
.gf-receipt__range::-moz-range-track { height: 6px; border-radius: 6px; background: linear-gradient(to right, var(--gold) var(--p), var(--rule) var(--p)); }
.gf-receipt__range::-webkit-slider-thumb { -webkit-appearance: none; width: 28px; height: 28px; margin-top: -11px; border-radius: 50%; background: var(--sheet); border: 2px solid var(--gold); box-shadow: 0 6px 16px -6px rgba(51, 52, 60, .5); }
.gf-receipt__range::-moz-range-thumb { width: 26px; height: 26px; border-radius: 50%; background: var(--sheet); border: 2px solid var(--gold); }
.gf-receipt__range:focus-visible { outline: 2px solid var(--gold-ink); outline-offset: 4px; border-radius: 6px; }
.gf-receipt__rows { margin: 0; }
.gf-receipt__rows > div { display: flex; justify-content: space-between; gap: 12px; padding-block: 12px; border-top: 1px dashed var(--rule); font-size: 1.02rem; }
.gf-receipt__rows dt { color: var(--brand); }
.gf-receipt__rows dd { margin: 0; font-variant-numeric: tabular-nums; color: var(--ink); }
.gf-receipt__rows .is-total { border-top: 3px double var(--ink); padding-top: 14px; align-items: baseline; }
.gf-receipt__rows .is-total dt { color: var(--ink); }
.gf-receipt__rows .is-total dd { font-family: var(--f-display); font-size: 2.2rem; line-height: 1; color: var(--gold-ink); }
.gf-receipt__rows .is-zero dt, .gf-receipt__rows .is-zero dd { color: var(--muted); }
.gf-receipt__note { margin-top: 10px; font-size: .82rem; color: var(--muted); }

/* ---------- thank-you ---------- */
.gf-thanks__hero { position: relative; min-height: 88vh; display: flex; align-items: center; padding-block: calc(var(--header-h) + 48px) var(--s-9); overflow: hidden; }
.gf-thanks__hero::before { content: ""; position: absolute; inset-inline-end: -10%; top: 0; width: 60%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(191, 156, 89, .2), transparent 62%); z-index: -1; }
.gf-thanks__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--gutter); align-items: center; }
.gf-thanks__copy { grid-column: 1 / span 6; }
.gf-thanks__stamp { position: relative; inset: auto; display: inline-grid; transform: rotate(-9deg); color: var(--gold-ink); border-color: var(--gold-ink); box-shadow: inset 0 0 0 4px var(--paper), inset 0 0 0 5px rgba(135, 104, 44, .5); }
.gf-thanks__title { font-size: clamp(2.8rem, 6vw, 6rem); line-height: 1; margin-top: var(--s-6); }
.gf-thanks__lead { margin-top: var(--s-5); font-size: 1.2rem; color: var(--brand); max-width: 36ch; }
.gf-thanks__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: var(--s-7); }
.gf-thanks__card { grid-column: 8 / span 5; padding: 28px 30px; border-radius: 18px; background: var(--sheet); box-shadow: 0 0 0 1px rgba(51, 52, 60, .06), 0 40px 80px -40px rgba(51, 52, 60, .45); }
.gf-thanks__h { font-size: .9rem; letter-spacing: .08em; color: var(--gold-ink); margin-bottom: 14px; }
.gf-thanks__h + .gf-thanks__next, .gf-thanks__h + .gf-thanks__prep { margin-bottom: 26px; }
.gf-thanks__next { display: grid; gap: 14px; }
.gf-thanks__next li { display: grid; grid-template-columns: 36px 1fr; gap: 12px; }
.gf-thanks__next span { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--gold-soft); color: var(--gold-ink); font-size: .9rem; }
.gf-thanks__next b { font-weight: 400; font-size: 1.1rem; color: var(--ink); }
.gf-thanks__next p { font-size: .98rem; color: var(--brand); }
.gf-thanks__prep { display: grid; gap: 10px; padding-top: 18px; border-top: 1px dashed var(--rule); }
.gf-thanks__prep li { display: flex; gap: 10px; align-items: baseline; font-size: 1rem; color: var(--ink); }
.gf-thanks__prep .gf-icon { flex: none; color: var(--gold-ink); stroke-width: 2.2; transform: translateY(3px); }

/* ---------- responsive ---------- */
@media (max-width: 1024px) {
	.gf-lph__copy, .gf-lph__stage { grid-column: 1 / -1; }
	.gf-lph__stage { margin-top: var(--s-7); max-width: 560px; }
	.gf-why__head { grid-template-columns: 1fr; }
	.gf-why__grid { grid-template-columns: repeat(2, 1fr); }
	.gf-tree__copy, .gf-tree__diagram { grid-column: 1 / -1; }
	.gf-tree__diagram { margin-top: var(--s-7); }
	.gf-steps__head, .gf-steps__track { grid-column: 1 / -1; }
	.gf-steps__head { position: static; margin-bottom: var(--s-6); }
	.gf-fee__copy, .gf-receipt { grid-column: 1 / -1; }
	.gf-receipt { margin-top: var(--s-7); max-width: 520px; }
	.gf-thanks__copy, .gf-thanks__card { grid-column: 1 / -1; }
	.gf-thanks__card { margin-top: var(--s-7); }
}
@media (max-width: 640px) {
	.gf-lph { padding-top: calc(var(--header-h) + 28px); }
	.gf-lph__title { font-size: clamp(2.8rem, 13.5vw, 4rem); }
	.gf-lph__lead { font-size: 1.08rem; }
	.gf-lph__trust { grid-template-columns: repeat(3, 1fr); }
	.gf-lph__trust li { padding-inline: 0 10px; }
	.gf-lph__trust li + li { padding-inline-start: 10px; }
	.gf-lph__trust strong { font-size: 1.35rem; }
	.gf-lph__trust span { font-size: .8rem; }
	.gf-quiz { padding: 22px 18px 16px; }
	.gf-quiz::before { display: none; }
	.gf-quiz__q, .gf-quiz__result { min-height: 230px; }
	.gf-why__grid { grid-template-columns: 1fr 1fr; gap: 10px; }
	.gf-why__card { padding: 16px 14px 18px; }
	.gf-why__n { font-size: 1.9rem; }
	.gf-why__card h3 { font-size: 1.1rem; margin-top: 10px; }
	.gf-why__card p { font-size: .9rem; line-height: 1.5; }
	.gf-why__card.is-match::after { top: 12px; inset-inline-end: 10px; font-size: .75rem; padding: 3px 8px; }
	.gf-why__cta { flex-direction: column; align-items: stretch; text-align: center; }
	.gf-tree__branches b { font-size: 1.5rem; }
	.gf-tree__stamp { position: relative; display: grid; width: max-content; margin: var(--s-6) auto 0; inset: auto; }
	.gf-receipt { rotate: none; padding: 22px 20px 34px; }
	.gf-steps__body { padding: 16px; }
	.gf-steps__top { flex-direction: column; align-items: flex-start; gap: 6px; }
}

/* ---------- tax LP: pension focus (Oct 2026) ---------- */
.gf-pension {
	display: flex; align-items: center; gap: 18px; max-width: 560px; margin-bottom: var(--s-5); padding: 16px 20px 16px 22px;
	background: var(--sheet); border: 1px solid rgba(191, 156, 89, .45); border-inline-start: 4px solid var(--gold); border-radius: var(--r-m);
	box-shadow: 0 24px 48px -34px rgba(51, 52, 60, .5);
}
.gf-pension__pct { flex: none; display: flex; align-items: center; justify-content: center; direction: ltr; width: 74px; height: 74px; border-radius: 50%; background: var(--ink); color: var(--gold-hi); font-family: var(--f-display); font-size: 1.9rem; line-height: 1; }
.gf-pension__pct small { font-size: .55em; }
.gf-pension p { font-size: 1.08rem; line-height: 1.5; color: var(--brand); }
.gf-pension b { display: block; font-weight: 600; color: var(--ink); margin-bottom: 2px; }
.gf-lph__lead { max-width: 44ch; font-size: 1.08rem; }
.gf-lph__stage--form .gf-form { transform: rotate(-1deg); box-shadow: 0 0 0 1px rgba(51, 52, 60, .06), 0 50px 90px -40px rgba(51, 52, 60, .55); }
.gf-lph__formnote { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 18px; margin-top: 22px; font-size: .9rem; color: var(--muted); }
.gf-lph__formnote li { display: inline-flex; align-items: center; gap: 6px; }
.gf-lph__formnote .gf-icon { color: var(--gold-ink); stroke-width: 2.2; }

.gf-why__feature {
	display: grid; grid-template-columns: 1.3fr 1fr; gap: var(--s-7); align-items: center; margin-bottom: var(--s-7);
	padding: var(--s-7); border-radius: var(--r-m); background: var(--ink); color: var(--paper); position: relative; overflow: hidden;
}
.gf-why__feature::before { content: ""; position: absolute; inset-inline-end: -12%; top: -40%; width: 55%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(191, 156, 89, .28), transparent 62%); pointer-events: none; }
.gf-why__feature-kicker { font-size: var(--t-eyebrow); letter-spacing: .08em; color: var(--gold-hi); }
.gf-why__feature h3 { font-size: clamp(1.8rem, 3vw, 2.8rem); margin-top: var(--s-4); }
.gf-why__feature-copy > p:last-child { margin-top: var(--s-4); color: rgba(255, 255, 255, .78); line-height: 1.7; max-width: 52ch; }
.gf-why__flow { position: relative; display: grid; gap: 10px; }
.gf-why__flow li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 20px; border-radius: 12px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .1); }
.gf-why__flow span { font-size: .95rem; color: rgba(255, 255, 255, .72); }
.gf-why__flow strong { font-family: var(--f-display); font-weight: 400; font-size: 1.5rem; }
.gf-why__flow li.is-gold { background: var(--gold); border-color: var(--gold); }
.gf-why__flow li.is-gold span, .gf-why__flow li.is-gold strong { color: var(--ink); }
.gf-why__more { font-family: var(--f-display); font-size: 1.4rem; color: var(--ink); margin-bottom: var(--s-5); }

@media (max-width: 1024px) {
	.gf-lph__stage--form { margin-top: var(--s-6); }
	.gf-why__feature { grid-template-columns: 1fr; padding: var(--s-6); gap: var(--s-6); }
}
@media (max-width: 640px) {
	.gf-pension { align-items: flex-start; padding: 14px; gap: 14px; }
	.gf-pension__pct { width: 58px; height: 58px; font-size: 1.5rem; }
	.gf-pension p { font-size: 1rem; }
	.gf-why__feature { padding: var(--s-5); }
}

/* ---------- conversion layer: deadline, badges, bands (Oct 2026) ---------- */
.gf-deadline {
	display: flex; align-items: center; gap: 10px; margin-bottom: 16px; padding: 11px 16px; border-radius: 12px;
	background: var(--ink); color: rgba(255, 255, 255, .86); font-size: .95rem; line-height: 1.4;
}
.gf-deadline .gf-icon { flex: none; color: var(--gold-hi); width: 20px; height: 20px; }
.gf-deadline b { font-weight: 500; color: var(--gold-hi); }
.gf-lph__badges { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 14px; }
.gf-lph__badges span { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: var(--r-pill); background: var(--sheet); border: 1px solid var(--rule); font-size: .82rem; color: var(--brand); }
.gf-lph__badges .gf-icon { color: var(--gold-ink); width: 16px; height: 16px; }
.gf-pension__pct--ico .gf-icon { width: 32px; height: 32px; stroke-width: 1.5; }
.gf-pension b.gf-gold { display: inline; color: var(--gold-ink); margin: 0; }

.gf-band { position: relative; background: var(--gold); color: var(--ink); overflow: hidden; isolation: isolate; }
.gf-band::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(600px circle at 15% 50%, rgba(255, 248, 228, .55), transparent 60%); }
.gf-band__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--s-6); padding-block: var(--s-7); }
.gf-band__kicker { font-size: var(--t-eyebrow); font-weight: 500; letter-spacing: .08em; color: rgba(51, 52, 60, .72); }
.gf-band__title { font-family: var(--f-display); font-size: clamp(1.7rem, 3vw, 2.7rem); line-height: 1.1; margin-top: 8px; max-width: 26ch; }
.gf-band__actions { display: flex; align-items: center; gap: var(--s-5); flex: none; }
.gf-band .gf-btn--gold { background: var(--ink); color: #fff; box-shadow: 0 18px 36px -18px rgba(51, 52, 60, .8); }
.gf-band .gf-btn--gold:hover { background: #22232a; }
.gf-band__tel { display: inline-flex; align-items: center; gap: 8px; font-size: .95rem; }
.gf-band__tel b { font-weight: 600; }

/* ---------- mortgage: two paths ---------- */
.gf-mpaths { padding-block: var(--s-9); }
.gf-mpaths__head { margin-bottom: var(--s-7); }
.gf-mpaths__head .gf-h2 { margin-top: var(--s-4); }
.gf-mpaths__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gutter); }
.gf-mpath {
	position: relative; display: flex; flex-direction: column; padding: var(--s-7) var(--s-6) var(--s-6); border-radius: var(--r-m); background: var(--sheet);
	box-shadow: 0 0 0 1px rgba(51, 52, 60, .06), 0 30px 60px -44px rgba(51, 52, 60, .45); transition: transform .7s var(--ease), box-shadow .7s var(--ease);
}
.gf-mpath:hover { transform: translateY(-6px); box-shadow: 0 0 0 1px rgba(191, 156, 89, .4), 0 40px 70px -40px rgba(51, 52, 60, .5); }
.gf-mpath + .gf-mpath { background: var(--ink); color: var(--paper); }
.gf-mpath__num { font-family: var(--f-display); font-size: 4.4rem; line-height: .8; color: transparent; -webkit-text-stroke: 1px var(--gold); }
.gf-mpath h3 { font-size: clamp(2rem, 3.2vw, 3rem); margin-top: var(--s-6); }
.gf-mpath > p { margin-top: var(--s-4); color: var(--brand); line-height: 1.7; max-width: 46ch; }
.gf-mpath + .gf-mpath > p { color: rgba(255, 255, 255, .75); }
.gf-mpath ul { display: grid; gap: 10px; margin-block: var(--s-5) var(--s-6); padding-top: var(--s-5); border-top: 1px solid var(--rule); }
.gf-mpath + .gf-mpath ul { border-color: rgba(255, 255, 255, .14); }
.gf-mpath li { display: flex; align-items: center; gap: 10px; }
.gf-mpath li .gf-icon { color: var(--gold); stroke-width: 2.2; }
.gf-mpath .gf-btn { margin-top: auto; align-self: flex-start; }

/* ---------- mortgage: example offer vs. our mix ---------- */
.gf-mx { position: relative; background: var(--ink); color: #fff; padding-block: var(--s-10); overflow: hidden; isolation: isolate; }
.gf-mx::before { content: ""; position: absolute; inset: 0; z-index: -1; background: url(../img/dark-foil.webp) center / cover; opacity: .3; }
.gf-mx::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to left, rgba(51, 52, 60, .96) 30%, rgba(51, 52, 60, .65)); }
.gf-mx__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--gutter); align-items: center; }
.gf-mx__copy { grid-column: 1 / span 5; }
.gf-mx__title { font-size: clamp(2.4rem, 4.6vw, 4.6rem); line-height: 1.02; margin-top: var(--s-5); }
.gf-mx__text { margin-top: var(--s-6); font-size: 1.12rem; line-height: 1.75; color: rgba(255, 255, 255, .8); max-width: 44ch; }
.gf-mx__card { grid-column: 7 / span 6; padding: 28px 30px; border-radius: 18px; background: var(--sheet); color: var(--ink); box-shadow: 0 50px 100px -40px rgba(0, 0, 0, .6); transform: rotate(-1deg); }
.gf-mx__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding-bottom: 14px; border-bottom: 3px double var(--ink); }
.gf-mx__head small { font-size: .8rem; color: var(--muted); }
.gf-mx__table { width: 100%; border-collapse: collapse; margin-top: 8px; font-size: 1rem; }
.gf-mx__table th, .gf-mx__table td { padding: 12px 6px; text-align: start; border-bottom: 1px dashed var(--rule); font-weight: 400; }
.gf-mx__table thead th { font-size: .82rem; color: var(--muted); }
.gf-mx__table td { font-variant-numeric: tabular-nums; text-align: end; }
.gf-mx__table td:last-child { color: var(--gold-ink); font-weight: 600; }
.gf-mx__table .is-sum th, .gf-mx__table .is-sum td { border-bottom: 0; padding-top: 16px; font-size: 1.15rem; }
.gf-mx__table .is-sum td:nth-child(2) { text-decoration: line-through; text-decoration-color: rgba(51, 52, 60, .4); color: var(--muted); }
.gf-mx__save { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 8px; padding: 16px 18px; border-radius: 12px; background: var(--gold-soft); border: 1px solid rgba(191, 156, 89, .5); }
.gf-mx__save > span { font-size: .98rem; }
.gf-mx__save strong { font-family: var(--f-display); font-weight: 400; font-size: clamp(2rem, 3.4vw, 2.8rem); line-height: 1; color: var(--gold-ink); }
.gf-mx__cta { width: 100%; margin-top: 18px; }

/* ---------- mortgage: bank vs. us ---------- */
.gf-vs { padding-block: var(--s-9); background: var(--sheet); border-bottom: 1px solid var(--rule); }
.gf-vs__head { margin-bottom: var(--s-7); }
.gf-vs__head .gf-h2 { margin-top: var(--s-4); }
.gf-vs__table { border-top: 1px solid var(--ink); }
.gf-vs__row { display: grid; grid-template-columns: 1fr 1.2fr 1.4fr; gap: var(--s-5); align-items: center; padding-block: 18px; border-bottom: 1px solid var(--rule); }
.gf-vs__row > span { display: flex; align-items: center; gap: 10px; }
.gf-vs__row [role="rowheader"] { font-weight: 500; }
.gf-vs__row .is-bank { color: var(--muted); }
.gf-vs__row .is-bank .gf-icon { transform: rotate(45deg); color: #b4b4bc; flex: none; }
.gf-vs__row .is-us { color: var(--ink); font-weight: 500; }
.gf-vs__row .is-us .gf-icon { flex: none; width: 26px; height: 26px; padding: 5px; border-radius: 50%; background: var(--gold); color: var(--ink); stroke-width: 2.6; }
.gf-vs__row--head { padding-block: 14px; font-size: .9rem; }
.gf-vs__row--head .is-us { color: var(--gold-ink); }
.gf-vs__row--head .gf-mark { height: 22px; }
.gf-vs__row:not(.gf-vs__row--head) .is-us { background: linear-gradient(to left, var(--gold-soft), transparent); padding: 8px 10px; margin: -8px -10px; border-radius: 8px; }

@media (max-width: 1024px) {
	.gf-band__inner { flex-direction: column; align-items: flex-start; }
	.gf-mpaths__grid { grid-template-columns: 1fr; }
	.gf-mx__copy, .gf-mx__card { grid-column: 1 / -1; }
	.gf-mx__card { margin-top: var(--s-7); max-width: 560px; }
}
@media (max-width: 640px) {
	.gf-band__inner { padding-block: var(--s-6); }
	.gf-band__actions { flex-direction: column; align-items: stretch; width: 100%; gap: 14px; }
	.gf-band__actions .gf-btn { width: 100%; }
	.gf-band__tel { justify-content: center; }
	.gf-mpath { padding: var(--s-6) var(--s-5) var(--s-5); }
	.gf-mpath .gf-btn { width: 100%; }
	.gf-mx__card { padding: 20px 18px; transform: none; }
	.gf-mx__table { font-size: .9rem; }
	.gf-vs__row { grid-template-columns: 1fr 1fr; gap: 8px 14px; }
	.gf-vs__row [role="rowheader"] { grid-column: 1 / -1; font-size: .85rem; color: var(--muted); }
	.gf-vs__row--head span:first-child { display: none; }
	.gf-vs__row > span { font-size: .92rem; align-items: flex-start; }
	.gf-deadline { font-size: .88rem; }
}

/* Phones: the hero form sits below the fold, so give the copy a jump to it. */
.gf-lph__jump { display: none; }
@media (max-width: 1024px) {
	.gf-lph__jump { display: flex; width: 100%; margin-block: var(--s-5) 0; }
	.gf-lph__jump .gf-icon { transform: rotate(-90deg); }
}

/* ---------- inner pages: about / FAQ / reviews / 404 (Oct 2026) ---------- */
.gf-lph--page .gf-lph__title { font-size: clamp(3rem, 6.4vw, 6.6rem); }
.gf-lph--page .gf-hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-top: var(--s-6); }
.gf-lph__stage--page { display: grid; justify-items: center; }

.gf-promise { position: relative; width: min(100%, 460px); padding: 30px 32px 34px; border-radius: var(--r-m); background: var(--sheet); transform: rotate(-1.2deg); box-shadow: 0 0 0 1px rgba(51, 52, 60, .06), 0 50px 90px -40px rgba(51, 52, 60, .55); }
.gf-promise__head { display: flex; align-items: center; gap: 10px; padding-bottom: 16px; border-bottom: 3px double var(--ink); font-weight: 600; }
.gf-promise__head .gf-mark { height: 26px; }
.gf-promise ol { display: grid; margin-top: 6px; }
.gf-promise li { display: grid; grid-template-columns: 36px 1fr; gap: 12px; align-items: baseline; padding-block: 15px; border-bottom: 1px dashed var(--rule); font-size: 1.05rem; color: var(--ink); }
.gf-promise li span { font-size: .8rem; letter-spacing: .08em; color: var(--gold-ink); font-variant-numeric: tabular-nums; }
.gf-promise__stamp { position: absolute; inset-inline-start: -28px; bottom: -34px; inset-block-start: auto; transform: rotate(-11deg); }

.gf-values__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.gf-svc--value { min-height: 0; }
.gf-svc--value .gf-svc__title { font-size: clamp(1.35rem, 1.8vw, 1.7rem); line-height: 1.15; margin-top: var(--s-6); }

.gf-askcard { width: min(100%, 440px); padding: 34px 32px; border-radius: 18px; background: var(--ink); color: #fff; box-shadow: 0 50px 90px -40px rgba(51, 52, 60, .7); position: relative; overflow: hidden; isolation: isolate; }
.gf-askcard::before { content: ""; position: absolute; inset-inline-end: -30%; top: -40%; width: 90%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(191, 156, 89, .32), transparent 62%); z-index: -1; }
.gf-askcard__kicker { font-size: var(--t-eyebrow); letter-spacing: .08em; color: var(--gold-hi); }
.gf-askcard__big { font-family: var(--f-display); font-size: clamp(2.3rem, 3.6vw, 3.2rem); line-height: 1; margin-top: 12px; }
.gf-askcard__text { margin-block: 14px 22px; color: rgba(255, 255, 255, .75); }
.gf-askcard .gf-btn { width: 100%; }
.gf-askcard__tel { display: flex; justify-content: center; align-items: center; gap: 8px; margin-top: 14px; color: var(--gold-hi); font-weight: 500; }

.gf-faqnav { position: sticky; top: var(--header-h); z-index: 20; background: rgba(244, 244, 246, .92); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border-block: 1px solid var(--rule); }
.gf-faqnav .gf-container { display: flex; gap: 8px; padding-block: 12px; overflow-x: auto; scrollbar-width: none; }
.gf-faqnav a { flex: none; display: inline-flex; align-items: center; gap: 8px; padding: 9px 18px; border-radius: var(--r-pill); background: var(--sheet); border: 1px solid var(--rule); font-weight: 500; transition: background-color .3s var(--ease), color .3s var(--ease); }
.gf-faqnav a:hover { background: var(--ink); color: #fff; }
.gf-faqnav small { font-size: .75rem; padding: 1px 8px; border-radius: var(--r-pill); background: var(--gold-soft); color: var(--gold-ink); }
.gf-page--faq .gf-faq { scroll-margin-top: calc(var(--header-h) + 70px); }
.gf-page--faq .gf-faq + .gf-faq__go, .gf-faq__go { margin-top: calc(var(--s-7) * -1); padding-bottom: var(--s-8); }
.gf-faq__go a { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; color: var(--gold-ink); }
.gf-faq__more { margin-top: var(--s-5); }

.gf-featvid { position: relative; width: min(100%, 330px); }
.gf-featvid .gf-vids { grid-template-columns: 1fr; max-width: none; margin: 0; padding: 0; overflow: visible; }
.gf-featvid .gf-vid { transform: rotate(-1.5deg); }
.gf-featvid__chip { top: 18%; inset-inline-end: -22%; }
.gf-greviews { padding-block: var(--s-9); }
.gf-greviews .gf-h2 { margin-block: var(--s-4) var(--s-6); }
.gf-reviews__google { margin-top: var(--s-6); }
.gf-admin-note { margin-block: var(--s-6); padding: var(--s-5); border: 1px dashed var(--gold); border-radius: var(--r-m); color: var(--brand); }
.gf-admin-note a { color: var(--gold-ink); text-decoration: underline; }
.gf-404__home { padding-bottom: var(--s-9); }

@media (max-width: 1180px) { .gf-values__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------- phones: same composition as desktop, graphic in the first screen ----------
   The copy column dissolves into the grid so the visual (form / card / video) sits right
   under the headline instead of after all the text. */
@media (max-width: 1024px) {
	.gf-lph__copy { display: contents; }
	.gf-lph__copy > *, .gf-lph__stage { grid-column: 1 / -1; order: 5; }
	.gf-lph__copy > .gf-eyebrow { order: 1; }
	.gf-lph__copy > .gf-lph__title { order: 2; margin-bottom: var(--s-4); }
	.gf-lph__copy > .gf-pension { order: 3; margin-bottom: 0; }
	.gf-lph__stage { order: 4; margin-block: var(--s-4) var(--s-5); max-width: none; }
	.gf-lph__stage--form { margin-top: var(--s-4); }
	.gf-lph__grid { row-gap: 0; }
	.gf-lph__copy > .gf-lph__lead { margin-top: var(--s-5); }
	.gf-lph__jump { display: none; }
	.gf-featvid { width: min(60%, 240px); }
	.gf-featvid__chip { inset-inline-end: -12%; }
	.gf-promise__stamp { inset-inline-start: -8px; bottom: -28px; }
}
@media (max-width: 640px) {
	.gf-values__grid { grid-template-columns: 1fr; }
	.gf-promise { padding: 24px 22px 30px; }
	.gf-askcard { padding: 26px 22px; }
	.gf-lph--page .gf-hero__ctas .gf-btn { flex: 1 1 100%; }
}

/* ---------- photos in the page body (process column, about values) ---------- */
.gf-steps__photo, .gf-values__photo { position: relative; margin: 0; overflow: hidden; border-radius: 18px; box-shadow: 0 40px 80px -40px rgba(51, 52, 60, .55); }
.gf-steps__photo::after, .gf-values__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(51, 52, 60, 0) 55%, rgba(51, 52, 60, .3)); pointer-events: none; }
.gf-steps__photo img, .gf-values__photo img { width: 100%; height: 100%; object-fit: cover; }
.gf-steps__photo { margin-top: var(--s-6); max-width: 380px; aspect-ratio: 4 / 3; transform: rotate(-1.2deg); }
.gf-steps__photo img { object-position: 50% 55%; }
.gf-values__photo { aspect-ratio: 21 / 8; margin-bottom: var(--gutter); }
.gf-values__photo img { object-position: 50% 62%; }
@media (max-width: 1024px) {
	.gf-steps__photo { max-width: none; aspect-ratio: 16 / 10; transform: none; }
	.gf-values__photo { aspect-ratio: 16 / 9; }
}

/* ---------- tax LP: pension question as the headline (Oct 2026) ---------- */
.gf-lp--tax .gf-lph__title { font-size: clamp(2.6rem, 5.2vw, 5.6rem); line-height: 1; }
.gf-lph__sub { font-family: var(--f-display); font-size: clamp(1.4rem, 2.2vw, 2rem); line-height: 1.2; color: var(--gold-ink); margin: calc(var(--s-4) * -1) 0 var(--s-5); }
.gf-pension--promise .gf-pension__pct { font-size: 1.5rem; }
.gf-formhead { margin-bottom: 14px; padding: 18px 20px; border-radius: 14px; background: var(--gold); color: var(--ink); box-shadow: 0 20px 40px -24px rgba(134, 105, 47, .8); }
.gf-formhead__title { display: flex; align-items: center; gap: 12px; font-family: var(--f-display); font-size: clamp(1.6rem, 2.4vw, 2.1rem); line-height: 1.05; }
.gf-formhead__ico { flex: none; width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: var(--ink); color: var(--gold-hi); }
.gf-formhead__ico .gf-icon { width: 20px; height: 20px; stroke-width: 2.4; }
.gf-formhead__lead { margin-top: 8px; font-size: .98rem; font-weight: 500; }
.gf-formhead + .gf-form .gf-form__head { display: none; }
.gf-formhead + .gf-form { padding-top: 22px; }

/* ---------- loans LP: before / after table ---------- */
.gf-mx__table--loans td { color: var(--ink); }
.gf-mx__table--loans td:last-child { color: var(--ink); font-weight: 500; }
.gf-mx__table--loans .is-sum td:nth-child(2) { text-decoration: none; color: var(--muted); }
.gf-mx__table--loans .is-sum td:last-child { text-decoration: line-through; text-decoration-color: rgba(51, 52, 60, .4); color: var(--muted); }
.gf-mx__table--loans .is-after th, .gf-mx__table--loans .is-after td { border-bottom: 0; font-size: 1.15rem; padding-top: 6px; }
.gf-mx__table--loans .is-after td:last-child { color: var(--gold-ink); font-weight: 700; }
.gf-mx__note { margin-top: 10px; font-size: .82rem; line-height: 1.55; color: var(--muted); }

/* ---------- service pages ---------- */
.gf-lph__title--svc { font-size: clamp(2.6rem, 5.4vw, 5.6rem); }
.gf-svcpage__points { display: grid; gap: 10px; margin-top: var(--s-6); }
.gf-svcpage__points li { display: flex; align-items: center; gap: 10px; font-size: 1.05rem; }
.gf-svcpage__points .gf-icon { flex: none; width: 24px; height: 24px; padding: 4px; border-radius: 50%; background: var(--gold); color: var(--ink); stroke-width: 2.6; }
.gf-svcpage { padding-block: var(--s-9); background: var(--sheet); }
.gf-svcpage__grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: var(--s-8); align-items: start; }
.gf-svcpage__body .gf-prose { max-width: 760px; margin: 0; padding: 0; }
.gf-svcpage__img { margin: 0 0 var(--s-6); border-radius: 18px; overflow: hidden; aspect-ratio: 16 / 8; }
.gf-svcpage__img img { width: 100%; height: 100%; object-fit: cover; }
.gf-svcpage__aside { position: sticky; top: calc(var(--header-h) + 30px); }
.gf-svcpage__aside .gf-askcard, .gf-art__aside .gf-askcard { width: 100%; }

/* ---------- contact page ---------- */
.gf-contact { padding-block: var(--s-8) var(--s-9); }
.gf-contact__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gutter); }
.gf-contact__grid > li > a, .gf-contact__grid > li:not(:has(a)) { display: grid; gap: 4px; height: 100%; padding: 24px; border-radius: 16px; background: var(--sheet); border: 1px solid var(--rule); transition: border-color .3s var(--ease), transform .4s var(--ease); }
.gf-contact__grid > li > a:hover { border-color: var(--gold); transform: translateY(-3px); }
.gf-contact__ico { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: var(--ink); color: var(--gold-hi); margin-bottom: 10px; }
.gf-contact__grid small { font-size: .82rem; color: var(--muted); }
.gf-contact__grid b { font-weight: 500; font-size: 1.1rem; color: var(--ink); }

/* ---------- blog: list ---------- */
.gf-blog { padding-block: var(--s-7) var(--s-9); }
.gf-blog__cats { position: static; background: none; border: 0; margin-bottom: var(--s-6); display: flex; flex-wrap: wrap; gap: 8px; backdrop-filter: none; }
.gf-blog__cats a { flex: none; display: inline-flex; align-items: center; gap: 8px; padding: 9px 18px; border-radius: var(--r-pill); background: var(--sheet); border: 1px solid var(--rule); font-weight: 500; }
.gf-blog__cats a[aria-current="page"] { background: var(--ink); color: #fff; border-color: var(--ink); }
.gf-blog__cats small { font-size: .75rem; padding: 1px 8px; border-radius: var(--r-pill); background: var(--gold-soft); color: var(--gold-ink); }
.gf-blog__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gutter); }
.gf-card__link { display: flex; flex-direction: column; height: 100%; border-radius: 18px; overflow: hidden; background: var(--sheet); box-shadow: 0 0 0 1px rgba(51, 52, 60, .06), 0 30px 60px -44px rgba(51, 52, 60, .45); transition: transform .6s var(--ease), box-shadow .6s var(--ease); }
.gf-card__link:hover { transform: translateY(-5px); box-shadow: 0 0 0 1px rgba(191, 156, 89, .4), 0 40px 70px -40px rgba(51, 52, 60, .5); }
.gf-card__img { margin: 0; aspect-ratio: 16 / 10; overflow: hidden; background: var(--ink); display: grid; place-items: center; }
.gf-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
.gf-card__link:hover .gf-card__img img { transform: scale(1.04); }
.gf-card__img.is-empty { background: radial-gradient(circle at 70% 20%, rgba(191, 156, 89, .35), transparent 60%), var(--ink); }
.gf-card__mark { height: 54px; width: auto; }
.gf-card__img.is-empty .gf-logo-char { fill: var(--paper); }
.gf-card__body { display: flex; flex-direction: column; gap: 10px; flex: 1; padding: 22px 24px 20px; }
.gf-card__cat { align-self: flex-start; font-size: .75rem; font-weight: 600; letter-spacing: .06em; padding: 4px 10px; border-radius: var(--r-pill); background: var(--gold-soft); color: var(--gold-ink); }
.gf-card__title { font-size: 1.45rem; line-height: 1.2; }
.gf-card__excerpt { color: var(--brand); font-size: .98rem; line-height: 1.6; }
.gf-card__meta { margin-top: auto; padding-top: 12px; border-top: 1px solid var(--rule); display: flex; align-items: center; gap: 12px; font-size: .82rem; color: var(--muted); }
.gf-card__go { margin-inline-start: auto; display: inline-flex; align-items: center; gap: 6px; font-weight: 500; color: var(--ink); }
.gf-card__go .gf-icon { width: 16px; height: 16px; color: var(--gold-ink); transition: transform .4s var(--ease); }
.gf-card__link:hover .gf-card__go .gf-icon { transform: translateX(-4px); }
.gf-blog__empty { display: grid; justify-items: center; gap: 12px; text-align: center; padding: var(--s-8) var(--s-5); border-radius: 18px; background: var(--sheet); border: 1px dashed var(--gold); }
.gf-blog__empty .gf-mark { height: 46px; }
.gf-blog__empty-title { font-family: var(--f-display); font-size: 2rem; }
.gf-blog__empty p:not(.gf-blog__empty-title) { color: var(--brand); max-width: 46ch; margin-bottom: 8px; }
.gf-pager { margin-top: var(--s-7); }
.gf-pager .nav-links { display: flex; justify-content: center; gap: 6px; }
.gf-pager .page-numbers { min-width: 44px; height: 44px; padding-inline: 14px; display: grid; place-items: center; border-radius: var(--r-pill); background: var(--sheet); border: 1px solid var(--rule); font-weight: 500; }
.gf-pager .page-numbers.current { background: var(--ink); color: #fff; border-color: var(--ink); }

/* ---------- blog: single article ---------- */
.gf-art__head { position: relative; padding-block: calc(var(--header-h) + var(--s-7)) var(--s-7); overflow: hidden; isolation: isolate; }
.gf-art__head-in { max-width: 920px; }
.gf-crumbs { display: flex; flex-wrap: wrap; gap: 8px; font-size: .85rem; color: var(--muted); }
.gf-crumbs a:hover { color: var(--gold-ink); }
.gf-art__title { font-size: clamp(2.2rem, 4.6vw, 4.2rem); line-height: 1.08; margin-top: var(--s-5); }
.gf-art__lead { margin-top: var(--s-5); font-size: 1.2rem; line-height: 1.6; color: var(--brand); max-width: 62ch; }
.gf-art__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; margin-top: var(--s-5); font-size: .9rem; color: var(--muted); }
.gf-art__by { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; color: var(--ink); }
.gf-art__by .gf-mark { height: 22px; }
.gf-art__img { margin-block: 0 var(--s-7); }
.gf-art__img img { width: 100%; max-height: 560px; object-fit: cover; border-radius: 20px; }
.gf-art__grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: var(--s-8); align-items: start; padding-bottom: var(--s-9); }
.gf-art__body { margin: 0; padding: 0; max-width: 740px; }
.gf-art__body img, .gf-art__body figure { max-width: 100%; height: auto; border-radius: 14px; margin-block: 1.4em; }
.gf-art__body blockquote { margin: 1.6em 0; padding: 18px 24px; border-inline-start: 3px solid var(--gold); background: var(--sheet); border-radius: 12px; font-family: var(--f-display); font-size: 1.3rem; color: var(--ink); }
.gf-art__body ol { padding-inline-start: 1.4em; display: grid; gap: 8px; margin-block: 1em; }
.gf-art__body ol li::marker { color: var(--gold-ink); font-weight: 600; }
.gf-art__aside { position: sticky; top: calc(var(--header-h) + 30px); }
.gf-art__share { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: var(--s-7); padding-top: var(--s-5); border-top: 1px solid var(--rule); font-size: .92rem; }
.gf-art__share a, .gf-art__share button { display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; border-radius: var(--r-pill); border: 1px solid var(--rule); background: var(--sheet); color: var(--ink); text-decoration: none; font-weight: 500; }
.gf-art__share a:hover, .gf-art__share button:hover { border-color: var(--gold); }
.gf-art__share .gf-icon { width: 16px; height: 16px; color: var(--gold-ink); }
.gf-related { padding-block: var(--s-8) var(--s-9); background: var(--sheet); border-top: 1px solid var(--rule); }
.gf-related__head { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--s-5); margin-bottom: var(--s-6); }
.gf-related .gf-card__link { background: var(--paper); }

@media (max-width: 1024px) {
	.gf-svcpage__grid, .gf-art__grid { grid-template-columns: 1fr; gap: var(--s-7); }
	.gf-svcpage__aside, .gf-art__aside { position: static; }
	.gf-blog__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gf-contact__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gf-lph__sub { margin-top: 0; }
	.gf-lph__copy > .gf-lph__sub { order: 2; }
}
@media (max-width: 640px) {
	.gf-blog__grid, .gf-contact__grid { grid-template-columns: 1fr; }
	.gf-related__head { flex-direction: column; align-items: flex-start; }
	.gf-formhead { padding: 14px 16px; }
	.gf-art__img img { border-radius: 14px; }
}
