/* GTA local landing pages. Matches the Elementor kit on gtarchitects.net:
   Poppins, headings #14261c, body #4e5652, page #f4f6f4, accent #1bae70. */

.gta-lp {
	--gta-ink: #14261c;
	--gta-text: #4e5652;
	--gta-page: #f4f6f4;
	--gta-tint: #ebede6;
	--gta-green: #1bae70;
	--gta-green-dark: #158a59;
	--gta-dark: #2b2e2c;
	--gta-line: #dfe3dd;
	font-family: Poppins, sans-serif;
	color: var(--gta-text);
	font-size: 16px;
	line-height: 1.85;
	background: var(--gta-page);
}

.gta-local-page .entry-content > .gta-lp { margin: 0; }
.gta-local-page .site-content > .ast-container { max-width: 100%; padding: 0; }
.gta-local-page #primary { margin: 0; padding: 0; }
.gta-local-page .entry-header { display: none; }
.gta-local-page article.page { margin: 0; padding: 0; background: transparent; }

.gta-lp *, .gta-lp *::before, .gta-lp *::after { box-sizing: border-box; }
.gta-lp h1, .gta-lp h2, .gta-lp h3, .gta-lp h4 { font-family: Poppins, sans-serif; color: var(--gta-ink); margin: 0 0 .6em; }
.gta-lp h2 { font-size: 36px; line-height: 1.3; font-weight: 600; }
.gta-lp h3 { font-size: 22px; line-height: 1.4; font-weight: 600; }
.gta-lp p { margin: 0 0 1.15em; }
.gta-lp a { color: var(--gta-green-dark); }
.gta-lp a:hover { color: var(--gta-ink); }
.gta-lp ul { margin: 0 0 1.2em 1.2em; padding: 0; }
.gta-lp li { margin-bottom: .45em; }
.gta-lp img { max-width: 100%; height: auto; display: block; }

.gta-wrap { max-width: 1140px; margin: 0 auto; padding: 0 20px; }
.gta-narrow { max-width: 820px; }
.gta-sec { padding: 90px 0; }
.gta-sec--tint { background: var(--gta-tint); }
.gta-sec--white { background: #fff; }
.gta-sec--tight { padding: 60px 0; }

/* little green rule that sits above section titles on the main site */
.gta-rule { width: 50px; height: 2px; background: var(--gta-green); margin: 0 0 22px; border: 0; }
.gta-center { text-align: center; }
.gta-center .gta-rule { margin-left: auto; margin-right: auto; }

.gta-eyebrow { font-family: Montserrat, sans-serif; font-size: 12px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--gta-green-dark); margin-bottom: 10px; display: block; }

/* Hero */
/* the site header is a 100px translucent bar; pull the hero under it like the Elementor pages do (-102px) */
.gta-hero { position: relative; min-height: 680px; margin-top: -102px; display: flex; align-items: center; background-size: cover; background-position: center; color: #fff; text-align: center; padding: 190px 0 90px; }
.gta-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.64) 0%, rgba(0,0,0,.54) 45%, rgba(0,0,0,.70) 100%); }
.gta-hero--light::before { background: linear-gradient(180deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.42) 45%, rgba(0,0,0,.62) 100%); }
.gta-hero h1, .gta-hero .gta-hero__lead, .gta-hero .gta-eyebrow { text-shadow: 0 2px 14px rgba(0,0,0,.35); }
.gta-hero .gta-wrap { position: relative; z-index: 1; }
.gta-hero h1 { color: #fff; font-size: 50px; line-height: 1.2; font-weight: 600; margin-bottom: 18px; }
.gta-hero .gta-hero__lead { font-size: 22px; font-weight: 300; line-height: 1.6; max-width: 760px; margin: 0 auto 34px; color: #fff; }
.gta-hero .gta-eyebrow { color: #fff; opacity: .9; }

.gta-btn { display: inline-block; font-family: Montserrat, sans-serif; font-size: 12px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; text-decoration: none; padding: 16px 30px; margin: 6px; background: var(--gta-green); color: #fff !important; border: 2px solid var(--gta-green); transition: background .2s, border-color .2s; }
.gta-btn:hover { background: var(--gta-green-dark); border-color: var(--gta-green-dark); color: #fff !important; }
.gta-btn--ghost { background: transparent; border-color: #fff; }
.gta-btn--ghost:hover { background: #fff; border-color: #fff; color: var(--gta-ink) !important; }

/* Quick answer + facts */
.gta-answer { display: grid; grid-template-columns: 1.55fr 1fr; gap: 50px; align-items: start; }
.gta-answer__lead { font-size: 19px; line-height: 1.85; color: var(--gta-ink); }
.gta-facts { background: #fff; border-top: 3px solid var(--gta-green); padding: 30px 30px 18px; box-shadow: 0 10px 30px rgba(20,38,28,.06); }
.gta-facts h3 { font-size: 18px; margin-bottom: 14px; }
.gta-facts dl { margin: 0; }
.gta-facts dt { font-family: Montserrat, sans-serif; font-size: 11px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--gta-green-dark); }
.gta-facts dd { margin: 0 0 14px; font-size: 15px; line-height: 1.6; color: var(--gta-ink); }

/* Split text/image */
.gta-split { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.gta-split--flip .gta-split__media { order: 2; }
.gta-split__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.gta-split__media figcaption, .gta-fig figcaption { font-size: 13px; color: #7a817d; margin-top: 10px; line-height: 1.5; }
.gta-fig { margin: 0; }

/* Cards */
.gta-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; margin-top: 40px; }
.gta-cards--2 { grid-template-columns: repeat(2, 1fr); }
.gta-cards--4 { grid-template-columns: repeat(4, 1fr); }
.gta-card { background: #fff; padding: 32px 28px 22px; border-bottom: 2px solid transparent; transition: border-color .2s, transform .2s; }
.gta-card:hover { border-bottom-color: var(--gta-green); }
.gta-card h3 { font-size: 19px; }
.gta-card p { font-size: 15px; line-height: 1.75; }
.gta-card__num { font-family: Montserrat, sans-serif; font-weight: 700; color: var(--gta-green); font-size: 13px; letter-spacing: 2px; display: block; margin-bottom: 10px; }
a.gta-card--link { display: block; text-decoration: none; color: inherit; padding: 0; }
a.gta-card--link img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
a.gta-card--link .gta-card__body { padding: 22px 24px 14px; }
a.gta-card--link .gta-more { font-family: Montserrat, sans-serif; font-size: 12px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--gta-green-dark); }

/* Video + process */
.gta-video { display: grid; grid-template-columns: 1.35fr 1fr; gap: 50px; align-items: center; }
.gta-video__frame { background: #f3efe7; box-shadow: 0 18px 40px rgba(20,38,28,.12); }
.gta-video__frame video { width: 100%; height: auto; display: block; aspect-ratio: 16 / 9; background: #f3efe7; object-fit: cover; }
.gta-steps { list-style: none; margin: 0; padding: 0; counter-reset: gta-step; }
.gta-steps li { counter-increment: gta-step; position: relative; padding: 0 0 16px 48px; margin: 0; line-height: 1.6; }
.gta-steps li::before { content: counter(gta-step); position: absolute; left: 0; top: 0; width: 32px; height: 32px; border: 2px solid var(--gta-green); color: var(--gta-green-dark); font-family: Montserrat, sans-serif; font-weight: 700; font-size: 13px; display: flex; align-items: center; justify-content: center; border-radius: 50%; }
.gta-steps strong { color: var(--gta-ink); display: block; font-weight: 600; }
.gta-steps span { font-size: 14.5px; }

/* Gallery */
.gta-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 36px; }
.gta-gallery figure { margin: 0; position: relative; overflow: hidden; background: #ddd; }
.gta-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .5s; }
.gta-gallery figure:hover img { transform: scale(1.04); }
.gta-gallery figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 26px 14px 10px; background: linear-gradient(transparent, rgba(0,0,0,.6)); color: #fff; font-size: 12px; font-family: Montserrat, sans-serif; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; }
.gta-gallery--wide figure:first-child { grid-column: span 2; grid-row: span 2; }
.gta-gallery--wide figure:first-child img { aspect-ratio: auto; height: 100%; }

/* Callout / note */
.gta-note { background: #fff; border-left: 3px solid var(--gta-green); padding: 22px 26px; margin: 28px 0; font-size: 15.5px; line-height: 1.75; }
.gta-note p:last-child { margin-bottom: 0; }

/* Recognition strip */
.gta-proof { display: grid; grid-template-columns: 150px 1fr auto; gap: 40px; align-items: center; }
.gta-covers { display: flex; gap: 16px; }
.gta-cover { margin: 0; width: 120px; text-align: center; }
.gta-cover img { width: 100%; aspect-ratio: 5 / 6; object-fit: cover; }
.gta-cover figcaption { font-size: 11.5px; color: #7a817d; margin-top: 8px; line-height: 1.4; }
.gta-proof img { box-shadow: 0 10px 25px rgba(0,0,0,.15); }
.gta-proof h3 { font-size: 24px; }

/* FAQ */
.gta-faq { margin-top: 30px; border-top: 1px solid var(--gta-line); }
.gta-faq details { border-bottom: 1px solid var(--gta-line); }
.gta-faq summary { list-style: none; cursor: pointer; padding: 22px 44px 22px 0; position: relative; font-weight: 600; color: var(--gta-ink); font-size: 18px; line-height: 1.5; }
.gta-faq summary::-webkit-details-marker { display: none; }
.gta-faq summary::after { content: "+"; position: absolute; right: 6px; top: 18px; font-size: 26px; font-weight: 300; color: var(--gta-green); transition: transform .2s; }
.gta-faq details[open] summary::after { transform: rotate(45deg); }
.gta-faq .gta-faq__a { padding: 0 0 18px; }

/* Other areas */
.gta-areas { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 24px; }
.gta-areas a { display: inline-block; padding: 11px 20px; background: #fff; border: 1px solid var(--gta-line); text-decoration: none; color: var(--gta-ink); font-size: 14.5px; font-weight: 500; transition: border-color .2s, color .2s; }
.gta-areas a:hover { border-color: var(--gta-green); color: var(--gta-green-dark); }

/* Closing CTA, same dark photo band feel as the home page */
.gta-cta { position: relative; background-size: cover; background-position: center; color: #fff; text-align: center; padding: 100px 0; }
.gta-cta::before { content: ""; position: absolute; inset: 0; background: rgba(28,32,30,.82); }
.gta-cta .gta-wrap { position: relative; z-index: 1; }
.gta-cta h2 { color: #fff; }
.gta-cta p { color: rgba(255,255,255,.88); font-size: 17px; max-width: 640px; margin: 0 auto 28px; }
.gta-cta .gta-cta__addr { font-size: 14px; color: rgba(255,255,255,.7); margin-top: 26px; }

.gta-small { font-size: 13px; color: #7a817d; line-height: 1.6; }

@media (max-width: 1024px) {
	.gta-cards, .gta-cards--4 { grid-template-columns: repeat(2, 1fr); }
	.gta-video { grid-template-columns: 1fr; }
	.gta-answer { grid-template-columns: 1fr; gap: 34px; }
}

@media (max-width: 767px) {
	.gta-lp { font-size: 15.5px; }
	.gta-wrap { padding: 0 16px; }
	.gta-sec { padding: 60px 0; }
	.gta-sec--tight { padding: 44px 0; }
	.gta-lp h2 { font-size: 27px; }
	.gta-lp h3 { font-size: 19px; }
	.gta-hero { min-height: 600px; padding: 200px 0 64px; }
	.gta-hero h1 { font-size: 32px; }
	.gta-hero .gta-hero__lead { font-size: 17px; }
	.gta-btn { display: block; margin: 8px auto; max-width: 300px; text-align: center; }
	.gta-answer__lead { font-size: 17px; }
	.gta-split, .gta-cards, .gta-cards--2, .gta-cards--4, .gta-proof { grid-template-columns: 1fr; gap: 28px; }
	.gta-split--flip .gta-split__media { order: 0; }
	.gta-proof { text-align: center; }
	.gta-proof img { max-width: 170px; margin: 0 auto; }
	.gta-gallery { grid-template-columns: 1fr 1fr; gap: 8px; }
	.gta-gallery--wide figure:first-child { grid-column: span 2; grid-row: auto; }
	.gta-gallery--wide figure:first-child img { aspect-ratio: 4 / 3; height: auto; }
	.gta-faq summary { font-size: 16px; }
	.gta-cta { padding: 70px 0; }
}

@media (max-width: 767px) { .gta-gallery figcaption { font-size: 10px; letter-spacing: 1px; padding: 20px 8px 7px; } }

/* Video: our own poster + play button instead of the browser's default overlay */
.gta-video__frame { position: relative; overflow: hidden; }
.gta-play { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; padding: 0; margin: 0; background: transparent; cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; -webkit-tap-highlight-color: transparent; }
.gta-play::before { content: ""; position: absolute; inset: 0; background: rgba(20,38,28,.18); transition: background .2s; }
.gta-play:hover::before { background: rgba(20,38,28,.08); }
.gta-play__btn { position: relative; width: 84px; height: 84px; border-radius: 50%; background: var(--gta-green); box-shadow: 0 10px 30px rgba(0,0,0,.25); transition: transform .2s, background .2s; }
.gta-play__btn::after { content: ""; position: absolute; left: 34px; top: 26px; border-style: solid; border-width: 16px 0 16px 26px; border-color: transparent transparent transparent #fff; }
.gta-play:hover .gta-play__btn { transform: scale(1.06); background: var(--gta-green-dark); }
.gta-play__label { position: relative; font-family: Montserrat, sans-serif; font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #fff; background: rgba(20,38,28,.72); padding: 6px 12px; }
.gta-video__frame.is-playing .gta-play { display: none; }

@media (max-width: 767px) {
	.gta-proof { grid-template-columns: 1fr; }
	.gta-proof__plaque img { max-width: 140px; margin: 0 auto; }
	.gta-covers { justify-content: center; }
	.gta-covers { flex-wrap: wrap; }
	.gta-cover { width: 30%; max-width: 130px; }
	.gta-play__btn { width: 68px; height: 68px; }
	.gta-play__btn::after { left: 27px; top: 21px; border-width: 13px 0 13px 21px; }
	/* fallback if JS is off: the mobile header is ~139px tall */
	.gta-hero { margin-top: -139px; }
}
@media (min-width: 768px) and (max-width: 1024px) { .gta-hero { margin-top: -159px; } }

/* Home page: big video section under the hero */
.gta-hv { background: #fff; padding: 100px 0 90px; }
.gta-hv h2 { font-size: 38px; }
.gta-hv__player { max-width: 1000px; margin: 0 auto; }
.gta-hv .gta-video__frame { border: 12px solid #fff; box-shadow: 0 30px 70px rgba(20,38,28,.18), 0 0 0 1px rgba(20,38,28,.06); }
.gta-hsteps { list-style: none; margin: 56px auto 0; padding: 0; max-width: 1100px; display: grid; grid-template-columns: repeat(6, 1fr); gap: 22px; }
.gta-hsteps li { margin: 0; padding-top: 16px; border-top: 2px solid var(--gta-line); line-height: 1.5; }
.gta-hsteps li:hover { border-top-color: var(--gta-green); }
.gta-hstep__n { display: block; font-family: Montserrat, sans-serif; font-weight: 700; font-size: 12px; letter-spacing: 2px; color: var(--gta-green-dark); margin-bottom: 6px; }
.gta-hsteps strong { display: block; color: var(--gta-ink); font-weight: 600; font-size: 16px; margin-bottom: 4px; }
.gta-hsteps li > span:last-child { font-size: 13.5px; color: var(--gta-text); }
.gta-press { margin: 70px auto 0; padding-top: 50px; border-top: 1px solid var(--gta-line); max-width: 1000px; }
.gta-press__row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 34px; margin-top: 26px; align-items: end; }
.gta-press figure { margin: 0; text-align: center; }
.gta-press img { width: 100%; max-width: 170px; aspect-ratio: 5 / 6; object-fit: cover; margin: 0 auto; box-shadow: 0 12px 28px rgba(0,0,0,.16); transition: transform .25s; }
.gta-press figure:hover img { transform: translateY(-4px); }
.gta-press figcaption { margin-top: 14px; font-size: 13px; line-height: 1.45; color: #7a817d; }
.gta-press figcaption strong { display: block; color: var(--gta-ink); font-weight: 600; font-size: 14px; }
.gta-press__mast { width: 100%; max-width: 170px; aspect-ratio: 5 / 6; margin: 0 auto; background: #1e2a22; color: #b5d27a; display: flex; flex-direction: column; align-items: center; justify-content: center; font-family: Georgia, "Times New Roman", serif; font-size: 40px; letter-spacing: 2px; box-shadow: 0 12px 28px rgba(0,0,0,.16); }
.gta-press__mast span { font-family: Montserrat, sans-serif; font-size: 10px; letter-spacing: 3px; text-transform: uppercase; color: #fff; margin-bottom: 4px; }
.gta-btn--outline { background: transparent; color: var(--gta-ink) !important; border-color: var(--gta-ink); }
.gta-btn--outline:hover { background: var(--gta-ink); border-color: var(--gta-ink); color: #fff !important; }

/* Home page: About with a photo instead of the empty column */
.gta-ha { background: transparent; padding: 20px 30px 20px 0; }
.gta-ha__photo { position: relative; margin: 0 0 40px; }
.gta-ha__photo > img:first-child { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; box-shadow: 0 24px 60px rgba(20,38,28,.16); }
.gta-ha__logo { position: absolute; right: -28px; bottom: -36px; width: 150px; height: auto; box-shadow: 0 14px 34px rgba(0,0,0,.25); }
.gta-ha-more { background: transparent; margin-top: 10px; }
.gta-ha-more .gta-btn { margin: 6px 12px 6px 0; }

@media (max-width: 1024px) {
	.gta-hsteps { grid-template-columns: repeat(3, 1fr); }
	.gta-ha { padding-right: 20px; }
}
@media (max-width: 767px) {
	.gta-hv { padding: 60px 0; }
	.gta-hv h2 { font-size: 26px; }
	.gta-hv .gta-video__frame { border-width: 6px; }
	.gta-hsteps { grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 36px; }
	.gta-press { margin-top: 44px; padding-top: 36px; }
	.gta-press__row { grid-template-columns: 1fr 1fr; gap: 26px 18px; }
	.gta-press__mast { font-size: 30px; }
	.gta-ha { padding: 10px 16px 30px; }
	.gta-ha__photo > img:first-child { aspect-ratio: 4 / 3; }
	.gta-ha__logo { right: 12px; bottom: -28px; width: 104px; }
	.gta-ha-more { text-align: center; }
	.gta-ha-more .gta-btn { margin: 8px auto; }
}

/* About page: video in the Our Team section */
.gta-av { background: transparent; padding: 10px 0 10px 20px; }
.gta-av .gta-video__frame { border: 10px solid #fff; box-shadow: 0 24px 60px rgba(20,38,28,.16); margin-top: 6px; }
.gta-av__cap { font-size: 14.5px; line-height: 1.7; margin: 20px 0 0; }
.gta-av__cap a { font-weight: 600; text-decoration: none; }
@media (max-width: 767px) { .gta-av { padding: 30px 0 10px; text-align: center; } .gta-av .gta-video__frame { border-width: 6px; } }
