/* ==========================================================================
   Reusable scroll-reveal utility
   Add data-animate to any home page section/element (see home.js).
   Reused across all home page sections going forward.
   ========================================================================== */
[data-animate]{
	opacity:0;
	transform:translateY(32px);
	transition:opacity .7s ease, transform .7s ease;
}

[data-animate].is-visible{
	opacity:1;
	transform:translateY(0);
}


/* ==========================================================================
   Home Page - Hero Section
   Background image sits full-bleed and extends underneath the
   transparent header (that overlap is intentional).
   ========================================================================== */

.hero{
	position:relative;
	min-height:100vh;
	display:flex;
	align-items:center;
	overflow:hidden;
	background:var(--color-bg-soft);
}

.hero__bg{
	position:absolute;
	inset: 0;
	background-size:cover;
	background-position:right top;
	background-repeat:no-repeat;
	z-index:1;
}

/* Soft fade from the light background color into the photo,
   so the header and left-side text stay readable. */
.hero__overlay{
	position:absolute;
	inset:0;
	background:linear-gradient(
		90deg,
		var(--color-bg-soft) 0%,
		rgba(250,248,244,0.92) 22%,
		rgba(250,248,244,0.55) 42%,
		rgba(250,248,244,0.08) 60%,
		rgba(250,248,244,0) 72%
	);
	z-index:2;
}

/* Decorative gold rings, echoing the reference design */
.hero__ring{
	position:absolute;
	border:1px solid rgba(201,162,75,0.35);
	border-radius:50%;
	z-index:2;
	pointer-events:none;
}

.hero__ring--1{
	width:320px;
	height:320px;
	top:6%;
	right:16%;
}

.hero__ring--2{
	width:190px;
	height:190px;
	top:34%;
	right:24%;
}

.hero__inner{
	position:relative;
	z-index:3;
	width:100%;
	padding-top:var(--header-height);
}

.hero__content{
	max-width:620px;
	padding:60px 0;
}

.hero__eyebrow{
	font-family:var(--font-heading);
	font-size:14px;
	font-weight:400;
	letter-spacing:0.22em;
	text-transform:uppercase;
	color:var(--color-gold-dark);
	margin:0 0 12px;
}

.hero__heading{
	font-family:var(--font-heading);
	font-size:clamp(42px, 6vw, 60px);
	font-weight:600;
	line-height:1.08;
	color:var(--color-black);
	margin:0 0 18px;
}

.hero__desc{
	font-family:var(--font-body);
	font-size:17px;
	line-height:1.75;
	color:var(--color-text-muted);
	max-width:480px;
	margin:0 0 36px;
}

.hero__buttons{
	display:flex;
	flex-wrap:wrap;
	gap:16px;
}

.hero__btn-primary{
	background:var(--color-black);
	border-color:var(--color-black);
	color:#fff;
}

.hero__btn-primary:hover{
	background:var(--color-gold);
	border-color:var(--color-gold);
	color:var(--color-black);
}

.hero__btn-secondary{
	border-color:var(--color-gold);
	color:var(--color-black);
}

.hero__btn-secondary:hover{
	background:var(--color-gold);
	border-color:var(--color-gold);
	color:var(--color-black);
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1024px){
	.hero__content{
		max-width:100%;
	}
	.hero__overlay{
		background:linear-gradient(
			90deg,
			var(--color-bg-soft) 0%,
			rgba(250,248,244,0.9) 35%,
			rgba(250,248,244,0.5) 58%,
			rgba(250,248,244,0.1) 78%,
			rgba(250,248,244,0) 100%
		);
	}
}

@media (max-width: 768px){

	.hero{
		min-height:auto;
	}

	.hero__bg{
		background-position: 75%;
	}

	.hero__overlay{
		background:linear-gradient(
			180deg,
			rgba(250,248,244,0.35) 0%,
			rgba(250,248,244,0.92) 55%,
			var(--color-bg-soft) 78%
		);
	}

	.hero__ring{
		display:none;
	}

	.hero__inner{
		padding-top:calc(var(--header-height) + 20px);
	}

	.hero__content{
		padding:0 0 48px;
		text-align:left;
	}

	.hero__heading{
		font-size:clamp(34px, 10vw, 36px);
		font-weight: 600;
	}

	.hero__desc{
		font-size:15.5px;
		max-width:100%;
	}
}

@media (max-width: 480px){

	.hero__buttons{
		flex-direction:column;
		gap:12px;
	}

	.hero__buttons .btn{
		width:100%;
		text-align:center;
	}
}


/* ==========================================================================
   Home Page - Featured In (logo strip)
   Infinite auto-scrolling marquee, pauses on hover, grayscale logos
   that turn full color on hover.
   ========================================================================== */
.featured-in{
	background:var(--color-bg);
	padding:44px 0;
	border-top:1px solid var(--color-border);
	border-bottom:1px solid var(--color-border);
}

.featured-in__inner{
	display:flex;
	align-items:center;
	gap:40px;
}

.featured-in__label{
	flex:0 0 auto;
	font-family:var(--font-heading);
	font-size:14px;
	font-weight:700;
	letter-spacing:0.14em;
	text-transform:uppercase;
	color:var(--color-text-muted);
	margin:0;
	padding-right:32px;
	border-right:1px solid var(--color-border);
	white-space:nowrap;
}

.featured-in__track-wrap{
	flex:1 1 auto;
	overflow:hidden;
	-webkit-mask-image:linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
	mask-image:linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
}

.featured-in__track{
	display:flex;
	width:max-content;
	animation:featured-in-scroll 28s linear infinite;
}

.featured-in__track-wrap:hover .featured-in__track{
	animation-play-state:paused;
}

.featured-in__logos{
	display:flex;
	align-items:center;
	gap:64px;
	padding-right:64px;
}

.featured-in__logo{
	flex:0 0 auto;
	display:flex;
	align-items:center;
	justify-content:center;
	height:32px;
}

.featured-in__logo img{
	max-height:32px;
	width:auto;
	filter:grayscale(100%) opacity(0.55);
	transition:filter .3s ease;
}

.featured-in__logo:hover img{
	filter:grayscale(0%) opacity(1);
}

@keyframes featured-in-scroll{
	from{ transform:translateX(0); }
	to{ transform:translateX(-50%); }
}

/* ==========================================================================
   Responsive - Featured In
   ========================================================================== */
@media (max-width: 768px){

	.featured-in{
		padding:32px 0;
	}

	.featured-in__inner{
		flex-direction:column;
		align-items:flex-start;
		gap:16px;
		overflow: hidden;
	}

	.featured-in__label{
		padding-right:0;
		border-right:none;
	}

	.featured-in__logos{
		gap:44px;
		padding-right:44px;
	}

	.featured-in__logo{
		height:26px;
	}

	.featured-in__logo img{
		max-height:26px;
	}
}

/* ==========================================================================
   Home Page - About / Intro Strip
   Centered text only — Frank's photo already appears in the hero.
   ========================================================================== */
.about-intro{
	background:var(--color-bg);
	padding:60px 0;
}

.about-intro__inner{
	max-width:720px;
	margin:0 auto;
	text-align:center;
}

.about-intro__eyebrow{
	font-family:var(--font-heading);
	font-size:14px;
	font-weight:400;
	letter-spacing:0.22em;
	text-transform:uppercase;
	color:var(--color-gold-dark);
	margin:0 0 12px;
}

.about-intro__heading{
	font-family:var(--font-heading);
	font-size:clamp(30px, 3.4vw, 42px);
	font-weight:600;
	line-height:1.18;
	color:var(--color-black);
	margin:0 0 22px;
}

.about-intro__desc{
	font-family:var(--font-body);
	font-size:16.5px;
	line-height:1.8;
	color:var(--color-text-muted);
	margin:0 auto 34px;
}

.about-intro__btn{
	display:inline-flex;
}

/* ==========================================================================
   Responsive - About / Intro
   ========================================================================== */
@media (max-width: 768px){

	.about-intro{
		padding:70px 0;
	}

	.about-intro__desc{
		font-size:15.5px;
	}
}

@media (max-width: 480px){

	.about-intro{
		padding:56px 0;
	}

	.about-intro__btn{
		width:100%;
		text-align:center;
	}
}


/* ==========================================================================
   Home Page - Services Overview (3 Cards)
   ========================================================================== */
.services-overview{
	background:var(--color-bg-soft);
	padding:70px 0;
}

.services-overview__head{
	text-align:center;
	max-width:640px;
	margin:0 auto 56px;
}

.services-overview__eyebrow{
	font-family:var(--font-heading);
	font-size:14px;
	font-weight:400;
	letter-spacing:0.22em;
	text-transform:uppercase;
	color:var(--color-gold-dark);
	margin:0 0 12px;
}

.services-overview__heading{
	font-family:var(--font-heading);
	font-size:clamp(28px, 3.2vw, 40px);
	font-weight:600;
	color:var(--color-black);
	margin:0;
}

.services-overview__grid{
	display:grid;
	grid-template-columns:repeat(3, 1fr);
	gap:32px;
}

.service-card{
	display:flex;
	flex-direction:column;
	background:var(--color-bg);
	border:1px solid var(--color-border);
	border-radius:6px;
	overflow:hidden;
	transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}

.service-card:hover{
	transform:translateY(-8px);
	box-shadow:0 24px 44px rgba(17,17,17,0.12);
	border-color:transparent;
}

.service-card--featured{
	border-color:var(--color-gold);
}

.service-card__image-wrap{
	position:relative;
	aspect-ratio:4 / 3;
	overflow:hidden;
}

.service-card__image-wrap img{
	width:100%;
	height:100%;
	object-fit:cover;
	transition:transform .5s ease;
}

.service-card:hover .service-card__image-wrap img{
	transform:scale(1.06);
}

.service-card__badge{
	position:absolute;
	top:16px;
	right:16px;
	background:var(--color-gold);
	color:var(--color-black);
	font-family:var(--font-heading);
	font-size:12px;
	font-weight:700;
	letter-spacing:0.06em;
	text-transform:uppercase;
	padding:6px 14px;
	border-radius:20px;
	z-index:2;
}

.service-card__body{
	flex:1;
	display:flex;
	flex-direction:column;
	padding:28px 26px 30px;
}

.service-card__title{
	font-family:var(--font-heading);
	font-size:20px;
	font-weight:500;
	color:var(--color-black);
	margin:0 0 12px;
}

.service-card__desc{
	font-family:var(--font-body);
	font-size:15px;
	line-height:1.7;
	color:var(--color-text-muted);
	margin:0 0 22px;
	flex:1;
}

.service-card__link{
	display:inline-flex;
	align-items:center;
	gap:8px;
	font-family:var(--font-heading);
	font-size:15px;
	font-weight:600;
	color:var(--color-black);
}

.service-card__arrow{
	transition:transform .3s ease;
}

.service-card:hover .service-card__arrow{
	transform:translateX(4px);
}

/* ==========================================================================
   Responsive - Services Overview
   ========================================================================== */
@media (max-width: 1024px){

	.services-overview{
		padding:80px 0;
	}

	.services-overview__grid{
		grid-template-columns:repeat(2, 1fr);
	}
}

@media (max-width: 700px){

	.services-overview__grid{
		grid-template-columns:1fr;
		gap:24px;
	}

	.services-overview__head{
		margin-bottom:40px;
	}
}

@media (max-width: 480px){

	.services-overview{
		padding:60px 0;
	}

	.service-card__body{
		padding:22px 20px 24px;
	}
}


/* ==========================================================================
   Home Page - Why Choose Me / Approach
   ========================================================================== */
.why-choose{
	background:var(--color-bg);
	padding:70px 0;
}

.why-choose__head{
	text-align:center;
	max-width:620px;
	margin:0 auto 60px;
}

.why-choose__eyebrow{
	font-family:var(--font-heading);
	font-size:14px;
	font-weight:400;
	letter-spacing:0.22em;
	text-transform:uppercase;
	color:var(--color-gold-dark);
	margin:0 0 12px;
}

.why-choose__heading{
	font-family:var(--font-heading);
	font-size:clamp(28px, 3.2vw, 40px);
	font-weight:600;
	color:var(--color-black);
	margin:0 0 16px;
}

.why-choose__intro{
	font-family:var(--font-body);
	font-size:16px;
	line-height:1.75;
	color:var(--color-text-muted);
	margin:0;
}

.why-choose__grid{
	display:grid;
	grid-template-columns:repeat(2, 1fr);
	gap:2px;
	background:var(--color-border);
	border:1px solid var(--color-border);
	border-radius:6px;
	overflow:hidden;
}

.approach-item{
	position:relative;
	background:var(--color-bg);
	padding:44px 40px;
	transition:background .35s ease;
}

.approach-item:hover{
	background:var(--color-bg-soft);
}

.approach-item__number{
	display:block;
	font-family:var(--font-heading);
	font-size:15px;
	font-weight:700;
	letter-spacing:0.08em;
	color:var(--color-gold);
	margin-bottom:18px;
}

.approach-item__icon{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:52px;
	height:52px;
	border-radius:50%;
	background:var(--color-bg-soft);
	color:var(--color-gold-dark);
	margin-bottom:20px;
	transition:background .35s ease, color .35s ease, transform .35s ease;
}

.approach-item:hover .approach-item__icon{
	background:#f9f6ed;
	color:var(--color-gold);
	transform:scale(1.06);
}

.approach-item__title{
	font-family:var(--font-heading);
	font-size:21px;
	font-weight:600;
	color:var(--color-black);
	margin:0 0 12px;
	line-height:1.3;
}

.approach-item__desc{
	font-family:var(--font-body);
	font-size:15px;
	line-height:1.7;
	color:var(--color-text-muted);
	margin:0;
	max-width:400px;
}

/* ==========================================================================
   Responsive - Why Choose Me
   ========================================================================== */
@media (max-width: 1024px){

	.why-choose{
		padding:80px 0;
	}

	.approach-item{
		padding:36px 30px;
	}
}

@media (max-width: 700px){

	.why-choose__grid{
		grid-template-columns:1fr;
	}

	.why-choose__head{
		margin-bottom:44px;
	}
}

@media (max-width: 480px){

	.why-choose{
		padding:60px 0;
	}

	.approach-item{
		padding:32px 24px;
	}

	.approach-item__desc{
		max-width:100%;
	}
}


/* ==========================================================================
   Home Page - Testimonials / Social Proof (Carousel)
   ========================================================================== */
.testimonials{
	background:var(--color-bg-soft);
	padding:70px 0;
}

.testimonials__head{
	text-align:center;
	max-width:600px;
	margin:0 auto 56px;
}

.testimonials__eyebrow{
	font-family:var(--font-heading);
	font-size:14px;
	font-weight:400;
	letter-spacing:0.22em;
	text-transform:uppercase;
	color:var(--color-gold-dark);
	margin:0 0 12px;
}

.testimonials__heading{
	font-family:var(--font-heading);
	font-size:clamp(28px, 3.2vw, 40px);
	font-weight:600;
	color:var(--color-black);
	margin:0;
}

.testimonials__carousel{
	position:relative;
}

.testimonials__track{
	display:flex;
	gap:28px;
	overflow-x:auto;
	scroll-snap-type:x mandatory;
	scroll-behavior:smooth;
	-webkit-overflow-scrolling:touch;
	padding-bottom:4px;
	scrollbar-width:none;
	-ms-overflow-style:none;
}

.testimonials__track::-webkit-scrollbar{
	display:none;
}

.testimonial-card{
	flex:0 0 calc((100% - 56px) / 3);
	scroll-snap-align:start;
	background:var(--color-bg);
	border:1px solid var(--color-border);
	border-radius:6px;
	padding:38px 32px;
	display:flex;
	flex-direction:column;
	transition:transform .35s ease, box-shadow .35s ease;
}

.testimonial-card:hover{
	transform:translateY(-6px);
	
}

.testimonial-card__quote-icon{
	color:var(--color-gold);
	margin-bottom:18px;
}

.testimonial-card__rating{
	display:flex;
	gap:4px;
	color:var(--color-gold);
	margin-bottom:16px;
}

.testimonial-card__quote{
	font-family:var(--font-body);
	font-size:15.5px;
	line-height:1.8;
	color:var(--color-text);
	margin:0 0 28px;
	flex:1;
}

.testimonial-card__author{
	display:flex;
	align-items:center;
	gap:14px;
	padding-top:22px;
	border-top:1px solid var(--color-border);
}

.testimonial-card__avatar{
	width:48px;
	height:48px;
	border-radius:50%;
	object-fit:cover;
	flex-shrink:0;
}

.testimonial-card__author-info{
	display:flex;
	flex-direction:column;
}

.testimonial-card__name{
	font-family:var(--font-heading);
	font-size:16px;
	font-weight:600;
	color:var(--color-black);
}

.testimonial-card__role{
	font-family:var(--font-body);
	font-size:13px;
	color:var(--color-text-muted);
}

.testimonials__nav{
	display:flex;
	justify-content:center;
	gap:16px;
	margin-top:36px;
}

.testimonials__arrow{
	width:48px;
	height:48px;
	border-radius:50%;
	border:1px solid var(--color-border);
	background:var(--color-bg);
	color:var(--color-black);
	display:flex;
	align-items:center;
	justify-content:center;
	transition:background .3s ease, border-color .3s ease, color .3s ease;
}

.testimonials__arrow:hover:not(:disabled){
	background:var(--color-black);
	border-color:var(--color-black);
	color:var(--color-gold);
}

.testimonials__arrow:disabled{
	opacity:0.35;
	cursor:not-allowed;
}

/* ==========================================================================
   Responsive - Testimonials Carousel
   ========================================================================== */
@media (max-width: 1024px){

	.testimonials{
		padding:80px 0;
	}

	.testimonial-card{
		flex:0 0 calc((100% - 28px) / 2);
	}
}

@media (max-width: 700px){

	.testimonials__head{
		margin-bottom:40px;
	}

	.testimonial-card{
		flex:0 0 85%;
		padding:28px 24px;
	}
}

@media (max-width: 480px){

	.testimonials{
		padding:60px 0;
	}

	.testimonial-card{
		flex:0 0 92%;
	}
}


/* ==========================================================================
   Home Page - Published Articles / Blogs Preview
   ========================================================================== */
.articles-preview{
	background:var(--color-bg);
	padding:70px 0;
}

.articles-preview__head{
	text-align:center;
	max-width:620px;
	margin:0 auto 56px;
}

.articles-preview__eyebrow{
	font-family:var(--font-heading);
	font-size:14px;
	font-weight:400;
	letter-spacing:0.22em;
	text-transform:uppercase;
	color:var(--color-gold-dark);
	margin:0 0 12px;
}

.articles-preview__heading{
	font-family:var(--font-heading);
	font-size:clamp(28px, 3.2vw, 40px);
	font-weight:600;
	color:var(--color-black);
	margin:0;
}

.articles-preview__grid{
	display:grid;
	grid-template-columns:repeat(3, 1fr);
	gap:32px;
	margin-bottom:48px;
}

.article-card{
	display:flex;
	flex-direction:column;
	background:var(--color-bg);
	border:1px solid var(--color-border);
	border-radius:6px;
	overflow:hidden;
	transition:transform .35s ease, box-shadow .35s ease;
}

.article-card:hover{
	transform:translateY(-8px);
	box-shadow:0 24px 44px rgba(17,17,17,0.12);
}

.article-card__image-wrap{
	position:relative;
	aspect-ratio:4 / 3;
	overflow:hidden;
	background:var(--color-bg-soft);
}

.article-card__image-wrap img{
	width:100%;
	height:100%;
	object-fit:cover;
	transition:transform .5s ease;
}

.article-card:hover .article-card__image-wrap img{
	transform:scale(1.06);
}

.article-card__category{
	position:absolute;
	top:16px;
	left:16px;
	background:var(--color-black);
	color:var(--color-gold);
	font-family:var(--font-heading);
	font-size:11px;
	font-weight:700;
	letter-spacing:0.06em;
	text-transform:uppercase;
	padding:6px 14px;
	border-radius:20px;
	z-index:2;
}

.article-card__body{
	flex:1;
	display:flex;
	flex-direction:column;
	padding:26px 24px 28px;
}

.article-card__date{
	font-family:var(--font-body);
	font-size:13px;
	color:var(--color-gold-dark);
	margin-bottom:10px;
	letter-spacing:0.02em;
}

.article-card__title{
	font-family:var(--font-heading);
	font-size:20px;
	font-weight:600;
	color:var(--color-black);
	margin:0 0 12px;
	line-height:1.3;
}

.article-card__excerpt{
	font-family:var(--font-body);
	font-size:14.5px;
	line-height:1.7;
	color:var(--color-text-muted);
	margin:0 0 20px;
	flex:1;
}

.article-card__link{
	display:inline-flex;
	align-items:center;
	gap:8px;
	font-family:var(--font-heading);
	font-size:14.5px;
	font-weight:600;
	color:var(--color-black);
}

.article-card__link svg{
	transition:transform .3s ease;
}

.article-card:hover .article-card__link svg{
	transform:translateX(4px);
}

.articles-preview__cta{
	text-align:center;
}

/* ==========================================================================
   Responsive - Articles Preview
   ========================================================================== */
@media (max-width: 1024px){

	.articles-preview{
		padding:80px 0;
	}

	.articles-preview__grid{
		grid-template-columns:repeat(2, 1fr);
	}
}

@media (max-width: 700px){

	.articles-preview__grid{
		grid-template-columns:1fr;
		gap:24px;
	}

	.articles-preview__head{
		margin-bottom:40px;
	}
}

@media (max-width: 480px){

	.articles-preview{
		padding:60px 0;
	}

	.article-card__body{
		padding:22px 20px 24px;
	}
}


/* ==========================================================================
   Home Page - CTA Banner (Book a Call)
   Background image with dark overlay. No bottom padding — sits flush
   against the footer directly below it.
   ========================================================================== */
.cta-banner{
	position:relative;
	padding:120px 0 60px;
	overflow:hidden;
	text-align:center;
}

.cta-banner__bg{
	position:absolute;
	inset:0;
	background-size:cover;
	background-position:top;
	background-repeat:no-repeat;
	background-attachment:fixed;
	z-index:1;
}

.cta-banner__overlay{
	position:absolute;
	inset:0;
	background:linear-gradient(180deg, rgba(255,255,255,0.88) 0%, rgba(255,255,255,0.94) 100%);
	z-index:2;
}

.cta-banner__inner{
	position:relative;
	z-index:3;
	max-width:680px;
	margin:0 auto;
}

.cta-banner__eyebrow{
	font-family:var(--font-heading);
	font-size:14px;
	font-weight:400;
	letter-spacing:0.22em;
	text-transform:uppercase;
	color:var(--color-gold-dark);
	margin:0 0 14px;
}

.cta-banner__heading{
	font-family:var(--font-heading);
	font-size:clamp(30px, 4vw, 46px);
	font-weight:600;
	line-height:1.2;
	color:var(--color-black);
	margin:0 0 20px;
}

.cta-banner__desc{
	font-family:var(--font-body);
	font-size:16.5px;
	line-height:1.75;
	color:var(--color-text-muted);
	margin:0 0 38px;
}

.cta-banner__btn{
	display:inline-flex;
	background:var(--color-gold);
	border-color:var(--color-gold);
	color:var(--color-black);
}

.cta-banner__btn:hover{
	background:var(--color-black);
	border-color:var(--color-gold);
	color: #fff;
}


/* ==========================================================================
   Responsive - CTA Banner
   ========================================================================== */
@media (max-width: 768px){

	.cta-banner{
		padding:90px 0 44px;
	}
	
	.cta-banner__bg{
	background-position: 63%;
}
.cta-banner__overlay {
    opacity: 0.9;
}
}

@media (max-width: 480px){

	.cta-banner{
		padding:70px 0 36px;
	}

	.cta-banner__desc{
		font-size:15px;
	}

	.cta-banner__btn{
		width:100%;
		text-align:center;
	}
		.cta-banner__bg{
	background-position: 63%;
}
.cta-banner__overlay {
    opacity: 0.9;
}
}