/* GAI 2027 pages: only what Elementor's own controls can't set.
   Loaded by mu-plugins/gai-2027-pages.php on pages that use a gai27- class.
   Every rule is scoped to a gai27- class, so nothing else on the site changes. */

/* Text blocks: no stray paragraph margins at the top or bottom of a block */
.gai27-page .elementor-widget-text-editor p:first-child { margin-top: 0; }
.gai27-page .elementor-widget-text-editor p:last-child,
.gai27-page .elementor-widget-text-editor ul:last-child { margin-bottom: 0; }
.gai27-page .elementor-widget-text-editor a { color: #626C1F; }

/* Bulleted lists inside cards */
.gai27-list ul { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 8px; }

/* Square-bullet list in two columns */
.gai27-two-col .elementor-icon-list-items { display: grid; align-items: start; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px 24px; }
.gai27-two-col .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; align-items: flex-start !important; }
.gai27-two-col .elementor-icon-list-icon { padding-top: 0.45em; }

/* Hero: the photo's angled edge, and text lined up with the 1280px grid */
@media (min-width: 1025px) {
	.gai27-hero-photo { clip-path: polygon(70px 0, 100% 0, 100% 100%, 0 100%); }
	.gai27-hero-text { padding-left: max(24px, calc((100vw - 1280px) / 2 + 24px)) !important; }
}

/* Linked cards */
.gai27-role-card { text-decoration: none; transition: border-color 0.2s; }
.gai27-role-card:hover, .gai27-role-card:focus-visible { border-color: #626C1F !important; }

/* Placeholder where GAI will paste a HubSpot or Brella embed */
.gai27-embed-placeholder { min-height: 260px; background: #FFFFFF; color: #5A5E5A; display: flex; align-items: center; justify-content: center; text-align: center; padding: 24px; box-sizing: border-box; font-size: 18px; border: 1px dashed #B9BCA6; }

/* FAQ: Elementor's Accordion, as the design's ruled list */
.gai27-faq .e-n-accordion-item { border-top: 1px solid #DADAD0; }
.gai27-faq .e-n-accordion-item:last-child { border-bottom: 1px solid #DADAD0; }
.gai27-faq .e-n-accordion-item-title { padding: 20px 0 !important; border: 0 !important; background: transparent !important; }
.gai27-faq { --n-accordion-title-font-size: 24px; --n-accordion-title-normal-color: #2B2E2B; --n-accordion-title-hover-color: #626C1F; --n-accordion-title-active-color: #2B2E2B; }
.gai27-page .gai27-faq .e-n-accordion-item-title-text { font-size: 24px; font-weight: 600; color: #2B2E2B; }
.gai27-faq .e-n-accordion-item > .e-con { padding: 0 0 20px !important; border: 0 !important; }
/* The PDF's disclosure triangle (the browser's own <details> marker): a sharp filled ▶ about 12x14px
   at the 24px question size, turning to ▼ when open. Drawn here, since Font Awesome's caret is a
   narrow wedge; Elementor's icon setting stays in place underneath. */
.gai27-faq .e-n-accordion-item-title-icon .e-opened { display: none !important; }
.gai27-faq .e-n-accordion-item-title-icon .e-closed { display: flex !important; align-items: center; justify-content: center; width: 16px; height: 16px; }
.gai27-faq .e-n-accordion-item-title-icon .e-closed svg { display: none !important; }
.gai27-faq .e-n-accordion-item-title-icon .e-closed::before { content: ""; display: block; width: 12px; height: 14px; background: #2B2E2B; clip-path: polygon(0 0, 100% 50%, 0 100%); transition: transform 0.2s ease; }
.gai27-faq .e-n-accordion-item[open] > summary .e-closed::before { transform: rotate(90deg); }

/* Comparison table (Sponsorship page): scrolls sideways on a phone */
.gai27-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.gai27-compare table { width: 100%; min-width: 760px; border-collapse: collapse; margin: 0; background: #FFFFFF; }
.gai27-compare th, .gai27-compare td { padding: 16px 22px; text-align: left; border: 0; }
.gai27-compare thead th { color: #FFFFFF; font-size: 18px; font-weight: 500; letter-spacing: 0.06em; padding: 18px 22px; }  /* smaller, lighter: Steve, 2026-11-11 */
.gai27-compare thead th:nth-child(1) { background: #2B2E2B; }
.gai27-compare thead th:nth-child(2) { background: #626C1F; }
.gai27-compare thead th:nth-child(3) { background: #5A7B80; }
.gai27-compare thead th:nth-child(4) { background: #47646A; }
.gai27-compare tbody tr { border-bottom: 1px solid #E2E1D8; }
.gai27-compare tbody th { font-weight: 500; }
.gai27-compare td.yes { font-weight: 600; color: #626C1F; }
.gai27-compare td.none { color: #6B6E68; }

/* News headlines (home page): the site's own post-grid widget, shown as the design's slim list */
.gai27-news-list .wpcap-grid-container { display: flex !important; flex-direction: column; gap: 0 !important; }
.gai27-news-list article.wpcap-post { margin: 0 !important; padding: 18px 0 !important; border-bottom: 1px solid #E2E1D8; }
.gai27-news-list .post-grid-inner { display: flex !important; flex-direction: row !important; gap: 20px; align-items: center; padding: 0 !important; }
.gai27-news-list .post-grid-thumbnail { flex: 0 0 160px !important; width: 160px !important; height: 107px !important; padding: 0 !important; position: relative !important; overflow: hidden; margin: 0 !important; }
.gai27-news-list .post-grid-thumbnail img { position: absolute !important; inset: 0; width: 160px !important; height: 107px !important; object-fit: cover; }
.gai27-news-list .post-grid-text-wrap { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column-reverse; gap: 4px; padding: 0 !important; }
.gai27-news-list .post-grid-excerpt { display: none; }
.gai27-news-list h3.title { margin: 0 !important; font-size: 21px !important; line-height: 1.3 !important; font-weight: 600 !important; }
.gai27-news-list h3.title a { color: #2B2E2B !important; }
.gai27-news-list .post-grid-meta { margin: 0 !important; font-size: 16px !important; color: #5A5E5A !important; letter-spacing: 0.04em; }
.gai27-news-list .post-grid-inner, .gai27-news-list .post-grid-text-wrap { border: 0 !important; box-shadow: none !important; }
.gai27-news-list .post-grid-thumbnail a { display: block; height: 107px; }
.gai27-news-list h3.title, .gai27-news-list h3.title a { display: block !important; -webkit-line-clamp: unset !important; overflow: visible !important; height: auto !important; max-height: none !important; white-space: normal !important; }
@media (max-width: 767px) { .gai27-news-list h3.title { font-size: 19px !important; } }

/* Side-by-side cards: matching parts are evened out by gai-2027-pages.js (classes gai27-eq-row / gai27-eq) */

/* A column that should fill its row's height (How to register's steps) */
@media (min-width: 1025px) { .gai27-fill { flex-grow: 1 !important; } }

/* News date line as the design draws it: no calendar icon, no rule above it, and the
   "· GAI NEWS" label (the posts' own category is Uncategorized). Bigger images: Steve's choice. */
.gai27-news-list .post-grid-meta { border-top: 0 !important; padding-top: 0 !important; text-transform: uppercase; }
.gai27-news-list .post-grid-meta .post-date::before, .gai27-news-list .post-grid-meta .post-date::after { content: none !important; display: none !important; }
.gai27-news-list .post-grid-meta .post-date { background: none !important; padding-left: 0 !important; }
.gai27-news-list .post-grid-meta::after { content: " · GAI News"; }
@media (max-width: 767px) {
	.gai27-news-list .post-grid-thumbnail, .gai27-news-list .post-grid-thumbnail img { width: 112px !important; height: 75px !important; flex-basis: 112px !important; }
	.gai27-news-list .post-grid-thumbnail a { height: 75px; }
}

/* Tablet and phone (2026-11-11 review) */
.gai27-tap a { display: inline-block; padding: 12px 0; }   /* a thumb-sized tap area */
@media (max-width: 1024px) {
	.gai27-page .futura-pta-text .countdown-items .ctw-digits,
	.gai27-page .futura-pta-text .countdown-items .ctw-label { font-size: 16px !important; line-height: 20px !important; }
	/* Numbers and labels share a baseline (Steve, 2026-11-11: "out of alignment" below desktop; the labels
	   carry 10px padding the numbers don't) */
	.gai27-page .futura-pta-text .countdown-items { align-items: baseline !important; }
	.gai27-page .futura-pta-text .countdown-items .ctw-digits,
	.gai27-page .futura-pta-text .countdown-items .ctw-label { height: auto !important; }
}

/* Photo slots: an Elementor Image widget fills each gray box. Until GAI picks a photo it holds
   Elementor's placeholder, hidden here so the labeled gray box shows; once a photo is chosen,
   it fills the box and the label hides itself. */
.gai27-photo { position: relative; overflow: hidden; }
.gai27-photo > .gai27-photo-img { position: absolute !important; inset: 0; margin: 0 !important; z-index: 0; width: auto !important; max-width: none !important; }
.gai27-photo > .gai27-photo-img, .gai27-photo > .gai27-photo-img .elementor-widget-container { height: 100% !important; }
.gai27-photo > .gai27-photo-img img { display: block; width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; }
.gai27-photo > .gai27-photo-img img[src*="elementor/assets/images/placeholder"] { opacity: 0; }
.gai27-photo > .elementor-widget-heading { position: relative; z-index: 1; }
.gai27-photo:has(> .gai27-photo-img img:not([src*="elementor/assets/images/placeholder"])) > .elementor-widget-heading { display: none; }
