/* =========================================================
   GCTS Individual Service Page (e.g. LLC Formation) - wide layout
   Site-wide type scale: H1 34-64 / H2 28-42 / H3 22 / lead 19 / body 16 / button 17 / small 14
   All classes are prefixed "sd-" so nothing else is affected.
   ========================================================= */

/* Make Astra's page container full width and remove the gap above/below the banner on pages that use .sd */
body:has(.sd) .site-content,
body:has(.sd) #content { padding: 0 !important; margin: 0 !important; }
body:has(.sd) .site-content > .ast-container { max-width: 100% !important; padding: 0 !important; margin: 0 !important; display: block; }
body:has(.sd) #primary,
body:has(.sd) .ast-separate-container #primary,
body:has(.sd) .ast-plain-container #primary { width: 100% !important; margin: 0 !important; padding: 0 !important; border: 0; }
body:has(.sd) #main, body:has(.sd) .site-main { margin: 0 !important; padding: 0 !important; }
body:has(.sd) .ast-article-single,
body:has(.sd) article.page,
body:has(.sd) .ast-separate-container .ast-article-post,
body:has(.sd) .ast-separate-container .site-main > .ast-row { padding: 0 !important; margin: 0 !important; background: transparent; box-shadow: none; border: 0; }
body:has(.sd) .entry-content { margin: 0 !important; padding: 0 !important; }
body:has(.sd) .entry-content > * { max-width: none; }
body:has(.sd) .entry-content > p:empty, body:has(.sd) .entry-content > br { display: none; }
body:has(.sd) .entry-header,
body:has(.sd) .ast-breadcrumbs-wrapper,
body:has(.sd) .ast-archive-description,
body:has(.sd) #secondary { display: none !important; }
body:has(.sd) { overflow-x: hidden; }

.sd {
	--sd-teal: #0F6E56;
	--sd-dark: #0A3F36;
	--sd-tint: #E1F5EE;
	--sd-mint: #F3F8F6;
	--sd-gold: #B4791A;
	--sd-border: #E4EBE8;
	--sd-muted: #8A9995;
	--sd-body: #4F5F5A;
	--sd-ink: #0C3B33;
	--sd-wa: #25D366;
	--sd-accent: #7CF0C7;
	--sd-grad: radial-gradient(circle at 78% 18%, rgba(20, 128, 106, .75) 0%, rgba(20, 128, 106, 0) 55%), radial-gradient(circle at 12% 90%, rgba(15, 110, 86, .45) 0%, rgba(15, 110, 86, 0) 50%), linear-gradient(135deg, #061A17 0%, #0A2E28 55%, #0C4A3C 100%);
	width: 100%;
	max-width: none;
	margin: 0;
	font-size: 16px;
	line-height: 1.65;
	color: var(--sd-ink);
}
.sd *, .sd *::before, .sd *::after { box-sizing: border-box; }
.sd a, .sd a:hover, .sd a:focus, .sd a:visited, .sd a *, .sd a:hover * { text-decoration: none !important; }

@keyframes sdRise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
@keyframes sdDrift { 0%, 100% { transform: translate(0, 0); } 50% { transform: translate(14px, -10px); } }
@keyframes sdGlowUnused { 0%, 100% { box-shadow: 0 0 0 0 rgba(124, 240, 199, .45), 0 10px 30px rgba(0, 0, 0, .35); } 50% { box-shadow: 0 0 0 12px rgba(124, 240, 199, 0), 0 10px 30px rgba(0, 0, 0, .35); } }

.sd .ti { line-height: 1; }

/* Shared inner container */
.sd .sd-in, .sd .sd-hero-in { max-width: 1560px; margin: 0 auto; padding: 0 clamp(20px, 4vw, 64px); position: relative; z-index: 2; }

/* Hero (edge to edge) */
.sd-hero {
	background: var(--sd-grad);
	padding: 104px 0 80px;
	position: relative;
	overflow: hidden;
	color: #fff;
	text-align: center;
}
.sd-hero::before, .sd-hero::after { content: ""; position: absolute; border-radius: 50%; background: rgba(255, 255, 255, .04); }
.sd-hero::before { right: -120px; top: -140px; width: 420px; height: 420px; animation: sdDrift 9s ease-in-out infinite; }
.sd-hero::after { left: -90px; bottom: -120px; width: 300px; height: 300px; animation: sdDrift 11s ease-in-out infinite reverse; }
.sd-crumb { font-size: 14px; opacity: .85; margin-bottom: 26px; }
.sd-crumb a { color: #fff; }
.sd .sd-h1 { font-size: clamp(34px, 5vw, 64px); font-weight: 800; line-height: 1.1; letter-spacing: -.02em; margin: 0 auto 22px; color: #fff; max-width: 1200px; }
.sd .sd-h1 em { font-style: normal; color: var(--sd-accent); display: block; white-space: nowrap; }
.sd .sd-hero p { font-size: 19px; color: rgba(255, 255, 255, .9); margin: 0 auto 38px; max-width: 860px; }
.sd-btns { display: flex; gap: 16px; flex-wrap: wrap; justify-content: center; }
.sd .sd-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	font-size: 18px; font-weight: 600; line-height: 1.2; padding: 18px 44px; border-radius: 14px; border: 0;
	transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.sd .sd-btn .ti { font-size: 20px; }
.sd .sd-btn:hover { transform: translateY(-3px); }
.sd .sd-btn:focus-visible, .sd .sd-faq-q:focus-visible { outline: 3px solid var(--sd-gold); outline-offset: 3px; }
.sd .sd-b1 { background: var(--sd-accent); color: var(--sd-dark); box-shadow: 0 0 22px rgba(124, 240, 199, .55), 0 6px 18px rgba(0, 0, 0, .25); }
.sd .sd-b2 { background: transparent; color: #fff; border: 1.5px solid rgba(255, 255, 255, .6); }
.sd .sd-b3 { background: var(--sd-wa); color: #fff; box-shadow: 0 0 22px rgba(37, 211, 102, .45); }
.sd .sd-b4 { background: var(--sd-teal); color: #fff; box-shadow: 0 0 18px rgba(15, 110, 86, .35); }
.sd .sd-out { background: #fff; color: var(--sd-ink); border: 1px solid var(--sd-border); padding: 14px 28px; font-size: 16px; box-shadow: none; }
.sd-pills { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; margin-top: 46px; }
.sd-pills span { display: inline-flex; gap: 10px; align-items: center; border: 1px solid rgba(255, 255, 255, .22); background: rgba(255, 255, 255, .07); border-radius: 40px; padding: 13px 24px; font-size: 16px; font-weight: 600; }
.sd-pills .ti { color: var(--sd-accent); font-size: 20px; }
.sd-partners { margin: 50px auto 0; max-width: 1100px; }
.sd .sd-partners h3 { color: #fff; font-size: 20px; font-weight: 700; margin: 0 0 18px; }
.sd-pbar { background: #fff; border-radius: 60px; padding: 18px 34px; display: flex; flex-wrap: wrap; gap: 12px 34px; justify-content: center; font-weight: 800; font-size: 18px; color: var(--sd-dark); }

/* Keep brand colours on hover (overrides theme link and button hover colours) */
.sd .sd-b1:hover { background: #9af5d4; color: var(--sd-dark); box-shadow: 0 0 30px rgba(124, 240, 199, .75), 0 8px 22px rgba(0, 0, 0, .3); }
.sd .sd-b2:hover { background: rgba(255, 255, 255, .14); color: #fff; }
.sd .sd-b3:hover { background: #1ebe5b; color: #fff; }
.sd .sd-b4:hover { background: var(--sd-dark); color: #fff; }
.sd .sd-out:hover { background: #fff; border-color: var(--sd-teal); color: var(--sd-teal); }
.sd .sd-crumb a:hover { color: #fff; }
.sd .sd-setup a:hover { color: inherit; }

/* Sections (full-width bands) */
.sd-sec { padding: 96px 0; text-align: center; }
.sd-sec.sd-w { background: #fff; }
.sd-sec.sd-a { background: var(--sd-mint); }
.sd .sd-sec h2 { font-size: clamp(28px, 3.4vw, 42px); font-weight: 800; margin: 0 0 14px; color: var(--sd-ink); line-height: 1.15; letter-spacing: -.015em; }
.sd-sub { color: var(--sd-body); font-size: 19px; margin: 0 auto; max-width: 980px; }
.sd-t { color: var(--sd-body); font-size: 19px; max-width: 980px; margin: 14px auto 0; }
.sd-t b { color: var(--sd-ink); }

/* Cards and icon chips */
.sd-card { background: #fff; border: 1px solid var(--sd-border); border-radius: 22px; padding: 30px; text-align: left; }
.sd-ic { width: 54px; height: 54px; border-radius: 16px; background: var(--sd-tint); color: var(--sd-teal); display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: background .2s, color .2s; }
.sd-ic .ti { font-size: 26px; }
.sd-g2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; max-width: 1240px; margin-left: auto; margin-right: auto; }
.sd-g3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
.sd-mt { margin-top: 48px; }

.sd-hov { opacity: 0; animation: sdRise .55s ease forwards; transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.sd-hov:hover { transform: translateY(-6px); box-shadow: 0 18px 38px rgba(15, 110, 86, .16); border-color: var(--sd-teal); }
.sd-hov:hover .sd-ic { background: var(--sd-teal); color: #fff; }
.sd-d1 { animation-delay: .07s; } .sd-d2 { animation-delay: .14s; } .sd-d3 { animation-delay: .21s; }
.sd-d4 { animation-delay: .28s; } .sd-d5 { animation-delay: .35s; } .sd-d6 { animation-delay: .42s; } .sd-d7 { animation-delay: .49s; }

/* Used by */
.sd-used { margin: 46px auto 0; max-width: 1240px; }
.sd .sd-used h3 { text-align: center; margin: 0 0 22px; font-size: 22px; font-weight: 700; color: var(--sd-ink); }
.sd-it { display: flex; gap: 16px; align-items: center; font-size: 17px; font-weight: 500; padding: 6px 4px; }

/* Benefits */
.sd .sd-why .sd-card h4 { margin: 20px 0 8px; font-size: 22px; font-weight: 700; color: var(--sd-ink); }
.sd .sd-why .sd-card p { margin: 0; color: var(--sd-body); font-size: 16px; }

/* Fit / not ideal */
.sd-fit, .sd-nofit { max-width: 1240px; margin-left: auto; margin-right: auto; }
.sd .sd-fit h3, .sd .sd-nofit h3 { display: flex; gap: 14px; align-items: center; margin: 0 0 20px; font-size: 26px; font-weight: 800; color: var(--sd-ink); }
.sd-fit h3 .ti { color: var(--sd-teal); font-size: 32px; }
.sd-nofit h3 .ti { color: var(--sd-gold); font-size: 32px; }
.sd-nofit { margin-top: 22px; }
.sd .sd-lead { color: var(--sd-body); margin: 0 0 16px; font-size: 17px; }
.sd .sd-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
.sd .sd-list li { display: flex; gap: 14px; align-items: center; font-size: 17px; margin: 0; padding: 0; }
.sd .sd-ok .ti { color: var(--sd-teal); font-size: 24px; }
.sd .sd-no .ti { color: var(--sd-gold); font-size: 24px; }
.sd .sd-tipline { margin: 24px 0 0; font-size: 17px; color: var(--sd-body); }
.sd-tipline b { color: var(--sd-teal); }
.sd-center { text-align: center; margin-top: 24px; }

/* Needs */
.sd-need { display: flex; gap: 18px; align-items: center; padding: 22px 24px; font-size: 17px; font-weight: 500; }
.sd-need:hover { background: var(--sd-tint); transform: translateX(5px); }
.sd-tip { margin: 20px auto 0; max-width: 1240px; background: #fff; border: 1px dashed var(--sd-teal); border-radius: 18px; padding: 20px; text-align: center; font-size: 17px; font-weight: 600; color: var(--sd-teal); display: flex; gap: 12px; align-items: center; justify-content: center; }
.sd-tip .ti { font-size: 24px; }

/* Steps */
.sd-steps { display: grid; gap: 18px; margin: 48px auto 0; max-width: 1240px; text-align: left; }
.sd-step { display: flex; gap: 22px; align-items: flex-start; }
.sd-num { width: 58px; height: 58px; border-radius: 50%; background: var(--sd-tint); color: var(--sd-teal); font-weight: 800; font-size: 22px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: all .25s; margin-top: 10px; }
.sd-step:hover .sd-num { background: var(--sd-teal); color: #fff; transform: scale(1.1); }
.sd-step .sd-card { flex: 1; padding: 24px 28px; }
.sd .sd-step h4 { margin: 0 0 4px; font-size: 20px; font-weight: 700; color: var(--sd-ink); }
.sd .sd-step p { margin: 0; color: var(--sd-body); font-size: 16px; }

/* Time */
.sd-chip { display: inline-flex; gap: 8px; align-items: center; color: var(--sd-teal); font-weight: 700; font-size: 15px; margin-bottom: 10px; }
.sd-chip .ti { font-size: 22px; }
.sd-time { margin: 40px auto 0; max-width: 820px; text-align: center; padding: 44px 24px; }
.sd-big { font-size: 64px; font-weight: 800; color: var(--sd-teal); line-height: 1.05; }
.sd-lab { font-weight: 700; font-size: 22px; margin-top: 8px; }
.sd-small { color: var(--sd-muted); font-size: 15px; margin-top: 6px; }
.sd .sd-foot { margin: 22px 0 0; color: var(--sd-body); font-size: 17px; }

/* Included / after */
.sd-incl { margin: 46px auto 0; max-width: 1240px; padding: 40px; }
.sd .sd-incl .sd-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 36px; }
.sd .sd-incl .sd-list li { font-weight: 600; }
.sd-after .sd-it { padding: 22px 24px; font-weight: 600; transition: transform .2s, border-color .2s, box-shadow .2s; }
.sd-after .sd-it:hover { transform: translateY(-4px); border-color: var(--sd-teal); box-shadow: 0 14px 28px rgba(15, 110, 86, .13); }
.sd-after .ti { color: var(--sd-teal); font-size: 22px; }

/* Related services */
.sd-setup .sd-card { padding: 0; }
.sd-setup a { color: inherit; display: block; padding: 26px 28px; text-align: left; }
.sd-setup b { display: flex; gap: 12px; align-items: center; font-size: 20px; font-weight: 700; margin-bottom: 6px; color: var(--sd-ink); }
.sd-setup b .ti { color: var(--sd-teal); font-size: 22px; transition: transform .2s; }
.sd-setup a:hover b .ti { transform: translateX(6px); }
.sd-setup span { color: var(--sd-body); font-size: 16px; padding-left: 34px; display: block; }

/* Form */
.sd-form { margin: 46px auto 0; max-width: 980px; box-shadow: 0 22px 50px rgba(11, 74, 64, .10); padding: 40px; }
.sd-form label { display: block; font-size: 15px; font-weight: 600; color: var(--sd-ink); margin: 0 0 8px; }
.sd-form input[type="text"], .sd-form input[type="email"], .sd-form input[type="tel"], .sd-form textarea {
	width: 100%; background: #F7FAF8; border: 1px solid var(--sd-border); border-radius: 12px;
	padding: 15px 16px; font: inherit; font-size: 16px; color: var(--sd-ink); box-shadow: none;
}
.sd-form input:focus, .sd-form textarea:focus { outline: 3px solid var(--sd-gold); outline-offset: 2px; background: #fff; }
.sd-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-bottom: 18px; }
.sd-full { margin-bottom: 22px; }
.sd-form button { width: 100%; border: 0; cursor: pointer; font-family: inherit; justify-content: center; font-size: 18px; }
.sd .sd-fine { font-size: 14px; color: var(--sd-muted); text-align: center; margin: 16px 0 0; }
.sd-secure { display: flex; gap: 8px; justify-content: center; align-items: center; color: var(--sd-body); font-size: 15px; margin-top: 16px; }
.sd-secure .ti { color: var(--sd-teal); font-size: 18px; }

/* FAQ (CSS-only accordion: hidden checkbox + label) */
.sd-faq { margin: 44px auto 0; max-width: 1240px; text-align: left; }
.sd-faq-i { position: relative; border-bottom: 1px solid var(--sd-border); }
.sd-faq-cb { position: absolute; opacity: 0; pointer-events: none; width: 1px; height: 1px; }
.sd .sd-faq-q { display: flex; justify-content: space-between; gap: 20px; align-items: center; padding: 26px 6px; margin: 0; font-size: 20px; font-weight: 600; color: var(--sd-ink); cursor: pointer; transition: color .2s; }
.sd .sd-faq-q:hover { color: var(--sd-teal); }
.sd-faq-q .ti { font-size: 24px; color: var(--sd-muted); transition: transform .25s; flex-shrink: 0; }
.sd-faq-cb:checked + .sd-faq-q { color: var(--sd-teal); }
.sd-faq-cb:checked + .sd-faq-q .ti { transform: rotate(180deg); color: var(--sd-teal); }
.sd-faq-cb:focus-visible + .sd-faq-q { outline: 3px solid var(--sd-gold); outline-offset: 2px; }
.sd-faq-a { display: none; padding: 0 6px 26px; color: var(--sd-body); font-size: 17px; }
.sd-faq-cb:checked ~ .sd-faq-a { display: block; }

/* Final banner (edge to edge) */
.sd-cta { padding: 96px 0; background: var(--sd-grad); color: #fff; text-align: center; position: relative; overflow: hidden; }
.sd-cta::after { content: ""; position: absolute; right: -100px; top: -120px; width: 380px; height: 380px; border-radius: 50%; background: rgba(255, 255, 255, .05); animation: sdDrift 10s ease-in-out infinite; }
.sd .sd-cta h2 { margin: 0 0 14px; font-size: clamp(28px, 3.4vw, 42px); font-weight: 800; color: #fff; line-height: 1.15; }
.sd-cta h2 em { font-style: normal; color: var(--sd-accent); }
.sd .sd-cta p { margin: 0 0 36px; color: rgba(255, 255, 255, .9); font-size: 19px; }

@media (max-width: 900px) {
	.sd-g3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sd-sec, .sd-cta { padding: 72px 0; }
}
@media (max-width: 640px) {
	.sd .sd-h1 em { white-space: normal; }
	.sd-g2, .sd-g3, .sd-row, .sd .sd-incl .sd-list { grid-template-columns: 1fr; }
	.sd-hero { padding: 70px 0 56px; }
	.sd-sec, .sd-cta { padding: 56px 0; }
	.sd-card { padding: 22px; }
	.sd-form, .sd-incl { padding: 24px; }
	.sd-big { font-size: 50px; }
	.sd .sd-btn { padding: 15px 28px; font-size: 16px; }
	.sd-num { width: 46px; height: 46px; font-size: 18px; }
	.sd-step { gap: 14px; }
	.sd-pbar { border-radius: 26px; }
	.sd .sd-faq-q { font-size: 18px; }
}
@media (prefers-reduced-motion: reduce) {
	.sd *, .sd *::before, .sd *::after { animation: none !important; transition: none !important; }
	.sd-hov { opacity: 1; }
}
