/* eb5inc.com — base layer.
   Colors read the Elementor kit tokens (Site Settings → Global Colors), with the
   approved hex as fallback. Change a color in the kit, not here. */

:root {
	--eb-primary: var(--e-global-color-primary, #0F2A3F);
	--eb-primary-hover: var(--e-global-color-navyhov, #0A2033);
	--eb-primary-tint: var(--e-global-color-primtnt, #EDF1F4);
	--eb-accent: var(--e-global-color-accent, #B8935A);
	--eb-accent-hover: var(--e-global-color-goldhov, #C9A876);
	--eb-accent-tint: var(--e-global-color-tint001, #F8F3EA);
	--eb-accent-line: var(--e-global-color-accline, #D9C6A5);
	--eb-ivory: var(--e-global-color-secondary, #F7F4EE);
	--eb-ivory-hover: #FBF9F5;
	--eb-text: var(--e-global-color-text, #1B242C);
	--eb-muted: var(--e-global-color-muted01, #5E6872);
	--eb-line: var(--e-global-color-line001, #DFD9CF);
	--eb-line-input: var(--e-global-color-inpline, #CFC7BA);
	--eb-teal: var(--e-global-color-teal001, #1F5C52);
	--eb-red: var(--e-global-color-red0001, #A6192E);
	--eb-ph-text: var(--e-global-color-phtext1, #5C4520);
	--eb-img-line: #A39B90;
	--eb-shadow-card: 0 1px 2px rgba(27, 36, 44, .06), 0 6px 18px rgba(27, 36, 44, .05);
	--eb-shadow-card-hover: 0 2px 4px rgba(27, 36, 44, .07), 0 12px 28px rgba(27, 36, 44, .08);
	--eb-ring: 0 0 0 3px rgba(15, 42, 63, .28);
	--eb-ease: cubic-bezier(.2, .6, .3, 1);
}

[hidden] { display: none !important; } /* state toggles use the hidden attribute; nothing may override it */

body {
	-webkit-font-smoothing: antialiased;
	text-wrap: pretty;
}

/* Links inside running text are underlined (WCAG 1.4.1); buttons and lists are not. */
body a { text-underline-offset: 3px; }
.elementor-widget-text-editor a,
.elementor-widget-heading .elementor-heading-title a.eb-u {
	text-decoration: underline;
	text-decoration-color: rgba(15, 42, 63, .4);
}
.elementor-widget-text-editor a:hover { text-decoration-color: var(--eb-accent); }
.on-navy .elementor-widget-text-editor a { text-decoration-color: rgba(255, 255, 255, .55); }

/* Text Editor: Elementor wraps text in <p>; the last one adds no space. */
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor-widget-text-editor p { max-width: 68ch; }
.prose-wide.elementor-widget-text-editor p { max-width: none; }

/* Visible focus everywhere (white on navy bands). */
body :focus-visible { outline: 2px solid var(--eb-primary); outline-offset: 2px; }
.on-navy :focus-visible { outline-color: #FFFFFF; }

/* Skip link (HFE prints it; make it visible when focused). */
.hfe-skip-link:focus {
	clip: auto; clip-path: none; width: auto; height: auto; margin: 0;
	position: fixed; top: 8px; left: 16px; z-index: 100000;
	background: #FFFFFF; color: var(--eb-primary); padding: 8px 14px;
	border-radius: 6px; box-shadow: var(--eb-shadow-card); font-weight: 600;
}

.sr-only,
.elementor-widget.visually-hidden-text .elementor-button-text {
	position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* Lucide outline icons (uploaded SVGs): stroke takes the text color. */
.elementor-icon-list-icon svg,
.elementor-button-icon svg,
.elementor-icon svg,
.e-n-accordion-item-title-icon svg { stroke: currentColor; }

/* ---------- Placeholders (staging only — they disappear when the field is filled) ----------
   Gold = client must supply. Navy = counsel / SME review. */
.ph {
	background: var(--eb-accent-tint); border: 1px dashed var(--eb-accent); border-radius: 4px;
	padding: 1px 6px; font-size: .88em; font-weight: 600; color: var(--eb-ph-text);
	letter-spacing: .01em; line-height: 1.7; font-family: var(--e-global-typography-text-font-family, "Public Sans"), sans-serif;
	-webkit-box-decoration-break: clone; box-decoration-break: clone;
}
.ph-rv { background: var(--eb-primary-tint); border-color: var(--eb-primary); color: var(--eb-primary); }
.ph-d { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .6); color: #FFFFFF; }
.ph-s .ph, .ph-s.ph { font-size: 14px; line-height: 1.9; }

.phblock {
	background: var(--eb-accent-tint); border: 1px dashed var(--eb-accent); border-radius: 8px;
	padding: 20px 22px; color: var(--eb-ph-text); font-size: 15px; line-height: 1.6;
}
.phblock strong { display: block; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; margin-bottom: 6px; }

/* Image placeholders: a container (or [offering_image]) with a title + description.
   Replace with an Image widget once photography is approved. */
.imgph {
	display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 8px;
	text-align: center; background: var(--eb-ivory); border: 1px dashed var(--eb-img-line);
	padding: 24px; color: var(--eb-muted); font-size: 13.5px; line-height: 1.5; height: 100%;
}
.imgph > .elementor-element { width: auto; max-width: 520px; }
.imgph p { margin: 0 auto; max-width: 520px; }
.imgph strong { display: block; margin-bottom: 8px; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--eb-text); }
.imgph-d { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .45); color: rgba(255, 255, 255, .85); }
.imgph-d strong { color: #FFFFFF; }
.eb5-photo { display: block; width: 100%; height: 100%; object-fit: cover; }

/* Heading widgets set to <p> (eyebrows, labels): no theme paragraph margin on top of the widget's own spacing. */
.elementor-widget-heading p.elementor-heading-title { margin: 0; }
