/* SGLR SEO/GEO module — matches the Astra/sglr luxury site language.
   Times New Roman uppercase headings, Montserrat body, brand red #af0b0b,
   full-bleed banded sections (white / #f5f5f5 / black / red), subtle motion. */

.sglr-seo,
.sglr-seo--append {
	--ink:#111; --body:#767676; --red:#af0b0b; --light:#f5f5f5; --cream:#FFFBC7; --line:#e0e0e0;
}

/* ---- Full-bleed band system ------------------------------------------- */
/* The SEO Landing template + Astra full-width-container make the parent edge
   to edge already, so bands are simple block-level full-width sections. */
.sglr-seo, .sglr-seo--append { display:block; width:100%; }
.sglr-seo__band { display:block; width:100%; background:#fff; }
.sglr-seo__band--light { background:var(--light); }
.sglr-seo__band--dark  { background:#0c0c0c; color:#fff; }
.sglr-seo__band--red   { background:var(--red); color:#fff; }
.sglr-seo__inner { max-width:1200px; margin:0 auto; padding:92px 30px; }
.sglr-seo__inner--narrow { max-width:920px; text-align:center; }
@media (max-width:767px){ .sglr-seo__inner { padding:54px 22px; } }

/* ---- Typography -------------------------------------------------------- */
.sglr-seo__eyebrow {
	font-family:'Times New Roman',serif; font-style:italic; font-size:23px; font-weight:normal;
	color:var(--body); margin:0 0 14px; letter-spacing:.3px;
}
.sglr-seo__band--dark .sglr-seo__eyebrow,
.sglr-seo__band--red .sglr-seo__eyebrow { color:rgba(255,255,255,.8); }
.sglr-seo__h1 {
	font-family:'Times New Roman',serif; text-transform:uppercase; font-weight:500; font-size:64px;
	line-height:1.08; letter-spacing:1px; margin:0 0 20px; color:inherit;
}
.sglr-seo__h2 {
	font-family:'Times New Roman',serif; text-transform:uppercase; font-weight:500; font-size:38px;
	line-height:1.15; letter-spacing:1px; color:inherit; margin:0 0 22px; padding-top:18px;
	border-top:1px solid var(--red); display:inline-block;
}
.sglr-seo__band--dark .sglr-seo__h2 { color:#fff; }
.sglr-seo__h3 {
	font-family:'Montserrat',sans-serif; text-transform:uppercase; font-weight:600; font-size:15px;
	letter-spacing:2px; color:var(--ink); margin:0 0 16px;
}
.sglr-seo__band--dark .sglr-seo__h3 { color:var(--cream); }
.sglr-seo__lead {
	font-family:'Montserrat',sans-serif; font-weight:300; font-size:22px; line-height:1.6; color:var(--body); margin:0;
}

/* Body copy */
.sglr-seo__body, .sglr-seo__intro {
	font-family:'Montserrat',sans-serif; font-size:18px; line-height:1.8; color:var(--body);
}
.sglr-seo__body p, .sglr-seo__intro p { margin:0 0 18px; }
.sglr-seo__body strong { color:var(--ink); font-weight:600; }
.sglr-seo__band--dark .sglr-seo__body strong { color:#fff; }
.sglr-seo__body a, .sglr-seo__intro a { color:var(--red); text-decoration:none; border-bottom:1px solid rgba(175,11,11,.35); }
.sglr-seo__body a:hover { border-color:var(--red); }

/* ---- Hero -------------------------------------------------------------- */
.sglr-seo__hero {
	display:flex; width:100%; align-items:center; justify-content:center; text-align:center;
	background:#0c0c0c center/cover no-repeat; color:#fff;
	min-height:80vh; padding:170px 24px 110px;
}
.sglr-seo__hero-inner { max-width:900px; }
.sglr-seo__hero .sglr-seo__eyebrow {
	color:var(--cream); display:inline-block; padding-bottom:10px; margin-bottom:18px;
	border-bottom:1px solid rgba(255,255,255,.4);
}
.sglr-seo__hero .sglr-seo__h1 { color:#fff; font-size:70px; }
.sglr-seo__subhead {
	font-family:'Montserrat',sans-serif; font-weight:300; font-size:21px; line-height:1.6;
	margin:0 auto 32px; max-width:680px; color:#f0f0f0;
}
@media (max-width:767px){
	.sglr-seo__hero { min-height:auto; padding:130px 22px 70px; }
	.sglr-seo__hero .sglr-seo__h1 { font-size:40px; }
	.sglr-seo__h1 { font-size:40px; }
	.sglr-seo__h2 { font-size:28px; }
	.sglr-seo__lead { font-size:19px; }
}

/* ---- Buttons (mirror site .back-to-projects idiom) -------------------- */
.sglr-seo__btn {
	display:inline-block; border:1px solid currentColor; padding:15px 38px; color:inherit;
	font-family:'Montserrat',sans-serif; font-weight:300; font-size:15px; text-transform:uppercase;
	letter-spacing:2px; text-decoration:none; background:transparent;
	transition:background .25s ease, color .25s ease, border-color .25s ease;
}
.sglr-seo__hero .sglr-seo__btn, .sglr-seo__band--dark .sglr-seo__btn { color:#fff; }
.sglr-seo__btn:hover { background:var(--red); border-color:var(--red); color:#fff; }
.sglr-seo__band--red .sglr-seo__btn { border-color:#fff; color:#fff; }
.sglr-seo__band--red .sglr-seo__btn:hover { background:#fff; color:var(--red); }

/* ---- Two-column section (heading left, body right) -------------------- */
.sglr-seo__split { display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:54px; align-items:start; }
@media (max-width:880px){ .sglr-seo__split { grid-template-columns:1fr; gap:20px; } }

/* ---- Process (Design / Guide / Build) numbered markers ---------------- */
.sglr-seo__process { display:grid; grid-template-columns:repeat(3,1fr); gap:46px; margin-top:48px; counter-reset:sglr-step; }
.sglr-seo__step { position:relative; padding-top:30px; }
.sglr-seo__step::before {
	counter-increment:sglr-step; content:"0" counter(sglr-step);
	font-family:'Times New Roman',serif; font-size:96px; line-height:1; color:rgba(175,11,11,.12);
	position:absolute; top:-26px; left:-6px; z-index:0;
}
.sglr-seo__step h3 { position:relative; z-index:1; }
.sglr-seo__step p { position:relative; z-index:1; font-family:'Montserrat',sans-serif; font-size:17px; line-height:1.7; color:var(--body); margin:0; }
@media (max-width:880px){ .sglr-seo__process { grid-template-columns:1fr; gap:30px; } }

/* ---- Signature Project cards (on black band) -------------------------- */
.sglr-seo__cards { display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin-top:46px; }
.sglr-seo__card { text-decoration:none; color:#fff; display:block; overflow:hidden; background:#161616; border:1px solid #262626; }
.sglr-seo__card-img { display:block; height:230px; background-size:cover; background-position:center; transition:transform .6s cubic-bezier(.19,1,.22,1); }
.sglr-seo__card:hover .sglr-seo__card-img { transform:scale(1.06); }
.sglr-seo__card-body { display:block; padding:20px 22px 24px; }
.sglr-seo__card-title { display:block; font-family:'Times New Roman',serif; text-transform:uppercase; letter-spacing:.5px; font-size:21px; color:#fff; }
.sglr-seo__card-loc { display:block; font-family:'Times New Roman',serif; font-style:italic; font-size:16px; color:var(--cream); margin-top:5px; }
@media (max-width:880px){ .sglr-seo__cards { grid-template-columns:1fr; } }

/* ---- FAQ accordion ---------------------------------------------------- */
.sglr-seo__faq-list { margin-top:40px; }
.sglr-seo__faq { border-bottom:1px solid #d8d8d8; }
.sglr-seo__faq[open] { }
.sglr-seo__faq summary {
	list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:24px;
	padding:26px 0; font-family:'Montserrat',sans-serif; font-weight:600; font-size:19px; color:var(--ink);
}
.sglr-seo__faq summary::-webkit-details-marker { display:none; }
.sglr-seo__faq summary::after {
	content:"+"; font-family:'Montserrat',sans-serif; font-weight:300; font-size:28px; color:var(--red);
	transition:transform .3s ease; line-height:1;
}
.sglr-seo__faq[open] summary::after { transform:rotate(45deg); }
.sglr-seo__faq-a {
	font-family:'Montserrat',sans-serif; font-size:17px; line-height:1.75; color:var(--body);
	padding:0 0 28px; max-width:880px;
}
.sglr-seo__faq-a p { margin:0 0 14px; }

/* ---- Areas We Serve --------------------------------------------------- */
.sglr-seo__areas-cols { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:48px; margin-top:36px; }
.sglr-seo__links { list-style:none; margin:0; padding:0; column-count:2; column-gap:26px; }
.sglr-seo__links li { margin:0 0 12px; break-inside:avoid; }
.sglr-seo__links a {
	font-family:'Montserrat',sans-serif; font-size:16px; color:var(--ink); text-decoration:none;
	padding-bottom:2px; border-bottom:1px solid transparent; transition:color .2s ease, border-color .2s ease;
}
.sglr-seo__links a:hover { color:var(--red); border-color:var(--red); }
.sglr-seo__links--wide { column-count:1; display:flex; flex-wrap:wrap; gap:14px 34px; margin-top:32px; }
.sglr-seo__links--wide li { margin:0; }
.sglr-seo__links--wide a { font-family:'Times New Roman',serif; text-transform:uppercase; letter-spacing:.5px; font-size:18px; }
@media (max-width:767px){ .sglr-seo__areas-cols { grid-template-columns:1fr; gap:26px; } .sglr-seo__links { column-count:1; } }

/* ---- PPC landing pages (slim header, trust bar, lead form) ------------- */
body.sglr-ppc .ast-builder-menu,
body.sglr-ppc .main-header-bar .main-navigation,
body.sglr-ppc .ast-mobile-menu-buttons,
body.sglr-ppc #ast-mobile-header,
body.sglr-ppc .site-header .ast-button-wrap { display:none !important; }
.sglr-ppc__cta-row { display:flex; gap:14px 18px; flex-wrap:wrap; align-items:center; justify-content:center; margin-top:12px; }
.sglr-seo__btn--ghost { background:transparent; border:1px solid rgba(255,255,255,.75); }
/* Hero: Call = loud red primary; Request = smaller secondary */
.sglr-ppc__call { background:var(--red); border-color:var(--red); color:#fff; font-weight:600; font-size:17px; padding:19px 48px; box-shadow:0 10px 26px rgba(175,11,11,.42); }
.sglr-ppc__call:hover { background:#c81212; border-color:#c81212; color:#fff; }
.sglr-ppc__secondary { font-size:12px; padding:11px 22px; letter-spacing:1.5px; font-weight:300; border-color:rgba(255,255,255,.55); }
.sglr-ppc__trust { background:#111; color:#fff; }
.sglr-ppc__trust-inner { max-width:1200px; margin:0 auto; display:flex; flex-wrap:wrap; gap:12px 38px; justify-content:center; padding:16px 24px; font-family:'Montserrat',sans-serif; font-size:13px; letter-spacing:.5px; text-transform:uppercase; }
.sglr-ppc__form-grid { display:grid; grid-template-columns:1fr 1.1fr; gap:48px; align-items:start; text-align:left; }
.sglr-ppc__callline { margin-top:18px; font-family:'Montserrat',sans-serif; }
.sglr-ppc__form .wpcf7-form p { margin:0 0 14px; }
.sglr-ppc__form label { display:block; font-family:'Montserrat',sans-serif; font-size:14px; margin-bottom:16px; }
.sglr-ppc__form input, .sglr-ppc__form select, .sglr-ppc__form textarea { width:100%; padding:12px 14px; border:1px solid #ccc; font-size:16px; font-family:inherit; background:#fff; margin-top:4px; }
.sglr-ppc__form .wpcf7-submit { width:auto; background:var(--red,#9b1b1b); color:#fff; border:none; padding:14px 30px; text-transform:uppercase; letter-spacing:.5px; cursor:pointer; font-family:'Montserrat',sans-serif; }
@media (max-width:900px){ .sglr-ppc__form-grid { grid-template-columns:1fr; gap:28px; } }
/* gallery strip + phone-first CTAs */
.sglr-ppc__gallery { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:32px; }
.sglr-ppc__gtile { display:block; padding-top:66%; background-size:cover; background-position:center; transition:transform .3s ease, box-shadow .3s ease; }
.sglr-ppc__gtile:hover { transform:translateY(-4px); box-shadow:0 14px 30px rgba(0,0,0,.18); }
.sglr-ppc__gmore { text-align:center; margin-top:30px; }
.sglr-seo__btn--dark { color:var(--ink,#111); border-color:rgba(17,17,17,.55); }
.sglr-ppc__bigphone { text-align:center; margin:18px 0 6px; }
.sglr-ppc__bigphone a { font-family:'Times New Roman',serif; font-size:40px; color:#fff; text-decoration:none; letter-spacing:1px; }
.sglr-ppc__or { text-align:center; font-family:'Montserrat',sans-serif; }
.sglr-ppc__or a { color:#fff; text-decoration:underline; }
@media (max-width:767px){ .sglr-ppc__gallery { grid-template-columns:repeat(2,1fr); } .sglr-ppc__bigphone a { font-size:30px; } }
/* hero Chip line, explore-more cards, sticky mobile call bar */
.sglr-ppc__chipline { font-family:'Montserrat',sans-serif; color:#fff; font-size:15px; letter-spacing:.4px; margin:8px 0 2px; }
.sglr-ppc__explore { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:30px; text-align:left; }
.sglr-ppc__xcard { display:block; padding:22px 24px; background:#fff; border:1px solid #e6e2db; text-decoration:none; transition:transform .25s ease, box-shadow .25s ease; }
.sglr-ppc__xcard:hover { transform:translateY(-3px); box-shadow:0 12px 26px rgba(0,0,0,.10); }
.sglr-ppc__xtitle { display:block; font-family:'Times New Roman',serif; font-size:20px; color:var(--ink,#111); margin-bottom:6px; }
.sglr-ppc__xdesc { display:block; font-family:'Montserrat',sans-serif; font-size:14px; color:#555; line-height:1.5; }
.sglr-ppc__stickycall { display:none; }
@media (max-width:767px){
	.sglr-ppc__explore { grid-template-columns:1fr; gap:14px; }
	.sglr-ppc__stickycall { display:flex; position:fixed; left:0; right:0; bottom:0; z-index:9999; align-items:center; justify-content:center;
		background:var(--red,#9b1b1b); color:#fff; text-decoration:none; font-family:'Montserrat',sans-serif; font-size:16px; font-weight:600;
		padding:15px 12px; letter-spacing:.3px; box-shadow:0 -4px 16px rgba(0,0,0,.22); }
	body.sglr-ppc { padding-bottom:58px; }
}

/* ---- CTA -------------------------------------------------------------- */
.sglr-seo__cta-h { font-family:'Times New Roman',serif; text-transform:uppercase; font-weight:500; font-size:40px; letter-spacing:1px; margin:0 0 18px; color:#fff; }
.sglr-seo__cta-p { font-family:'Montserrat',sans-serif; font-weight:300; font-size:20px; line-height:1.6; margin:0 0 30px; color:#fbe9ea; }

/* ---- Contact call-priority band --------------------------------------- */
.sglr-callbar { background:#0e0e0e; border-bottom:3px solid var(--red); margin-bottom:0; }
.sglr-callbar__inner { max-width:1140px; margin:0 auto; padding:240px 30px 64px; display:grid; grid-template-columns:1.6fr 1fr; gap:36px; align-items:center; }
@media (max-width:921px){ .sglr-callbar__inner { padding-top:140px; } }
.sglr-callbar .sglr-seo__eyebrow { color:var(--cream); }
.sglr-callbar__h { font-family:'Times New Roman',serif; text-transform:uppercase; font-size:28px; letter-spacing:.5px; color:#fff; margin:0 0 12px; }
.sglr-callbar__copy { font-family:'Montserrat',sans-serif; font-size:16px; line-height:1.7; color:#d7d7d7; margin:0; }
.sglr-callbar__cta { text-align:center; }
.sglr-callbar__phone { display:inline-block; background:var(--red); color:#fff; font-family:'Montserrat',sans-serif; font-weight:600;
	font-size:22px; letter-spacing:.5px; text-decoration:none; padding:18px 30px; border-radius:2px; transition:background .2s ease; white-space:nowrap; }
.sglr-callbar__phone:hover { background:#7d0808; color:#fff; }
.sglr-callbar__hours { display:block; margin-top:10px; font-family:'Montserrat',sans-serif; font-size:13px; letter-spacing:1px; text-transform:uppercase; color:var(--body); }
@media (max-width:767px){ .sglr-callbar__inner { grid-template-columns:1fr; gap:22px; text-align:center; } }

/* ---- Append separation ------------------------------------------------ */
.sglr-seo--append { margin-top:0; }

/* ---- Team single: dark hero banner (header then works like every page) ----
   No header overrides — the site's transparent header sits over this dark hero
   exactly as it does over the hero on every other page. */
.sglr-team-hero { background:#0c0c0c; color:#fff; text-align:center; padding:215px 24px 72px; }
.sglr-team-hero__inner { max-width:900px; margin:0 auto; }
.sglr-team-hero__eyebrow { font-family:'Times New Roman',serif; font-style:italic; font-size:23px; color:var(--cream); margin:0 0 12px; }
.sglr-team-hero__name { font-family:'Times New Roman',serif; text-transform:uppercase; font-size:54px; line-height:1.05; letter-spacing:1px; color:#fff; margin:0; }
.sglr-team-hero__title { font-family:'Montserrat',sans-serif; font-weight:300; font-size:18px; letter-spacing:2px; text-transform:uppercase; color:#cfcfcf; margin:14px 0 0; }
@media (max-width:767px){ .sglr-team-hero { padding:140px 20px 50px; } .sglr-team-hero__name { font-size:34px; } }
/* Name + title now live in the hero, so hide the duplicates in the body. */
body.single-team .team-project_top h1.project-title,
body.single-team .team-project_top .project_left_con p.preheading { display:none; }

/* ---- Motion (progressive enhancement; only hides when JS is present) --- */
.sglr-js .sglr-anim { opacity:0; transform:translateY(30px); transition:opacity 1s cubic-bezier(.19,1,.22,1), transform 1s cubic-bezier(.19,1,.22,1); }
.sglr-anim.is-visible { opacity:1; transform:none; }
.sglr-js .sglr-stagger > * { opacity:0; transform:translateY(28px); transition:opacity .9s cubic-bezier(.19,1,.22,1), transform .9s cubic-bezier(.19,1,.22,1); }
.sglr-stagger.is-visible > * { opacity:1; transform:none; }
.sglr-stagger.is-visible > *:nth-child(2) { transition-delay:.12s; }
.sglr-stagger.is-visible > *:nth-child(3) { transition-delay:.24s; }
.sglr-stagger.is-visible > *:nth-child(4) { transition-delay:.36s; }
@media (prefers-reduced-motion:reduce){ .sglr-anim,.sglr-stagger>*{ opacity:1; transform:none; transition:none; } }
