/* ==========================================================================
   FM Legal — Practice Areas Widgets
   Shared stylesheet for fm-pa-* widgets
   ========================================================================== */

.fm-pa,
.fm-pa * { box-sizing: border-box; }

.fm-pa {
	--fm-pa-accent:   #96783c;
	--fm-pa-accent-2: #c9a96e;
	--fm-pa-dark:     #1a1714;
	--fm-pa-cream:    #faf9f6;
	--fm-pa-warm:     #f3f1ec;
	--fm-pa-text:     #1a1714;
	--fm-pa-text-mut: rgba(26,23,20,.55);
	--fm-pa-light:    #e8e4df;
	--fm-pa-light-mut: rgba(232,228,223,.6);
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	color: var(--fm-pa-text);
}
.fm-pa .fm-pa-serif { font-family: 'Cormorant Garamond', 'Playfair Display', Georgia, serif; }

/* Reveal animations (reuses IntersectionObserver in fm-legal.js if present,
   also works with our own tiny script appended below) */
.fm-pa .fm-pa-anim { opacity: 0; transform: translateY(30px); transition: opacity .8s ease-out, transform .8s ease-out; }
.fm-pa .fm-pa-anim.is-visible { opacity: 1; transform: none; }
.fm-pa .fm-pa-anim-l { opacity: 0; transform: translateX(-30px); transition: opacity .8s ease-out, transform .8s ease-out; }
.fm-pa .fm-pa-anim-l.is-visible { opacity: 1; transform: none; }
.fm-pa .fm-pa-anim-r { opacity: 0; transform: translateX(30px); transition: opacity .8s ease-out, transform .8s ease-out; }
.fm-pa .fm-pa-anim-r.is-visible { opacity: 1; transform: none; }

/* Common eyebrow row (rule + label) */
.fm-pa-eyerow { display: flex; align-items: center; gap: 16px; margin-bottom: 24px; }
.fm-pa-eyerow--center { justify-content: center; }
.fm-pa-eyerow__rule { width: 48px; height: 1px; background: var(--fm-pa-accent); flex-shrink: 0; }
.fm-pa-eyerow__label { font-size: 11px; letter-spacing: 5px; text-transform: uppercase; color: var(--fm-pa-accent); }

/* Common CTA button */
.fm-pa-btn {
	display: inline-flex; align-items: center; gap: 10px;
	padding: 14px 32px;
	background: var(--fm-pa-accent); color: #fff;
	font-size: 11px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase;
	text-decoration: none;
	transition: all .4s ease;
	border: 0;
}
.fm-pa-btn:hover { background: #7a6230; transform: translateY(-2px); box-shadow: 0 8px 24px rgba(150,120,60,.25); color: #fff; }
.fm-pa-btn--gold { background: var(--fm-pa-accent-2); color: #0a0a0a; }
.fm-pa-btn--gold:hover { background: #e0c48a; color: #0a0a0a; box-shadow: 0 8px 24px rgba(201,169,110,.3); }
.fm-pa-btn--lg { padding: 18px 40px; font-size: 12px; }
.fm-pa-btn svg { width: 14px; height: 14px; stroke: currentColor; fill: none; stroke-width: 2; }

/* ==========================================================================
   HERO (fm-pa-hero)
   ========================================================================== */
.fm-pa-hero {
	position: relative;
	min-height: 70vh;
	display: flex; align-items: center;
	padding: 120px 80px 80px;
	overflow: hidden;
}
.fm-pa-hero__bg { position: absolute; inset: 0; background-size: cover; background-position: center; background-repeat: no-repeat; }
.fm-pa-hero__overlay { position: absolute; inset: 0; background: linear-gradient(135deg, rgba(10,10,10,.92) 0%, rgba(10,10,10,.75) 100%); }
.fm-pa-hero__inner { position: relative; z-index: 2; max-width: 1000px; width: 100%; margin: 0 auto; }
.fm-pa-hero__eyerow .fm-pa-eyerow__label,
.fm-pa-hero__eyerow .fm-pa-eyerow__rule { color: var(--fm-pa-accent-2); background: var(--fm-pa-accent-2); }
.fm-pa-hero__eyerow .fm-pa-eyerow__label { background: transparent; }
.fm-pa-hero h1 {
	font-family: 'Cormorant Garamond','Playfair Display',Georgia,serif;
	font-size: clamp(42px, 6vw, 80px); font-weight: 300; line-height: 1.05;
	margin: 0 0 24px; color: var(--fm-pa-light);
}
.fm-pa-hero h1 .fm-pa-accent { font-weight: 600; color: var(--fm-pa-accent-2); }
.fm-pa-hero__desc { font-size: 18px; line-height: 1.8; color: rgba(232,228,223,.65); max-width: 640px; margin: 0; }

/* ==========================================================================
   JUMP INDEX (fm-pa-jump)
   ========================================================================== */
.fm-pa-jump {
	padding: 60px 80px;
	background: var(--fm-pa-warm);
	border-bottom: 1px solid rgba(26,23,20,.06);
}
.fm-pa-jump__inner { max-width: 1400px; margin: 0 auto; }
.fm-pa-jump__row {
	display: flex; align-items: center; gap: 20px;
	font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase;
	color: rgba(26,23,20,.5);
	flex-wrap: wrap; justify-content: center;
}
.fm-pa-jump__lead { color: var(--fm-pa-accent); white-space: nowrap; }
.fm-pa-jump__link { color: inherit; text-decoration: none; white-space: nowrap; transition: color .3s ease; }
.fm-pa-jump__link:hover { color: var(--fm-pa-accent); }

/* ==========================================================================
   DETAIL BLOCK (fm-pa-detail) — used for Litigation / Arbitration / Corporate
   ========================================================================== */
.fm-pa-detail {
	position: relative;
	padding: 140px 80px;
	background: var(--fm-pa-cream);
	overflow: hidden;
}
.fm-pa-detail--dark { background: var(--fm-pa-dark); color: var(--fm-pa-light); }
.fm-pa-detail__ghostnum {
	position: absolute; top: -60px; right: -40px;
	font-family: 'Cormorant Garamond','Playfair Display',Georgia,serif;
	font-size: 400px; font-weight: 700;
	color: rgba(150,120,60,.03); line-height: 1;
	pointer-events: none; user-select: none;
}
.fm-pa-detail__grid {
	position: relative;
	max-width: 1400px; margin: 0 auto;
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: 100px; align-items: center;
}
.fm-pa-detail--img-left .fm-pa-detail__grid { grid-template-columns: 1fr 1.1fr; }
.fm-pa-detail--img-left .fm-pa-detail__text { order: 2; }
.fm-pa-detail--img-left .fm-pa-detail__media { order: 1; }

.fm-pa-detail__numrow { display: flex; align-items: center; gap: 16px; margin-bottom: 24px; }
.fm-pa-detail__num {
	font-family: 'Cormorant Garamond','Playfair Display',Georgia,serif;
	font-size: 48px; font-weight: 300; line-height: 1;
	color: rgba(150,120,60,.35);
}
.fm-pa-detail--dark .fm-pa-detail__num { color: rgba(201,169,110,.4); }
.fm-pa-detail__rule { width: 48px; height: 1px; background: var(--fm-pa-accent); }
.fm-pa-detail--dark .fm-pa-detail__rule { background: var(--fm-pa-accent-2); }
.fm-pa-detail__eyebrow { font-size: 11px; letter-spacing: 5px; text-transform: uppercase; color: var(--fm-pa-accent); }
.fm-pa-detail--dark .fm-pa-detail__eyebrow { color: var(--fm-pa-accent-2); }

.fm-pa-detail__h {
	font-family: 'Cormorant Garamond','Playfair Display',Georgia,serif;
	font-size: 52px; font-weight: 300; line-height: 1.15;
	margin: 0 0 28px; color: var(--fm-pa-text);
}
.fm-pa-detail--dark .fm-pa-detail__h { color: var(--fm-pa-light); }
.fm-pa-detail__h .fm-pa-accent { font-weight: 600; color: var(--fm-pa-accent); }
.fm-pa-detail--dark .fm-pa-detail__h .fm-pa-accent { color: var(--fm-pa-accent-2); }

.fm-pa-detail__p { font-size: 16px; line-height: 1.9; color: rgba(26,23,20,.55); margin: 0 0 24px; }
.fm-pa-detail--dark .fm-pa-detail__p { color: rgba(232,228,223,.55); }
.fm-pa-detail__p:last-of-type { margin-bottom: 40px; }

.fm-pa-detail__bullets {
	display: grid; grid-template-columns: 1fr 1fr;
	gap: 16px 32px; margin: 0 0 40px;
}
.fm-pa-detail__bullet { display: flex; gap: 12px; align-items: flex-start; }
.fm-pa-detail__dot { width: 6px; height: 6px; background: var(--fm-pa-accent); margin-top: 8px; flex-shrink: 0; }
.fm-pa-detail--dark .fm-pa-detail__dot { background: var(--fm-pa-accent-2); }
.fm-pa-detail__bulletlbl { font-size: 14px; color: rgba(26,23,20,.7); }
.fm-pa-detail--dark .fm-pa-detail__bulletlbl { color: rgba(232,228,223,.75); }

.fm-pa-detail__media { position: relative; }
.fm-pa-detail__imgwrap { position: relative; overflow: hidden; }
.fm-pa-detail__img { display: block; width: 100%; height: 600px; object-fit: cover; }
.fm-pa-detail--dark .fm-pa-detail__img { filter: grayscale(20%); }
.fm-pa-detail__imgfade { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 60%, rgba(26,23,20,.5)); }

.fm-pa-detail__badge {
	position: absolute;
	background: var(--fm-pa-dark); color: var(--fm-pa-light);
	padding: 32px 36px; max-width: 280px;
}
.fm-pa-detail__badge--bl { bottom: -30px; left: -30px; }
.fm-pa-detail__badge--br { bottom: -30px; right: -30px; }
.fm-pa-detail__badge--tr { top: -30px; right: -30px; }
.fm-pa-detail__badge--gold { background: var(--fm-pa-accent-2); color: var(--fm-pa-dark); }
.fm-pa-detail__badge-num {
	font-family: 'Cormorant Garamond','Playfair Display',Georgia,serif;
	font-size: 48px; font-weight: 300; line-height: 1; color: var(--fm-pa-accent-2);
}
.fm-pa-detail__badge--gold .fm-pa-detail__badge-num { color: var(--fm-pa-dark); }
.fm-pa-detail__badge-lbl { font-size: 12px; letter-spacing: 3px; text-transform: uppercase; color: rgba(232,228,223,.5); margin-top: 8px; }
.fm-pa-detail__badge--gold .fm-pa-detail__badge-lbl { color: rgba(26,23,20,.7); margin-bottom: 8px; margin-top: 0; }
.fm-pa-detail__badge-text {
	font-family: 'Cormorant Garamond','Playfair Display',Georgia,serif;
	font-size: 28px; font-weight: 600; line-height: 1.3;
}

/* ==========================================================================
   GRID OF SECONDARY PRACTICES (fm-pa-grid)
   ========================================================================== */
.fm-pa-grid { padding: 140px 80px; background: var(--fm-pa-warm); }
.fm-pa-grid__inner { max-width: 1400px; margin: 0 auto; }
.fm-pa-grid__head { text-align: center; margin-bottom: 80px; }
.fm-pa-grid__eyerow {
	display: inline-flex; align-items: center; gap: 16px; margin-bottom: 24px;
}
.fm-pa-grid__eyerow .fm-pa-eyerow__rule { background: var(--fm-pa-accent); }
.fm-pa-grid__eyerow .fm-pa-eyerow__label { color: var(--fm-pa-accent); }
.fm-pa-grid__h {
	font-family: 'Cormorant Garamond','Playfair Display',Georgia,serif;
	font-size: 48px; font-weight: 300; line-height: 1.2; margin: 0;
	color: var(--fm-pa-text);
}
.fm-pa-grid__h .fm-pa-accent { font-weight: 600; color: var(--fm-pa-accent); }

.fm-pa-grid__cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; }
.fm-pa-grid__card {
	padding: 56px 48px;
	background: #fff;
	border: 1px solid rgba(26,23,20,.06);
	transition: all .5s ease;
	scroll-margin-top: 120px;
}
.fm-pa-grid__card:hover { background: rgba(150,120,60,.03); border-color: rgba(150,120,60,.25); }
.fm-pa-grid__card-head { display: flex; align-items: center; gap: 20px; margin-bottom: 24px; }
.fm-pa-grid__card-num {
	font-family: 'Cormorant Garamond','Playfair Display',Georgia,serif;
	font-size: 42px; font-weight: 300; line-height: 1;
	color: rgba(150,120,60,.35);
}
.fm-pa-grid__card-icon { width: 32px; height: 32px; }
.fm-pa-grid__card-icon svg { width: 100%; height: 100%; fill: none; stroke: var(--fm-pa-accent); stroke-width: 1.3; }
.fm-pa-grid__card-title {
	font-family: 'Cormorant Garamond','Playfair Display',Georgia,serif;
	font-size: 30px; font-weight: 600; margin: 0 0 16px; color: var(--fm-pa-text);
}
.fm-pa-grid__card-desc { font-size: 14px; line-height: 1.85; color: rgba(26,23,20,.55); margin: 0 0 24px; }
.fm-pa-grid__tags { display: flex; flex-wrap: wrap; gap: 8px; }
.fm-pa-grid__tag {
	font-size: 11px; padding: 6px 12px;
	background: rgba(150,120,60,.08); color: var(--fm-pa-accent);
	letter-spacing: 1px;
}

/* ==========================================================================
   INDUSTRIES BAR (fm-pa-industries)
   ========================================================================== */
.fm-pa-industries {
	padding: 100px 80px;
	background: var(--fm-pa-cream);
	border-top: 1px solid rgba(26,23,20,.06);
	border-bottom: 1px solid rgba(26,23,20,.06);
}
.fm-pa-industries__inner { max-width: 1400px; margin: 0 auto; }
.fm-pa-industries__head { text-align: center; margin-bottom: 60px; }
.fm-pa-industries__eyebrow { font-size: 11px; letter-spacing: 5px; text-transform: uppercase; color: var(--fm-pa-accent); }
.fm-pa-industries__h {
	font-family: 'Cormorant Garamond','Playfair Display',Georgia,serif;
	font-size: 36px; font-weight: 300; line-height: 1.3;
	margin: 16px 0 0; color: var(--fm-pa-text);
}
.fm-pa-industries__h .fm-pa-accent { font-weight: 600; color: var(--fm-pa-accent); }

.fm-pa-industries__grid {
	display: grid; grid-template-columns: repeat(6, 1fr); gap: 2px;
}
.fm-pa-industries__cell {
	padding: 32px 20px; text-align: center;
	background: #fff; border: 1px solid rgba(26,23,20,.06);
	transition: all .3s ease;
}
.fm-pa-industries__cell:hover { background: rgba(150,120,60,.05); border-color: rgba(150,120,60,.2); }
.fm-pa-industries__cell-name {
	font-family: 'Cormorant Garamond','Playfair Display',Georgia,serif;
	font-size: 20px; font-weight: 600; color: var(--fm-pa-text);
}

/* ==========================================================================
   CTA (fm-pa-cta)
   ========================================================================== */
.fm-pa-cta { position: relative; padding: 120px 80px; overflow: hidden; }
.fm-pa-cta__bg { position: absolute; inset: 0; background-size: cover; background-position: center; background-repeat: no-repeat; }
.fm-pa-cta__overlay { position: absolute; inset: 0; background: rgba(10,10,10,.88); }
.fm-pa-cta__inner {
	position: relative; z-index: 1;
	max-width: 900px; margin: 0 auto; text-align: center;
}
.fm-pa-cta__eyerow { display: inline-flex; align-items: center; gap: 16px; margin-bottom: 24px; }
.fm-pa-cta__eyerow .fm-pa-eyerow__rule { background: var(--fm-pa-accent-2); }
.fm-pa-cta__eyerow .fm-pa-eyerow__label { color: var(--fm-pa-accent-2); }
.fm-pa-cta__h {
	font-family: 'Cormorant Garamond','Playfair Display',Georgia,serif;
	font-size: clamp(36px, 5vw, 56px); font-weight: 300; line-height: 1.15;
	margin: 0 0 24px; color: var(--fm-pa-light);
}
.fm-pa-cta__h .fm-pa-accent { font-weight: 600; color: var(--fm-pa-accent-2); }
.fm-pa-cta__desc {
	font-size: 17px; line-height: 1.8;
	color: rgba(232,228,223,.6);
	max-width: 600px; margin: 0 auto 40px;
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1024px) {
	.fm-pa-hero,
	.fm-pa-jump,
	.fm-pa-detail,
	.fm-pa-grid,
	.fm-pa-industries,
	.fm-pa-cta { padding-left: 40px; padding-right: 40px; }

	.fm-pa-detail__grid,
	.fm-pa-detail--img-left .fm-pa-detail__grid { grid-template-columns: 1fr; gap: 60px; }
	.fm-pa-detail--img-left .fm-pa-detail__text,
	.fm-pa-detail--img-left .fm-pa-detail__media { order: initial; }
	.fm-pa-detail__ghostnum { font-size: 260px; }
	.fm-pa-detail__img { height: 420px; }

	.fm-pa-grid__cards { grid-template-columns: 1fr; }
	.fm-pa-industries__grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px) {
	.fm-pa-hero,
	.fm-pa-jump,
	.fm-pa-detail,
	.fm-pa-grid,
	.fm-pa-industries,
	.fm-pa-cta { padding-left: 20px; padding-right: 20px; }
	.fm-pa-hero { padding-top: 100px; padding-bottom: 60px; }
	.fm-pa-detail { padding-top: 80px; padding-bottom: 80px; }
	.fm-pa-detail__h { font-size: 36px; }
	.fm-pa-detail__bullets { grid-template-columns: 1fr; }
	.fm-pa-grid { padding-top: 80px; padding-bottom: 80px; }
	.fm-pa-grid__h { font-size: 32px; }
	.fm-pa-grid__card { padding: 40px 28px; }
	.fm-pa-industries__grid { grid-template-columns: repeat(2, 1fr); }
	.fm-pa-industries__h { font-size: 28px; }
	.fm-pa-cta { padding-top: 80px; padding-bottom: 80px; }
	.fm-pa-detail__badge--bl { left: 0; bottom: -20px; }
	.fm-pa-detail__badge--br { right: 0; bottom: -20px; }
	.fm-pa-detail__badge--tr { right: 0; top: -20px; }
}
