/* ==========================================================================
   ABOUT KATHERINNE  (/about/)   namespace: gfe-ab-*
   Built on the approved Glow Fusion system. Shared primitives (.gfe-sec,
   .gfe-eyebrow, .gfe-title, .gfe-rule, .gfe-btn, .gfe-actions, .gfe-reveal)
   live in gfe.css and are NOT redefined here.
   ========================================================================== */

/* ==========================  1. HERO  ================================== */
.e-con.gfe-ab-hero {
	--padding-top: calc(var(--gfe-header-h) + clamp(44px, 6vw, 96px));
	--padding-bottom: clamp(54px, 6.6vw, 100px);
	background-color: var(--gfe-sage);
	background-image:
		radial-gradient(58% 68% at 26% 16%, rgba(129, 134, 107, .50) 0%, rgba(129, 134, 107, 0) 66%),
		linear-gradient(180deg, #6A6F56 0%, #62674F 58%, #5A5F48 100%);
	overflow: hidden;
}
.e-con.gfe-ab-hero > .e-con-inner {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
	gap: clamp(34px, 4.8vw, 80px);
	align-items: center;
}
.e-con.gfe-ab-hero__copy { padding: 0; gap: 0; position: relative; z-index: 2; }
.gfe-ab-hero .gfe-eyebrow { margin-bottom: 18px; }
.gfe-sec .gfe-ab-h1 .elementor-heading-title {
	font-family: var(--gfe-serif);
	font-weight: 400;
	font-size: clamp(42px, 4.9vw, 70px);
	line-height: 1.05;
	letter-spacing: -.01em;
	color: var(--gfe-paper);
	text-wrap: balance;
}
.gfe-sec .gfe-ab-h1 .elementor-heading-title em { font-style: italic; color: var(--gfe-gold-lt); }
.gfe-ab-h1.gfe-rule::after { margin-top: 24px; }
.gfe-sec .gfe-ab-lead.elementor-widget-text-editor {
	margin-top: 24px;
	font-size: clamp(16.5px, 1.2vw, 18px);
	line-height: 1.78;
	color: rgba(244, 240, 235, .92);
	max-width: 34em;
}
.gfe-ab-hero .e-con.gfe-actions { margin-top: 32px; }

/* ---- Katherinne portrait placement: intentionally empty ----------------
   The frame reserves the exact final geometry (4:5) so her real photograph
   drops in later with no redesign: swap the inner .gfe-ab-portrait__frame
   html widget for an image widget carrying .gfe-ab-portrait__img. The image
   styling is already written below and matches the frame precisely.        */
.e-con.gfe-ab-portrait {
	padding: 0;
	position: relative;
	/* Ratio lives on the container: Elementor's widget wrappers do not pass an
	   aspect-ratio child's height up as intrinsic height at narrow widths, which
	   collapsed this column to 0 on phones. A definite grid width + this ratio
	   always resolves, and everything inside simply fills it. */
	aspect-ratio: 4 / 5;
}
.gfe-ab-portrait__slot,
.gfe-ab-portrait__slot > .elementor-widget-container { width: 100%; height: 100%; }
.gfe-ab-portrait__frame {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	overflow: hidden;
	border-radius: 2px;
	background:
		radial-gradient(70% 56% at 50% 34%, rgba(228, 225, 212, .17) 0%, rgba(228, 225, 212, 0) 72%),
		linear-gradient(168deg, #6F7459 0%, #656A54 46%, #575C46 100%);
	background-color: #656A54;
	box-shadow: 0 40px 80px -52px rgba(26, 28, 20, .92);
}
.gfe-ab-portrait__frame::before {
	content: "";
	position: absolute;
	inset: 14px;
	border: 1px solid rgba(194, 158, 95, .40);
	pointer-events: none;
}
.gfe-ab-portrait__frame svg {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	width: min(58%, 214px);
	height: auto;
	color: rgba(214, 183, 129, .72);
	overflow: visible;
}
.gfe-ab-portrait__frame svg [stroke-width], .gfe-ab-portrait__frame svg { stroke-width: 1.35; }
.gfe-ab-portrait__frame svg path { stroke-dasharray: 1; stroke-dashoffset: 0; }
.gfe-js .gfe-ab-portrait__frame svg path { stroke-dashoffset: 1; transition: stroke-dashoffset 2.4s var(--gfe-ease) .35s; }
.gfe-js .gfe-ab-hero.is-in .gfe-ab-portrait__frame svg path { stroke-dashoffset: 0; }
.gfe-ab-portrait__cap {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 30px;
	text-align: center;
	font-family: var(--gfe-sans);
	font-size: 10.5px;
	font-weight: 500;
	letter-spacing: .3em;
	text-transform: uppercase;
	color: rgba(244, 240, 235, .60);
	margin: 0;
}
/* Pre-written so the real photograph needs no new CSS. */
.gfe-ab-portrait__img,
.gfe-ab-portrait__img > .elementor-widget-container { width: 100%; height: 100%; }
.gfe-ab-portrait__img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 26%;
	border-radius: 2px;
	box-shadow: 0 40px 80px -52px rgba(26, 28, 20, .92);
}

/* ==========================  2. MEET KATHERINNE  ======================= */
.e-con.gfe-ab-meet {
	--padding-top: clamp(64px, 7vw, 110px);
	--padding-bottom: clamp(64px, 7vw, 110px);
	background: linear-gradient(180deg, var(--gfe-paper) 0%, #EFEBE3 100%);
}
.e-con.gfe-ab-meet > .e-con-inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
	gap: clamp(32px, 4.6vw, 78px);
	align-items: start;
}
.e-con.gfe-ab-meet__aside { padding: 0; gap: 0; }
.e-con.gfe-ab-meet__copy { padding: 0; gap: 0; }
.gfe-sec .gfe-ab-h2 .elementor-heading-title {
	font-family: var(--gfe-serif);
	font-weight: 400;
	font-size: clamp(31px, 3.3vw, 46px);
	line-height: 1.14;
	color: var(--gfe-ink);
	text-wrap: balance;
}
.gfe-sec .gfe-ab-h2 .elementor-heading-title em { font-style: italic; }
.gfe-ab-meet .gfe-eyebrow { margin-bottom: 14px; }
.gfe-sec .gfe-ab-body.elementor-widget-text-editor {
	margin-top: 26px;
	font-size: 16.5px;
	line-height: 1.82;
	color: var(--gfe-ink-soft);
}
.gfe-sec .gfe-ab-body.elementor-widget-text-editor p + p { margin-top: 1.05em; }
.gfe-sec .gfe-ab-body a { color: var(--gfe-sage-dk); text-decoration: none; box-shadow: inset 0 -1px 0 rgba(194, 158, 95, .55); transition: color .35s var(--gfe-ease), box-shadow .35s var(--gfe-ease); }
.gfe-sec .gfe-ab-body a:hover { color: var(--gfe-gold); box-shadow: inset 0 -1px 0 var(--gfe-gold); }

/* verified credential chips */
.gfe-ab-creds { list-style: none; margin: 30px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.gfe-ab-creds li {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 9px 15px;
	border: 1px solid rgba(141, 144, 120, .34);
	background: rgba(255, 255, 255, .45);
	font-family: var(--gfe-sans);
	font-size: 11.5px;
	font-weight: 500;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: var(--gfe-ink-soft);
}
.gfe-ab-creds svg { width: 15px; height: 15px; flex: none; color: var(--gfe-gold); }

/* pull quote in the aside */
.gfe-ab-quote {
	margin: 0;
	padding: 34px 30px;
	border-left: 2px solid var(--gfe-gold);
	background: linear-gradient(180deg, rgba(236, 233, 223, .85) 0%, rgba(236, 233, 223, .35) 100%);
}
.gfe-ab-quote p {
	margin: 0;
	font-family: var(--gfe-serif);
	font-size: clamp(21px, 2.1vw, 27px);
	line-height: 1.42;
	font-style: italic;
	color: var(--gfe-ink);
}
.gfe-ab-quote cite {
	display: block;
	margin-top: 18px;
	font-family: var(--gfe-sans);
	font-size: 11px;
	font-style: normal;
	font-weight: 500;
	letter-spacing: .28em;
	text-transform: uppercase;
	color: var(--gfe-olive-gray);
}

/* ==========================  3. HER APPROACH  ========================== */
.e-con.gfe-ab-approach {
	--padding-top: clamp(66px, 7.2vw, 112px);
	--padding-bottom: clamp(66px, 7.2vw, 112px);
	background-color: #62674F;
	background-image:
		radial-gradient(48% 74% at 24% 12%, rgba(132, 137, 109, .30) 0%, rgba(132, 137, 109, 0) 68%),
		linear-gradient(180deg, #63684F 0%, #5F644C 55%, #595E47 100%);
	border-top: 1px solid rgba(255, 255, 255, .06);
}
.e-con.gfe-ab-approach > .e-con-inner { gap: clamp(36px, 4vw, 58px); }
.gfe-ab-approach .gfe-eyebrow { margin-bottom: 14px; }
.gfe-sec .gfe-ab-h2--light .elementor-heading-title { color: var(--gfe-paper); }
.gfe-sec .gfe-ab-h2--light .elementor-heading-title em { color: var(--gfe-gold-lt); }
.gfe-sec .gfe-ab-intro.elementor-widget-text-editor {
	margin-top: 22px;
	font-size: 16.5px;
	line-height: 1.78;
	color: rgba(244, 240, 235, .90);
	max-width: 46em;
}
.e-con.gfe-ab-steps {
	--gap: 0px;
	padding: 0;
	width: 100%;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(22px, 2.6vw, 44px);
	align-items: start;
}
.e-con.gfe-ab-step {
	padding: clamp(26px, 2.5vw, 36px) clamp(22px, 2.2vw, 32px) clamp(30px, 2.8vw, 40px);
	gap: 0;
	border-top: 1px solid rgba(194, 158, 95, .42);
	background: linear-gradient(180deg, rgba(244, 240, 235, .055) 0%, rgba(244, 240, 235, 0) 78%);
	transition: background-color .6s var(--gfe-ease), transform .6s var(--gfe-ease-out);
}
.e-con.gfe-ab-step:hover { background-color: rgba(244, 240, 235, .05); }
.gfe-ab-step__n {
	display: block;
	margin: 0 0 16px;
	font-family: var(--gfe-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .34em;
	color: var(--gfe-gold-lt);
}
.gfe-sec .gfe-ab-step__t .elementor-heading-title {
	font-family: var(--gfe-serif);
	font-weight: 400;
	font-size: clamp(24px, 2.2vw, 31px);
	line-height: 1.2;
	color: var(--gfe-paper);
}
.gfe-sec .gfe-ab-step__x.elementor-widget-text-editor {
	margin-top: 14px;
	font-size: 15.5px;
	line-height: 1.76;
	color: rgba(244, 240, 235, .88);
}
/* staggered reveal for the three steps */
.gfe-js .gfe-ab-steps > .gfe-ab-step { opacity: 0; transform: translate3d(0, 26px, 0); transition: opacity .9s var(--gfe-ease-out), transform 1s var(--gfe-ease-out), background-color .6s var(--gfe-ease); }
.gfe-js .gfe-ab-approach.is-in .gfe-ab-steps > .gfe-ab-step { opacity: 1; transform: none; }
.gfe-js .gfe-ab-approach.is-in .gfe-ab-steps > .gfe-ab-step:nth-child(2) { transition-delay: .13s, .13s, 0s; }
.gfe-js .gfe-ab-approach.is-in .gfe-ab-steps > .gfe-ab-step:nth-child(3) { transition-delay: .26s, .26s, 0s; }

/* ==========================  4. THE EXPERIENCE  ======================== */
.e-con.gfe-ab-exp {
	--padding-top: clamp(66px, 7.2vw, 112px);
	--padding-bottom: clamp(66px, 7.2vw, 112px);
	background: linear-gradient(180deg, #EFEBE3 0%, var(--gfe-cream-3) 100%);
	overflow: hidden;
}
.e-con.gfe-ab-exp > .e-con-inner {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
	gap: clamp(34px, 4.6vw, 76px);
	align-items: center;
}
.e-con.gfe-ab-exp__copy { padding: 0; gap: 0; }
.gfe-ab-exp .gfe-eyebrow { margin-bottom: 14px; }
.gfe-ab-list { list-style: none; margin: 30px 0 0; padding: 0; }
.gfe-ab-list li {
	position: relative;
	padding: 0 0 20px 34px;
	margin: 0 0 20px;
	border-bottom: 1px solid rgba(141, 144, 120, .26);
}
.gfe-ab-list li:last-child { border-bottom: 0; padding-bottom: 0; margin-bottom: 0; }
.gfe-ab-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 9px;
	width: 18px;
	height: 1px;
	background: var(--gfe-gold);
}
.gfe-ab-list strong {
	display: block;
	margin-bottom: 6px;
	font-family: var(--gfe-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--gfe-ink);
}
.gfe-ab-list span { display: block; font-size: 15.5px; line-height: 1.76; color: var(--gfe-ink-soft); }

/* abstract botanical arc composition (no photography) */
.e-con.gfe-ab-exp__art { padding: 0; position: relative; }
.gfe-ab-art { position: relative; display: block; width: 100%; aspect-ratio: 1 / 1; }
.gfe-ab-art svg { display: block; width: 100%; height: 100%; overflow: visible; }
.gfe-ab-art .gfe-ab-art__ring { fill: none; stroke: rgba(184, 146, 80, .80); stroke-width: 1.3; }
.gfe-ab-art .gfe-ab-art__leaf { fill: none; stroke: rgba(88, 93, 70, .82); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.gfe-ab-art .gfe-ab-art__wash { fill: rgba(141, 144, 120, .17); }
.gfe-js .gfe-ab-art .gfe-ab-art__ring, .gfe-js .gfe-ab-art .gfe-ab-art__leaf { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 2.8s var(--gfe-ease) .2s; }
.gfe-js .gfe-ab-exp.is-in .gfe-ab-art .gfe-ab-art__ring, .gfe-js .gfe-ab-exp.is-in .gfe-ab-art .gfe-ab-art__leaf { stroke-dashoffset: 0; }
.gfe-js .gfe-ab-art .gfe-ab-art__wash { opacity: 0; transition: opacity 1.4s var(--gfe-ease-out) .5s; }
.gfe-js .gfe-ab-exp.is-in .gfe-ab-art .gfe-ab-art__wash { opacity: 1; }

/* ==========================  5. CLOSING CTA  =========================== */
.e-con.gfe-ab-cta {
	--padding-top: clamp(66px, 7.4vw, 116px);
	--padding-bottom: clamp(66px, 7.4vw, 116px);
	background-color: var(--gfe-sage-dk);
	background-image:
		radial-gradient(46% 70% at 50% 8%, rgba(132, 137, 109, .30) 0%, rgba(132, 137, 109, 0) 70%),
		linear-gradient(180deg, #585D46 0%, #535844 60%, #4C513E 100%);
	text-align: center;
}
.e-con.gfe-ab-cta > .e-con-inner { gap: 0; align-items: center; }
.gfe-ab-cta .gfe-eyebrow { margin-bottom: 16px; }
.gfe-sec .gfe-ab-cta-title .elementor-heading-title {
	font-family: var(--gfe-serif);
	font-weight: 400;
	font-size: clamp(32px, 3.6vw, 50px);
	line-height: 1.12;
	color: var(--gfe-paper);
	text-wrap: balance;
}
.gfe-sec .gfe-ab-cta-title .elementor-heading-title em { font-style: italic; color: var(--gfe-gold-lt); }
.gfe-sec .gfe-ab-cta-text.elementor-widget-text-editor {
	margin-top: 22px;
	font-size: 16.5px;
	line-height: 1.78;
	color: rgba(244, 240, 235, .90);
	max-width: 40em;
	margin-left: auto;
	margin-right: auto;
}
.gfe-ab-cta .e-con.gfe-actions { margin-top: 34px; justify-content: center; }
.gfe-ab-cta-note {
	margin: 26px 0 0;
	font-family: var(--gfe-sans);
	font-size: 12.5px;
	letter-spacing: .04em;
	color: rgba(244, 240, 235, .72);
}
.gfe-ab-cta-note a { color: rgba(244, 240, 235, .92); text-decoration: none; box-shadow: inset 0 -1px 0 rgba(194, 158, 95, .6); }
.gfe-ab-cta-note a:hover { color: var(--gfe-gold-lt); }

/* ==========================  RESPONSIVE  =============================== */
@media (max-width: 1100px) {
	.e-con.gfe-ab-hero > .e-con-inner { gap: clamp(28px, 4vw, 52px); }
	.e-con.gfe-ab-steps { gap: clamp(18px, 2.4vw, 30px); }
}
@media (max-width: 900px) {
	.e-con.gfe-ab-hero > .e-con-inner { grid-template-columns: minmax(0, 1fr); gap: 42px; }
	.e-con.gfe-ab-portrait { order: -1; max-width: 420px; width: 100%; margin: 0 auto; }
	.e-con.gfe-ab-meet > .e-con-inner { grid-template-columns: minmax(0, 1fr); gap: 36px; }
	.e-con.gfe-ab-meet__aside { order: 2; }
	.e-con.gfe-ab-exp > .e-con-inner { grid-template-columns: minmax(0, 1fr); gap: 40px; }
	.e-con.gfe-ab-exp__art { order: -1; max-width: 440px; width: 100%; margin: 0 auto; }
	.e-con.gfe-ab-steps { grid-template-columns: minmax(0, 1fr); gap: 0; }
	.e-con.gfe-ab-step { padding-left: 0; padding-right: 0; }
}
@media (max-width: 600px) {
	.gfe-ab-quote { padding: 26px 22px; }
	.gfe-ab-creds li { padding: 8px 12px; font-size: 11px; letter-spacing: .1em; }
	.gfe-ab-portrait__frame::before { inset: 10px; }
	.gfe-ab-cta .e-con.gfe-actions { flex-direction: column; align-items: stretch; }
	.gfe-ab-cta .e-con.gfe-actions > .elementor-widget { width: 100%; }
	.gfe-ab-cta .e-con.gfe-actions .elementor-button { width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
	.gfe-js .gfe-ab-steps > .gfe-ab-step { opacity: 1; transform: none; }
	.gfe-js .gfe-ab-art .gfe-ab-art__ring, .gfe-js .gfe-ab-art .gfe-ab-art__leaf { stroke-dashoffset: 0; }
	.gfe-js .gfe-ab-art .gfe-ab-art__wash { opacity: 1; }
	.gfe-js .gfe-ab-portrait__frame svg path { stroke-dashoffset: 0; }
}