/*
 * Program & service pages (IPE, CEUs, Practice Transformation)
 * Shared layout. Each Divi section on these pages carries `sea-sec` plus a
 * layout class:
 *   sea-hero     title, buttons and photo
 *   sea-subnav   sticky "On this page" menu
 *   sea-split    heading column + content column (About, FAQs)
 *   sea-band     navy band with a card grid (competencies, steps)
 *   sea-tint     sand background (reflections, FAQs)
 *   sea-cta      contact panel
 *   sea-more     links to the other programs
 * Colors follow the AETC identity guidelines.
 *
 * Spacing system
 * --------------
 * One 4px-based scale (--sp-1 … --sp-10). Never use a raw pixel value for
 * margin, padding or gap; pick a step, or one of the semantic tokens below.
 *
 *   --sp-1   4px   hairline nudges (icon to label)
 *   --sp-2   8px   tight inline gaps, chips, list rows
 *   --sp-3  12px   heading → its text inside a card
 *   --sp-4  16px   paragraph → paragraph, grid gap (mobile)
 *   --sp-5  24px   heading → body copy, grid gap, card padding (mobile)
 *   --sp-6  32px   card padding, content → buttons
 *   --sp-7  48px   section header → section content
 *   --sp-8  64px   section padding (mobile)
 *   --sp-9  96px   section padding (tablet)
 *   --sp-10 128px  section padding (desktop)
 *
 * Rules
 * 1. Space flows one way. Inside a block, children have no margins; the
 *    `* + *` flow rule adds space *above* every element except the first,
 *    so nothing ever ends with leftover space at the bottom.
 * 2. Containers own their padding, equal on all sides (cards, panels).
 *    Content rules never touch a container's padding.
 * 3. Proximity: space inside a group is always smaller than space between
 *    groups (card text 12 < card gap 24 < header → content 48 < section 128).
 * 4. Fluid tokens step down with the viewport via clamp(), so there are no
 *    one-off breakpoint overrides for spacing.
 *
 * Type scale
 * ----------
 * Inter only (AETC identity guidelines). Every font-size uses a --fs-* token;
 * every weight, line height and tracking uses its token. Fluid sizes are
 * phone → desktop.
 *
 *   Token          Size        Weight  Line   Use
 *   --fs-h1        40 → 68     800     1.05   page title (one per page)
 *   --fs-h1-long   36 → 52     800     1.05   page title over ~40 characters
 *   --fs-h2        30 → 44     700     1.2    section titles
 *   --fs-h3        19 → 22     700     1.3    card titles
 *   --fs-h4        20          700     1.3    sub-sections inside prose
 *   --fs-h5        17          600     1.4    labelled groups ("The goals…")
 *   --fs-h6        13          600     1.4    small caps label, +.12em
 *   --fs-display   56 → 72     800     1      stat numbers
 *   --fs-figure    36 → 48     800     1      figures in a row (About: Our Region)
 *   --fs-quote     22 → 32     600     1.35   featured pull quote
 *   --fs-lead      18 → 21     400     1.6    intro paragraph under a title
 *   --fs-body      17          400     1.7    paragraphs, lists
 *   --fs-small     16          400     1.65   card text, quotes, tiles
 *   --fs-ui        15          500/600 1.3    nav, buttons, attributions
 *   --fs-meta      13          400/600 1.4    breadcrumbs
 *   --fs-caption   12          500     1.4    photo credits, citations
 *
 * Nothing below 12px. Weights: 400 body, 500 UI, 600 emphasis/labels,
 * 700 headings, 800 h1/display only. Links inherit the weight of the text
 * around them, so Divi's bold link default never leaks in.
 */

/* Tokens read from Divi's Variable Manager (colors: gcid-sea-*, numbers: gvid-sea-*,
   font: Body). Edit values there; the fallbacks keep pages styled under Divi 4. */
:root {
	--sea-navy: var(--gcid-sea-navy, #15294e);
	--sea-blue: var(--gcid-sea-blue, #0054a6);
	--sea-blue-2: var(--gcid-sea-blue-2, #176ec4);
	--sea-red: var(--gcid-sea-red, #d62027);
	--sea-red-tint: var(--gcid-sea-red-tint, #fdeced);
	--sea-black: var(--gcid-sea-black, #222222);
	--sea-ink: var(--gcid-sea-ink, #4d4d4a);
	--sea-muted: var(--gcid-sea-muted, #6b6b66);
	--sea-stone: var(--gcid-sea-stone, #d4d4cd);
	--sea-sand: var(--gcid-sea-sand, #edede5);
	--sea-sand-soft: var(--gcid-sea-sand-soft, #f6f6f1);
	--sea-radius: var(--gvid-sea-radius, 20px);
	--sea-radius-sm: var(--gvid-sea-radius-sm, 14px);
	--sea-shadow: 0 1px 2px rgba(21, 41, 78, .06), 0 12px 32px -12px rgba(21, 41, 78, .18);

	/* Scale */
	--sp-1: var(--gvid-sea-sp-1, 4px);
	--sp-2: var(--gvid-sea-sp-2, 8px);
	--sp-3: var(--gvid-sea-sp-3, 12px);
	--sp-4: var(--gvid-sea-sp-4, 16px);
	--sp-5: var(--gvid-sea-sp-5, 24px);
	--sp-6: var(--gvid-sea-sp-6, 32px);
	--sp-7: var(--gvid-sea-sp-7, 48px);
	--sp-8: var(--gvid-sea-sp-8, 64px);
	--sp-9: var(--gvid-sea-sp-9, 96px);
	--sp-10: var(--gvid-sea-sp-10, 128px);

	/* Semantic, fluid between mobile and desktop steps */
	--space-gutter: var(--gvid-sea-space-gutter, clamp(var(--sp-4), 4vw, var(--sp-7)));       /* page side margins: 16 → 48 */
	--space-section: var(--gvid-sea-space-section, clamp(var(--sp-8), 9vw, var(--sp-10)));    /* section top/bottom: 64 → 128 */
	--space-header: var(--gvid-sea-space-header, clamp(var(--sp-6), 4vw, var(--sp-7)));      /* section header → content: 32 → 48 */
	--space-grid: var(--gvid-sea-space-grid, clamp(var(--sp-4), 2vw, var(--sp-5)));        /* gap between cards: 16 → 24 */
	--space-card: var(--gvid-sea-space-card, clamp(var(--sp-5), 2.5vw, var(--sp-6)));      /* card padding: 24 → 32 */
	--space-columns: var(--gvid-sea-space-columns, clamp(var(--sp-6), 6vw, var(--sp-9)));     /* gap between layout columns: 32 → 96 */
	--space-flow: var(--gvid-sea-space-flow, var(--sp-4));                                 /* default gap between stacked text */

	/* Type */
	--font-sans: var(--et_global_body_font, Inter), system-ui, -apple-system, "Segoe UI", sans-serif;

	--fs-h1: var(--gvid-sea-fs-h1, clamp(2.5rem, 5.6vw, 4.25rem));
	--fs-h1-long: var(--gvid-sea-fs-h1-long, clamp(2.25rem, 4vw, 3.25rem));
	--fs-h2: var(--gvid-sea-fs-h2, clamp(1.875rem, 3.4vw, 2.75rem));
	--fs-h3: var(--gvid-sea-fs-h3, clamp(1.1875rem, 1.4vw, 1.375rem));
	--fs-h4: var(--gvid-sea-fs-h4, 1.25rem);
	--fs-h5: var(--gvid-sea-fs-h5, 1.0625rem);
	--fs-h6: var(--gvid-sea-fs-h6, .8125rem);
	--fs-display: var(--gvid-sea-fs-display, clamp(3.5rem, 6vw, 4.5rem));
	--fs-figure: var(--gvid-sea-fs-figure, clamp(2.25rem, 4vw, 3rem));
	--fs-quote: var(--gvid-sea-fs-quote, clamp(1.375rem, 2.6vw, 2rem));
	--fs-lead: var(--gvid-sea-fs-lead, clamp(1.125rem, 1.6vw, 1.3125rem));
	--fs-body: var(--gvid-sea-fs-body, 1.0625rem);
	--fs-small: var(--gvid-sea-fs-small, 1rem);
	--fs-ui: var(--gvid-sea-fs-ui, .9375rem);
	--fs-meta: var(--gvid-sea-fs-meta, .8125rem);
	--fs-caption: var(--gvid-sea-fs-caption, .75rem);

	--fw-regular: 400;
	--fw-medium: 500;
	--fw-semibold: 600;
	--fw-bold: 700;
	--fw-black: 800;

	--lh-display: 1.05;
	--lh-heading: 1.2;
	--lh-title: 1.3;
	--lh-snug: 1.4;
	--lh-lead: 1.6;
	--lh-body: 1.7;

	--ls-display: -.035em;
	--ls-heading: -.02em;
	--ls-title: -.01em;
	--ls-caps: .12em;
}

/* ---------- Base ---------- */

.sea-sec.et_pb_section {
	padding: var(--space-section) 0 !important;
	background-color: #fff;
	font-family: var(--font-sans);
	color: var(--sea-ink);
}

.sea-sec .et_pb_row {
	width: calc(100% - 2 * var(--space-gutter)) !important;
	max-width: 1200px !important;
	padding: 0 !important;
}

.sea-sec .et_pb_row + .et_pb_row { margin-top: var(--space-header); }
.sea-sec .et_pb_module { margin-bottom: 0 !important; }

/* Flow spacing (rule 1): reset every text element, then space from above. */
.sea-sec .et_pb_text_inner :is(p, h1, h2, h3, ul, ol, li, blockquote, figure, nav, div) { margin: 0; }

/* Divi pads paragraphs and headings; padding belongs to containers only (rule 2). */
.sea-sec .et_pb_text_inner :is(p, h1, h2, h3) { padding-bottom: 0; }

.sea-sec .et_pb_text_inner > * + *,
.sea-prose > * + * { margin-top: var(--space-flow) !important; }

/* :where() keeps this at class-level specificity so component styles win. */
.sea-sec :where(p, li) {
	font-size: var(--fs-body);
	font-weight: var(--fw-regular);
	line-height: var(--lh-body);
	color: var(--sea-ink);
}

.sea-sec :is(h1, h2, h3, h4, h5, h6) {
	font-family: var(--font-sans);
	color: var(--sea-navy);
	padding: 0;
}

/* !important beats Divi's per-module heading presets. */
.sea-sec h1 { font-size: var(--fs-h1) !important; font-weight: var(--fw-black); line-height: var(--lh-display) !important; letter-spacing: var(--ls-display); }
.sea-sec h2 { font-size: var(--fs-h2) !important; font-weight: var(--fw-bold); line-height: var(--lh-heading) !important; letter-spacing: var(--ls-heading); }
.sea-sec h3 { font-size: var(--fs-h3) !important; font-weight: var(--fw-bold); line-height: var(--lh-title) !important; letter-spacing: var(--ls-title); }
.sea-sec h4 { font-size: var(--fs-h4) !important; font-weight: var(--fw-bold); line-height: var(--lh-title) !important; letter-spacing: var(--ls-title); }
.sea-sec h5 { font-size: var(--fs-h5) !important; font-weight: var(--fw-semibold); line-height: var(--lh-snug) !important; }

.sea-sec h6 {
	font-size: var(--fs-h6) !important;
	font-weight: var(--fw-semibold);
	line-height: var(--lh-snug) !important;
	letter-spacing: var(--ls-caps);
	text-transform: uppercase;
}

.sea-sec :is(em, i) { font-style: italic; }
.sea-sec :is(strong, b) { font-weight: var(--fw-semibold); }

/* The Divi Customizer sets `#main-content a { font-weight: 700 }`. */
.sea-sec a {
	color: var(--sea-blue);
	font-weight: inherit !important;
}

.sea-sec cite {
	font-size: var(--fs-caption);
	font-style: normal;
	font-weight: var(--fw-medium);
	line-height: var(--lh-snug);
}

.sea-sec .et_pb_text_inner > h2 + p { margin-top: var(--sp-5) !important; }

/* Module flow: stacked modules in a column are spaced from above, like text. */
/* Divi's entrance animations hide modules until scrolled to; show them at once. */
.sea-sec :is(.et_animated, .et-waypoint) {
	opacity: 1 !important;
	animation: none !important;
}

/* :where() keeps this at class-level specificity so component spacing below wins. */
.sea-sec :where(.et_pb_column > .et_pb_module + .et_pb_module) { margin-top: var(--space-flow) !important; }

/* ---------- Buttons (Divi Button and Call To Action modules) ---------- */

.sea-sec .et_pb_button,
.sea-sec .et_pb_button:hover {
	display: inline-flex;
	align-items: center;
	gap: var(--sp-2);
	min-height: 48px;
	padding: var(--sp-3) var(--sp-5) !important;
	border: 2px solid var(--sea-navy) !important;
	border-radius: 4px !important;
	font-family: var(--font-sans) !important;
	font-size: var(--fs-ui) !important;
	font-weight: var(--fw-semibold) !important;
	line-height: var(--lh-title) !important;
	letter-spacing: 0 !important;
	text-decoration: none !important;
	transition: background-color .2s, color .2s, border-color .2s !important;
}

/* Replace Divi's hover-in font icon with an inline arrow (only on buttons that have one). */
.sea-sec .et_pb_button::after,
.sea-sec .et_pb_button:hover::after { display: none !important; }

.sea-sec .sea-btn--down::after,
.sea-sec .sea-cta-panel .et_pb_button::after {
	content: "" !important;
	display: block !important;
	position: static !important;
	width: 18px;
	height: 18px;
	margin: 0 !important;
	opacity: 1 !important;
	font-size: 0 !important;
	background: currentColor;
	-webkit-mask: var(--sea-icon) center / contain no-repeat;
	mask: var(--sea-icon) center / contain no-repeat;
	transform: none !important;
	transition: transform .2s !important;
}

.sea-sec .sea-btn--down { --sea-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14'/%3E%3Cpath d='m19 12-7 7-7-7'/%3E%3C/svg%3E"); }
.sea-sec .sea-cta-panel .et_pb_button { --sea-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E"); }
.sea-sec .sea-btn--down:hover::after { transform: translateY(2px) !important; }
.sea-sec .sea-cta-panel .et_pb_button:hover::after { transform: translateX(3px) !important; }

.sea-sec .sea-btn--solid { background: var(--sea-navy) !important; color: #fff !important; }
.sea-sec .sea-btn--solid:hover { background: var(--sea-blue) !important; border-color: var(--sea-blue) !important; }
.sea-sec .sea-btn--ghost { background: transparent !important; color: var(--sea-navy) !important; }
.sea-sec .sea-btn--ghost:hover { background: var(--sea-navy) !important; color: #fff !important; }

.sea-sec a:focus-visible,
.sea-sec button:focus-visible,
.sea-sec [tabindex="-1"]:focus-visible {
	outline: 3px solid var(--sea-blue-2);
	outline-offset: 3px;
	border-radius: 4px;
}

.sea-sec [tabindex="-1"]:focus:not(:focus-visible) { outline: none; }

/* Shared two-column / grid row behavior. */
.sea-hero .et_pb_row,
.sea-split .et_pb_row,
.sea-split-row.et_pb_row,
.sea-grid.et_pb_row {
	display: grid !important;
}

.sea-hero .et_pb_row::after,
.sea-split .et_pb_row::after,
.sea-split-row.et_pb_row::after,
.sea-grid.et_pb_row::after { display: none; }

.sea-hero .et_pb_column,
.sea-split .et_pb_column,
.sea-split-row .et_pb_column,
.sea-grid .et_pb_column {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
}

/* ---------- Hero ---------- */

.sea-hero:not(.sea-hero--photo).et_pb_section {
	padding: var(--sp-6) 0 var(--space-section) !important;
	background: #fff !important;
}

.sea-hero .et_pb_row {
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	column-gap: var(--space-columns);
	align-items: start;
}

/* Breadcrumb, title text and buttons; the two Button modules sit side by side. */
.sea-hero-copy {
	display: flex !important;
	flex-wrap: wrap;
	align-content: flex-start;
	column-gap: var(--sp-3);
}

.sea-hero-copy > .et_pb_module { width: 100%; }
.sea-sec .sea-hero-copy > .sea-title { margin-top: var(--sp-7) !important; }

.sea-sec .sea-hero-copy > .et_pb_button_module_wrapper {
	width: auto;
	margin: var(--sp-6) 0 0 !important;
}

.sea-crumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2);
	padding: 0 !important;
	list-style: none !important;
}

.sea-crumbs li {
	padding: 0 !important;
	font-size: var(--fs-meta);
	font-weight: var(--fw-regular);
	line-height: var(--lh-snug);
	color: var(--sea-ink);
}

.sea-sec .sea-crumbs li + li { margin-top: 0 !important; }
.sea-crumbs li + li::before { content: "/"; margin-right: var(--sp-2); color: var(--sea-muted); }
.sea-crumbs a { color: var(--sea-ink) !important; text-decoration: none; }
.sea-crumbs a:hover { color: var(--sea-blue) !important; text-decoration: underline; }
.sea-crumbs [aria-current] { color: var(--sea-navy); font-weight: var(--fw-semibold); }

.sea-hero h1 .sea-abbr { color: var(--sea-red); }
.sea-hero h1 .sea-abbr--navy { color: var(--sea-navy); }
.sea-sec .sea-title--long h1 { font-size: var(--fs-h1-long) !important; }

/* Compact hero: title and intro only, no photo. Two classes so it beats the
   :not(.sea-hero--photo) hero background above. */
.sea-hero.sea-hero--compact.et_pb_section {
	padding-bottom: var(--sp-8) !important;
	background: #fff !important;
	border-bottom: 1px solid var(--sea-sand);
}

.sea-hero--compact .et_pb_row { grid-template-columns: minmax(0, 1fr); }
.sea-hero--compact .sea-title p { max-width: 52ch; }

/* Acronym title with its expansion underneath, inside the same h1. */
.sea-hero h1 .sea-h1-sub {
	display: block;
	margin-top: var(--sp-3);
	max-width: 28ch;
	font-size: var(--fs-h4);
	font-weight: var(--fw-semibold);
	line-height: var(--lh-title);
	letter-spacing: var(--ls-title);
	color: var(--sea-navy);
}
.sea-sec .sea-title .et_pb_text_inner > h1 + p { margin-top: var(--sp-5) !important; }

.sea-title p {
	font-size: var(--fs-lead) !important;
	line-height: var(--lh-lead) !important;
	max-width: 34ch;
}

/* Image module + credit Text module, framed by the column. */
.sea-hero .et_pb_column.sea-hero-media {
	margin-top: var(--sp-7) !important;
}

.sea-hero-media {
	position: relative;
	border-radius: 24px;
	overflow: hidden;
	box-shadow: var(--sea-shadow);
	aspect-ratio: 4 / 3.4;
	background: var(--sea-sand);
}

.sea-hero-img,
.sea-hero-img .et_pb_image_wrap {
	display: block !important;
	width: 100% !important;
	height: 100%;
	max-width: none !important;
}

.sea-hero-img img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	/* Per photo: set --sea-focus in the Image module's Custom CSS (Main Element). */
	object-position: var(--sea-focus, 62% 30%);
}

.sea-sec .sea-hero-media > .sea-credit {
	position: absolute;
	inset: auto 0 0 0;
	margin: 0 !important;
	padding: var(--sp-7) var(--sp-4) var(--sp-3);
	background: linear-gradient(transparent, rgba(21, 41, 78, .8));
}

.sea-sec .sea-credit a {
	position: relative;
	z-index: 1;
	color: #fff !important;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.sea-sec .sea-credit p {
	font-size: var(--fs-caption);
	font-weight: var(--fw-medium);
	line-height: var(--lh-snug);
	color: #fff;
	text-align: right;
}

/* ---------- Sticky in-page nav ---------- */

/* Divi hides overflow on #page-container, which turns it into a scroll box and
   stops anything inside from sticking. Clip sideways overflow instead: no
   horizontal scroll, and sticky elements stick to the window again. */
#page-container {
	overflow: visible !important;
	overflow-x: clip !important;
}

.sea-subnav.et_pb_section {
	position: sticky;
	top: 0;
	z-index: 50;
	padding: 0 !important;
	background: rgba(255, 255, 255, .94) !important;
	backdrop-filter: saturate(1.4) blur(10px);
	border-top: 1px solid var(--sea-sand);
	border-bottom: 1px solid var(--sea-sand);
}

body.admin-bar .sea-subnav.et_pb_section { top: 32px; }

@media (max-width: 782px) {
	body.admin-bar .sea-subnav.et_pb_section { top: 0; }
}

.sea-subnav nav {
	display: flex;
	align-items: center;
	gap: var(--sp-5);
	overflow-x: auto;
	scrollbar-width: none;
}

.sea-subnav nav::-webkit-scrollbar { display: none; }

.sea-subnav .sea-subnav-label {
	flex: none;
	font-size: var(--fs-caption);
	font-weight: var(--fw-semibold);
	letter-spacing: var(--ls-caps);
	text-transform: uppercase;
	color: var(--sea-muted);
}

.sea-subnav ol {
	display: flex;
	gap: var(--sp-1);
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.sea-subnav li { padding: 0 !important; flex: none; }
.sea-subnav.sea-sec li + li { margin-top: 0 !important; }

.sea-subnav a {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 60px;
	padding: 0 var(--sp-3);
	font-size: var(--fs-ui);
	font-weight: var(--fw-medium) !important;
	line-height: var(--lh-title);
	color: var(--sea-navy) !important;
	text-decoration: none;
	white-space: nowrap;
}

.sea-subnav a::after {
	content: "";
	position: absolute;
	left: var(--sp-3);
	right: var(--sp-3);
	bottom: -1px;
	height: 3px;
	border-radius: 3px 3px 0 0;
	background: var(--sea-red);
	transform: scaleX(0);
	transition: transform .25s;
}

.sea-subnav a:hover::after,
.sea-subnav a[aria-current]::after { transform: scaleX(1); }
.sea-subnav a[aria-current] { font-weight: var(--fw-semibold) !important; }

.sea-sec[id] { scroll-margin-top: 76px; }

/* ---------- About ---------- */

/* sea-split on a section splits every row; sea-split-row splits one row. */
.sea-split .et_pb_row,
.sea-split-row.et_pb_row {
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	column-gap: var(--space-columns);
	align-items: start;
}

/* Vertically center the two columns (e.g. a note beside an accordion). */
.sea-split-row.sea-center.et_pb_row { align-items: center; }

.sea-split .et_pb_column:first-child {
	position: sticky;
	top: calc(76px + var(--sp-5));
}

/* Stat card: a Text module whose first paragraph is the number. */
.sea-sec .et_pb_column > .sea-stat.et_pb_module { margin-top: var(--sp-6) !important; }

.sea-stat.et_pb_module {
	padding: var(--space-card);
	border-radius: var(--sea-radius);
	background: var(--sea-navy);
}

.sea-sec .sea-stat .et_pb_text_inner > p:first-child {
	font-size: var(--fs-display);
	font-weight: var(--fw-black);
	line-height: 1;
	letter-spacing: var(--ls-display);
	color: #fff;
}

.sea-sec .sea-stat .et_pb_text_inner > p + p {
	font-size: var(--fs-small);
	line-height: var(--lh-lead);
	color: rgba(255, 255, 255, .9);
}

.sea-sec .sea-stat .et_pb_text_inner > p:has(> cite:only-child) { margin-top: var(--sp-3) !important; font-size: var(--fs-caption); line-height: var(--lh-snug); }
.sea-stat cite { color: rgba(255, 255, 255, .7); }

.sea-prose .et_pb_text_inner { max-width: 68ch; }
.sea-sec .sea-prose .et_pb_text_inner > p:first-child { font-size: var(--fs-lead); line-height: var(--lh-lead); color: var(--sea-navy); }

/* Goals: a Text module with an intro line and a plain bulleted list. */
.sea-sec .et_pb_column > .sea-goals.et_pb_module { margin-top: var(--sp-7) !important; }

.sea-sec .sea-goals .et_pb_text_inner > p {
	font-size: var(--fs-h5);
	font-weight: var(--fw-semibold);
	line-height: var(--lh-snug);
	color: var(--sea-navy);
}

.sea-sec .sea-goals .et_pb_text_inner > p + ul { margin-top: var(--sp-4) !important; }

.sea-sec .sea-goals ul {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--sp-3);
	max-width: 68ch;
	padding: 0 !important;
	list-style: none !important;
}

.sea-sec .sea-goals li {
	display: flex;
	align-items: center;
	margin: 0 !important;
	padding: var(--sp-4) !important;
	border: 1px solid var(--sea-sand);
	border-radius: var(--sea-radius-sm);
	background: var(--sea-sand-soft);
	font-size: var(--fs-small);
	font-weight: var(--fw-medium);
	line-height: var(--lh-snug);
	color: var(--sea-navy);
}

/* ---------- Core competencies ---------- */

.sea-band.et_pb_section {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(1200px 500px at 85% -10%, rgba(23, 110, 196, .55), transparent 60%),
		radial-gradient(900px 400px at -10% 110%, rgba(0, 84, 166, .45), transparent 60%),
		var(--sea-navy) !important;
}

.sea-band h2 { color: #fff !important; }

/* Section header: intro sits under the heading, left-aligned. The heading uses
   the full row width; the intro keeps a readable line length. Neither leaves
   a single word alone on its last line. */
.sea-sec .sea-head .et_pb_text_inner > * + * { margin-top: var(--sp-4) !important; }
.sea-head h2 { text-wrap: balance; }

.sea-sec .sea-head p {
	max-width: 75ch;
	text-wrap: pretty;
	font-size: var(--fs-lead);
	line-height: var(--lh-lead);
}

.sea-band.sea-sec .sea-head p,
.sea-band.sea-sec .sea-band-note p { color: rgba(255, 255, 255, .88); }

.sea-band-note .et_pb_text_inner { max-width: 68ch; }

.sea-grid.et_pb_row {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--space-grid);
}

/* Any number of title-only cards: as many columns as fit, icon beside the title. */
.sea-sec .sea-grid--auto.et_pb_row { grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); }

.sea-sec .sea-grid--auto .sea-card .et_pb_blurb_content {
	display: flex;
	align-items: center;
	gap: var(--sp-4);
}

.sea-sec .sea-grid--auto .sea-card .et_pb_main_blurb_image { flex: none; }
.sea-sec .sea-grid--auto .sea-card .et_pb_module_header { margin-top: 0; }

/* Columns and modules stretch so cards in a row share a height. */
.sea-grid .et_pb_column { display: flex; }
.sea-grid .et_pb_column > .et_pb_module { flex: 1; }

/* Competency cards: Blurb modules with an SVG image. */
.sea-card.et_pb_module {
	padding: var(--space-card);
	border-radius: var(--sea-radius);
	background: #fff;
	box-shadow: var(--sea-shadow);
	transition: transform .3s cubic-bezier(.2, .7, .2, 1), box-shadow .3s;
}

.sea-card.et_pb_module:hover {
	transform: translateY(-4px);
	box-shadow: 0 1px 2px rgba(21, 41, 78, .06), 0 24px 48px -16px rgba(0, 0, 0, .35);
}

.sea-sec :is(.sea-card, .sea-link-card) .et_pb_blurb_content {
	max-width: none;
	margin: 0;
	text-align: left;
}

.sea-sec .sea-card .et_pb_main_blurb_image {
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	margin: 0 !important;
	border-radius: var(--sea-radius-sm);
	background: var(--sea-red-tint);
}

/* Divi 5 gives each Blurb its own image width (100%) and can lay the blurb out
   in a row; keep the icon a fixed tile above the text. */
.sea-sec .sea-card.et_pb_blurb > .et_pb_blurb_content { display: block !important; }
.sea-sec .sea-card.et_pb_blurb > .et_pb_blurb_content > .et_pb_main_blurb_image { width: 52px !important; }

.sea-sec .sea-card .et_pb_main_blurb_image .et_pb_image_wrap { display: block; line-height: 0; }
.sea-sec .sea-card .et_pb_main_blurb_image img { width: 26px !important; height: 26px; }

.sea-sec :is(.sea-card, .sea-link-card) .et_pb_blurb_container { padding: 0 !important; }
.sea-sec .sea-card .et_pb_module_header { margin-top: var(--sp-5); }

.sea-sec :is(.sea-card, .sea-link-card) .et_pb_module_header {
	padding: 0 !important;
	font-size: var(--fs-h3) !important;
	font-weight: var(--fw-bold);
	line-height: var(--lh-title) !important;
	letter-spacing: var(--ls-title);
	color: var(--sea-navy) !important;
}

.sea-sec :is(.sea-card, .sea-link-card) .et_pb_blurb_description { margin-top: var(--sp-3); }
.sea-sec :is(.sea-card, .sea-link-card) .et_pb_blurb_description:empty { display: none; }

.sea-sec :is(.sea-card, .sea-link-card) .et_pb_blurb_description p {
	padding: 0;
	font-size: var(--fs-small);
	line-height: 1.65;
	color: var(--sea-ink);
}

/* ---------- Reflections (Testimonial modules) ---------- */

.sea-tint.et_pb_section { background: var(--sea-sand-soft) !important; }

.sea-quotes .et_pb_column {
	columns: 2;
	column-gap: var(--space-grid);
	width: 100% !important;
}

.sea-sec .sea-quotes .et_pb_module.sea-quote {
	break-inside: avoid;
	margin: 0 0 var(--space-grid) !important;
}

.sea-sec .sea-quotes .et_pb_module.sea-featured { column-span: all; }

/* Inline-block cards keep their bottom margin at column breaks, so spacing is
   the same in one or two columns. */
.sea-sec .sea-quotes .et_pb_module.sea-quote:not(.sea-featured) {
	display: inline-block;
	width: 100%;
	vertical-align: top;
}

.sea-sec .sea-quote.et_pb_testimonial {
	padding: var(--space-card) !important;
	border: 1px solid var(--sea-sand);
	border-radius: var(--sea-radius);
	background: #fff !important;
	text-align: left;
	quotes: "\201C" "\201D";
}

/* Quote, then a divider, then avatar + name + program. */
/* Divi switches this to display:block below 981px. */
.sea-quote .et_pb_testimonial_description {
	display: grid !important;
	grid-template-columns: auto 1fr;
	column-gap: var(--sp-3);
	align-items: center;
	margin: 0 !important;
	overflow: visible;
}

.sea-quote .et_pb_testimonial_description_inner {
	grid-column: 1 / -1;
	margin-bottom: var(--sp-4);
	padding-bottom: var(--sp-5);
	border-bottom: 1px solid var(--sea-sand);
}

.sea-sec .sea-quote .et_pb_testimonial_content p {
	padding: 0;
	font-size: var(--fs-small);
	line-height: var(--lh-body);
	font-style: normal;
	color: var(--sea-navy);
}

.sea-sec .sea-quote .et_pb_testimonial_author {
	grid-column: 2;
	margin: 0 !important;
	font-size: var(--fs-ui);
	font-weight: var(--fw-semibold);
	line-height: var(--lh-title);
	color: var(--sea-navy);
}

.sea-sec .sea-quote .et_pb_testimonial_meta {
	grid-column: 2;
	margin-top: var(--sp-1) !important;
	padding: 0;
	font-size: var(--fs-caption);
	font-weight: var(--fw-medium);
	line-height: var(--lh-snug);
	color: var(--sea-muted);
}

/* Initial avatar, added by program-pages.js from the author name. */
.sea-avatar {
	grid-row: span 2;
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--sea-navy);
	color: #fff;
	font-size: var(--fs-meta);
	font-weight: var(--fw-bold);
}

.sea-sec .sea-featured.et_pb_testimonial {
	display: grid !important;
	grid-template-columns: auto 1fr;
	column-gap: var(--sp-7);
	padding: clamp(var(--sp-6), 5vw, var(--sp-8)) !important;
	border: 0;
	background: var(--sea-navy) !important;
}

.sea-sec .sea-featured.et_pb_testimonial::before {
	content: open-quote;
	display: block !important;
	position: static !important;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	border-radius: 0 !important;
	transform: none !important;
	font-family: var(--font-sans) !important;
	font-size: calc(var(--fs-quote) * 4.5) !important;
	font-weight: var(--fw-black) !important;
	line-height: .8 !important;
	color: var(--sea-red) !important;
	background: none;
}

.sea-sec .sea-featured .et_pb_testimonial_content p {
	font-size: var(--fs-quote);
	line-height: 1.35;
	font-weight: var(--fw-semibold);
	letter-spacing: var(--ls-heading);
	color: #fff;
}

.sea-featured .et_pb_testimonial_description_inner { border-bottom-color: rgba(255, 255, 255, .15); }
.sea-sec .sea-featured .et_pb_testimonial_author { color: #fff; }
.sea-sec .sea-featured .et_pb_testimonial_meta { color: rgba(255, 255, 255, .75); }
.sea-featured .sea-avatar { background: var(--sea-red); }

/* Long reflections collapse; program-pages.js adds the toggle. */
.sea-quote.is-clamped .et_pb_testimonial_content {
	max-height: 13.6em;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(#000 60%, transparent);
	mask-image: linear-gradient(#000 60%, transparent);
}

.sea-more-btn {
	display: inline-flex;
	align-items: center;
	gap: var(--sp-2);
	min-height: 44px;
	margin-top: var(--sp-2);
	padding: 0;
	border: 0;
	background: none;
	font: var(--fw-semibold) var(--fs-ui)/var(--lh-title) var(--font-sans);
	color: var(--sea-blue);
	cursor: pointer;
}

.sea-more-btn svg { width: 16px; height: 16px; transition: transform .2s; }
.sea-more-btn[aria-expanded="true"] svg { transform: rotate(180deg); }

/* ---------- Contact CTA (Call To Action module) ---------- */

.sea-cta.et_pb_section {
	padding: var(--space-section) 0 0 !important;
	background: #fff !important;
}

/* After a sand section, the panel straddles the two backgrounds. */
.sea-tint.et_pb_section + .sea-cta.et_pb_section {
	padding-top: var(--space-header) !important;
	background: linear-gradient(var(--sea-sand-soft) 50%, #fff 50%) !important;
}

.sea-tint.et_pb_section:has(+ .sea-cta) { padding-bottom: 0 !important; }

/* When the panel ends the page, it needs room below. */
.sea-cta.et_pb_section:last-child { padding-bottom: var(--space-section) !important; }

.sea-sec .et_pb_column > .sea-photo-credit.et_pb_module { margin-top: var(--sp-4) !important; }
.sea-sec .sea-photo-credit p { font-size: var(--fs-caption); line-height: var(--lh-snug); color: var(--sea-muted); }

.sea-sec .sea-cta-panel.et_pb_promo {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-6) var(--sp-7);
	padding: clamp(var(--sp-6), 5vw, var(--sp-8)) !important;
	border-radius: var(--sea-radius);
	background:
		radial-gradient(600px 300px at 100% 0, rgba(23, 110, 196, .5), transparent 70%),
		var(--sea-navy) !important;
	text-align: left;
	overflow: hidden;
}

.sea-cta-panel .et_pb_promo_description {
	flex: 1 1 420px;
	max-width: 60ch;
	padding: 0 !important;
}

.sea-sec .sea-cta-panel .et_pb_module_header { padding: 0; color: #fff !important; }
.sea-cta-panel .et_pb_promo_description > div { margin-top: var(--sp-4); }

.sea-sec .sea-cta-panel .et_pb_promo_description p {
	padding: 0;
	font-size: var(--fs-lead);
	line-height: var(--lh-lead);
	color: rgba(255, 255, 255, .88);
}

.sea-sec .sea-cta-panel .et_pb_promo_description a {
	color: #fff !important;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.sea-cta-panel .et_pb_button_wrapper { margin: 0; }
.sea-sec .sea-cta-panel .et_pb_button { background: #fff !important; border-color: #fff !important; color: var(--sea-navy) !important; }
.sea-sec .sea-cta-panel .et_pb_button:hover { background: var(--sea-blue-2) !important; border-color: var(--sea-blue-2) !important; color: #fff !important; }
.sea-cta-panel .et_pb_button:focus-visible { outline-color: #fff; }

/* ---------- Other programs (Blurb modules with a link) ---------- */

.sea-more.et_pb_section { background: #fff !important; }
.sea-more.sea-tint.et_pb_section { background: var(--sea-sand-soft) !important; }

.sea-links.et_pb_row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sea-sec .sea-links--auto.et_pb_row { grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }

/* Group headings ("Programs", "Services") between card grids. */
.sea-sec .sea-group-title.et_pb_row { margin-top: var(--space-header); }
.sea-sec .et_pb_row:first-child + .sea-group-title.et_pb_row { margin-top: var(--sp-6); }
.sea-sec .sea-group-title.et_pb_row + .et_pb_row { margin-top: var(--sp-5); }

.sea-link-card.et_pb_module {
	position: relative;
	padding: var(--space-card);
	border: 1px solid var(--sea-stone);
	border-radius: var(--sea-radius);
	background: #fff;
	transition: border-color .2s, box-shadow .2s;
}

.sea-link-card.et_pb_module:hover { border-color: var(--sea-navy); box-shadow: var(--sea-shadow); }
.sea-link-card.et_pb_module:focus-within { border-color: var(--sea-blue-2); box-shadow: 0 0 0 3px var(--sea-blue-2); }

.sea-link-card .et_pb_module_header a {
	color: var(--sea-navy) !important;
	text-decoration: none;
}

.sea-link-card .et_pb_module_header a:focus-visible { outline: none; }

/* The title link covers the whole card (Divi makes the inner wrappers relative). */
.sea-link-card :is(.et_pb_blurb_content, .et_pb_blurb_container, .et_pb_module_header) { position: static !important; }
/* The title link covers the whole card. */
.sea-link-card .et_pb_module_header a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: inherit;
}

/* Cards fill their grid cell so the arrows line up along the bottom of a row. */
.sea-grid .et_pb_column:has(> .sea-link-card) { display: flex !important; flex-direction: column; }
.sea-link-card.et_pb_module { display: flex; flex-direction: column; flex: 1 1 auto; }
.sea-link-card :is(.et_pb_blurb_content, .et_pb_blurb_container) { display: flex !important; flex-direction: column; flex: 1 1 auto; }

/* Keep at least --sp-5 between the text and the arrow. */
.sea-sec .sea-link-card .et_pb_blurb_description:not(:empty),
.sea-sec .sea-link-card .et_pb_module_header:not(:has(+ .et_pb_blurb_description:not(:empty))) { margin-bottom: var(--sp-5); }

/* Arrow button drawn after the text, pushed to the bottom of the card. */
.sea-link-card .et_pb_blurb_container::after {
	content: "";
	display: block;
	flex: none;
	width: 44px;
	height: 44px;
	margin-top: auto;
	border-radius: 50%;
	background: var(--sea-sand) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2315294e' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") center / 20px no-repeat;
	transition: background-color .2s, transform .2s;
}

.sea-link-card:hover .et_pb_blurb_container::after {
	background-color: var(--sea-blue);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E");
	transform: translateX(4px);
}

/* ---------- Lists in text and accordions ---------- */

/* Divi pads lists with a trailing 23px; space comes from the flow rule instead. */
.sea-sec :is(.et_pb_text_inner, .et_pb_toggle_content) :is(ul, ol) {
	padding: 0 0 0 1.25em;
	list-style-position: outside;
}

.sea-sec :is(.et_pb_text_inner, .et_pb_toggle_content) li + li { margin-top: var(--sp-2); }
.sea-sec :is(.et_pb_text_inner, .et_pb_toggle_content) li::marker { color: var(--sea-red); }

/* ---------- Chips (a plain list shown as tags) ---------- */

.sea-sec .sea-chips ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2);
	padding: 0 !important;
	list-style: none !important;
}

.sea-sec .sea-chips .et_pb_text_inner > ul { margin-top: var(--sp-5) !important; }
.sea-sec .sea-chips .et_pb_text_inner > ul + p { margin-top: var(--sp-5) !important; }

.sea-sec .sea-chips li {
	margin: 0 !important;
	padding: var(--sp-2) var(--sp-4);
	border: 1px solid var(--sea-stone);
	border-radius: 999px;
	background: #fff;
	font-size: var(--fs-small);
	font-weight: var(--fw-medium);
	line-height: var(--lh-title);
	color: var(--sea-navy);
}

/* ---------- Form space (Text module that holds a form) ---------- */

.sea-form.et_pb_module {
	padding: var(--space-card);
	border: 1px solid var(--sea-stone);
	border-radius: var(--sea-radius);
	background: #fff;
}

/* Until a form is added: a dashed, centered placeholder of form-like height. */
.sea-form.et_pb_module:has(.sea-form-placeholder) {
	display: grid;
	place-items: center;
	min-height: 480px;
	border-style: dashed;
	background: var(--sea-sand-soft);
}

.sea-sec .sea-form-placeholder {
	max-width: 32ch;
	font-size: var(--fs-small);
	text-align: center;
	color: var(--sea-muted);
}

/* Heading then intro in separate modules: same gap as heading → text. */
.sea-sec .et_pb_column > .et_pb_module + .sea-prose.et_pb_module { margin-top: var(--sp-5) !important; }

/* ---------- Contact cards (Blurb modules, no image) ---------- */

.sea-sec .sea-grid--contacts.et_pb_row { grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }

.sea-contact.et_pb_module {
	padding: var(--space-card);
	border: 1px solid var(--sea-stone);
	border-radius: var(--sea-radius);
	background: #fff;
}

.sea-sec .sea-contact .et_pb_blurb_content { max-width: none; margin: 0; text-align: left; }
.sea-sec .sea-contact .et_pb_blurb_container { padding: 0 !important; }

.sea-sec .sea-contact .et_pb_module_header {
	padding: 0 !important;
	font-size: var(--fs-h3) !important;
	font-weight: var(--fw-bold);
	line-height: var(--lh-title) !important;
	letter-spacing: var(--ls-title);
	color: var(--sea-navy) !important;
}

.sea-sec .sea-contact .et_pb_blurb_description { margin-top: var(--sp-3); }

.sea-sec .sea-contact .et_pb_blurb_description p {
	padding: 0;
	font-size: var(--fs-small);
	line-height: 1.65;
	color: var(--sea-ink);
}

.sea-sec .sea-contact .et_pb_blurb_description p + p { margin-top: var(--sp-1); }

.sea-sec .sea-contact a {
	overflow-wrap: break-word;
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* ---------- Video (Divi Video module) ---------- */

.sea-video.et_pb_module {
	overflow: hidden;
	border-radius: var(--sea-radius);
	box-shadow: var(--sea-shadow);
	background: var(--sea-navy);
}

.sea-video .fluid-width-video-wrapper,
.sea-video .et_pb_video_box { padding: 0 !important; aspect-ratio: 16 / 9; }

.sea-video iframe {
	position: static !important;
	display: block;
	width: 100% !important;
	height: 100% !important;
	aspect-ratio: 16 / 9;
	border: 0;
}

/* Hero with a video in place of a photo. */
.sea-hero .et_pb_column.sea-hero-media--video {
	aspect-ratio: auto;
	overflow: visible;
	border-radius: 0;
	box-shadow: none;
	background: none;
}

.sea-hero-media--video .sea-video.et_pb_module { border-radius: 24px; }

/* ---------- Figures (row of numbers on the navy band) ---------- */

.sea-sec .sea-figures.et_pb_row {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--sp-7) var(--space-grid);
}

.sea-figure .et_pb_text_inner {
	padding-top: var(--sp-4);
	border-top: 1px solid rgba(255, 255, 255, .2);
}

.sea-sec .sea-figure .et_pb_text_inner > p:first-child {
	font-size: var(--fs-figure);
	font-weight: var(--fw-black);
	line-height: 1;
	letter-spacing: var(--ls-display);
	color: #fff;
}

.sea-sec .sea-figure .et_pb_text_inner > p + p {
	margin-top: var(--sp-3) !important;
	max-width: 28ch;
	font-size: var(--fs-small);
	line-height: var(--lh-snug);
	color: rgba(255, 255, 255, .8);
}

/* ---------- Statements (Mission, Vision) ---------- */

/* Statements stack in a column (beside a video on About). */
.sea-sec .sea-statements > .sea-statement + .sea-statement { margin-top: var(--sp-6) !important; }

.sea-sec .sea-statement .et_pb_text_inner > h3 + p {
	margin-top: var(--sp-3) !important;
	font-size: var(--fs-lead);
	line-height: var(--lh-lead);
	color: var(--sea-navy);
}

/* Split row led by media: the video gets the wider column. */
.sea-split-row--media.et_pb_row { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); }

/* Two equal cards in a row; a column marked sea-span-all takes the full width. */
.sea-sec .sea-grid--2.et_pb_row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sea-sec .sea-grid--3.et_pb_row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sea-sec .sea-grid .et_pb_column.sea-span-all { grid-column: 1 / -1; }
.sea-sec .sea-span-all .sea-callout .et_pb_text_inner > p { max-width: 68ch; }

/* ---------- Link chips (a list of links shown as tags) ---------- */

.sea-sec .sea-chip-links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2);
	margin-top: var(--sp-4) !important;
	padding: 0 !important;
	list-style: none !important;
}

.sea-sec .sea-chip-links li { margin: 0 !important; }

.sea-sec .sea-chip-links a {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: var(--sp-2) var(--sp-4);
	border: 1px solid var(--sea-stone);
	border-radius: 999px;
	font-size: var(--fs-small);
	font-weight: var(--fw-medium) !important;
	line-height: var(--lh-title);
	color: var(--sea-navy) !important;
	text-decoration: none;
	transition: border-color .2s, background-color .2s;
}

.sea-sec .sea-chip-links a:hover { border-color: var(--sea-navy); background: var(--sea-sand-soft); }

/* Long-form prose: no larger first paragraph. */
.sea-sec .sea-prose--plain .et_pb_text_inner > p:first-child { font-size: var(--fs-body); line-height: var(--lh-body); color: var(--sea-ink); }

/* Chips list headed by an h3. */
.sea-sec .sea-chips .et_pb_text_inner > h3 + ul { margin-top: var(--sp-4) !important; }

/* ---------- Resource cards (Blurb modules with an external link) ---------- */

.sea-sec .sea-resources > .et_pb_module + .et_pb_module { margin-top: var(--sp-3) !important; }
.sea-sec .sea-resources > .sea-callout.et_pb_module { margin-top: var(--sp-5) !important; }

.sea-resource.et_pb_module {
	position: relative;
	padding: var(--space-card);
	border: 1px solid var(--sea-stone);
	border-radius: var(--sea-radius);
	background: #fff;
	transition: border-color .2s, box-shadow .2s;
}

.sea-resource.et_pb_module:hover { border-color: var(--sea-navy); box-shadow: var(--sea-shadow); }
.sea-resource.et_pb_module:focus-within { border-color: var(--sea-blue-2); box-shadow: 0 0 0 3px var(--sea-blue-2); }

.sea-sec .sea-resource :is(.et_pb_blurb_content, .et_pb_blurb_container, .et_pb_module_header) {
	position: static !important;
	max-width: none;
	margin: 0;
	padding: 0 !important;
	text-align: left;
}

.sea-sec .sea-resource .et_pb_module_header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--sp-4);
	font-size: var(--fs-h3) !important;
	font-weight: var(--fw-bold);
	line-height: var(--lh-title) !important;
	letter-spacing: var(--ls-title);
}

.sea-resource .et_pb_module_header a {
	color: var(--sea-navy) !important;
	text-decoration: none;
}

.sea-resource .et_pb_module_header a:focus-visible { outline: none; }

/* The title link covers the card. */
.sea-resource .et_pb_module_header a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: inherit;
}

/* External-link arrow at the end of the title row. */
.sea-resource .et_pb_module_header::after {
	content: "";
	flex: none;
	width: 20px;
	height: 20px;
	margin-top: 2px;
	background: var(--sea-navy);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7'/%3E%3Cpath d='M7 7h10v10'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7'/%3E%3Cpath d='M7 7h10v10'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform .2s, background-color .2s;
}

.sea-resource:hover .et_pb_module_header::after { background: var(--sea-blue); transform: translate(2px, -2px); }

.sea-sec .sea-resource .et_pb_blurb_description { margin-top: var(--sp-3); }

.sea-sec .sea-resource .et_pb_blurb_description p {
	max-width: 68ch;
	padding: 0;
	font-size: var(--fs-small);
	line-height: 1.65;
	color: var(--sea-ink);
}

/* Links inside the description stay clickable above the card link. */
.sea-sec .sea-resource .et_pb_blurb_description a { position: relative; z-index: 2; }

.sea-sec .sea-resource .et_pb_blurb_description .sea-domain {
	margin-top: var(--sp-3);
	font-size: var(--fs-caption);
	font-weight: var(--fw-medium);
	letter-spacing: .02em;
	color: var(--sea-muted);
}

/* Three tiles in a row (goals or feature lists). */
.sea-sec .sea-goals--3 ul { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* ---------- Embeds (Code modules: Caspio DataPage, Scribe tutorial) ---------- */

.sea-embed.et_pb_module {
	padding: var(--space-card);
	border: 1px solid var(--sea-stone);
	border-radius: var(--sea-radius);
	background: #fff;
	overflow: hidden;
}

.sea-embed--tutorial.et_pb_module { padding: 0; }
.sea-embed iframe { display: block; width: 100%; }

/* "View more" line at the end of a link card. */
.sea-sec .sea-link-card .et_pb_blurb_description .sea-card-cta {
	margin-top: var(--sp-4);
	font-size: var(--fs-ui);
	font-weight: var(--fw-semibold);
	color: var(--sea-blue);
}

/* ---------- Course cards (Blurb modules, title + description, no link) ---------- */

.sea-course.et_pb_module {
	padding: var(--space-card);
	border: 1px solid var(--sea-stone);
	border-radius: var(--sea-radius);
	background: #fff;
}

.sea-sec .sea-course :is(.et_pb_blurb_content, .et_pb_blurb_container) {
	max-width: none;
	margin: 0;
	padding: 0 !important;
	text-align: left;
}

.sea-sec .sea-course .et_pb_module_header {
	padding: 0 !important;
	font-size: var(--fs-h3) !important;
	font-weight: var(--fw-bold);
	line-height: var(--lh-title) !important;
	letter-spacing: var(--ls-title);
	color: var(--sea-navy) !important;
}

.sea-sec .sea-course .et_pb_blurb_description { margin-top: var(--sp-3); }

.sea-sec .sea-course .et_pb_blurb_description p {
	max-width: 68ch;
	padding: 0;
	font-size: var(--fs-small);
	line-height: 1.65;
	color: var(--sea-ink);
}

/* Resource cards with no description: the destination line sits under the title. */
.sea-sec .sea-resource .et_pb_blurb_description > .sea-domain:first-child { margin-top: 0; }

/* Button under a heading in a side column. */
.sea-sec .sea-aside > .et_pb_button_module_wrapper { margin-top: var(--sp-5) !important; }

/* Muted callout: dashed, for things that are coming soon. */
.sea-callout--muted.et_pb_module { border-style: dashed; background: transparent; }

/* ---------- Photo cards (Blurb modules with a photo and a link) ---------- */

.sea-photo-card.et_pb_module {
	position: relative;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--sea-stone);
	border-radius: var(--sea-radius);
	background: #fff;
	transition: border-color .2s, box-shadow .2s;
}

.sea-photo-card.et_pb_module:hover { border-color: var(--sea-navy); box-shadow: var(--sea-shadow); }
.sea-photo-card.et_pb_module:focus-within { border-color: var(--sea-blue-2); box-shadow: 0 0 0 3px var(--sea-blue-2); }

.sea-sec .sea-photo-card :is(.et_pb_blurb_content, .et_pb_blurb_container, .et_pb_module_header) {
	position: static !important;
	max-width: none;
	margin: 0;
	text-align: left;
}

.sea-sec .sea-photo-card .et_pb_blurb_content { display: flex; flex-direction: column; height: 100%; }

.sea-sec .sea-photo-card .et_pb_main_blurb_image {
	display: block;
	width: 100%;
	margin: 0 !important;
	line-height: 0;
}

.sea-sec .sea-photo-card .et_pb_main_blurb_image .et_pb_image_wrap { display: block; width: 100%; }

.sea-sec .sea-photo-card .et_pb_main_blurb_image img {
	display: block;
	width: 100% !important;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	transition: transform .4s cubic-bezier(.2, .7, .2, 1);
}

.sea-photo-card:hover .et_pb_main_blurb_image img { transform: scale(1.03); }

.sea-sec .sea-photo-card .et_pb_blurb_container {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: var(--space-card) !important;
}

.sea-sec .sea-photo-card .et_pb_module_header {
	padding: 0 !important;
	font-size: var(--fs-h3) !important;
	font-weight: var(--fw-bold);
	line-height: var(--lh-title) !important;
	letter-spacing: var(--ls-title);
}

.sea-photo-card .et_pb_module_header a {
	color: var(--sea-navy) !important;
	text-decoration: none;
}

.sea-photo-card .et_pb_module_header a:focus-visible { outline: none; }

/* The title link covers the card. */
.sea-photo-card .et_pb_module_header a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: inherit;
}

.sea-sec .sea-photo-card .et_pb_blurb_description {
	display: flex;
	flex-direction: column;
	flex: 1;
	margin-top: var(--sp-3);
}

.sea-sec .sea-photo-card .et_pb_blurb_description p {
	padding: 0;
	font-size: var(--fs-small);
	line-height: 1.65;
	color: var(--sea-ink);
}

/* The "View …" line sits at the bottom so cards in a row line up. */
.sea-sec .sea-photo-card .et_pb_blurb_description .sea-card-cta {
	margin-top: auto;
	padding-top: var(--sp-5);
	font-size: var(--fs-ui);
	font-weight: var(--fw-semibold);
	color: var(--sea-blue);
}

/* Wide photo card: photo left, text right (a single featured item). */
.sea-sec .sea-photo-card--wide .et_pb_blurb_content { flex-direction: row; }

.sea-sec .sea-photo-card--wide .et_pb_main_blurb_image {
	flex: 0 0 48%;
	width: 48%;
}

.sea-sec .sea-photo-card--wide .et_pb_main_blurb_image :is(.et_pb_image_wrap, img) { height: 100%; }
.sea-sec .sea-photo-card--wide .et_pb_main_blurb_image img { aspect-ratio: auto; min-height: 280px; }

.sea-sec .sea-photo-card--wide .et_pb_blurb_container {
	justify-content: center;
	padding: clamp(var(--sp-6), 4vw, var(--sp-8)) !important;
}

.sea-sec .sea-photo-card--wide .et_pb_module_header { font-size: var(--fs-h4) !important; }
.sea-sec .sea-photo-card--wide .et_pb_blurb_description { flex: 0 0 auto; }
.sea-sec .sea-photo-card--wide .et_pb_blurb_description p { font-size: var(--fs-body); max-width: 46ch; }
.sea-sec .sea-photo-card--wide .et_pb_blurb_description .sea-card-cta { margin-top: 0; }

@media (max-width: 767px) {
	.sea-sec .sea-photo-card--wide .et_pb_blurb_content { flex-direction: column; }
	.sea-sec .sea-photo-card--wide .et_pb_main_blurb_image { width: 100%; flex: none; }
	.sea-sec .sea-photo-card--wide .et_pb_main_blurb_image img { aspect-ratio: 3 / 2; min-height: 0; }
}

/* ---------- Long-form documents (policies) ---------- */

.sea-legal .et_pb_text_inner { max-width: 68ch; }

/* Document sections: h2 for structure, sized like a sub-heading. */
.sea-sec .sea-legal h2 {
	font-size: var(--fs-h4) !important;
	line-height: var(--lh-title) !important;
	letter-spacing: var(--ls-title);
	scroll-margin-top: var(--sp-6);
}

.sea-sec .sea-legal .et_pb_text_inner > h2:not(:first-child) {
	margin-top: var(--sp-7) !important;
	padding-top: var(--sp-7);
	border-top: 1px solid var(--sea-sand);
}

.sea-sec .sea-legal .et_pb_text_inner > h2 + * { margin-top: var(--sp-4) !important; }

/* Contents list beside a document. */
.sea-sec .sea-toc p {
	font-size: var(--fs-ui);
	font-weight: var(--fw-semibold);
	color: var(--sea-navy);
}

.sea-sec .sea-toc ol {
	margin-top: var(--sp-3) !important;
	padding: 0 !important;
	list-style: none !important;
	border-left: 1px solid var(--sea-stone);
}

.sea-sec .sea-toc li { margin: 0 !important; }

.sea-sec .sea-toc a {
	display: block;
	padding: var(--sp-2) var(--sp-4);
	font-size: var(--fs-small);
	line-height: var(--lh-snug);
	color: var(--sea-ink) !important;
	text-decoration: none;
}

.sea-sec .sea-toc a:hover { color: var(--sea-navy) !important; text-decoration: underline; }

@media (max-width: 980px) {
	.sea-sec .sea-toc { padding: var(--space-card); border: 1px solid var(--sea-stone); border-radius: var(--sea-radius); }
	.sea-sec .sea-toc ol { border-left: 0; }
	.sea-sec .sea-toc a { padding-left: 0; }
}

/* ---------- Homepage ---------- */

/* Photo hero: the section's Divi background image under a navy fade, white text. */
.sea-hero--photo.et_pb_section {
	position: relative;
	display: flex;
	align-items: center;
	min-height: clamp(460px, 62vh, 640px);
	padding: var(--space-section) 0 !important;
	background-color: var(--sea-navy) !important;
	background-size: cover !important;
	background-position: 60% 40% !important;
	overflow: hidden;
}

.sea-hero--photo.et_pb_section::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(21, 41, 78, .94) 0%, rgba(21, 41, 78, .82) 40%, rgba(21, 41, 78, .25) 75%, rgba(21, 41, 78, .1) 100%);
}

.sea-hero--photo .et_pb_row { position: relative; z-index: 1; width: calc(100% - 2 * var(--space-gutter)) !important; grid-template-columns: minmax(0, 1fr); }

.sea-hero--photo .sea-hero-copy { max-width: 640px; }
.sea-sec .sea-hero--photo .sea-hero-copy > .sea-title,
.sea-hero--photo.sea-sec .sea-hero-copy > .sea-title { margin-top: 0 !important; }
.sea-hero--photo h1 { color: #fff !important; }
.sea-hero--photo .sea-title p { max-width: 42ch; color: rgba(255, 255, 255, .9) !important; }

/* Keep short phrases (like a year range) on one line. */
.sea-nowrap { white-space: nowrap; }

/* Buttons for dark backgrounds. */
.sea-sec .sea-btn--white { background: #fff !important; border-color: #fff !important; color: var(--sea-navy) !important; }
.sea-sec .sea-btn--white:hover { background: var(--sea-blue-2) !important; border-color: var(--sea-blue-2) !important; color: #fff !important; }
.sea-sec .sea-btn--outline-white { background: transparent !important; border-color: #fff !important; color: #fff !important; }
.sea-sec .sea-btn--outline-white:hover { background: #fff !important; color: var(--sea-navy) !important; }

/* Welcome video link with a play icon. */
.sea-sec .sea-hero-copy > .sea-video-link { margin-top: var(--sp-6) !important; }
.sea-sec .sea-video-link p { padding: 0; }

.sea-sec .sea-video-link a {
	display: inline-flex;
	align-items: center;
	gap: var(--sp-3);
	min-height: 44px;
	font-size: var(--fs-ui);
	font-weight: var(--fw-semibold) !important;
	color: #fff !important;
	text-decoration: none;
}

.sea-sec .sea-video-link a::before {
	content: "";
	flex: none;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2315294e'%3E%3Cpath d='M8 5.5v13l11-6.5z'/%3E%3C/svg%3E") 56% 50% / 18px no-repeat;
	transition: transform .2s;
}

.sea-sec .sea-video-link a:hover { text-decoration: underline; text-underline-offset: 4px; }
.sea-sec .sea-video-link a:hover::before { transform: scale(1.08); }

@media (max-width: 767px) {
	.sea-hero--photo.et_pb_section::before { background: linear-gradient(180deg, rgba(21, 41, 78, .8), rgba(21, 41, 78, .92)); }
	.sea-hero--photo.et_pb_section { min-height: 0; }
}

/* Section heading with a button on the right. */
.sea-head-row.et_pb_column {
	display: flex !important;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--sp-4) var(--sp-7);
}

.sea-head-row > .et_pb_module { flex: 1 1 24rem; }
.sea-sec .sea-head-row > .et_pb_button_module_wrapper { flex: none; margin: 0 !important; }

/* Region map beside the about text. */
.sea-split-row--map.et_pb_row { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); }

.sea-map.et_pb_module {
	overflow: hidden;
	border-radius: var(--sea-radius);
	box-shadow: var(--sea-shadow);
	line-height: 0;
}

.sea-map img { width: 100%; }
.sea-sec .sea-about-copy > .et_pb_button_module_wrapper { margin-top: var(--sp-6) !important; }

@media (max-width: 980px) {
	.sea-split-row--map.et_pb_row { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Callout (Text module styled as a card) ---------- */

.sea-sec .et_pb_column > .et_pb_module + .sea-callout.et_pb_module { margin-top: var(--sp-6) !important; }

.sea-callout.et_pb_module {
	padding: var(--space-card);
	border: 1px solid var(--sea-stone);
	border-radius: var(--sea-radius);
	background: #fff;
}

.sea-sec .sea-callout li {
	font-size: var(--fs-small);
	line-height: 1.65;
}

/* ---------- Pill tabs (Tabs module shown as a pill toggle above a white panel) ----------
   One rule set for every pill toggle: calendar (sea-cal-tabs), dashboard (sea-dash-tabs),
   conference (sea-conf-tabs) and END HIV (sea-ehiv-tabs). Give a new Tabs module the class
   sea-pills to get the same look. Page files only add what differs (placement, width,
   phone layout). :is() keeps the specificity of a single class, so those page rules
   still win. program-pages.js adds the ARIA tab roles and arrow keys. */

.sea-sec :is(.sea-pills, .sea-conf-tabs, .sea-ehiv-tabs).et_pb_tabs {
	border: 0 !important;
	background: none !important;
	box-shadow: none !important;
	overflow: visible;
}

:is(.sea-pills, .sea-cal-tabs, .sea-dash-tabs, .sea-conf-tabs, .sea-ehiv-tabs) ul.et_pb_tabs_controls {
	display: inline-flex;
	gap: var(--sp-1);
	margin: 0 !important;
	padding: var(--sp-1) !important;
	list-style: none !important;
	border: 1px solid var(--sea-stone) !important;
	border-radius: 999px;
	background: #fff !important;
}

:is(.sea-pills, .sea-cal-tabs, .sea-dash-tabs, .sea-conf-tabs, .sea-ehiv-tabs) .et_pb_tabs_controls::after,
:is(.sea-pills, .sea-cal-tabs, .sea-dash-tabs, .sea-conf-tabs, .sea-ehiv-tabs) .et_pb_tabs_controls li::after,
:is(.sea-pills, .sea-cal-tabs, .sea-dash-tabs, .sea-conf-tabs, .sea-ehiv-tabs) .et_pb_tabs_controls li a::after { display: none !important; }

:is(.sea-pills, .sea-cal-tabs, .sea-dash-tabs, .sea-conf-tabs, .sea-ehiv-tabs) .et_pb_tabs_controls li {
	display: block;
	float: none;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
}

:is(.sea-pills, .sea-cal-tabs, .sea-dash-tabs, .sea-conf-tabs, .sea-ehiv-tabs) .et_pb_tabs_controls li a {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 var(--sp-5) !important;
	border-radius: 999px;
	font-size: var(--fs-ui) !important;
	font-weight: var(--fw-semibold) !important;
	line-height: var(--lh-title) !important;
	color: var(--sea-navy) !important;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color .2s, color .2s;
}

:is(.sea-pills, .sea-cal-tabs, .sea-dash-tabs, .sea-conf-tabs, .sea-ehiv-tabs) .et_pb_tabs_controls li a:hover { background: var(--sea-sand); }
:is(.sea-pills, .sea-cal-tabs, .sea-dash-tabs, .sea-conf-tabs, .sea-ehiv-tabs) .et_pb_tabs_controls li.et_pb_tab_active a { background: var(--sea-navy); color: #fff !important; }
:is(.sea-pills, .sea-cal-tabs, .sea-dash-tabs, .sea-conf-tabs, .sea-ehiv-tabs) .et_pb_tabs_controls li a:focus-visible { outline: 2px solid var(--sea-blue); outline-offset: 2px; }

:is(.sea-pills, .sea-cal-tabs, .sea-dash-tabs, .sea-conf-tabs, .sea-ehiv-tabs) .et_pb_all_tabs {
	min-width: 0;
	padding: var(--space-card) !important;
	border: 1px solid var(--sea-stone);
	border-radius: var(--sea-radius);
	background: #fff;
}

:is(.sea-pills, .sea-cal-tabs, .sea-dash-tabs, .sea-conf-tabs, .sea-ehiv-tabs) .et_pb_tab { padding: 0 !important; }

/* ---------- Event date tile (Caspio event rows: Events Calendar and homepage) ----------
   The same tile as the dashboard's Past Events dates (.pe-date): month, day and
   year in a sand box. The DataPage writes the month and day; sea-calendar.js and
   sea-home.js add the year from the row's data-date. !important because the
   DataPage's own styles load after this file. */

.sea-sec .aetc-ev { grid-template-columns: 64px minmax(0, 1fr) auto !important; }

.sea-sec .aetc-ev .aetc-ev__date {
	display: flex !important;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 64px !important;
	min-height: 64px;
	margin: 0 !important;
	padding: var(--sp-2) 0 !important;
	border-radius: var(--sea-radius-sm);
	background: var(--sea-sand-soft) !important;
	font-family: var(--font-sans);
	line-height: 1.1 !important;
	text-align: center;
}

.sea-sec .aetc-ev .aetc-ev__mon {
	font-size: 12px !important;
	font-weight: var(--fw-semibold) !important;
	line-height: 1.1 !important;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--sea-muted) !important;
}

.sea-sec .aetc-ev .aetc-ev__day {
	font-size: 24px !important;
	font-weight: var(--fw-black) !important;
	line-height: 1.1 !important;
	color: var(--sea-navy) !important;
}

.sea-sec .aetc-ev .aetc-ev__yr {
	font-size: 12px;
	line-height: 1.1;
	color: var(--sea-muted);
}

/* ---------- FAQ (Accordion module) ---------- */

.sea-faq.et_pb_accordion { display: grid; gap: var(--sp-3); }

.sea-sec .sea-faq .et_pb_toggle {
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid var(--sea-stone);
	border-radius: var(--sea-radius-sm);
	background: #fff !important;
	transition: border-color .2s;
}

.sea-sec .sea-faq .et_pb_toggle:hover { border-color: var(--sea-navy); }

/* Extra classes outrank Divi's generated `.et_pb_accordion_N h5.et_pb_toggle_title` colors. */
.sea-sec .sea-faq.et_pb_accordion .et_pb_toggle .et_pb_toggle_title {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 44px;
	padding: var(--sp-4) calc(var(--space-card) + 32px) var(--sp-4) var(--space-card) !important;
	font-size: var(--fs-h4) !important;
	font-weight: var(--fw-bold);
	line-height: var(--lh-title) !important;
	letter-spacing: var(--ls-title);
	color: var(--sea-navy) !important;
	cursor: pointer;
}

/* Chevron in place of Divi's plus/minus icon font. */
.sea-sec .sea-faq .et_pb_toggle_title::before {
	content: "" !important;
	position: absolute;
	top: 50% !important;
	right: var(--space-card) !important;
	left: auto !important;
	width: 20px;
	height: 20px;
	margin-top: -10px !important;
	font-size: 0 !important;
	background: var(--sea-navy);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform .2s;
}

.sea-sec .sea-faq .et_pb_toggle_open .et_pb_toggle_title::before { transform: rotate(180deg); }

.sea-sec .sea-faq .et_pb_toggle_title:focus-visible {
	outline: 3px solid var(--sea-blue-2);
	outline-offset: -3px;
	border-radius: var(--sea-radius-sm);
}

.sea-sec .sea-faq .et_pb_toggle_content {
	padding: 0 var(--space-card) var(--space-card) !important;
	margin: 0;
}

/* ---------- Responsive (layout only; spacing scales via tokens) ---------- */

@media (max-width: 1100px) {
	.sea-grid.et_pb_row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sea-sec .sea-grid--3.et_pb_row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 980px) {
	.sea-sec .sea-figures.et_pb_row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sea-sec .sea-grid--2.et_pb_row { grid-template-columns: minmax(0, 1fr); }
	.sea-sec .sea-grid--3.et_pb_row { grid-template-columns: minmax(0, 1fr); }

	.sea-hero .et_pb_row,
	.sea-split .et_pb_row,
	.sea-split-row.et_pb_row {
		grid-template-columns: minmax(0, 1fr);
		row-gap: var(--space-header);
	}

	.sea-hero .et_pb_column.sea-hero-media { margin-top: 0 !important; }
	.sea-hero-media { aspect-ratio: 16 / 10; }
	.sea-hero.et_pb_section { background: #fff !important; padding-bottom: var(--sp-7) !important; }
	.sea-sec .sea-hero-copy > .sea-title { margin-top: var(--sp-5) !important; }
	.sea-title p { max-width: none; }

	.sea-split .et_pb_column:first-child { position: static; }
}

@media (max-width: 767px) {
	.sea-sec .sea-hero-copy > .et_pb_button_module_wrapper { flex: 1 1 100%; }
	.sea-sec .sea-hero-copy .et_pb_button { width: 100%; justify-content: center; }
	.sea-sec .sea-hero-copy > .et_pb_button_module_wrapper + .et_pb_button_module_wrapper { margin-top: var(--sp-3) !important; }
	.sea-subnav .sea-subnav-label { display: none; }
	.sea-subnav nav {
		-webkit-mask-image: linear-gradient(90deg, #000 85%, transparent);
		mask-image: linear-gradient(90deg, #000 85%, transparent);
	}
	.sea-subnav li:last-child { padding-right: var(--sp-7) !important; }
	.sea-subnav a { min-height: 52px; }
	.sea-sec[id] { scroll-margin-top: 64px; }

	.sea-sec .sea-goals ul,
	.sea-sec .sea-goals--3 ul,
	.sea-grid.et_pb_row,
	.sea-links.et_pb_row { grid-template-columns: minmax(0, 1fr); }

	.sea-quotes .et_pb_column { columns: 1; }
	.sea-sec .sea-featured.et_pb_testimonial { grid-template-columns: 1fr; }
	.sea-sec .sea-featured.et_pb_testimonial::before { height: .5em !important; }
}

@media (prefers-reduced-motion: reduce) {
	.sea-sec *,
	.sea-sec *::before,
	.sea-sec *::after { transition: none !important; }
}
