/*! ============================================================================
 *  Eleven By Louise - brand stylesheet
 *  elevenbylouise.org  ·  Design System v1.4  ·  built for WordPress + Elementor
 *
 *  This file carries 100% of the site's appearance. Elementor supplies structure
 *  and editable text only, so nothing here depends on Elementor's own style
 *  settings. Load order inside this file:
 *      1. @font-face (self-hosted woff2)   5. extracted layout rules
 *      2. design tokens                    6. hover states
 *      3. base element styles              7. responsive rules
 *      4. quilt motifs                     8. Elementor resets
 *
 *  House rules this file enforces (see handoff README §7):
 *    · no 1px hairline borders anywhere      · no box-shadows
 *    · a dashed line is a seam, not a frame  · cedar is money, and only money
 *    · 3px Blue-600 focus ring at 3px offset, on everything interactive
 * ========================================================================== */

/* --------------------------------------------------------------- 1. webfonts
   Self-hosted woff2, latin + latin-ext subsets, extracted from the delivered
   bundle. Paths are relative to this stylesheet: fonts/ sits beside it. */
@font-face{font-family:'Fraunces';font-style:normal;font-weight:400 800;font-display:swap;
  src:url('../fonts/fraunces-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:400 800;font-display:swap;
  src:url('../fonts/fraunces-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Fraunces';font-style:italic;font-weight:400 700;font-display:swap;
  src:url('../fonts/fraunces-italic-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Fraunces';font-style:italic;font-weight:400 700;font-display:swap;
  src:url('../fonts/fraunces-italic-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;
  src:url('../fonts/inter-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;
  src:url('../fonts/inter-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Caveat';font-style:normal;font-weight:500 600;font-display:swap;
  src:url('../fonts/caveat-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Caveat';font-style:normal;font-weight:500 600;font-display:swap;
  src:url('../fonts/caveat-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* ----------------------------------------------------------------- 2. tokens */
:root{
  /* Blue */
  --ebl-blue-050:#F1F8FB;--ebl-blue-100:#D8ECF6;--ebl-blue-200:#C6E7F6;
  --ebl-blue-300:#9AD3EE;--ebl-blue-400:#68BFE6;--ebl-blue-500:#25A3DB;
  --ebl-blue-600:#197199;--ebl-blue-700:#104C65;--ebl-blue-800:#0C3A4D;
  --ebl-blue-900:#082733;
  /* Cedar - money actions only */
  --cedar-100:#F7EBD9;--cedar-300:#E7C58F;--cedar-400:#D89C57;
  --cedar-500:#C98A44;--cedar-700:#96632D;
  /* Scrap colors - illustration, texture and card fills. Never a CTA. */
  --sage-100:#E8EEE1;--sage-300:#A7BE95;--sage-500:#6E8B5B;--sage-700:#4F6740;
  --jam-100:#F6E5E0;--jam-300:#D08C7C;--jam-500:#A6412F;--jam-700:#7C2F21;
  --linen:#F3E9D8;
  /* Neutral */
  --ink:#14212B;--slate:#5F7889;--line:#DDE4E8;--paper:#FBF9F6;--white:#FFFFFF;
  /* Status */
  --success:#2E6F4E;--error:#A32118;--warning:#8A5A00;

  /* Type */
  --font-display:'Fraunces',Georgia,'Times New Roman',serif;
  --font-body:'Inter',system-ui,-apple-system,sans-serif;
  --font-label:'Caveat','Bradley Hand',cursive;
  --step--1:0.833rem;--step-0:1rem;--step-1:1.25rem;--step-2:1.5rem;
  --step-3:clamp(1.625rem,1.3rem + 1.2vw,2.25rem);
  --step-4:clamp(2rem,1.5rem + 2vw,3rem);
  --step-5:clamp(2.5rem,1.7rem + 3.2vw,4rem);
  --lh-tight:1.15;--lh-snug:1.3;--lh-lead:1.55;--lh-body:1.65;
  --wonk:'SOFT' 40,'WONK' 1;

  /* Spacing */
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;
  --sp-6:32px;--sp-7:48px;--sp-8:64px;--sp-9:96px;--sp-10:128px;
  --pad-card:var(--sp-6);--gap-card:var(--sp-4);--pad-section:var(--sp-9);--gap-field:var(--sp-5);

  /* Radii and layout */
  --r-sm:2px;--r-md:6px;--r-lg:10px;--r-arch:200px;
  --measure:68ch;--container:1200px;--gutter:46px;

  /* Motion */
  --ease:cubic-bezier(.2,.6,.3,1);--dur-color:.15s;--dur-lift:.18s;--dur-press:.08s;

  /* Semantic aliases */
  --text-body:var(--ink);--text-muted:var(--slate);--text-heading:var(--ebl-blue-700);
  --text-link:var(--ebl-blue-600);--text-link-hover:var(--cedar-700);
  --text-overline:var(--cedar-700);--text-on-dark:var(--white);
  --text-muted-on-dark:#B4D3E0;--text-accent-on-dark:var(--cedar-300);
  --surface-page:var(--paper);--surface-card:var(--white);--surface-sky:var(--ebl-blue-050);
  --surface-mist:var(--ebl-blue-100);--surface-cedar:var(--cedar-100);
  --surface-sage:var(--sage-100);--surface-jam:var(--jam-100);
  --surface-linen:var(--linen);--surface-deep:var(--ebl-blue-700);--surface-night:var(--ebl-blue-900);
  --action-donate:var(--cedar-500);--action-donate-hover:var(--cedar-400);
  --action-primary:var(--ebl-blue-700);--action-primary-hover:var(--ebl-blue-800);
  --action-secondary:var(--ebl-blue-100);--action-secondary-hover:var(--ebl-blue-200);
  --action-disabled:var(--line);--action-disabled-text:#8B98A1;
  --focus-ring:var(--ebl-blue-600);--focus-ring-width:3px;--focus-ring-offset:3px;
  --stitch-color:var(--ebl-blue-500);--stitch-color-state:var(--ebl-blue-600);
  --stitch-color-accent:var(--cedar-500);--illo-line:var(--ebl-blue-800);
  --field-bg:var(--white);--field-underline:var(--slate);
  --field-underline-focus:var(--ebl-blue-700);--field-ring:var(--ebl-blue-300);
}

/* ------------------------------------------- 2b. Elementor globals bridge
   Elementor writes its Global Colors and Global Fonts as custom properties on
   the kit element, which is <body>. Re-declaring the design tokens there, each
   reading its global with the brand value as the fallback, means two things at
   once: the design still works with Elementor absent or the kit unseeded, and
   changing a colour or a font in Site Settings changes it across the whole
   site rather than in one widget.

   Font SIZES are deliberately not bridged. The display sizes are fluid
   clamp() values that a kit control cannot express, and pinning them to a
   single number would break the responsive scale. */
body.ebl{
  --ebl-blue-050:var(--e-global-color-ebl_blue_050,#F1F8FB);
  --ebl-blue-100:var(--e-global-color-ebl_blue_100,#D8ECF6);
  --ebl-blue-200:var(--e-global-color-ebl_blue_200,#C6E7F6);
  --ebl-blue-300:var(--e-global-color-ebl_blue_300,#9AD3EE);
  --ebl-blue-400:var(--e-global-color-ebl_blue_400,#68BFE6);
  --ebl-blue-500:var(--e-global-color-ebl_blue_500,#25A3DB);
  --ebl-blue-600:var(--e-global-color-ebl_blue_600,#197199);
  --ebl-blue-700:var(--e-global-color-ebl_blue_700,#104C65);
  --ebl-blue-800:var(--e-global-color-ebl_blue_800,#0C3A4D);
  --ebl-blue-900:var(--e-global-color-ebl_blue_900,#082733);
  --cedar-100:var(--e-global-color-ebl_cedar_100,#F7EBD9);
  --cedar-300:var(--e-global-color-ebl_cedar_300,#E7C58F);
  --cedar-400:var(--e-global-color-ebl_cedar_400,#D89C57);
  --cedar-500:var(--e-global-color-ebl_cedar_500,#C98A44);
  --cedar-700:var(--e-global-color-ebl_cedar_700,#96632D);
  --sage-100:var(--e-global-color-ebl_sage_100,#E8EEE1);
  --sage-300:var(--e-global-color-ebl_sage_300,#A7BE95);
  --sage-500:var(--e-global-color-ebl_sage_500,#6E8B5B);
  --sage-700:var(--e-global-color-ebl_sage_700,#4F6740);
  --jam-100:var(--e-global-color-ebl_jam_100,#F6E5E0);
  --jam-300:var(--e-global-color-ebl_jam_300,#D08C7C);
  --jam-500:var(--e-global-color-ebl_jam_500,#A6412F);
  --jam-700:var(--e-global-color-ebl_jam_700,#7C2F21);
  --linen:var(--e-global-color-ebl_linen,#F3E9D8);
  --ink:var(--e-global-color-ebl_ink,#14212B);
  --slate:var(--e-global-color-ebl_slate,#5F7889);
  --paper:var(--e-global-color-ebl_paper,#FBF9F6);
  --white:var(--e-global-color-ebl_white,#FFFFFF);

  --font-display:var(--e-global-typography-ebl_display-font-family,'Fraunces'),Georgia,'Times New Roman',serif;
  --font-body:var(--e-global-typography-ebl_body-font-family,'Inter'),system-ui,-apple-system,sans-serif;
  --font-label:var(--e-global-typography-ebl_label-font-family,'Caveat'),'Bradley Hand',cursive;
}
/* ------------------------------------------------------------------- 3. base
   Root font-size is 18px, so 1rem = 18px throughout. */
html{font-size:18px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
html{scroll-behavior:auto}
}
body.ebl{margin:0;background:var(--surface-page);color:var(--text-body);
  font-family:var(--font-body);font-size:var(--step-0);line-height:var(--lh-body);
  -webkit-font-smoothing:antialiased}
.ebl *, .ebl *::before, .ebl *::after{box-sizing:border-box}
.ebl h1, .ebl h2, .ebl h3, .ebl h4{font-family:var(--font-display);font-weight:600;
  line-height:1.12;margin:0;color:var(--text-heading);letter-spacing:-.01em}
.ebl h1, .ebl h2{font-variation-settings:var(--wonk)}
.ebl h1 em, .ebl h2 em{font-style:italic;font-weight:400}
.ebl p{margin:0;text-wrap:pretty}
.ebl a{color:var(--text-link);text-decoration-thickness:1px;text-underline-offset:2px}
.ebl a:hover{color:var(--text-link-hover)}
.ebl img{max-width:100%}
/* Form controls. Themes normalise these differently - Hello Elementor sets
   line-height:1.15 and font-size:100% on every control - which quietly changes
   field heights and therefore the height of any panel holding a form. Pinning
   them back to the browser default keeps fields the height the design drew. */
.ebl input, .ebl textarea, .ebl select, .ebl button{font-family:inherit;margin:0}
.ebl input, .ebl select, .ebl button{line-height:normal}
.ebl textarea{line-height:normal}
.ebl input[type="checkbox"], .ebl input[type="radio"]{margin:0;padding:0;vertical-align:middle}
.ebl :focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-offset)}
.ebl :focus:not(:focus-visible){outline:none}
.ebl.ebl .ebl-skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--white);
  color:var(--ebl-blue-700);padding:.75rem 1.25rem;border-radius:var(--r-md);font-weight:600}
.ebl.ebl .ebl-skip:focus{left:12px;top:12px}
@media (prefers-reduced-motion:reduce){
.ebl *{transition:none!important;animation:none!important}
}
/* ----------------------------------------------------------------- 4. motifs
   The quilt marks. No 1px borders anywhere: blocks are held apart by fill,
   texture and stitching. */
.ebl.ebl .ebl-stitch{fill:none;stroke:var(--stitch-color);stroke-width:2.5;stroke-dasharray:9 7;stroke-linecap:round}
.ebl.ebl .ebl-stitch.is-state{stroke:var(--stitch-color-state)}
.ebl.ebl .ebl-stitch.is-cedar{stroke:var(--stitch-color-accent)}
.ebl.ebl .ebl-stitch.is-ink{stroke:var(--ebl-blue-800)}
.ebl.ebl .ebl-rule-stitch{display:block;width:100%;height:8px;overflow:visible}
/* The mark: 11 patches on a 3x5 grid, 4 cells left empty. 15 <i> children. */
.ebl.ebl .ebl-mark{display:grid;gap:1px;grid-template-columns:repeat(3,var(--m,8px));
  grid-template-rows:repeat(5,var(--m,8px));flex:none}
.ebl.ebl .ebl-mark i{background:var(--ebl-blue-500)}
.ebl.ebl .ebl-mark i:nth-child(1), .ebl.ebl .ebl-mark i:nth-child(3), .ebl.ebl .ebl-mark i:nth-child(13), .ebl.ebl .ebl-mark i:nth-child(15){background:none}
.ebl.ebl .ebl-mark i:nth-child(5), .ebl.ebl .ebl-mark i:nth-child(7), .ebl.ebl .ebl-mark i:nth-child(9){background:var(--ebl-blue-200)}
.ebl.ebl .ebl-mark i:nth-child(8){background:var(--ebl-blue-700)}
.ebl.ebl .ebl-mark i:nth-child(10), .ebl.ebl .ebl-mark i:nth-child(12), .ebl.ebl .ebl-mark i:nth-child(14){background:var(--ebl-blue-400)}
.ebl.ebl .ebl-mark i:nth-child(11){background:var(--ebl-blue-600)}
/* Arched photo crop. */
.ebl.ebl .ebl-arch{border-radius:var(--r-arch) var(--r-arch) var(--r-md) var(--r-md);overflow:hidden;aspect-ratio:3/4}
.ebl.ebl .ebl-arch img{width:100%;height:100%;object-fit:cover;display:block}
/* Sewn label, from Louise's Made With Love By Mom tags. One per screen. */
.ebl.ebl .ebl-tag{display:inline-block;font-family:var(--font-label);font-size:1.3rem;line-height:1;
  color:var(--ebl-blue-700);background:var(--white);padding:.55rem 1.1rem .6rem;
  border-radius:var(--r-sm);position:relative}
.ebl.ebl .ebl-tag--sm{font-size:1.22rem;padding:.5rem 1rem .55rem}
.ebl.ebl .ebl-tag::before{content:"";position:absolute;inset:4px;border:1.5px dashed var(--ebl-blue-300);border-radius:1px}
.ebl.ebl .ebl-tag.on-dark{background:rgba(255,255,255,.08);color:var(--cedar-300)}
.ebl.ebl .ebl-tag.on-dark::before{border-color:rgba(231,197,143,.6)}
/* Hand-circled highlight - the 100% claim and nowhere else. */
.ebl.ebl .ebl-circled{position:relative;display:inline-block;padding:0 .35em}
.ebl.ebl .ebl-circled svg{position:absolute;inset:-38% -8%;width:116%;height:176%;pointer-events:none}
/* Pinked hem: zigzag seam in the block's own color. */
.ebl.ebl .ebl-hem{display:block;width:100%;height:14px}
/* Illustration: 64x64 viewBox, flat palette fill under a single-weight line. */
.ebl.ebl .ebl-illo{display:block;width:76px;height:76px}
.ebl.ebl .ebl-illo .ink{fill:none;stroke:var(--illo-line);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.ebl.ebl .ebl-illo .dash{fill:none;stroke:var(--illo-line);stroke-width:2.2;stroke-dasharray:4 4;stroke-linecap:round}
.ebl.ebl .ebl-illo.is-sm{width:30px;height:30px}
.ebl.ebl .ebl-illo.is-sm .ink{stroke-width:4}
.ebl.ebl .ebl-illo.is-disc{width:104px;height:104px}
.ebl.ebl .ebl-illo.is-anchor{width:120px;height:120px}
/* Gingham. Never at full strength, one cloth per page. */
.ebl.ebl .ebl-gingham{background-color:#fff;background-repeat:repeat;background-size:50px 50px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='50' height='50'%3E%3Crect width='25' height='50' fill='%23FBF9F6'/%3E%3Crect width='50' height='25' fill='%23FBF9F6'/%3E%3Crect width='25' height='25' fill='%23F5F1EA'/%3E%3C/svg%3E")}
/* The client draws a different cloth behind each page's hero. Same family, four
   weaves: the checks on Home and Donate, dots on Our story, graph paper on Get
   involved, and a pinstripe on Contact. */
/* The outcomes hero's weave: a finer dot grid than .ebl-dotted, on a 16px tile.
   The design uses it only here, and the dot colour is a one-off texture tint
   rather than a palette token, which is why it is literal in the data URL the
   same way the other weaves are. */
.ebl.ebl .ebl-pindot{background-color:var(--paper);background-repeat:repeat;background-size:16px 16px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Crect width='16' height='16' fill='%23FBF9F6'/%3E%3Ccircle cx='4' cy='4' r='1.5' fill='%23EDE5D8'/%3E%3Ccircle cx='12' cy='12' r='1.5' fill='%23EDE5D8'/%3E%3C/svg%3E")}
.ebl.ebl .ebl-dotted{background-color:var(--paper);background-repeat:repeat;background-size:50px 50px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='50' height='50'%3E%3Crect width='50' height='50' fill='%23FBF9F6'/%3E%3Ccircle cx='12.5' cy='12.5' r='2.6' fill='%23F7EBD9'/%3E%3Ccircle cx='37.5' cy='37.5' r='2.6' fill='%23F7EBD9'/%3E%3C/svg%3E")}
.ebl.ebl .ebl-graphed{background-color:var(--paper);background-repeat:repeat;background-size:24px 24px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Crect width='24' height='24' fill='%23FBF9F6'/%3E%3Cpath d='M0 12h24' stroke='%23F1EBE0' stroke-width='2'/%3E%3Cpath d='M12 0v24' stroke='%23F5F1EA' stroke-width='2'/%3E%3C/svg%3E")}
.ebl.ebl .ebl-striped{background-color:var(--paper);background-repeat:repeat;background-size:30px 14px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='14'%3E%3Crect width='30' height='14' fill='%23FBF9F6'/%3E%3Cpath d='M4 0v14' stroke='%23EFE7DA' stroke-width='2.5'/%3E%3C/svg%3E")}
/* Contact's cloth stops 700px down rather than running the height of the hero. */
.ebl.ebl .ebl-cloth--700{bottom:auto;height:700px}
/* Photo placeholder slot - swapped for the real photograph on delivery. */
.ebl.ebl .ebl-photoslot{background:var(--ebl-blue-050);border-radius:var(--r-lg);aspect-ratio:4/5;
  display:grid;place-items:center;text-align:center;padding:24px;
  color:var(--slate);font-size:.8rem;line-height:1.4;position:relative}
.ebl.ebl .ebl-photoslot::before{content:"";position:absolute;inset:10px;
  border:2px dashed var(--ebl-blue-300);border-radius:var(--r-md)}
.ebl.ebl .ebl-photoslot span{position:relative;max-width:22ch}
/* The slot sets the size and leading of its own note. A text widget dropped
   inside brings its own, which is a touch looser and made the two-line note
   8px taller than the design's. */
.ebl.ebl .ebl-photoslot .ebl-text{font-size:inherit;line-height:inherit}
/* ------------------------------------------------- 5a. component layer
   The design system's own components. The five recreated pages carry their
   geometry in the extracted rules below (exact, per-element); these classes are
   the reusable layer: they style the chrome we authored (header, footer legal
   line, mobile nav, amount selector, form success state) and are what NEW pages
   should be built from.

   Buttons: 56/48/44px tall, 44px minimum target, full width below 480px.
   Hover shifts exactly one palette step. Press is translateY(1px), never scale. */
.ebl.ebl .ebl-btn{display:inline-flex;align-items:center;justify-content:center;
  font-weight:600;line-height:1;border:0;border-radius:var(--r-md);
  text-decoration:none;cursor:pointer;min-height:44px;
  transition:background var(--dur-color) var(--ease),color var(--dur-color) var(--ease)}
.ebl.ebl .ebl-btn:active{transform:translateY(1px);transition-duration:var(--dur-press)}
.ebl.ebl .ebl-btn--donate{background:var(--action-donate);color:var(--ink)}
.ebl.ebl .ebl-btn--donate:hover{background:var(--action-donate-hover);color:var(--ink)}
.ebl.ebl .ebl-btn--primary{background:var(--action-primary);color:var(--white)}
.ebl.ebl .ebl-btn--primary:hover{background:var(--action-primary-hover);color:var(--white)}
.ebl.ebl .ebl-btn--secondary{background:var(--action-secondary);color:var(--ebl-blue-700)}
/* Sage carries the referral action, and the ghost is the quiet second button on
   a deep block, where a filled pale button would out-shout the cedar one. */
.ebl.ebl .ebl-btn--sage{background:var(--sage-100);color:var(--sage-700)}
.ebl.ebl .ebl-btn--sage:hover{background:var(--sage-300);color:var(--sage-700)}
.ebl.ebl .ebl-btn--ghost{background:rgba(255,255,255,.1);color:var(--white)}
.ebl.ebl .ebl-btn--ghost:hover{background:rgba(255,255,255,.18);color:var(--white)}
.ebl.ebl .ebl-btn--secondary:hover{background:var(--action-secondary-hover);color:var(--ebl-blue-700)}
/* Cards. Hover lifts 4px with no shadow appearing - there are no shadows here. */
.ebl.ebl .ebl-card{border-radius:var(--r-lg);padding:var(--pad-card)}
.ebl.ebl .ebl-card--white{background:var(--surface-card)}
.ebl.ebl .ebl-card--sky{background:var(--surface-sky)}
.ebl.ebl .ebl-card--mist{background:var(--surface-mist)}
.ebl.ebl .ebl-card--sage{background:var(--surface-sage)}
.ebl.ebl .ebl-card--jam{background:var(--surface-jam)}
.ebl.ebl .ebl-card--linen{background:var(--surface-linen)}
.ebl.ebl .ebl-card--deep{background:var(--surface-deep);color:var(--white)}
.ebl.ebl .ebl-card--deep h2, .ebl.ebl .ebl-card--deep h3{color:var(--white)}
.ebl.ebl .ebl-card--lift{transition:transform var(--dur-lift) var(--ease)}
.ebl.ebl .ebl-card--lift:hover{transform:translateY(-4px)}
/* Overline - the only all-caps in the system. */
.ebl.ebl .ebl-overline{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;
  font-weight:700;color:var(--text-overline)}
/* Fields: white on a tinted panel, 3px slate underline, square-ish top corners. */
.ebl.ebl .ebl-field{width:100%;box-sizing:border-box;background:var(--field-bg);border:0;
  border-bottom:3px solid var(--field-underline);border-radius:var(--r-sm) var(--r-sm) 0 0;
  padding:.85rem .9rem;font-size:.95rem;color:var(--ink);min-height:44px;
  transition:border-color var(--dur-color) var(--ease),box-shadow var(--dur-color) var(--ease)}
.ebl.ebl .ebl-field:focus{border-bottom-color:var(--field-underline-focus);
  box-shadow:0 3px 0 0 var(--field-ring);outline:none}
.ebl.ebl .ebl-field:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-offset)}
.ebl.ebl .ebl-label{display:block;font-size:.78rem;font-weight:600;color:var(--ebl-blue-700);margin-bottom:6px}
.ebl.ebl .ebl-error{display:block;font-size:.78rem;color:var(--error);margin-top:6px}
/* Map panel: the OSM embed sits on a brand schematic, so a blocked, offline or
   consent-gated embed still reads as a designed block rather than a blank box. */
.ebl.ebl .ebl-mapwrap{position:relative;background:var(--ebl-blue-050);border-radius:var(--r-md);overflow:hidden}
.ebl.ebl .ebl-mapwrap::before{content:"";position:absolute;inset:0;
  background-color:var(--ebl-blue-050);
  background-image:
    linear-gradient(to right,rgba(154,211,238,.55) 0 3px,transparent 3px),
    linear-gradient(to bottom,rgba(154,211,238,.55) 0 3px,transparent 3px);
  background-size:100% 100%,100% 100%;
  background-position:38% 0,0 46%;background-repeat:no-repeat}
.ebl.ebl .ebl-mapwrap::after{content:"Sudie’s Place · 6204 Slocum Road";
  position:absolute;left:14px;bottom:14px;background:var(--white);color:var(--ebl-blue-700);
  font-family:var(--font-body);font-size:.72rem;font-weight:600;
  padding:.5rem .75rem;border-radius:var(--r-sm)}
.ebl.ebl .ebl-mapwrap .ebl-map{position:relative;z-index:1;display:block;width:100%;height:100%;
  min-height:320px;border:0;background:transparent}
/* Header lockup + nav, re-authored for WordPress (the prototype inlined these). */
.ebl.ebl .ebl-logo{display:flex;align-items:center;text-decoration:none;color:var(--ink);flex:none}
.ebl.ebl .ebl-logo:hover{color:var(--ink)}
/* Horizontal lockup, rebuilt from the client artwork (see logo.py). Never scale
   the mark past ~320px of mark width; the header runs it at 36px tall. */
.ebl.ebl .ebl-lockup{display:block;height:36px;width:auto;max-width:none}
.ebl.ebl .ebl-footer .ebl-lockup{height:34px;margin-bottom:24px}
@media (max-width:560px){
.ebl.ebl .ebl-lockup{height:30px}
}
/* Kept for favicons and CSS-only slots: the 11-patch mark drawn in CSS. */
.ebl.ebl .ebl-wordmark{font-family:var(--font-label);font-size:1.5rem;line-height:1;white-space:nowrap}
.ebl.ebl .ebl-nav{display:flex;gap:26px;margin-left:auto;align-items:center;flex-wrap:wrap}
.ebl.ebl .ebl-header .ebl-header-cta{flex:none}
.ebl.ebl .ebl-nav-link{font-size:.78rem;font-weight:500;color:var(--ink);text-decoration:none;
  padding:6px 0;display:flex;flex-direction:column;gap:5px;
  transition:color var(--dur-color) var(--ease)}
.ebl.ebl .ebl-nav-link:hover{color:var(--cedar-700)}
.ebl.ebl .ebl-nav-link[aria-current="page"]{font-weight:600;color:var(--ebl-blue-700)}
.ebl.ebl .ebl-nav-stitch{display:block;width:100%;height:5px;opacity:0;
  transition:opacity var(--dur-color) var(--ease)}
.ebl.ebl .ebl-nav-stitch svg{display:block;width:100%;height:5px}
.ebl.ebl .ebl-nav-link:hover .ebl-nav-stitch, .ebl.ebl .ebl-nav-link[aria-current="page"] .ebl-nav-stitch{opacity:1}
.ebl.ebl .ebl-foot-legal{max-width:var(--container);margin:14px auto 0;font-size:.75rem;color:#8FB6C6}
/* Header and footer chrome. */
.ebl.ebl .ebl-header{position:sticky;top:0;z-index:30;background:var(--white);
  padding:16px var(--gutter);display:flex;flex-direction:row;align-items:center;
  gap:28px;flex-wrap:wrap}
.ebl.ebl .ebl-footer{background:var(--surface-night);color:var(--text-muted-on-dark);
  padding:64px var(--gutter) 32px;font-size:.85rem}
.ebl.ebl .ebl-footcol-h{font-family:var(--font-body);color:var(--white);font-size:.7rem;
  letter-spacing:.1em;text-transform:uppercase;font-weight:700;margin-bottom:12px}
.ebl.ebl .ebl-social{width:42px;height:42px;background:rgba(255,255,255,.1);border-radius:var(--r-md);
  display:grid;place-items:center;font-size:.68rem;font-weight:700;color:var(--white);
  text-decoration:none;transition:background var(--dur-color) var(--ease)}
.ebl.ebl .ebl-social:hover{background:rgba(255,255,255,.2);color:var(--white)}
.ebl.ebl .ebl-wrap{max-width:var(--container);margin:0 auto}
/* Nav running-stitch underline. */
.ebl.ebl .ebl-nav-link{font-size:.78rem;font-weight:500;color:var(--ink);text-decoration:none;
  padding:6px 0;display:flex;flex-direction:column;gap:5px;
  transition:color var(--dur-color) var(--ease)}
.ebl.ebl .ebl-nav-link:hover{color:var(--cedar-700)}
.ebl.ebl .ebl-nav-link[aria-current="page"]{font-weight:600;color:var(--ebl-blue-700)}
.ebl.ebl .ebl-nav-link svg{display:block;width:100%;height:5px;opacity:0;
  transition:opacity var(--dur-color) var(--ease)}
.ebl.ebl .ebl-nav-link:hover svg, .ebl.ebl .ebl-nav-link[aria-current="page"] svg{opacity:1}
/* Mobile nav toggle - hidden until the nav collapses. */
.ebl.ebl .ebl-navtoggle{display:none;margin-left:auto;background:var(--ebl-blue-050);border:0;
  border-radius:var(--r-md);width:44px;height:44px;cursor:pointer;
  color:var(--ebl-blue-700);align-items:center;justify-content:center}
.ebl.ebl .ebl-navtoggle svg{width:22px;height:22px}
/* Donate amount selector (design chrome in front of the real platform). */
.ebl.ebl .ebl-amt[aria-pressed="false"]{background:var(--ebl-blue-050);color:var(--ebl-blue-700)}
.ebl.ebl .ebl-amt[aria-pressed="true"]{background:var(--ebl-blue-700);color:var(--white)}
.ebl.ebl .ebl-amt[aria-pressed="false"]:hover{background:var(--ebl-blue-100)}
.ebl.ebl .ebl-toggle[aria-pressed="false"]{background:transparent;color:var(--ebl-blue-700);font-weight:500}
.ebl.ebl .ebl-toggle[aria-pressed="true"]{background:var(--white);color:var(--ebl-blue-700);font-weight:700}
/* ------------------------------------------------------------- note form
   The general note / volunteer / referral form, as a widget. Field and label
   styling is shared with the sign-up row (.ebl-field, .ebl-label), so a change
   to the field system reaches every form at once. */
.ebl.ebl .ebl-form{display:grid;gap:24px;align-items:start;border-radius:var(--r-lg);
  padding:var(--pad-card);scroll-margin-top:110px;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
/* The form takes the same fills as a card. The widget has always rendered
   ebl-form--<fill> and the stylesheet never defined any of them, so every form
   on the site sat on whatever was behind it instead of on the white panel the
   design draws. The template validator could not catch it: the class is written
   by the widget at render time, never by the template. */
.ebl.ebl .ebl-form--white{background:var(--white)}
.ebl.ebl .ebl-form--sky{background:var(--ebl-blue-050)}
.ebl.ebl .ebl-form--mist{background:var(--ebl-blue-100)}
.ebl.ebl .ebl-form--deep{background:var(--ebl-blue-700);color:var(--white)}
.ebl.ebl .ebl-form--night{background:var(--ebl-blue-900);color:var(--white)}
.ebl.ebl .ebl-form--cedar{background:var(--cedar-100)}
.ebl.ebl .ebl-form--sage{background:var(--sage-100)}
.ebl.ebl .ebl-form--jam{background:var(--jam-100)}
.ebl.ebl .ebl-form--linen{background:var(--linen)}
.ebl.ebl .ebl-form--paper{background:var(--paper)}
.ebl.ebl .ebl-form__row{display:block;grid-column:1/-1}
.ebl.ebl .ebl-form__row--half{grid-column:auto}
.ebl.ebl .ebl-form .ebl-label{margin-bottom:8px}
.ebl.ebl .ebl-form textarea.ebl-field{resize:vertical}
.ebl.ebl .ebl-form select.ebl-field{appearance:none;background-image:none}
.ebl.ebl .ebl-form__group{border:0;padding:0;margin:0;grid-column:1/-1}
.ebl.ebl .ebl-form__legend{font-size:.78rem;font-weight:600;color:var(--ebl-blue-700);
  margin-bottom:12px;padding:0}
.ebl.ebl .ebl-form__chips{display:grid;gap:10px}
.ebl.ebl .ebl-form__chip{display:flex;gap:12px;align-items:center;background:var(--ebl-blue-050);
  border-radius:var(--r-md);padding:.8rem 1rem;font-size:.92rem;cursor:pointer}
.ebl.ebl .ebl-form__check{width:20px;height:20px;accent-color:var(--ebl-blue-700);flex:none}
/* The design's form button is a touch wider than the sign-up one, so it has its
   own class rather than bending .ebl-btn--form and moving the Home page. */
.ebl.ebl .ebl-form__submit{justify-self:start;grid-column:1/-1;background:var(--action-primary);
  color:var(--white);border:0;font-size:.95rem;font-weight:600;line-height:1;
  padding:1rem 1.7rem;border-radius:var(--r-md);cursor:pointer;min-height:44px;
  transition:background var(--dur-color) var(--ease)}
.ebl.ebl .ebl-form__submit:hover{background:var(--action-primary-hover)}
.ebl.ebl .ebl-form__wrap{display:block}
.ebl.ebl .ebl-form__wrap .ebl-sent{margin-top:16px}
/* ------------------------------------------- Elementor Pro's Form, dressed
   The three real forms on this site are Elementor Pro Form widgets, because
   Pro's form is the only one here that sends an email, carries a honeypot and
   keeps submissions. This block puts the design's own field system onto Pro's
   markup, so the pages look exactly as drawn while the working parts are
   Elementor's. Every class targeted below is Pro's own.

   Put ebl-formwrap plus a fill on the CONTAINER holding the Form widget. The
   selectors sit at (0,4,0) once scoped, which is what it takes to beat Pro's
   own form CSS without a single !important. */
.ebl.ebl .ebl-formwrap{border-radius:var(--r-lg);padding:var(--pad-card);scroll-margin-top:110px}
.ebl.ebl .ebl-formwrap--white{background:var(--white)}
.ebl.ebl .ebl-formwrap--sky{background:var(--ebl-blue-050)}
.ebl.ebl .ebl-formwrap--mist{background:var(--ebl-blue-100)}
.ebl.ebl .ebl-formwrap--cedar{background:var(--cedar-100)}
.ebl.ebl .ebl-formwrap--sage{background:var(--sage-100)}
.ebl.ebl .ebl-formwrap--linen{background:var(--linen)}
.ebl.ebl .ebl-formwrap--paper{background:var(--paper)}
.ebl.ebl .ebl-formwrap--none{background:none;padding:0;border-radius:0}
/* Pro lays its fields out as a flex row of percentage columns. The design draws
   a two-column grid in which every field happens to span both columns, so it
   reads as one column with a 24px gap. Declaring it that way rather than with
   auto-fit is the difference between a form that matches the design and one that
   silently splits into two columns as soon as the panel is wide enough, which is
   exactly what the first version of this did. A field set to 50% in the panel
   then takes one column, which is what the client would expect it to do. */
.ebl.ebl .ebl-formwrap .elementor-form, .ebl.ebl .ebl-formwrap .elementor-form-fields-wrapper{margin:0}
.ebl.ebl .ebl-formwrap .elementor-form-fields-wrapper{display:grid;gap:24px;align-items:start;
  grid-template-columns:repeat(2,minmax(0,1fr))}
.ebl.ebl .ebl-formwrap .elementor-field-group{display:block;grid-column:1/-1;
  padding:0;margin:0;width:auto;max-width:none;flex:none}
.ebl.ebl .ebl-formwrap .elementor-field-group.elementor-col-50{grid-column:span 1}
.ebl.ebl .ebl-formwrap .elementor-field-group.elementor-col-33{grid-column:span 1}
.ebl.ebl .ebl-formwrap .elementor-field-label{display:block;font-size:.78rem;font-weight:600;
  color:var(--ebl-blue-700);margin-bottom:8px;padding:0;line-height:1.65}
/* The design gives a tick-box group's label a little more air than a field's. */
.ebl.ebl .ebl-formwrap .elementor-field-type-checkbox>.elementor-field-label, .ebl.ebl .ebl-formwrap .elementor-field-type-radio>.elementor-field-label{margin-bottom:12px}
/* The design's field: white on a tinted panel, 3px slate underline, square-ish
   top corners. Same numbers as .ebl-field, so a change to the field system
   still has to be made in one place and copied here on purpose. */
.ebl.ebl .ebl-formwrap .elementor-field-textual{width:100%;box-sizing:border-box;
  background:var(--field-bg);border:0;border-bottom:3px solid var(--field-underline);
  border-radius:var(--r-sm) var(--r-sm) 0 0;padding:.85rem .9rem;font-size:.95rem;
  font-family:var(--font-body);color:var(--ink);
  /* line-height:normal, not a number. The design leaves it alone, so the field
     is as tall as the browser's own line box: 21px, not the 24px a 1.4 gives.
     Three pixels a field, eight a textarea, and a section 30px out. */
  line-height:normal;
  /* Elementor's own reset puts vertical-align:middle on form controls. On an
     input that changes nothing, but a textarea's baseline is its bottom edge,
     so middle removes the 8px of descender space the design's own textarea
     sits on and the note form came out 8px short of the design on the live
     page while the preview here, with no Elementor reset, looked right. */
  vertical-align:baseline;
  transition:border-color var(--dur-color) var(--ease),box-shadow var(--dur-color) var(--ease)}
.ebl.ebl .ebl-formwrap .elementor-field-textual::placeholder{color:var(--slate);opacity:1}
.ebl.ebl .ebl-formwrap .elementor-field-textual:focus{border-bottom-color:var(--field-underline-focus);
  box-shadow:0 3px 0 0 var(--field-ring);outline:none}
.ebl.ebl .ebl-formwrap .elementor-field-textual:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);
  outline-offset:var(--focus-ring-offset)}
/* No minimum height on a textarea. Its height is the rows count, which is how
   the design sets it: 3 rows on the volunteer form, 4 on the note form. A
   120px floor made both of them the same size and one section 26px too tall. */
.ebl.ebl .ebl-formwrap textarea.elementor-field-textual{resize:vertical;min-height:0}
/* Pro turns a select into a flex box and draws its own caret on the right: an
   eicon on the wrapper's ::before in some versions, and on this one a real
   element next to the select, a div.select-caret-down-wrapper holding an SVG.
   The design uses a plain select with the browser's own arrow, so both of Pro's
   are switched off and appearance is left alone. Missing the SVG one is what
   put two arrows, one under the other, on the live contact page. */
.ebl.ebl .ebl-formwrap .elementor-select-wrapper{display:block;position:static}
.ebl.ebl .ebl-formwrap .elementor-select-wrapper::before{content:none;display:none}
.ebl.ebl .ebl-formwrap .select-caret-down-wrapper{display:none}
.ebl.ebl .ebl-formwrap select.elementor-field-textual{appearance:auto;-webkit-appearance:auto;
  background-image:none;padding-right:.9rem}
/* Tick boxes, as the design's chips. Pro puts the input and its label inside a
   span, so the span is the chip and the label inside it carries no styling. */
.ebl.ebl .ebl-formwrap .elementor-field-subgroup{display:grid;gap:10px;margin:0}
.ebl.ebl .ebl-formwrap .elementor-field-option{display:flex;gap:12px;align-items:center;
  background:var(--ebl-blue-050);border-radius:var(--r-md);padding:.8rem 1rem;
  font-size:.92rem;cursor:pointer}
.ebl.ebl .ebl-formwrap .elementor-field-option input{width:20px;height:20px;
  accent-color:var(--ebl-blue-700);flex:none;margin:0}
.ebl.ebl .ebl-formwrap .elementor-field-option label{margin:0;cursor:pointer;font-weight:400;
  color:var(--ink);font-size:.92rem;line-height:1.65}
/* The submit row, and the design's own form button. */
.ebl.ebl .ebl-formwrap .elementor-field-type-submit{grid-column:1/-1;display:block}
.ebl.ebl .ebl-formwrap .elementor-field-type-submit .elementor-button{display:inline-flex;
  align-items:center;justify-content:center;background:var(--action-primary);
  color:var(--white);border:0;font-family:var(--font-body);font-size:.95rem;
  font-weight:600;line-height:1;padding:1rem 1.7rem;border-radius:var(--r-md);
  cursor:pointer;width:auto;
  transition:background var(--dur-color) var(--ease)}
.ebl.ebl .ebl-formwrap .elementor-field-type-submit .elementor-button:hover{background:var(--action-primary-hover)}
.ebl.ebl .ebl-formwrap .elementor-button-content-wrapper{display:flex;gap:0;align-items:center}
.ebl.ebl .ebl-formwrap .elementor-button-text{font-size:inherit;font-weight:inherit}
/* Pro puts an icon span in the button whether or not an icon was chosen, and its
   own content wrapper is a flex row with a 5px gap. Empty, it still costs 5px of
   width and shifts the label off centre, so it goes. */
.ebl.ebl .ebl-formwrap .elementor-button-icon{display:none}
/* The honeypot is a real field group with no label. It must never occupy a row. */
.ebl.ebl .ebl-formwrap .elementor-field-type-honeypot{display:none}
/* Pro's own success and error notices, in the design's voice. */
.ebl.ebl .ebl-formwrap .elementor-message{grid-column:1/-1;margin:0;font-size:.85rem;
  font-family:var(--font-body);font-weight:600}
.ebl.ebl .ebl-formwrap .elementor-message-success{color:var(--sage-700)}
.ebl.ebl .ebl-formwrap .elementor-message-danger{color:var(--error)}
/* ---- the inline variant, for the sign-up band
   The design's newsletter form is not a panel of stacked rows: it is a single
   line, the field growing to fill what is left and the button sitting on the
   same baseline, wrapping underneath only when there is no room for both. */
.ebl.ebl .ebl-formwrap--inline .elementor-form-fields-wrapper{display:flex;gap:12px;
  flex-wrap:wrap;align-items:flex-end}
.ebl.ebl .ebl-formwrap--inline .elementor-field-group{flex:1;min-width:220px;grid-column:auto}
.ebl.ebl .ebl-formwrap--inline .elementor-field-type-submit{flex:none;min-width:0}
.ebl.ebl .ebl-formwrap--inline .elementor-field-type-submit .elementor-button{padding:1rem 1.6rem}
.ebl.ebl .ebl-formwrap--inline .elementor-message{flex-basis:100%;margin-top:4px}
/* --------------------------------------------------- donate amount panel
   Design chrome in front of the real platform. The shadow is deliberate and is
   the one place in the system that carries one: the panel has to read as the
   payment surface floating above the page. */
.ebl.ebl .ebl-donate{border-radius:var(--r-lg);padding:var(--pad-card);
  box-shadow:0 4px 8px rgba(8,39,51,.08),0 22px 48px rgba(8,39,51,.15)}
/* The panel takes the same fills as a card, and the widget has always rendered
   ebl-donate--<fill>. With no rule behind it the panel was transparent and the
   gingham showed through where the design draws a solid white card. */
.ebl.ebl .ebl-donate--white{background:var(--white)}
.ebl.ebl .ebl-donate--sky{background:var(--ebl-blue-050)}
.ebl.ebl .ebl-donate--mist{background:var(--ebl-blue-100)}
.ebl.ebl .ebl-donate--deep{background:var(--ebl-blue-700);color:var(--white)}
.ebl.ebl .ebl-donate--night{background:var(--ebl-blue-900);color:var(--white)}
.ebl.ebl .ebl-donate--cedar{background:var(--cedar-100)}
.ebl.ebl .ebl-donate--sage{background:var(--sage-100)}
.ebl.ebl .ebl-donate--jam{background:var(--jam-100)}
.ebl.ebl .ebl-donate--linen{background:var(--linen)}
.ebl.ebl .ebl-donate--paper{background:var(--paper)}
.ebl.ebl .ebl-donate__heading{font-family:var(--font-display);font-size:1.6rem;
  line-height:1.15;color:var(--ebl-blue-700);margin:10px 0 0}
.ebl.ebl .ebl-donate__period{display:flex;gap:4px;background:var(--ebl-blue-050);
  border-radius:var(--r-md);padding:4px;margin-top:20px}
.ebl.ebl .ebl-donate__period .ebl-toggle{flex:1;border:0;border-radius:4px;
  padding:.7rem;font-size:.88rem;cursor:pointer;min-height:44px}
.ebl.ebl .ebl-donate__amounts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;margin-top:14px}
.ebl.ebl .ebl-donate__amounts .ebl-amt{border:0;border-radius:var(--r-md);padding:1rem .5rem;
  font-size:1.05rem;font-weight:600;cursor:pointer;min-height:44px;
  transition:background var(--dur-color) var(--ease)}
.ebl.ebl .ebl-donate > .ebl-form__row{margin-top:14px}
.ebl.ebl .ebl-donate .ebl-label{font-size:.75rem;margin-bottom:6px}
.ebl.ebl .ebl-donate .ebl-field{padding:.8rem .9rem;font-size:.92rem}
.ebl.ebl .ebl-donate__rule{height:5px;margin:22px 0 20px}
.ebl.ebl .ebl-donate__rule svg{display:block;width:100%;height:5px}
.ebl.ebl .ebl-donate__card{display:grid;gap:16px}
.ebl.ebl .ebl-donate__card .ebl-form__row{margin-top:0}
.ebl.ebl .ebl-donate__split{display:grid;grid-template-columns:1fr 1fr;gap:12px}
/* A row inside the split is half width. Without this the shared .ebl-form__row
   rule spans the whole grid and the two fields stack. */
.ebl.ebl .ebl-donate__split .ebl-form__row{grid-column:auto}
.ebl.ebl .ebl-donate__fee{font-size:.85rem;margin-top:16px}
.ebl.ebl .ebl-donate__cta{width:100%;background:var(--action-donate);color:var(--ink);border:0;
  font-size:1.05rem;font-weight:600;line-height:1;padding:1.1rem 2rem;
  border-radius:var(--r-md);cursor:pointer;margin-top:20px;min-height:44px;
  transition:background var(--dur-color) var(--ease)}
.ebl.ebl .ebl-donate__cta:hover{background:var(--action-donate-hover)}
.ebl.ebl .ebl-donate__alt{display:flex;gap:10px;margin-top:12px}
.ebl.ebl .ebl-donate__altlink{flex:1;display:inline-flex;align-items:center;
  justify-content:center;background:var(--ebl-blue-100);color:var(--ebl-blue-700);
  font-size:.9rem;font-weight:600;line-height:1;padding:.95rem 1rem;
  border-radius:var(--r-md);text-decoration:none;min-height:44px;
  transition:background var(--dur-color) var(--ease)}
.ebl.ebl .ebl-donate__altlink:hover{background:var(--action-secondary-hover)}
.ebl.ebl .ebl-donate__fine{font-size:.78rem;color:var(--text-muted);margin:14px 0 0}
/* Form success state. */
.ebl.ebl .ebl-sent{background:var(--sage-100);color:var(--sage-700);border-radius:var(--r-lg);
  padding:var(--pad-card);font-size:.95rem}
.ebl.ebl .ebl-sent[hidden]{display:none!important}
/* Large Items form link - placeholder until EBL supplies the real URL. */
.ebl.ebl .ebl-largeitems{color:var(--ebl-blue-600);font-weight:600;text-decoration:underline;
  text-decoration-style:dashed;text-underline-offset:3px}
.ebl.ebl .ebl-largeitems:hover{color:var(--cedar-700)}
/* ============================================================ 9. widgets
   The component layer the Elementor widgets render into. Every value here comes
   from the approved design. Widgets output these classes and nothing else, so
   there is no hand-written HTML in any page and the design cannot drift by
   somebody editing markup in a code box.
   ========================================================================== */
/* ---- heading ---------------------------------------------------------- */
.ebl.ebl .ebl-heading{font-family:var(--font-display);font-weight:600;margin:0;
  color:var(--text-heading);letter-spacing:-.01em;line-height:1.12}
.ebl.ebl .ebl-heading em{font-style:italic;font-weight:400}
.ebl.ebl .ebl-heading--display{font-size:clamp(2rem,1.1rem + 2.5vw,3.15rem);line-height:1.06;
  letter-spacing:-.018em;font-variation-settings:var(--wonk)}
/* The four inner pages open a shade smaller than the Home page: the design
   caps their opener at 3.1rem against Home's 3.15rem. It is a difference of
   one pixel at 1280 and nine at 1600, so it only shows on a real desktop. */
.ebl.ebl .ebl-heading--display-in{font-size:clamp(2rem,1.1rem + 2.5vw,3.1rem);line-height:1.06;
  letter-spacing:-.018em;font-variation-settings:var(--wonk)}
.ebl.ebl .ebl-heading--section-lg{font-size:clamp(1.8rem,1.3rem + 1.6vw,2.6rem);
  font-variation-settings:var(--wonk)}
.ebl.ebl .ebl-heading--section{font-size:clamp(1.7rem,1.3rem + 1.4vw,2.4rem);
  font-variation-settings:var(--wonk)}
.ebl.ebl .ebl-heading--section-sm{font-size:clamp(1.7rem,1.3rem + 1.4vw,2.3rem);
  font-variation-settings:var(--wonk)}
/* The section heading the four inner pages use: the same clamp as section-lg
   with a 2.5rem ceiling instead of 2.6rem, which is what the client drew. */
.ebl.ebl .ebl-heading--section-md{font-size:clamp(1.8rem,1.3rem + 1.6vw,2.5rem);
  font-variation-settings:var(--wonk)}
/* The closing line on a call-to-action band: smaller than a section heading and
   set a little looser, because it sits beside a button rather than over copy.
   The design sets this line as a paragraph, so it never picks up the heading
   tracking. Leaving the tracking on pulled every line about 12px short. */
.ebl.ebl .ebl-heading--closing{font-size:clamp(1.3rem,1rem + 1.4vw,2rem);line-height:1.25;
  letter-spacing:normal;text-wrap:pretty;font-variation-settings:var(--wonk)}
.ebl.ebl .ebl-heading--tile{font-size:1.25rem}
.ebl.ebl .ebl-heading--tile-lg{font-size:1.3rem}
.ebl.ebl .ebl-heading--panel{font-size:1.6rem}
.ebl.ebl .ebl-heading--medium{font-size:1.7rem;line-height:1.12}
.ebl.ebl .ebl-heading--medium-sm{font-size:1.4rem;line-height:1.12}
.ebl.ebl .ebl-heading--card{font-size:1.35rem}
.ebl.ebl .ebl-heading--small{font-size:1.1rem}
.ebl.ebl .ebl-heading.ebl-tone--on-dark{color:var(--white)}
/* ---- overline --------------------------------------------------------- */
.ebl.ebl .ebl-overline{display:block;font-family:var(--font-body);font-size:.7rem;
  text-transform:uppercase;letter-spacing:.12em;font-weight:700;color:var(--cedar-700)}
/* ---- paragraph -------------------------------------------------------- */
.ebl.ebl .ebl-text{font-family:var(--font-body);color:var(--text-body)}
.ebl.ebl .ebl-text p{margin:0 0 .9em}
.ebl.ebl .ebl-text p:last-child{margin-bottom:0}
/* The design emphasises a phrase by lifting it to the heading blue at 600,
   not by bolding it in the body colour. */
.ebl.ebl .ebl-text strong, .ebl.ebl .ebl-text b{color:var(--ebl-blue-700);font-weight:600}
.ebl.ebl .ebl-text.ebl-tone--on-dark strong, .ebl.ebl .ebl-text.ebl-tone--on-dark b{color:var(--white)}
.ebl.ebl .ebl-text a{color:var(--text-link);font-weight:600;text-decoration:none}
.ebl.ebl .ebl-text a:hover{color:var(--text-link-hover)}
.ebl.ebl .ebl-text--lead{font-size:1.05rem;line-height:1.5}
/* The same lead, set a touch looser. The Home page uses 1.5 and the four inner
   pages 1.55, and the difference is visible over four lines. */
.ebl.ebl .ebl-text--lead-open{font-size:1.05rem;line-height:1.55}
.ebl.ebl .ebl-text--body{font-size:1rem;line-height:1.65}
.ebl.ebl .ebl-text--panel{font-size:.95rem;line-height:1.65}
.ebl.ebl .ebl-text--small{font-size:.9rem;line-height:1.65}
.ebl.ebl .ebl-text--note{font-size:.85rem;line-height:1.65}
/* The outcomes page sets its panel and card prose at .88rem, between small
   and note. Four places on that page use it. */
.ebl.ebl .ebl-text--brief{font-size:.88rem;line-height:1.65}
.ebl.ebl .ebl-text--fine{font-size:.8rem;line-height:1.65}
.ebl.ebl .ebl-text--micro{font-size:.78rem;line-height:1.65}
/* The smallest note the design sets, used for the placeholder caption under
   the donate panel. Rounding it up to micro left that note a shade large. */
.ebl.ebl .ebl-text--tiny{font-size:.75rem;line-height:1.65}
/* ---- tone -------------------------------------------------------------
   Shared across every widget, in its own namespace so a tone can never
   collide with a size modifier of the same name. */
.ebl.ebl .ebl-tone--muted{color:var(--slate)}
.ebl.ebl .ebl-tone--on-dark{color:var(--white)}
.ebl.ebl .ebl-tone--muted-dark{color:#C2DAE5}
.ebl.ebl .ebl-tone--pale-dark{color:var(--ebl-blue-200)}
/* The faintest text on a dark block: the registration lines and the small print
   under a claim band. */
.ebl.ebl .ebl-tone--faint-dark{color:var(--text-muted-on-dark)}
.ebl.ebl .ebl-tone--accent-dark{color:var(--cedar-300)}
/* The overline is already this colour, but the tone the panel offers has to
   mean something on its own, or picking it in the panel does nothing. */
.ebl.ebl .ebl-tone--cedar{color:var(--cedar-700)}
.ebl.ebl .ebl-tone--on-dark a{color:var(--cedar-300)}
.ebl.ebl .ebl-tone--muted-dark a{color:var(--cedar-300)}
/* ---- button ----------------------------------------------------------- */
/* Sizes are the design's own, not a scale invented here. */
.ebl.ebl .ebl-btn--lg{font-size:1.05rem;padding:1.1rem 2.2rem}
/* The inner pages draw three more sizes. Kept as named steps rather than free
   numbers so a button cannot end up between two of the design's sizes. */
.ebl.ebl .ebl-btn--page{font-size:1.05rem;padding:1.1rem 2rem}
.ebl.ebl .ebl-btn--hero{font-size:1rem;padding:1.05rem 1.8rem}
.ebl.ebl .ebl-btn--tall{font-size:.95rem;padding:1.1rem 1.6rem}
.ebl.ebl .ebl-btn--md{font-size:.98rem;padding:.9rem 1.6rem}
.ebl.ebl .ebl-btn--reg{font-size:.95rem;padding:.9rem 1.5rem}
.ebl.ebl .ebl-btn--form{font-size:.95rem;padding:1rem 1.6rem}
.ebl.ebl .ebl-btn--wallet{font-size:.9rem;padding:1.1rem 1.35rem}
.ebl.ebl .ebl-btn--sm{font-size:.9rem;padding:.85rem 1.4rem}
.ebl.ebl .ebl-btn--xs{font-size:.8rem;padding:.7rem 1.1rem}
/* ---- arrow link ------------------------------------------------------- */
/* A standalone call to action, so it carries the 44px minimum hit target the
   accessibility floor asks for. Inline links inside a sentence are exempt and
   are not padded, because padding them would break the line. */
.ebl.ebl .ebl-arrowlink{display:inline-flex;align-items:center;gap:.5rem;
  font-family:var(--font-body);font-size:.98rem;font-weight:600;
  color:var(--text-link);text-decoration:none;
  transition:color var(--dur-color) var(--ease)}
.ebl.ebl .ebl-arrowlink--lg{font-size:.98rem}
.ebl.ebl .ebl-arrowlink--lg .ebl-arrowlink__arrow{width:28px;height:11px}
.ebl.ebl .ebl-arrowlink--reg{font-size:.95rem}
.ebl.ebl .ebl-arrowlink--sm{font-size:.9rem}
/* The outcomes panels and cards set their arrow links at .88rem. */
.ebl.ebl .ebl-arrowlink--brief{font-size:.88rem}
/* The same link without its arrow: the design uses it for the email address and
   the telephone number, where an arrow would suggest a page rather than an
   action the phone takes over. */
.ebl.ebl .ebl-arrowlink--plain{font-size:1rem;line-height:1.65;padding:.25rem 0;min-height:0}
.ebl.ebl .ebl-arrowlink--plain .ebl-arrowlink__arrow{display:none}
.ebl.ebl .ebl-arrowlink:hover{color:var(--text-link-hover)}
.ebl.ebl .ebl-text.ebl-tone--sage{color:var(--sage-700)}
.ebl.ebl .ebl-arrowlink.ebl-tone--sage{color:var(--sage-700)}
.ebl.ebl .ebl-arrowlink.ebl-tone--sage:hover{color:var(--sage-500)}
.ebl.ebl .ebl-arrowlink__arrow{display:block;width:26px;height:10px;flex:none;color:currentColor;overflow:visible}
.ebl.ebl .ebl-arrowlink__arrow .ebl-stitch{stroke:currentColor;stroke-width:2}
.ebl.ebl .ebl-arrowlink.ebl-tone--on-dark{color:var(--cedar-300)}
.ebl.ebl .ebl-arrowlink.ebl-tone--on-dark:hover{color:var(--cedar-100)}
/* ---- photo frame ------------------------------------------------------ */
/* The figure stacks: frame, then caption. Aligning it sideways is align-items,
   not justify-content, because the axis is vertical. */
.ebl.ebl .ebl-photo{margin:0;display:flex;flex-direction:column;width:100%}
.ebl.ebl .ebl-photo--start{align-items:flex-start}
.ebl.ebl .ebl-photo--center{align-items:center}
.ebl.ebl .ebl-photo--end{align-items:flex-end}
.ebl.ebl .ebl-photo__inner{position:relative;width:100%}
.ebl.ebl .ebl-photo__frame{position:relative;width:100%;border-radius:var(--r-md);
  overflow:hidden;background:var(--white);
  box-shadow:0 3px 6px rgba(8,39,51,.07),0 14px 30px rgba(8,39,51,.11)}
/* .ebl-photo__frame comes after .ebl-arch and matches at the same weight, so
   the arch has to restate its own radius or the square one wins. */
.ebl.ebl .ebl-photo__frame.ebl-arch{box-shadow:none;
  border-radius:var(--r-arch) var(--r-arch) var(--r-md) var(--r-md)}
.ebl.ebl .ebl-photo__frame--4x5{aspect-ratio:4/5}
.ebl.ebl .ebl-photo__frame--3x4{aspect-ratio:3/4}
.ebl.ebl .ebl-photo__frame--1x1{aspect-ratio:1/1}
.ebl.ebl .ebl-photo__frame--5x4{aspect-ratio:5/4}
.ebl.ebl .ebl-photo__frame--4x3{aspect-ratio:4/3}
.ebl.ebl .ebl-photo__frame.ebl-arch{aspect-ratio:3/4}
/* An explicit crop beats the arch's own 3:4 default. Declared AFTER the arch
   rule on purpose: the two match at the same weight, so the later one wins and
   an arched 4:5 photograph keeps its 4:5. */
.ebl.ebl .ebl-photo__frame--4x5.ebl-arch{aspect-ratio:4/5}
.ebl.ebl .ebl-photo__frame--1x1.ebl-arch{aspect-ratio:1/1}
.ebl.ebl .ebl-photo__frame--5x4.ebl-arch{aspect-ratio:5/4}
.ebl.ebl .ebl-photo__frame--4x3.ebl-arch{aspect-ratio:4/3}
.ebl.ebl .ebl-photo__frame--shadow-soft{box-shadow:0 3px 6px rgba(8,39,51,.07),0 14px 30px rgba(8,39,51,.11)}
.ebl.ebl .ebl-photo__frame--shadow-deep{box-shadow:0 4px 8px rgba(8,39,51,.08),0 22px 48px rgba(8,39,51,.15)}
.ebl.ebl .ebl-photo__img{width:100%;height:100%;object-fit:cover;display:block}
.ebl.ebl .ebl-photo__caption{margin-top:12px;font-family:var(--font-body);font-size:.78rem;
  color:var(--slate);text-align:center}
/* A centred photograph centres its caption, which is what the design does under
   the founders' portrait. */
.ebl.ebl .ebl-photo--center .ebl-photo__caption{text-align:center;margin-top:16px}
/* The design hangs the chip off the bottom-left corner, outside the frame. */
.ebl.ebl .ebl-photo__chip{position:absolute;left:-24px;bottom:-22px;max-width:15rem;
  background:var(--white);border-radius:var(--r-md);padding:14px 18px;
  font-family:var(--font-body);font-size:.78rem;line-height:1.35;color:var(--ink);z-index:3;
  box-shadow:0 3px 6px rgba(8,39,51,.07),0 14px 30px rgba(8,39,51,.11)}
.ebl.ebl .ebl-photo__chip b, .ebl.ebl .ebl-photo__chip strong{color:var(--cedar-700);font-weight:600}
/* The est-2026 stamps, the one place a soft lift is allowed, because they
   float over a photograph. */
.ebl.ebl .ebl-stamp{position:absolute;display:flex;flex-direction:column;align-items:center;
  justify-content:center;z-index:3;text-align:center;font-family:var(--font-display)}
.ebl.ebl .ebl-stamp__est{display:block;font-size:.85rem;font-weight:600;line-height:1}
.ebl.ebl .ebl-stamp__year{display:block;font-weight:700;line-height:1;letter-spacing:-.03em;
  font-variation-settings:var(--wonk)}
.ebl.ebl .ebl-stamp--navy{right:-5%;top:7%;width:27%;max-width:120px;aspect-ratio:1/1;
  border-radius:var(--r-lg);background:var(--ebl-blue-700);color:var(--white);padding:10px;
  box-shadow:0 3px 6px rgba(8,39,51,.07),0 14px 30px rgba(8,39,51,.11)}
.ebl.ebl .ebl-stamp--navy .ebl-stamp__year{font-size:clamp(1.35rem,.5rem + 1.9vw,2.2rem)}
.ebl.ebl .ebl-stamp--disc{right:-6%;top:-5%;width:30%;max-width:118px;aspect-ratio:1/1;
  border-radius:50%;background:var(--white);color:var(--ebl-blue-700);padding:12px;
  box-shadow:0 3px 6px rgba(8,39,51,.07),0 14px 30px rgba(8,39,51,.11)}
.ebl.ebl .ebl-stamp--disc::before{content:"";position:absolute;inset:7px;border-radius:50%;
  border:2px dashed var(--ebl-blue-300)}
.ebl.ebl .ebl-stamp--disc .ebl-stamp__est{font-size:.8rem}
.ebl.ebl .ebl-stamp--disc .ebl-stamp__year{font-size:1.35rem}
/* ---- stitched disc ---------------------------------------------------- */
.ebl.ebl .ebl-disc{display:flex;flex-direction:column;align-items:center;justify-content:center;
  width:104px;height:104px;border-radius:50%;background:var(--white);
  color:var(--ebl-blue-700);font-family:var(--font-display);font-weight:700;
  font-size:.82rem;line-height:1.2;text-align:center;position:relative;
  box-shadow:0 3px 6px rgba(8,39,51,.07),0 14px 30px rgba(8,39,51,.11)}
.ebl.ebl .ebl-disc::before{content:"";position:absolute;inset:6px;border-radius:50%;
  border:2px dashed var(--ebl-blue-300)}
.ebl.ebl .ebl-disc__l1, .ebl.ebl .ebl-disc__l2{position:relative;display:block}
.ebl.ebl .ebl-disc--left{position:absolute;left:-26px;top:24px;z-index:4}
.ebl.ebl .ebl-disc--right{position:absolute;right:-26px;top:24px;z-index:4}
/* ---- stitch rules ----------------------------------------------------- */
.ebl.ebl .ebl-stitchwrap{width:100%}
/* Pinking shears leave a 22x12 tooth, tiled across. The tooth keeps its size at
   every width, which is the whole point: stretching one shape turns the hem into
   wide scallops on a desktop and tiny ripples on a phone. */
.ebl.ebl .ebl-hemwrap{width:100%;height:12px;line-height:0;
  background-repeat:repeat-x;background-size:22px 12px;background-position:left top}
.ebl.ebl .ebl-hemwrap--deep{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='12'%3E%3Cpath d='M0 0h22L11 12z' fill='%23104C65'/%3E%3C/svg%3E")}
.ebl.ebl .ebl-hemwrap--night{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='12'%3E%3Cpath d='M0 0h22L11 12z' fill='%23082733'/%3E%3C/svg%3E")}
.ebl.ebl .ebl-hemwrap--sky{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='12'%3E%3Cpath d='M0 0h22L11 12z' fill='%23F1F8FB'/%3E%3C/svg%3E")}
.ebl.ebl .ebl-hemwrap--mist{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='12'%3E%3Cpath d='M0 0h22L11 12z' fill='%23D8ECF6'/%3E%3C/svg%3E")}
.ebl.ebl .ebl-hemwrap--cedar{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='12'%3E%3Cpath d='M0 0h22L11 12z' fill='%23F7EBD9'/%3E%3C/svg%3E")}
.ebl.ebl .ebl-hemwrap--sage{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='12'%3E%3Cpath d='M0 0h22L11 12z' fill='%23E8EEE1'/%3E%3C/svg%3E")}
.ebl.ebl .ebl-hemwrap--jam{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='12'%3E%3Cpath d='M0 0h22L11 12z' fill='%23F6E5E0'/%3E%3C/svg%3E")}
.ebl.ebl .ebl-hemwrap--linen{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='12'%3E%3Cpath d='M0 0h22L11 12z' fill='%23F3E9D8'/%3E%3C/svg%3E")}
.ebl.ebl .ebl-hemwrap--white{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='12'%3E%3Cpath d='M0 0h22L11 12z' fill='%23FFFFFF'/%3E%3C/svg%3E")}
.ebl.ebl .ebl-hemwrap--paper{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='12'%3E%3Cpath d='M0 0h22L11 12z' fill='%23FBF9F6'/%3E%3C/svg%3E")}
/* ---- card ------------------------------------------------------------- */
.ebl.ebl .ebl-card{border-radius:var(--r-lg);padding:var(--pad-card);height:100%;
  display:flex;flex-direction:column;align-items:flex-start;font-family:var(--font-body)}
.ebl.ebl .ebl-card--white{background:var(--white)}
.ebl.ebl .ebl-card--sky{background:var(--ebl-blue-050)}
.ebl.ebl .ebl-card--mist{background:var(--ebl-blue-100)}
.ebl.ebl .ebl-card--deep{background:var(--ebl-blue-700);color:var(--white)}
.ebl.ebl .ebl-card--night{background:var(--ebl-blue-900);color:var(--white)}
.ebl.ebl .ebl-card--cedar{background:var(--cedar-100)}
.ebl.ebl .ebl-card--sage{background:var(--sage-100)}
.ebl.ebl .ebl-card--jam{background:var(--jam-100)}
.ebl.ebl .ebl-card--linen{background:var(--linen)}
.ebl.ebl .ebl-card--paper{background:var(--paper)}
/* Translucent white, for a card sitting on one of the deep sections. */
.ebl.ebl .ebl-card--glass{background:rgba(255,255,255,.08);color:var(--white)}
/* The design draws three inner spacings. These have to be declared HERE rather
   than beside the first .ebl-card rule further up: that earlier block is
   overridden by this one, and a padding modifier declared there silently lost. */
.ebl.ebl .ebl-card--pad-snug{padding:28px}
.ebl.ebl .ebl-card--pad-roomy{padding:40px}
.ebl.ebl .ebl-card--lift{transition:transform var(--dur-lift) var(--ease)}
.ebl.ebl .ebl-card--lift:hover{transform:translateY(-4px)}
/* The outcomes cards open with an overline, and the count cards carry a big
   Fraunces figure between the drawing and the title. Both are card parts
   rather than separate widgets, because the archive cards are whole-card
   links and nothing can be nested inside a link. */
.ebl.ebl .ebl-card__overline{display:block;font-family:var(--font-body);font-size:.7rem;
  text-transform:uppercase;letter-spacing:.12em;font-weight:700;color:var(--cedar-700)}
.ebl.ebl .ebl-card__overline + .ebl-card__heading{margin-top:12px}
.ebl.ebl .ebl-card__overline + .ebl-card__illo{margin-top:18px}
.ebl.ebl .ebl-card__figure{display:block;font-family:var(--font-display);font-size:2.1rem;
  line-height:1;font-weight:600;color:var(--ebl-blue-700);
  font-variation-settings:var(--wonk);margin-top:22px}
.ebl.ebl .ebl-card__figure + .ebl-card__heading{margin-top:20px}
.ebl.ebl .ebl-card--linen .ebl-card__figure{color:var(--cedar-700)}
.ebl.ebl .ebl-card--sage .ebl-card__figure{color:var(--sage-700)}
.ebl.ebl .ebl-card--deep .ebl-card__overline, .ebl.ebl .ebl-card--night .ebl-card__overline{color:var(--cedar-300)}
.ebl.ebl .ebl-card--deep .ebl-card__figure, .ebl.ebl .ebl-card--night .ebl-card__figure{color:var(--white)}
.ebl.ebl .ebl-card__illo{line-height:0}
.ebl.ebl .ebl-card__heading{font-family:var(--font-display);font-weight:600;font-size:1.35rem;
  line-height:1.12;letter-spacing:-.01em;color:var(--text-heading);margin:0}
.ebl.ebl .ebl-card__illo + .ebl-card__heading{margin-top:20px}
.ebl.ebl .ebl-card > .ebl-card__heading:first-child{margin-top:0}
.ebl.ebl .ebl-card__heading--tile-lg{font-size:1.3rem}
.ebl.ebl .ebl-card__heading--tile{font-size:1.25rem}
.ebl.ebl .ebl-card__heading--tile-sm{font-size:1.2rem}
.ebl.ebl .ebl-card__body{font-size:.9rem;line-height:1.65;color:var(--slate);margin-top:12px}
.ebl.ebl .ebl-card__body--panel{font-size:.92rem}
.ebl.ebl .ebl-card__body--brief{font-size:.88rem}
.ebl.ebl .ebl-card__heading--tile-sm + .ebl-card__body{margin-top:10px}
/* The second, quieter paragraph inside a card: the drive times on the contact
   page sit under the directions rather than beside them. */
.ebl.ebl .ebl-card__body .ebl-card__aside{font-size:.92rem;margin:14px 0 0}
.ebl.ebl .ebl-card__body p{margin:0 0 .8em}
.ebl.ebl .ebl-card__body p:last-child{margin-bottom:0}
.ebl.ebl .ebl-card--stretch .ebl-card__body{flex:1}
.ebl.ebl .ebl-card__meta{font-size:.8rem;font-weight:600;color:var(--cedar-700);margin-top:16px}
.ebl.ebl .ebl-card__meta--blue{color:var(--ebl-blue-700)}
.ebl.ebl .ebl-card__meta--sage{color:var(--sage-700)}
.ebl.ebl .ebl-card__action{margin-top:20px}
/* An arrow inside a card is set a size smaller than a standalone one. */
.ebl.ebl .ebl-card__action .ebl-arrowlink{font-size:.9rem}
.ebl.ebl .ebl-card--deep .ebl-card__heading, .ebl.ebl .ebl-card--night .ebl-card__heading, .ebl.ebl .ebl-card--glass .ebl-card__heading{color:var(--white)}
.ebl.ebl .ebl-card--deep .ebl-card__body, .ebl.ebl .ebl-card--night .ebl-card__body, .ebl.ebl .ebl-card--glass .ebl-card__body{color:#C2DAE5}
/* ---- whole-card link --------------------------------------------------- */
.ebl.ebl .ebl-card--link{text-decoration:none;transition:background var(--dur-color) var(--ease)}
.ebl.ebl .ebl-card--link.ebl-card--glass:hover{background:rgba(255,255,255,.14)}
.ebl.ebl .ebl-card__cue{display:inline-flex;align-items:center;gap:.5rem;
  color:var(--cedar-300);font-weight:600;font-size:.88rem;margin-top:18px}
.ebl.ebl .ebl-card__arrow{width:26px;height:10px;overflow:visible;flex:none}
.ebl.ebl .ebl-card--stretch .ebl-card__cue{margin-top:auto;padding-top:18px}
/* Cards and statistics must reach the full height of their grid row, so the
   buttons on a row of cards line up. Elementor puts two wrappers between the
   grid item and the card, and height:100% cannot see through an auto-height
   wrapper, so the wrappers are made to pass the height down. */
.ebl.ebl .elementor-widget-ebl-card, .ebl.ebl .elementor-widget-ebl-stat{display:flex}
.ebl.ebl .elementor-widget-ebl-card > .elementor-widget-container, .ebl.ebl .elementor-widget-ebl-stat > .elementor-widget-container{display:flex;flex-direction:column;width:100%;flex:1}
.ebl.ebl .elementor-widget-ebl-card > .elementor-widget-container > .ebl-card, .ebl.ebl .elementor-widget-ebl-stat > .elementor-widget-container > .ebl-stat{flex:1}
/* ---- statistic -------------------------------------------------------- */
.ebl.ebl .ebl-stat{border-radius:var(--r-lg);padding:var(--pad-card);height:100%;
  font-family:var(--font-body)}
.ebl.ebl .ebl-stat--deep{background:var(--ebl-blue-700);color:var(--white)}
.ebl.ebl .ebl-stat--night{background:var(--ebl-blue-900);color:var(--white)}
.ebl.ebl .ebl-stat--white{background:var(--white)}
.ebl.ebl .ebl-stat--sky{background:var(--ebl-blue-050)}
.ebl.ebl .ebl-stat--mist{background:var(--ebl-blue-100)}
.ebl.ebl .ebl-stat--cedar{background:var(--cedar-100)}
.ebl.ebl .ebl-stat--sage{background:var(--sage-100)}
.ebl.ebl .ebl-stat--jam{background:var(--jam-100)}
.ebl.ebl .ebl-stat--linen{background:var(--linen)}
.ebl.ebl .ebl-stat--paper{background:var(--paper)}
.ebl.ebl .ebl-stat__value{display:block;font-family:var(--font-display);font-size:2.1rem;
  line-height:1;font-weight:700;color:var(--ebl-blue-700);
  font-variation-settings:var(--wonk)}
.ebl.ebl .ebl-stat__label{display:block;font-size:.85rem;line-height:1.65;color:var(--slate);margin-top:10px}
/* The gift amounts on the donate page: a shade smaller than the money row's
   figures, with a slightly larger caption under them. */
.ebl.ebl .ebl-stat--amount .ebl-stat__value{font-size:2rem}
/* The design writes the caption under a money figure as a plain span and the
   one under a dated label or a gift amount as a paragraph, which picks up
   p{text-wrap:pretty} and breaks its lines differently. */
.ebl.ebl .ebl-stat--amount .ebl-stat__label{font-size:.92rem;margin-top:14px;text-wrap:pretty}
.ebl.ebl .ebl-stat--label .ebl-stat__value{font-size:1.35rem;line-height:1.15}
.ebl.ebl .ebl-stat--label .ebl-stat__label{font-size:.9rem;margin-top:12px;text-wrap:pretty}
.ebl.ebl .ebl-stat--linen .ebl-stat__value{color:var(--cedar-700)}
.ebl.ebl .ebl-stat--deep .ebl-stat__value, .ebl.ebl .ebl-stat--night .ebl-stat__value{color:var(--white)}
.ebl.ebl .ebl-stat--deep .ebl-stat__label, .ebl.ebl .ebl-stat--night .ebl-stat__label{color:#C2DAE5}
.ebl.ebl .ebl-stat--cedar .ebl-stat__value{color:var(--cedar-700)}
.ebl.ebl .ebl-stat--sage .ebl-stat__value{color:var(--sage-700)}
.ebl.ebl .ebl-stat--jam .ebl-stat__value{color:var(--jam-700)}
/* ---- monthly bar chart ------------------------------------------------- */
/* The outcomes page plots boxes delivered per month. Only the bar HEIGHT is
   written per bar, as a custom property, because a height is data and comes
   from the panel. Every colour is a token: the design climbs the blue ramp
   from 200 to 700 across the months, so the widget picks a tone per bar and
   the tone classes below carry the colour. */
.ebl.ebl .ebl-chart{display:grid;grid-template-columns:repeat(var(--ebl-chart-cols,6),1fr);
  gap:14px;align-items:end;flex:1;min-height:260px;margin-top:18px}
.ebl.ebl .ebl-chart__col{display:flex;flex-direction:column;justify-content:flex-end;
  height:100%;gap:8px}
.ebl.ebl .ebl-chart__value{font-size:.8rem;font-weight:600;color:var(--ebl-blue-700);
  text-align:center}
.ebl.ebl .ebl-chart__bar{height:var(--ebl-bar-h,50%);border-radius:var(--r-md) var(--r-md) 0 0}
.ebl.ebl .ebl-chart__bar--200{background:var(--ebl-blue-200)}
.ebl.ebl .ebl-chart__bar--300{background:var(--ebl-blue-300)}
.ebl.ebl .ebl-chart__bar--400{background:var(--ebl-blue-400)}
.ebl.ebl .ebl-chart__bar--500{background:var(--ebl-blue-500)}
.ebl.ebl .ebl-chart__bar--600{background:var(--ebl-blue-600)}
.ebl.ebl .ebl-chart__bar--700{background:var(--ebl-blue-700)}
.ebl.ebl .ebl-chart__bar--cedar{background:var(--cedar-500)}
.ebl.ebl .ebl-chart__bar--sage{background:var(--sage-300)}
.ebl.ebl .ebl-chart__axis{display:grid;grid-template-columns:repeat(var(--ebl-chart-cols,6),1fr);
  gap:14px;margin-top:10px}
.ebl.ebl .ebl-chart__label{font-size:.72rem;color:var(--slate);text-align:center}
.ebl.ebl .ebl-chart__caption{font-size:.9rem;font-weight:600;color:var(--ebl-blue-700);margin:20px 0 0}
/* ---- proportion split -------------------------------------------------- */
/* One stacked bar and a legend under it. The bar segments are flex-grown by
   their own percentage, so the bar always fills its panel and the numbers in
   the legend are the same numbers that sized it. */
.ebl.ebl .ebl-split__bar{display:flex;gap:4px;margin-top:26px;height:34px;
  border-radius:var(--r-md);overflow:hidden}
.ebl.ebl .ebl-split__seg{flex:var(--ebl-seg,1)}
.ebl.ebl .ebl-split__seg--cedar{background:var(--cedar-500)}
.ebl.ebl .ebl-split__seg--blue{background:var(--ebl-blue-600)}
.ebl.ebl .ebl-split__seg--sage{background:var(--sage-300)}
.ebl.ebl .ebl-split__seg--jam{background:var(--jam-300)}
.ebl.ebl .ebl-split__seg--deep{background:var(--ebl-blue-700)}
.ebl.ebl .ebl-split__list{display:grid;gap:24px;margin-top:26px}
.ebl.ebl .ebl-split__row{display:flex;gap:14px;align-items:baseline}
.ebl.ebl .ebl-split__dot{width:14px;height:14px;border-radius:3px;flex:none}
.ebl.ebl .ebl-split__dot--cedar{background:var(--cedar-500)}
.ebl.ebl .ebl-split__dot--blue{background:var(--ebl-blue-600)}
.ebl.ebl .ebl-split__dot--sage{background:var(--sage-300)}
.ebl.ebl .ebl-split__dot--jam{background:var(--jam-300)}
.ebl.ebl .ebl-split__dot--deep{background:var(--ebl-blue-700)}
.ebl.ebl .ebl-split__name{font-weight:600;font-size:1rem;color:var(--ink)}
.ebl.ebl .ebl-split__pct{margin-left:auto;font-family:var(--font-display);font-weight:600;
  color:var(--ebl-blue-700)}
.ebl.ebl .ebl-split__note{font-size:.85rem;color:var(--slate);margin:26px 0 0;flex:1}
.ebl.ebl .ebl-split__total{font-size:.9rem;font-weight:600;color:var(--ebl-blue-700);margin:20px 0 0}
/* ---- partner logo grid ------------------------------------------------- */
/* A repeater, because the client will be adding and removing partners for
   years and cloning a container for each one is not a job for them. The last
   cell is the invitation to join, which is why it is part of the same widget
   rather than a card sitting beside it. */
.ebl.ebl .ebl-partners{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:16px;margin-top:44px}
.ebl.ebl .ebl-partner{background:var(--white);border-radius:var(--r-lg);padding:24px;
  display:grid;gap:14px;justify-items:center;align-content:center}
.ebl.ebl .ebl-partner__slot{width:100%;height:78px;display:grid;place-items:center}
.ebl.ebl .ebl-partner__slot img{max-width:100%;max-height:78px;width:auto;height:auto;
  object-fit:contain;display:block}
.ebl.ebl .ebl-partner__empty{width:100%;height:100%;border:2px dashed var(--ebl-blue-300);
  border-radius:var(--r-md);display:grid;place-items:center;
  font-family:var(--font-body);font-size:.68rem;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ebl-blue-700);text-align:center;padding:6px}
.ebl.ebl .ebl-partner__name{font-size:.8rem;font-weight:600;color:var(--slate);text-align:center}
.ebl.ebl .ebl-partner--invite{background:var(--ebl-blue-050);display:flex;flex-direction:column;
  justify-content:center;gap:10px}
.ebl.ebl .ebl-partner__h{font-size:1.05rem}
.ebl.ebl .ebl-partner__text{font-size:.82rem;color:var(--slate)}
.ebl.ebl .ebl-partner__link{font-size:.85rem;font-weight:600;color:var(--ebl-blue-600);
  text-decoration:none}
.ebl.ebl .ebl-partner__link:hover{color:var(--cedar-700)}
/* ---- trust claim band -------------------------------------------------- */
.ebl.ebl .ebl-claims{max-width:var(--container);margin:0 auto}
.ebl.ebl .ebl-claims__line{font-family:var(--font-display);
  font-size:clamp(1.4rem,1rem + 2.2vw,2.95rem);font-weight:600;line-height:1.25;
  letter-spacing:-.015em;text-wrap:balance;font-variation-settings:var(--wonk);
  color:var(--white);margin:0;max-width:38ch}
.ebl.ebl .ebl-claims__line .ebl-circled{color:var(--white);white-space:nowrap}
.ebl.ebl .ebl-claims__line .ebl-circled svg{color:var(--cedar-500)}
.ebl.ebl .ebl-claims__note{color:#B4D3E0;font-family:var(--font-body);font-size:.8rem;margin:22px 0 0}
/* ---- illustrated row --------------------------------------------------- */
.ebl.ebl .ebl-provide{width:100%}
/* The block sits in its own inset, as the design draws it. */
.ebl.ebl .ebl-provide-wrap{max-width:var(--container);margin:0 auto;width:100%;padding:8px 32px 40px}
.ebl.ebl .ebl-provide__block{position:relative;padding:48px 0 8px}
.ebl.ebl .ebl-provide__row{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;
  position:relative;z-index:2}
/* The thread wanders rather than ruling a straight line. It is drawn as an SVG
   curve so it keeps its shape at any width, and it sits behind the discs, whose
   paper fill is what makes the thread appear to pass under each drawing. */
.ebl.ebl .ebl-provide__seam{position:absolute;left:0;right:0;top:104px;height:24px;
  pointer-events:none;z-index:1;color:var(--cedar-500)}
.ebl.ebl .ebl-provide__thread{width:100%;height:100%}
.ebl.ebl .ebl-provide__thread svg{width:100%;height:100%;display:block;overflow:visible}
/* Plain blocks, centred by text-align, exactly as the design draws them. A
   flex column here would shrink the heading and the paragraph to their text
   width, which changes where the paragraph wraps. */
.ebl.ebl .ebl-provide__item{text-align:center}
.ebl.ebl .ebl-provide__disc{width:104px;height:104px;margin:0 auto 24px;background:var(--paper);
  border-radius:50%;display:grid;place-items:center;position:relative;z-index:2}
.ebl.ebl .ebl-provide__disc .ebl-illo{width:104px;height:104px}
.ebl.ebl .ebl-provide__overline{margin-bottom:0}
.ebl.ebl .ebl-provide__title{font-family:var(--font-display);font-weight:600;font-size:1.3rem;
  line-height:1.12;letter-spacing:-.01em;color:var(--text-heading);margin:0}
.ebl.ebl .ebl-provide__text{font-family:var(--font-body);font-size:.85rem;color:var(--slate);
  margin:12px auto 0;max-width:30ch;line-height:1.6}
.ebl.ebl .ebl-provide__note{font-family:var(--font-body);font-size:.9rem;color:var(--ebl-blue-700);
  font-weight:600;text-align:center;margin:40px 0 0}
/* ---- stock header and footer support -----------------------------------
   The header and footer are built entirely from Elementor and Elementor Pro
   widgets, so there is almost nothing to style here. What is left is two brand
   details a stock widget has no setting for. Both are attached by a class on the
   widget, so removing the class in the panel removes the effect.

   1. .ebl-nav-stitched turns the Nav Menu's underline pointer into the brand's
      running stitch. The pointer itself stays a stock Elementor element, so its
      colour and thickness are still set from the widget's Style tab: the mask
      only cuts the line the panel drew into dashes.
   2. .ebl-logo-reverse makes the Site Logo read on a dark block whatever colour
      it was uploaded in, so the footer works without a second upload. The
      Customizer holds one logo, and this is what lets that one logo serve both
      ends of the page. */
.ebl.ebl .ebl-nav-stitched .elementor-item:after, .ebl.ebl .ebl-nav-stitched .elementor-item:before{--ebl-stitch-mask:repeating-linear-gradient(to right,#000 0 9px,transparent 9px 16px);
  -webkit-mask-image:var(--ebl-stitch-mask);mask-image:var(--ebl-stitch-mask);
  border-radius:2px}
.ebl.ebl .ebl-logo-reverse img{filter:brightness(0) invert(1)}
/* The prototype's buttons all carry min-height:44px, which is both what makes
   the header 77px tall and the smallest comfortable tap target. Elementor's
   Button widget has no minimum-height control, so the floor is set here for the
   two chrome templates. Padding set in the panel still applies on top. */
.ebl.ebl .ebl-site-header .elementor-button, .ebl.ebl .ebl-site-footer .elementor-button{min-height:44px}
/* The wordmark rebuilt beside the mark. It must never wrap, and it sits on the
   mark's baseline rather than adding line box height of its own. */
.ebl.ebl .ebl-lockup-word .elementor-heading-title{white-space:nowrap;line-height:1}
/* A footer link row is one line of the type set on it. The anchor inside must
   not carry the body line height, or every row grows a few pixels and the
   column ends up taller than the design draws it. */
.ebl.ebl .ebl-site-footer .elementor-icon-list-item > a{line-height:inherit}
/* ---- illustrated list -------------------------------------------------- */
.ebl.ebl .ebl-list{list-style:none;padding:0;margin:0;display:grid;gap:14px;
  font-family:var(--font-body)}
.ebl.ebl .ebl-list__item{display:flex;align-items:center;gap:16px;font-size:.92rem;line-height:1.65}
.ebl.ebl .ebl-list__illo{flex:none;line-height:0}
/* ---- inline bar -------------------------------------------------------- */
.ebl.ebl .ebl-bar{border-radius:var(--r-lg);padding:26px 32px;display:flex;flex-direction:row;gap:24px;
  align-items:center;flex-wrap:wrap;font-family:var(--font-body)}
.ebl.ebl .ebl-bar--white{background:var(--white)}
.ebl.ebl .ebl-bar--sky{background:var(--ebl-blue-050)}
.ebl.ebl .ebl-bar--mist{background:var(--ebl-blue-100)}
.ebl.ebl .ebl-bar--cedar{background:var(--cedar-100)}
.ebl.ebl .ebl-bar--sage{background:var(--sage-100)}
.ebl.ebl .ebl-bar--jam{background:var(--jam-100)}
.ebl.ebl .ebl-bar--linen{background:var(--linen)}
.ebl.ebl .ebl-bar--paper{background:var(--paper)}
.ebl.ebl .ebl-bar--deep{background:var(--ebl-blue-700);color:var(--white)}
.ebl.ebl .ebl-bar__label{font-size:.98rem;color:var(--ebl-blue-700);font-weight:600}
.ebl.ebl .ebl-bar__text{font-size:.95rem;color:var(--slate)}
.ebl.ebl .ebl-bar__action{margin-left:auto}
.ebl.ebl .ebl-bar--deep .ebl-bar__label{color:var(--white)}
.ebl.ebl .ebl-bar--deep .ebl-bar__text{color:#C2DAE5}
/* ---- map panel --------------------------------------------------------- */
.ebl.ebl .ebl-mapwrap{aspect-ratio:16/10}
.ebl.ebl .ebl-mapwrap .ebl-map{min-height:0;height:100%}
.ebl.ebl .ebl-mapwrap__card{position:absolute;left:14px;bottom:14px;z-index:2;
  background:var(--white);color:var(--ebl-blue-700);font-family:var(--font-body);
  font-size:.72rem;font-weight:600;padding:.5rem .75rem;border-radius:var(--r-sm)}
/* ---- sign-up ----------------------------------------------------------- */
.ebl.ebl .ebl-signup{border-radius:var(--r-lg);padding:48px 32px;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:32px;align-items:center;
  font-family:var(--font-body)}
.ebl.ebl .ebl-signup--sky{background:var(--ebl-blue-050)}
.ebl.ebl .ebl-signup--mist{background:var(--ebl-blue-100)}
.ebl.ebl .ebl-signup--white{background:var(--white)}
.ebl.ebl .ebl-signup--cedar{background:var(--cedar-100)}
.ebl.ebl .ebl-signup--sage{background:var(--sage-100)}
.ebl.ebl .ebl-signup--linen{background:var(--linen)}
.ebl.ebl .ebl-signup--paper{background:var(--paper)}
.ebl.ebl .ebl-signup--deep{background:var(--ebl-blue-700);color:var(--white)}
.ebl.ebl .ebl-signup .ebl-heading{font-size:1.6rem}
.ebl.ebl .ebl-signup__text{margin:12px 0 0;font-size:.95rem;color:var(--slate);max-width:48ch}
.ebl.ebl .ebl-signup__form{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}
.ebl.ebl .ebl-signup__field{flex:1;min-width:220px;display:block}
.ebl.ebl .ebl-signup__field .ebl-label{margin-bottom:8px}
.ebl.ebl .ebl-signup .ebl-sent{margin-top:16px;grid-column:1/-1}
/* ---- responsive -------------------------------------------------------- */
/* Below 760px the row is a single column, so the thread has nothing left to
   join and is taken away rather than left dangling. This is the breakpoint the
   design itself uses. */
@media (max-width:760px){
.ebl.ebl .ebl-provide__row{grid-template-columns:1fr;gap:48px}
.ebl.ebl .ebl-provide__seam{display:none}
}
/* ---- reveal on scroll ---------------------------------------------------
   The thread sews itself in from the left and each piece settles after it, one
   step apart. Nothing moves for anyone who has asked their system to reduce
   motion: the no-JS and reduced-motion states are simply the finished page.

   The two timings are custom properties so the Motion section of the widget's
   Style tab can change them. The delay is calc(step x stagger) rather than an
   inline millisecond value, so a panel change takes effect without the script
   running again. */
.ebl.ebl .ebl-reveal-armed{--ebl-stagger:75ms;--ebl-thread-dur:1.5s}
.ebl.ebl .ebl-reveal-armed [data-d]{opacity:0;transform:translateY(16px);
  transition:opacity .55s cubic-bezier(.22,.7,.24,1),transform .55s cubic-bezier(.22,.7,.24,1);
  transition-delay:calc(var(--ebl-d,0) * var(--ebl-stagger))}
.ebl.ebl .ebl-reveal-armed [data-d][data-pop]{transform:scale(.82) translateY(10px);
  transition:opacity .45s cubic-bezier(.22,.7,.24,1),transform .5s cubic-bezier(.22,.7,.24,1);
  transition-delay:calc(var(--ebl-d,0) * var(--ebl-stagger))}
.ebl.ebl .ebl-reveal-armed [data-d][data-thread]{opacity:1;transform:none;
  clip-path:inset(0 100% 0 0);
  transition:clip-path var(--ebl-thread-dur) cubic-bezier(.22,.7,.24,1);
  transition-delay:calc(var(--ebl-d,0) * var(--ebl-stagger))}
.ebl.ebl .ebl-reveal-armed.is-revealed [data-d]{opacity:1;transform:none}
.ebl.ebl .ebl-reveal-armed.is-revealed [data-d][data-thread]{clip-path:inset(0 0 0 0)}
@media (prefers-reduced-motion:reduce){
.ebl.ebl .ebl-reveal-armed [data-d]{opacity:1;transform:none;clip-path:none;transition:none}
}
@media (max-width:640px){
.ebl.ebl .ebl-bar{padding:22px}
.ebl.ebl .ebl-bar__action{margin-left:0;width:100%}
.ebl.ebl .ebl-signup{padding:32px 22px}
.ebl.ebl .ebl-card{padding:22px}
.ebl.ebl .ebl-stat{padding:22px}
}
/* ============================================================ 10. layout
   The classes the page's Elementor containers carry. Named for what they are,
   so the Navigator and the Advanced tab read like the design rather than like
   generated output.
   ========================================================================== */
/* ---- sections ---------------------------------------------------------- */
.ebl.ebl .ebl-sec{padding:var(--pad-section) var(--gutter)}
.ebl.ebl .ebl-sec--flush{padding:0}
.ebl.ebl .ebl-sec--hero{background:var(--paper);position:relative;overflow:hidden;padding:0}
/* Get involved's hero is drawn to a minimum height with its content centred, so
   the short copy column does not leave the cloth looking clipped. The design
   centres with align-items because its section is a flex ROW; an Elementor
   container is a flex COLUMN, where the vertical axis is justify-content. */
.ebl.ebl .ebl-sec--hero-600{min-height:600px;display:flex;flex-direction:column;
  justify-content:center}
.ebl.ebl .ebl-sec--deep{background:var(--ebl-blue-700);color:var(--white)}
.ebl.ebl .ebl-sec--trust{background:var(--ebl-blue-700);color:var(--white);
  padding:56px var(--gutter) 52px}
.ebl.ebl .ebl-sec--story{background:var(--ebl-blue-700);color:var(--white);position:relative;
  overflow:hidden;padding:80px var(--gutter) var(--pad-section)}
.ebl.ebl .ebl-sec--top{padding:var(--pad-section) var(--gutter) 0}
.ebl.ebl .ebl-sec--bottom{padding:0 var(--gutter) var(--pad-section)}
.ebl.ebl .ebl-sec--band{padding:80px var(--gutter)}
.ebl.ebl .ebl-sec--hem{background:var(--paper);line-height:0;padding:0}
/* The teeth themselves are always the deep blue of the block they are cut from.
   What changes is the strip behind them, and the strip is whatever comes next:
   paper where the page carries on, night where the hem sits against the footer.
   Filling the teeth with the strip colour instead, which is the mistake this
   pair of classes exists to prevent, leaves a hem that is there in the markup
   and invisible on the page. */
.ebl.ebl .ebl-sec--hem-night{background:var(--ebl-blue-900);line-height:0;padding:0}
.ebl.ebl .ebl-sec--paper{background:var(--paper)}
.ebl.ebl .ebl-sec--sky{background:var(--ebl-blue-050)}
/* The three deep claim bands. Each inner page draws its own height, so they are
   named for the job rather than the number. */
.ebl.ebl .ebl-sec--claim{background:var(--ebl-blue-700);color:var(--white);
  padding:64px var(--gutter) 56px}
.ebl.ebl .ebl-sec--claim-tall{background:var(--ebl-blue-700);color:var(--white);
  padding:80px var(--gutter) 72px}
.ebl.ebl .ebl-sec--cta{background:var(--ebl-blue-700);color:var(--white);
  padding:56px var(--gutter)}
/* ---- wrappers ---------------------------------------------------------- */
.ebl.ebl .ebl-wrap{max-width:var(--container);margin:0 auto;width:100%}
.ebl.ebl .ebl-wrap--gutter{max-width:var(--container);margin:0 auto;width:100%;padding:0 var(--gutter)}
.ebl.ebl .ebl-wrap--top{max-width:var(--container);margin:0 auto;width:100%;padding:var(--pad-section) 0 0}
/* The outcomes counts row caps at 1200 and carries its own gutter and bottom
   padding on the SAME element, which is how the design draws it. Capping on an
   inner wrapper instead subtracts the gutter twice and shifts the whole row
   46px left, which is exactly what widthcmp caught. */
.ebl.ebl .ebl-wrap--gutter-pb{max-width:var(--container);margin:0 auto;width:100%;
  padding:0 var(--gutter) var(--pad-section)}
/* ---- columns and rows -------------------------------------------------- */
/* Children stretch by default. The tag, the buttons and the arrow link are all
   inline-level, so they keep their own width without needing flex-start, and
   anything block-level fills the column as the design expects. */
.ebl.ebl .ebl-col{display:flex;flex-direction:column;width:100%}
.ebl.ebl .ebl-col--narrow{max-width:30rem}
.ebl.ebl .ebl-col--center{align-items:center;text-align:center}
.ebl.ebl .ebl-col--start{align-items:flex-start}
/* Direction is stated explicitly: Elementor's containers default to column, so
   a flex row that does not say so would stack. */
.ebl.ebl .ebl-row{display:flex;flex-direction:row;gap:26px;align-items:center;flex-wrap:wrap;width:100%}
.ebl.ebl .ebl-row--tight{gap:12px}
.ebl.ebl .ebl-row--40{gap:40px}
/* The closing band's copy column takes the room the button does not. The
   design writes a flat min-width:280px here, which overflows a 320px phone by
   6px and gives the page a sideways scroll; min() keeps the intent and drops
   the overflow. */
.ebl.ebl .ebl-col--grow{flex:1;min-width:min(280px,100%)}
.ebl.ebl .ebl-grid{display:grid;width:100%}
.ebl.ebl .ebl-grid--cards{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--gap-card)}
.ebl.ebl .ebl-grid--stats{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--gap-card)}
/* Named by their track minimum, because the design uses several and each
   one decides its own collapse point. --split is the 320 the money row
   uses; the story row is drawn at 300. */
.ebl.ebl .ebl-grid--split{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:48px;align-items:center}
.ebl.ebl .ebl-grid--split-300{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:48px;align-items:center}
.ebl.ebl .ebl-grid--split-top{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:48px;align-items:start}
/* The tile rows on the inner pages. Named by their track minimum, because the
   client chose a different one for each row and the collapse point is the
   design, not an accident. */
.ebl.ebl .ebl-grid--tiles-240{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.ebl.ebl .ebl-grid--tiles-260{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.ebl.ebl .ebl-grid--tiles-280{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.ebl.ebl .ebl-grid--tiles-300{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.ebl.ebl .ebl-grid--split-280{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:48px;align-items:start}
.ebl.ebl .ebl-grid--split-300-top{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:56px;align-items:start}
.ebl.ebl .ebl-grid--split-320{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:56px;align-items:center}
.ebl.ebl .ebl-grid--split-360{grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:56px;align-items:start}
.ebl.ebl .ebl-grid--split-300-48{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:48px;align-items:start}
/* Contact: the map beside its address column, both stretching to one height. */
.ebl.ebl .ebl-grid--map{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;align-items:stretch}
/* The three short claims under the 100% line on the donate page. */
.ebl.ebl .ebl-grid--claims{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:32px}
.ebl.ebl .ebl-grid--panels{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  gap:var(--gap-card);align-items:stretch}
.ebl.ebl .ebl-grid--hero{position:relative;z-index:1;max-width:var(--container);margin:0 auto;
  padding:80px var(--gutter) var(--pad-section);
  grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:56px;align-items:center;display:grid}
/* The four inner heroes use a 320px track and their own top and bottom padding.
   Kept as modifiers of the hero grid so the 900px stack below reaches them. */
.ebl.ebl .ebl-grid--hero-320{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.ebl.ebl .ebl-grid--hero-72-64{padding:72px var(--gutter) 64px}
.ebl.ebl .ebl-grid--hero-72-56{padding:72px var(--gutter) 56px}
.ebl.ebl .ebl-grid--start{align-items:start}
.ebl.ebl .ebl-grid--end{align-items:end}
.ebl.ebl .ebl-grid--stretch{align-items:stretch}
/* The outcomes hero sets its own track and gap: a 300px column, 48px apart,
   with both columns sitting on the same baseline at the bottom. */
.ebl.ebl .ebl-grid--hero-300{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.ebl.ebl .ebl-grid--hero-48{gap:48px}
.ebl.ebl .ebl-grid--tiles-250{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.ebl.ebl .ebl-stack{display:grid;gap:var(--gap-card);width:100%}
.ebl.ebl .ebl-stack--6{gap:6px}
.ebl.ebl .ebl-stack--14{gap:14px}
.ebl.ebl .ebl-stack--16{gap:16px}
.ebl.ebl .ebl-stack--fill{grid-template-rows:auto 1fr;min-width:0}
/* The gingham panel behind the hero photograph. One cloth per page. */
.ebl.ebl .ebl-cloth{position:absolute;right:0;top:0;bottom:0;width:34%;overflow:hidden;z-index:0;
  pointer-events:none}
.ebl.ebl .ebl-cloth > *{width:100%;height:100%}
/* The outcomes hero runs its cloth wider than the other four. This has to sit
   AFTER the base rule: both are one class deep, so source order decides, and
   placed with the other modifiers further up it lost to .ebl-cloth's 34% and
   the whole dot pattern landed 51px off. */
.ebl.ebl .ebl-cloth--38{width:38%}
/* The dotted field behind the story block. */
.ebl.ebl .ebl-dots{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.5;
  background-image:radial-gradient(currentColor 1.5px,transparent 1.5px);
  background-size:26px 26px;color:var(--ebl-blue-500)}
/* ---- spacing ------------------------------------------------------------
   The design's spacing scale, exposed as classes so a widget can be nudged
   without leaving the system. 4 / 8 / 12 / 16 / 24 / 32 / 48 / 64 / 96 / 128. */
.ebl.ebl .ebl-mt-1{margin-top:var(--sp-1)}
.ebl.ebl .ebl-mt-2{margin-top:var(--sp-2)}
.ebl.ebl .ebl-mt-3{margin-top:var(--sp-3)}
.ebl.ebl .ebl-mt-4{margin-top:var(--sp-4)}
.ebl.ebl .ebl-mt-5{margin-top:var(--sp-5)}
.ebl.ebl .ebl-mt-6{margin-top:var(--sp-6)}
.ebl.ebl .ebl-mt-7{margin-top:var(--sp-7)}
.ebl.ebl .ebl-mt-8{margin-top:var(--sp-8)}
.ebl.ebl .ebl-mt-26{margin-top:26px}
.ebl.ebl .ebl-mt-44{margin-top:44px}
.ebl.ebl .ebl-mt-40{margin-top:40px}
.ebl.ebl .ebl-mt-20{margin-top:20px}
.ebl.ebl .ebl-mt-10{margin-top:10px}
.ebl.ebl .ebl-mt-14{margin-top:14px}
.ebl.ebl .ebl-mt-22{margin-top:22px}
.ebl.ebl .ebl-mt-56{margin-top:56px}
.ebl.ebl .ebl-mt-12{margin-top:12px}
.ebl.ebl .ebl-mt-16{margin-top:16px}
.ebl.ebl .ebl-mt-24{margin-top:24px}
.ebl.ebl .ebl-mt-0{margin-top:0}
.ebl.ebl .ebl-mt-18{margin-top:18px}
.ebl.ebl .ebl-mt-28{margin-top:28px}
.ebl.ebl .ebl-mt-32{margin-top:32px}
.ebl.ebl .ebl-mt-36{margin-top:36px}
.ebl.ebl .ebl-mt-64{margin-top:64px}
.ebl.ebl .ebl-pt-64{padding-top:64px}
.ebl.ebl .ebl-spacer-8{height:8px}
.ebl.ebl .ebl-full{width:100%}
/* The donate hero's left column follows the reader down past the tall panel. */
.ebl.ebl .ebl-sticky{position:sticky;top:104px}
.ebl.ebl .ebl-measure-1000{max-width:1000px}
.ebl.ebl .ebl-measure-62{max-width:62ch}
.ebl.ebl .ebl-center{text-align:center}
.ebl.ebl .ebl-relative{position:relative}
/* Sits above the cloth rather than behind it. */
.ebl.ebl .ebl-relative-z1{position:relative;z-index:1}
/* The pale caption under the building photograph on the deep section. */
.ebl.ebl .ebl-caption-pale .ebl-photo__caption{color:var(--ebl-blue-300)}
/* The little navy tab that marks where the payment embed will go. */
/* An Elementor container is a flex COLUMN, so centring the tab horizontally is
   align-items, not justify-content, and its child must not stretch. */
.ebl.ebl .ebl-embedtag{position:absolute;left:0;right:0;top:-11px;display:flex;
  flex-direction:column;align-items:center;z-index:2}
/* The tab shrink-wraps its words. Elementor's widget wrapper is the flex item
   here, so the flex:none has to sit on that wrapper and not on the text. */
.ebl.ebl .ebl-embedtag > *{flex:none;width:auto}
.ebl.ebl .ebl-embedtag .ebl-text{background:var(--ebl-blue-700);color:var(--white);
  font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  padding:.4rem .8rem;border-radius:4px}
.ebl.ebl .ebl-photoframe{position:relative;width:100%}
/* The outcomes hero's report panel: capped at 400 and pushed to the right of
   its grid track, which is what the design does with it. */
.ebl.ebl .ebl-panel--400-end{max-width:400px;justify-self:end;width:100%}
.ebl.ebl .ebl-photoframe--400{max-width:400px;justify-self:center}
.ebl.ebl .ebl-photoframe--420{max-width:420px;justify-self:center;aspect-ratio:4/5}
.ebl.ebl .ebl-photoframe--380{max-width:380px}
.ebl.ebl .ebl-auto{margin-left:auto}
@media (max-width:900px){
.ebl.ebl .ebl-grid--hero-320{grid-template-columns:1fr}
.ebl.ebl .ebl-grid--hero{grid-template-columns:1fr;padding:56px var(--gutter) 64px;gap:36px}
.ebl.ebl .ebl-cloth{position:absolute;left:0;right:0;top:auto;bottom:0;width:100%;height:34%}
.ebl.ebl .ebl-col--narrow{max-width:none}
}
/* No breakpoint for the auto-fit grids. The client's file has exactly one
   responsive rule of its own, the 760px collapse of the illustrated row below,
   and leaves every grid to repeat(auto-fit,minmax()). A browser clamps an
   auto-fit track below its own minimum when the container is narrower, so the
   cards are 228px wide on a 320px phone with no overflow. Adding queries here
   moved the collapse away from where the client put it. */
@media (max-width:520px){
.ebl.ebl .ebl-provide{padding:32px 0 8px}
.ebl.ebl .ebl-provide-wrap{padding:8px 0 24px}
.ebl.ebl .ebl-signup{padding:28px 20px}
.ebl.ebl .ebl-claims__line{text-wrap:pretty}
}

/* ------------------------------------------- 5b. extracted layout rules
   Lifted verbatim from the approved prototypes, so geometry matches the
   design pixel for pixel at the 1200px container width. */
.ebl.ebl .ebl-u1{position:sticky;top:0;z-index:30;background:#fff;padding:16px 46px;display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.ebl.ebl .ebl-u2{display:flex;align-items:center;gap:10px;text-decoration:none;color:#14212B}
.ebl.ebl .ebl-u3{--m:7px}
.ebl.ebl .ebl-u4{font-family:'Caveat',cursive;font-size:1.5rem;line-height:1}
.ebl.ebl .ebl-u5{display:flex;gap:26px;margin-left:auto;align-items:center;flex-wrap:wrap}
.ebl.ebl .ebl-u6{font-size:.78rem;font-weight:600;color:#104C65;text-decoration:none;padding:6px 0;display:flex;flex-direction:column;gap:5px}
.ebl.ebl .ebl-u7{font-size:.78rem;font-weight:500;color:#14212B;text-decoration:none;padding:6px 0;display:flex;flex-direction:column;gap:5px;transition:color .15s cubic-bezier(.2,.6,.3,1)}
.ebl.ebl .ebl-u8{display:inline-flex;align-items:center;justify-content:center;background:#C98A44;color:#14212B;font-size:.8rem;font-weight:600;line-height:1;padding:.7rem 1.1rem;border-radius:6px;text-decoration:none;transition:background .15s cubic-bezier(.2,.6,.3,1)}
.ebl.ebl .ebl-u9{background:#FBF9F6;position:relative;overflow:hidden;padding:0}
.ebl.ebl .ebl-u10{position:absolute;right:0;top:0;bottom:0;width:34%;overflow:hidden;z-index:0}
.ebl.ebl .ebl-u11{width:100%;height:100%;background-color:#fff;background-image:url('data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2250%22 height=%2250%22%3E%3Crect width=%2225%22 height=%2250%22 fill=%22%23FBF9F6%22/%3E%3Crect width=%2250%22 height=%2225%22 fill=%22%23FBF9F6%22/%3E%3Crect width=%2225%22 height=%2225%22 fill=%22%23F5F1EA%22/%3E%3C/svg%3E');background-repeat:repeat;background-size:50px 50px}
.ebl.ebl .ebl-u12{position:relative;z-index:1;max-width:1200px;margin:0 auto;padding:80px 46px 96px;display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:56px;align-items:center}
.ebl.ebl .ebl-u13{display:flex;flex-direction:column;align-items:flex-start;max-width:30rem}
.ebl.ebl .ebl-u14{font-size:clamp(2rem,1.1rem + 2.5vw,3.15rem);line-height:1.06;letter-spacing:-.018em;max-width:19ch;margin-top:26px}
.ebl.ebl .ebl-u15{font-size:1.05rem;line-height:1.5;max-width:34ch;margin-top:24px}
.ebl.ebl .ebl-u16{display:flex;gap:26px;align-items:center;flex-wrap:wrap;margin-top:40px}
.ebl.ebl .ebl-u17{display:inline-flex;align-items:center;justify-content:center;background:#C98A44;color:#14212B;font-size:1.05rem;font-weight:600;line-height:1;padding:1.1rem 2.2rem;border-radius:6px;text-decoration:none;transition:background .15s cubic-bezier(.2,.6,.3,1)}
.ebl.ebl .ebl-u18{display:inline-flex;align-items:center;gap:.5rem;color:#197199;font-weight:600;font-size:.98rem;text-decoration:none;transition:color .15s cubic-bezier(.2,.6,.3,1)}
.ebl.ebl .ebl-u19{font-size:.8rem;color:#5F7889;margin-top:44px;max-width:34ch}
.ebl.ebl .ebl-u20{color:#197199;font-weight:600;text-decoration:none;transition:color .15s cubic-bezier(.2,.6,.3,1)}
.ebl.ebl .ebl-u21{position:relative;width:100%}
.ebl.ebl .ebl-u22{position:relative;width:91%;aspect-ratio:4/5;max-height:520px;border-radius:6px;overflow:hidden;background:#fff;z-index:2;box-shadow:0 3px 6px rgba(8,39,51,.07),0 14px 30px rgba(8,39,51,.11)}
.ebl.ebl .ebl-u23{width:100%;height:100%;object-fit:cover;display:block}
.ebl.ebl .ebl-u24{position:absolute;right:-5%;top:7%;width:27%;max-width:120px;aspect-ratio:1/1;border-radius:10px;background:#104C65;color:#fff;padding:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:3;box-shadow:0 4px 8px rgba(8,39,51,.08),0 22px 48px rgba(8,39,51,.15)}
.ebl.ebl .ebl-u25{display:block;font-family:'Fraunces',Georgia,serif;font-size:.85rem;font-weight:600;line-height:1}
.ebl.ebl .ebl-u26{display:block;font-family:'Fraunces',Georgia,serif;font-size:clamp(1.35rem, 0.5rem + 1.9vw, 2.2rem);font-weight:700;line-height:1;letter-spacing:-.03em;font-variation-settings:'SOFT' 40,'WONK' 1}
.ebl.ebl .ebl-u27{background:#104C65;color:#fff;padding:56px 46px 52px}
.ebl.ebl .ebl-u28{max-width:1200px;margin:0 auto}
.ebl.ebl .ebl-u29{font-family:'Fraunces',Georgia,serif;font-size:clamp(1.4rem, 1rem + 2.2vw, 2.95rem);font-weight:600;line-height:1.25;letter-spacing:-.015em;text-wrap:balance;font-variation-settings:'SOFT' 40,'WONK' 1;max-width:38ch}
.ebl.ebl .ebl-u30{color:#fff;white-space:nowrap}
.ebl.ebl .ebl-u31{color:#B4D3E0;font-size:.8rem;margin-top:22px}
.ebl.ebl .ebl-u32{background:#FBF9F6;line-height:0}
.ebl.ebl .ebl-u33{height:12px;background-image:url('data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2222%22 height=%2212%22%3E%3Cpath d=%22M0 0h22L11 12z%22 fill=%22%23104C65%22/%3E%3C/svg%3E');background-repeat:repeat-x;background-size:22px 12px;background-position:left top}
.ebl.ebl .ebl-u34{padding:96px 46px}
.ebl.ebl .ebl-u35{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700;color:#96632D}
.ebl.ebl .ebl-u36{font-size:clamp(1.7rem,1.3rem + 1.4vw,2.4rem);margin-top:12px;max-width:26ch}
.ebl.ebl .ebl-u37{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:40px}
.ebl.ebl .ebl-u38{background:#F1F8FB;border-radius:10px;padding:32px;display:flex;flex-direction:column;align-items:flex-start}
.ebl.ebl .ebl-u39{font-size:1.35rem;margin-top:20px}
.ebl.ebl .ebl-u40{font-size:.9rem;color:#5F7889;margin-top:12px;flex:1}
.ebl.ebl .ebl-u41{display:inline-flex;align-items:center;justify-content:center;background:#C98A44;color:#14212B;font-size:.95rem;font-weight:600;line-height:1;padding:.9rem 1.5rem;border-radius:6px;text-decoration:none;margin-top:14px;transition:background .15s cubic-bezier(.2,.6,.3,1)}
.ebl.ebl .ebl-u42{background:#F7EBD9;border-radius:10px;padding:32px;display:flex;flex-direction:column}
.ebl.ebl .ebl-u43{display:inline-flex;align-self:flex-start;align-items:center;justify-content:center;background:#D8ECF6;color:#104C65;font-size:.95rem;font-weight:600;line-height:1;padding:.9rem 1.5rem;border-radius:6px;text-decoration:none;margin-top:24px;transition:background .15s cubic-bezier(.2,.6,.3,1)}
.ebl.ebl .ebl-u44{background:#E8EEE1;border-radius:10px;padding:32px;display:flex;flex-direction:column}
.ebl.ebl .ebl-u45{background:#fff;border-radius:10px;padding:26px 32px;margin-top:16px;display:flex;gap:24px;align-items:center;flex-wrap:wrap}
.ebl.ebl .ebl-u46{font-size:.98rem;color:#104C65;font-weight:600}
.ebl.ebl .ebl-u47{font-size:.95rem;color:#5F7889}
.ebl.ebl .ebl-u48{display:inline-flex;align-items:center;justify-content:center;background:#C98A44;color:#14212B;font-size:.98rem;font-weight:600;line-height:1;padding:.9rem 1.6rem;border-radius:6px;text-decoration:none;margin-left:auto;transition:background .15s cubic-bezier(.2,.6,.3,1)}
.ebl.ebl .ebl-u49{padding:0 46px 96px}
.ebl.ebl .ebl-u50{max-width:1200px;margin:0 auto;padding:8px 32px 40px}
.ebl.ebl .ebl-u51{position:relative;padding:48px 0 8px}
.ebl.ebl .ebl-u52{position:absolute;left:0;right:0;top:104px;height:24px;pointer-events:none}
.ebl.ebl .ebl-u53{width:100%;height:100%}
.ebl.ebl .ebl-u54{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;position:relative;z-index:2}
.ebl.ebl .ebl-u55{text-align:center}
.ebl.ebl .ebl-u56{width:104px;height:104px;margin:0 auto 24px;background:#FBF9F6;border-radius:50%;display:grid;place-items:center}
.ebl.ebl .ebl-u57{font-size:1.3rem}
.ebl.ebl .ebl-u58{font-size:.85rem;color:#5F7889;margin:12px auto 0;max-width:30ch;line-height:1.6}
.ebl.ebl .ebl-u59{font-size:.9rem;color:#104C65;font-weight:600;text-align:center;margin-top:40px}
.ebl.ebl .ebl-u60{background:#104C65;color:#fff;position:relative;overflow:hidden;padding:80px 46px 96px}
.ebl.ebl .ebl-u61{position:absolute;left:0;top:0;bottom:0;width:34%;background-image:url('data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2250%22 height=%2250%22%3E%3Ccircle cx=%2212.5%22 cy=%2212.5%22 r=%222.6%22 fill=%22%23FFFFFF%22 fill-opacity=%22.10%22/%3E%3Ccircle cx=%2237.5%22 cy=%2237.5%22 r=%222.6%22 fill=%22%23FFFFFF%22 fill-opacity=%22.10%22/%3E%3C/svg%3E');background-repeat:repeat;background-size:50px 50px;z-index:0}
.ebl.ebl .ebl-u62{position:relative;z-index:1;max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:48px;align-items:center}
.ebl.ebl .ebl-u63{position:relative;max-width:380px;justify-self:center;width:100%}
.ebl.ebl .ebl-u64{width:100%}
.ebl.ebl .ebl-u65{object-position:52% 16%}
.ebl.ebl .ebl-u66{position:absolute;left:-26px;top:24px;width:104px;height:104px;background:#fff;border-radius:50%;box-shadow:0 4px 8px rgba(8,39,51,.08),0 22px 48px rgba(8,39,51,.15)}
.ebl.ebl .ebl-u67{font-variation-settings:'SOFT' 40,'WONK' 1}
.ebl.ebl .ebl-u68{display:inline-block;font-family:'Caveat',cursive;font-size:1.22rem;line-height:1;color:#E7C58F;background:rgba(255,255,255,.06);padding:.5rem 1rem .55rem;border-radius:2px;position:relative}
.ebl.ebl .ebl-u69{font-size:clamp(1.7rem,1.3rem + 1.4vw,2.3rem);margin-top:16px;max-width:24ch;color:#fff}
.ebl.ebl .ebl-u70{margin-top:20px;max-width:60ch;font-size:1rem;color:#C2DAE5}
.ebl.ebl .ebl-u71{color:#fff}
.ebl.ebl .ebl-u72{margin-top: 16px; font-size: .9rem; color: var(--ebl-blue-200)}
.ebl.ebl .ebl-u73{display:inline-flex;align-items:center;gap:.5rem;color:#E7C58F;font-weight:600;font-size:.9rem;text-decoration:none;margin-top:20px;transition:color .15s cubic-bezier(.2,.6,.3,1)}
.ebl.ebl .ebl-u74{background:#FBF9F6;padding:96px 46px}
.ebl.ebl .ebl-u75{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:48px;align-items:center}
.ebl.ebl .ebl-u76{font-size:clamp(1.8rem,1.3rem + 1.6vw,2.6rem);margin-top:12px;max-width:22ch}
.ebl.ebl .ebl-u77{color:#5F7889;margin-top:20px;max-width:56ch}
.ebl.ebl .ebl-u78{color:#104C65;font-weight:600}
.ebl.ebl .ebl-u79{display:flex;gap:12px;flex-wrap:wrap;align-items:stretch;margin-top:32px}
.ebl.ebl .ebl-u80{display:inline-flex;align-items:center;justify-content:center;background:#C98A44;color:#14212B;font-size:1.05rem;font-weight:600;line-height:1;padding:1.1rem 2rem;border-radius:6px;text-decoration:none;transition:background .15s cubic-bezier(.2,.6,.3,1)}
.ebl.ebl .ebl-u81{display:inline-flex;align-items:center;justify-content:center;background:#E2EEF4;color:#104C65;font-size:.9rem;font-weight:600;line-height:1;padding:1.1rem 1.35rem;border-radius:6px;text-decoration:none;transition:background .15s cubic-bezier(.2,.6,.3,1)}
.ebl.ebl .ebl-u82{color:#5F7889;font-size:.78rem;margin-top:16px}
.ebl.ebl .ebl-u83{color:#5F7889;font-size:.78rem;margin-top:10px}
.ebl.ebl .ebl-u84{margin:0;display:flex;flex-direction:column;align-items:center}
.ebl.ebl .ebl-u85{max-width:420px;width:100%;aspect-ratio:1/1;border-radius:10px;overflow:hidden}
.ebl.ebl .ebl-u86{object-position:50% 30%;border-radius:10px}
.ebl.ebl .ebl-u87{font-size:.78rem;color:#5F7889;margin-top:12px;text-align:center}
.ebl.ebl .ebl-u88{max-width:1200px;margin:56px auto 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.ebl.ebl .ebl-u89{background:#104C65;border-radius:10px;padding:32px}
.ebl.ebl .ebl-u90{display:block;font-family:'Fraunces',Georgia,serif;font-size:2.1rem;line-height:1;color:#fff;font-variation-settings:'SOFT' 40,'WONK' 1}
.ebl.ebl .ebl-u91{display:block;font-size:.85rem;color:#C2DAE5;margin-top:10px}
.ebl.ebl .ebl-u92{background:#F3E9D8;border-radius:10px;padding:32px}
.ebl.ebl .ebl-u93{display:block;font-family:'Fraunces',Georgia,serif;font-size:2.1rem;line-height:1;color:#96632D;font-variation-settings:'SOFT' 40,'WONK' 1}
.ebl.ebl .ebl-u94{display:block;font-size:.85rem;color:#5F7889;margin-top:10px}
.ebl.ebl .ebl-u95{background:#E8EEE1;border-radius:10px;padding:32px}
.ebl.ebl .ebl-u96{display:block;font-family:'Fraunces',Georgia,serif;font-size:2.1rem;line-height:1;color:#4F6740;font-variation-settings:'SOFT' 40,'WONK' 1}
.ebl.ebl .ebl-u97{background:#F6E5E0;border-radius:10px;padding:32px}
.ebl.ebl .ebl-u98{display:block;font-family:'Fraunces',Georgia,serif;font-size:2.1rem;line-height:1;color:#A6412F;font-variation-settings:'SOFT' 40,'WONK' 1}
.ebl.ebl .ebl-u99{max-width:1200px;margin:0 auto;padding:0 46px}
.ebl.ebl .ebl-u100{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;align-items:stretch}
.ebl.ebl .ebl-u101{display:grid;gap:16px;min-width:0;grid-template-rows:auto 1fr}
.ebl.ebl .ebl-u102{font-size:1.7rem;margin-top:12px}
.ebl.ebl .ebl-u103{list-style:none;padding:0;margin:24px 0 0;display:grid;gap:14px}
.ebl.ebl .ebl-u104{display:flex;gap:16px;align-items:center;font-size:.92rem}
.ebl.ebl .ebl-u105{display:inline-flex;align-items:center;gap:.5rem;color:#197199;font-weight:600;font-size:.9rem;text-decoration:none;margin-top:24px;transition:color .15s cubic-bezier(.2,.6,.3,1)}
.ebl.ebl .ebl-u106{margin-top:14px;font-size:.95rem;color:#4F6740;max-width:52ch}
.ebl.ebl .ebl-u107{display:inline-flex;align-items:center;gap:.5rem;color:#4F6740;font-weight:600;font-size:.95rem;text-decoration:none;margin-top:20px;transition:color .15s cubic-bezier(.2,.6,.3,1)}
.ebl.ebl .ebl-u108{background:#D8ECF6;border-radius:10px;padding:32px}
.ebl.ebl .ebl-u109{margin-top:14px;font-size:.95rem}
.ebl.ebl .ebl-u110{margin-top:10px;font-size:.9rem;color:#5F7889}
.ebl.ebl .ebl-u111{color:#197199;font-weight:600;text-decoration:none}
.ebl.ebl .ebl-u112{background:#fff;border-radius:6px;aspect-ratio:16/10;margin-top:20px;display:grid;place-items:center;color:#104C65;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.ebl.ebl .ebl-u113{display:inline-flex;align-items:center;justify-content:center;background:#104C65;color:#fff;font-size:.95rem;font-weight:600;line-height:1;padding:.9rem 1.5rem;border-radius:6px;text-decoration:none;margin-top:20px;transition:background .15s cubic-bezier(.2,.6,.3,1)}
.ebl.ebl .ebl-u114{padding:80px 46px}
.ebl.ebl .ebl-u115{max-width:1200px;margin:0 auto;background:#F1F8FB;border-radius:10px;padding:48px 32px;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:32px;align-items:center}
.ebl.ebl .ebl-u116{font-size:1.6rem}
.ebl.ebl .ebl-u117{margin-top:12px;font-size:.95rem;color:#5F7889;max-width:48ch}
.ebl.ebl .ebl-u118{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}
.ebl.ebl .ebl-u119{flex:1;min-width:220px;display:block}
.ebl.ebl .ebl-u120{display:block;font-size:.78rem;font-weight:600;color:#104C65;margin-bottom:8px}
.ebl.ebl .ebl-u121{width:100%;background:#fff;border:0;border-bottom:3px solid #5F7889;border-radius:2px 2px 0 0;padding:.85rem .9rem;font-size:.95rem;color:#14212B}
.ebl.ebl .ebl-u122{background:#104C65;color:#fff;border:0;font-size:.95rem;font-weight:600;line-height:1;padding:1rem 1.6rem;border-radius:6px;cursor:pointer;transition:background .15s cubic-bezier(.2,.6,.3,1)}
.ebl.ebl .ebl-u123{background:#082733;color:#B4D3E0;padding:64px 46px 32px;font-size:.85rem}
.ebl.ebl .ebl-u124{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:32px}
.ebl.ebl .ebl-u125{display:flex;align-items:center;gap:12px;margin-bottom:24px}
.ebl.ebl .ebl-u126{--m:9px}
.ebl.ebl .ebl-u127{font-family:'Caveat',cursive;font-size:1.45rem;line-height:1;color:#fff}
.ebl.ebl .ebl-u128{font-family:'Inter',sans-serif;color:#fff;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;margin-bottom:12px}
.ebl.ebl .ebl-u129{margin-bottom:8px}
.ebl.ebl .ebl-u130{color:#B4D3E0;text-decoration:none;display:block;padding:.25rem 0}
.ebl.ebl .ebl-u131{display:grid;gap:6px}
.ebl.ebl .ebl-u132{color:#B4D3E0;text-decoration:none}
.ebl.ebl .ebl-u133{display:flex;gap:12px}
.ebl.ebl .ebl-u134{width:42px;height:42px;background:rgba(255,255,255,.1);border-radius:6px;display:grid;place-items:center;font-size:.68rem;font-weight:700;color:#fff;text-decoration:none}
.ebl.ebl .ebl-u135{display:inline-flex;align-items:center;justify-content:center;background:#C98A44;color:#14212B;font-size:.9rem;font-weight:600;line-height:1;padding:.85rem 1.4rem;border-radius:6px;text-decoration:none;margin-top:20px}
.ebl.ebl .ebl-u136{max-width:1200px;margin:40px auto 0;font-size:.75rem;color:#8FB6C6}
.ebl.ebl .ebl-u137{position:relative;overflow:hidden;background:#FBF9F6}
.ebl.ebl .ebl-u138{position:absolute;right:0;top:0;bottom:0;width:34%;background-color:#fff;background-image:url('data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2250%22 height=%2250%22%3E%3Crect width=%2250%22 height=%2250%22 fill=%22%23FBF9F6%22/%3E%3Ccircle cx=%2212.5%22 cy=%2212.5%22 r=%222.6%22 fill=%22%23F7EBD9%22/%3E%3Ccircle cx=%2237.5%22 cy=%2237.5%22 r=%222.6%22 fill=%22%23F7EBD9%22/%3E%3C/svg%3E');background-repeat:repeat;background-size:50px 50px;z-index:0}
.ebl.ebl .ebl-u139{position:relative;z-index:1;max-width:1200px;margin:0 auto;padding:80px 46px 96px;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:56px;align-items:center}
.ebl.ebl .ebl-u140{max-width:32rem}
.ebl.ebl .ebl-u141{font-size:clamp(2rem,1.1rem + 2.5vw,3.1rem);line-height:1.06;letter-spacing:-.018em;max-width:18ch;margin-top:16px}
.ebl.ebl .ebl-u142{font-size:1.05rem;line-height:1.55;max-width:38ch;margin-top:24px;color:#14212B}
.ebl.ebl .ebl-u143{font-size:.95rem;color:#5F7889;margin-top:20px;max-width:40ch}
.ebl.ebl .ebl-u144{position:relative;max-width:400px;width:100%;justify-self:center}
.ebl.ebl .ebl-u145{font-size:.78rem;color:#5F7889;margin-top:16px;text-align:center}
.ebl.ebl .ebl-u146{background:#F1F8FB;padding:96px 46px}
.ebl.ebl .ebl-u147{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:56px;align-items:start}
.ebl.ebl .ebl-u148{position:relative;width:100%;aspect-ratio:4/5;max-width:420px;justify-self:center}
.ebl.ebl .ebl-u149{max-width:62ch}
.ebl.ebl .ebl-u150{font-size:clamp(1.7rem,1.3rem + 1.4vw,2.4rem);margin-top:20px;max-width:20ch}
.ebl.ebl .ebl-u151{font-size:1rem;margin-top:24px}
.ebl.ebl .ebl-u152{margin-top:20px;font-size:1rem}
.ebl.ebl .ebl-u153{display:grid;gap:14px;margin-top:28px}
.ebl.ebl .ebl-u154{margin-top:24px;font-size:.9rem;color:#5F7889}
.ebl.ebl .ebl-u155{background:#104C65;color:#fff;padding:96px 46px}
.ebl.ebl .ebl-u156{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:56px;align-items:center}
.ebl.ebl .ebl-u157{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700;color:#E7C58F}
.ebl.ebl .ebl-u158{font-size:clamp(1.7rem,1.3rem + 1.4vw,2.4rem);margin-top:12px;max-width:22ch;color:#fff}
.ebl.ebl .ebl-u159{margin-top:22px;max-width:58ch;color:#C2DAE5}
.ebl.ebl .ebl-u160{margin-top:18px;max-width:58ch;color:#C2DAE5}
.ebl.ebl .ebl-u161{display:inline-flex;align-items:center;gap:.5rem;color:#E7C58F;font-weight:600;font-size:.95rem;text-decoration:none;margin-top:24px;transition:color .15s cubic-bezier(.2,.6,.3,1)}
.ebl.ebl .ebl-u162{margin:0}
.ebl.ebl .ebl-u163{width:100%;aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:#fff}
.ebl.ebl .ebl-u164{font-size:.78rem;color:#8FB6C6;margin-top:12px}
.ebl.ebl .ebl-u165{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:44px}
.ebl.ebl .ebl-u166{background:#F1F8FB;border-radius:10px;padding:32px}
.ebl.ebl .ebl-u167{display:block;font-family:'Fraunces',Georgia,serif;font-size:1.35rem;line-height:1.15;color:#104C65;font-variation-settings:'SOFT' 40,'WONK' 1}
.ebl.ebl .ebl-u168{font-size:.9rem;color:#5F7889;margin-top:12px}
.ebl.ebl .ebl-u169{display:block;font-family:'Fraunces',Georgia,serif;font-size:1.35rem;line-height:1.15;color:#4F6740;font-variation-settings:'SOFT' 40,'WONK' 1}
.ebl.ebl .ebl-u170{display:block;font-family:'Fraunces',Georgia,serif;font-size:1.35rem;line-height:1.15;color:#96632D;font-variation-settings:'SOFT' 40,'WONK' 1}
.ebl.ebl .ebl-u171{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-top:16px}
.ebl.ebl .ebl-u172{background:#fff;border-radius:10px;padding:32px}
.ebl.ebl .ebl-u173{font-size:1.25rem}
.ebl.ebl .ebl-u174{font-size:.92rem;color:#5F7889;margin-top:12px}
.ebl.ebl .ebl-u175{background:#104C65;color:#fff;padding:64px 46px 56px}
.ebl.ebl .ebl-u176{color:#C2DAE5;margin-top:26px;max-width:60ch;font-size:1rem}
.ebl.ebl .ebl-u177{display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.1);color:#fff;font-size:.95rem;font-weight:600;line-height:1;padding:1.1rem 1.6rem;border-radius:6px;text-decoration:none;transition:background .15s cubic-bezier(.2,.6,.3,1)}
.ebl.ebl .ebl-u178{width:100%;max-width:460px;aspect-ratio:1/1;border-radius:10px;overflow:hidden;background:#fff}
.ebl.ebl .ebl-u179{width:100%;height:100%;object-fit:cover;object-position:50% 30%;display:block}
.ebl.ebl .ebl-u180{font-size:.78rem;color:#5F7889;margin-top:12px}
.ebl.ebl .ebl-u181{font-size:clamp(1.7rem,1.3rem + 1.4vw,2.3rem);max-width:20ch}
.ebl.ebl .ebl-u182{margin-top:20px;max-width:56ch;color:#5F7889}
.ebl.ebl .ebl-u183{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.ebl.ebl .ebl-u184{display:inline-flex;align-items:center;justify-content:center;background:#D8ECF6;color:#104C65;font-size:.95rem;font-weight:600;line-height:1;padding:1rem 1.6rem;border-radius:6px;text-decoration:none;transition:background .15s cubic-bezier(.2,.6,.3,1)}
.ebl.ebl .ebl-u185{display:inline-flex;align-items:center;justify-content:center;background:#E8EEE1;color:#4F6740;font-size:.95rem;font-weight:600;line-height:1;padding:1rem 1.6rem;border-radius:6px;text-decoration:none;transition:background .15s cubic-bezier(.2,.6,.3,1)}
.ebl.ebl .ebl-u186{position:relative;background:#FBF9F6}
.ebl.ebl .ebl-u187{position:absolute;right:0;top:0;height:700px;width:38%;overflow:hidden;z-index:0}
.ebl.ebl .ebl-u188{width:100%;height:100%;background-color:#FBF9F6;background-image:url('data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2216%22 height=%2216%22%3E%3Crect width=%2216%22 height=%2216%22 fill=%22%23FBF9F6%22/%3E%3Ccircle cx=%224%22 cy=%224%22 r=%221.5%22 fill=%22%23EDE5D8%22/%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%221.5%22 fill=%22%23EDE5D8%22/%3E%3C/svg%3E');background-repeat:repeat;background-size:16px 16px}
.ebl.ebl .ebl-u189{position:relative;z-index:1;max-width:1200px;margin:0 auto;box-sizing:border-box;padding:72px 46px 56px;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:48px;align-items:end}
.ebl.ebl .ebl-u190{font-size:clamp(2rem,1.1rem + 2.5vw,3.1rem);line-height:1.06;letter-spacing:-.018em;max-width:17ch;margin-top:16px}
.ebl.ebl .ebl-u191{font-size:1.05rem;line-height:1.55;max-width:46ch;margin-top:22px;color:#5F7889}
.ebl.ebl .ebl-u192{background:#fff;border-radius:10px;padding:32px;max-width:400px;justify-self:end;width:100%;box-sizing:border-box}
.ebl.ebl .ebl-u193{font-size:1.25rem;margin-top:18px}
.ebl.ebl .ebl-u194{font-size:.88rem;color:#5F7889;margin-top:10px}
.ebl.ebl .ebl-u195{display:inline-flex;align-items:center;gap:.5rem;color:#96632D;font-weight:600;font-size:.88rem;margin-top:18px;text-decoration:none}
.ebl.ebl .ebl-u196{position:relative;z-index:1;max-width:1200px;margin:0 auto;box-sizing:border-box;padding:0 46px 96px;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.ebl.ebl .ebl-u197{background:#D8ECF6;border-radius:10px;padding:32px;display:flex;flex-direction:column}
.ebl.ebl .ebl-u198{display:block;font-family:'Fraunces',Georgia,serif;font-variation-settings:'SOFT' 40,'WONK' 1;font-size:2.1rem;line-height:1;font-weight:600;color:#104C65;margin-top:22px}
.ebl.ebl .ebl-u199{font-size:1.3rem;margin-top:20px}
.ebl.ebl .ebl-u200{background:#F1F8FB;border-radius:10px;padding:32px;display:flex;flex-direction:column}
.ebl.ebl .ebl-u201{background:#F3E9D8;border-radius:10px;padding:32px;display:flex;flex-direction:column}
.ebl.ebl .ebl-u202{padding:96px 46px 0}
.ebl.ebl .ebl-u203{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:56px;align-items:stretch}
.ebl.ebl .ebl-u204{display:flex;flex-direction:column}
.ebl.ebl .ebl-u205{font-size:clamp(1.7rem,1.3rem + 1.4vw,2.3rem);margin-top:12px;max-width:18ch}
.ebl.ebl .ebl-u206{font-size:.9rem;font-weight:600;color:#104C65;margin-top:20px}
.ebl.ebl .ebl-u207{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;align-items:end;flex:1;min-height:260px;margin-top:18px}
.ebl.ebl .ebl-u208{display:flex;flex-direction:column;justify-content:flex-end;height:100%;gap:8px}
.ebl.ebl .ebl-u209{font-size:.8rem;font-weight:600;color:#104C65;text-align:center}
.ebl.ebl .ebl-u210{height:17%;background:#C6E7F6;border-radius:6px 6px 0 0}
.ebl.ebl .ebl-u211{height:28%;background:#9AD3EE;border-radius:6px 6px 0 0}
.ebl.ebl .ebl-u212{height:39%;background:#68BFE6;border-radius:6px 6px 0 0}
.ebl.ebl .ebl-u213{height:52%;background:#25A3DB;border-radius:6px 6px 0 0}
.ebl.ebl .ebl-u214{height:66%;background:#197199;border-radius:6px 6px 0 0}
.ebl.ebl .ebl-u215{height:82%;background:#104C65;border-radius:6px 6px 0 0}
.ebl.ebl .ebl-u216{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-top:10px}
.ebl.ebl .ebl-u217{font-size:.72rem;color:#5F7889;text-align:center}
.ebl.ebl .ebl-u218{background:#fff;border-radius:10px;padding:32px;display:flex;flex-direction:column}
.ebl.ebl .ebl-u219{font-size:1.4rem;margin-top:12px}
.ebl.ebl .ebl-u220{display:flex;gap:4px;margin-top:26px;height:34px;border-radius:6px;overflow:hidden}
.ebl.ebl .ebl-u221{flex:58;background:#C98A44}
.ebl.ebl .ebl-u222{flex:31;background:#197199}
.ebl.ebl .ebl-u223{flex:11;background:#A7BE95}
.ebl.ebl .ebl-u224{display:grid;gap:24px;margin-top:26px}
.ebl.ebl .ebl-u225{display:flex;gap:14px;align-items:baseline}
.ebl.ebl .ebl-u226{width:14px;height:14px;border-radius:3px;background:#C98A44;flex:none}
.ebl.ebl .ebl-u227{font-weight:600;font-size:1rem;color:#14212B}
.ebl.ebl .ebl-u228{margin-left:auto;font-family:'Fraunces',Georgia,serif;font-weight:600;color:#104C65}
.ebl.ebl .ebl-u229{width:14px;height:14px;border-radius:3px;background:#197199;flex:none}
.ebl.ebl .ebl-u230{width:14px;height:14px;border-radius:3px;background:#A7BE95;flex:none}
.ebl.ebl .ebl-u231{font-size:.85rem;color:#5F7889;margin-top:26px;flex:1}
.ebl.ebl .ebl-u232{font-size:.9rem;font-weight:600;color:#104C65;margin-top:20px;padding-top:0}
.ebl.ebl .ebl-u233{font-size:clamp(1.7rem,1.3rem + 1.4vw,2.3rem);margin-top:12px;max-width:20ch}
.ebl.ebl .ebl-u234{background:#F1F8FB;border-radius:10px;padding:32px;text-decoration:none;display:flex;flex-direction:column;align-items:flex-start;transition:transform .18s cubic-bezier(.2,.6,.3,1),background .15s cubic-bezier(.2,.6,.3,1)}
.ebl.ebl .ebl-u235{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700;color:#96632D}
.ebl.ebl .ebl-u236{font-size:1.3rem;margin-top:12px}
.ebl.ebl .ebl-u237{font-size:.88rem;color:#5F7889;margin-top:10px;flex:1}
.ebl.ebl .ebl-u238{display:inline-flex;align-items:center;gap:.5rem;color:#197199;font-weight:600;font-size:.88rem;margin-top:18px}
.ebl.ebl .ebl-u239{background:#F3E9D8;border-radius:10px;padding:32px;display:flex;flex-direction:column;align-items:flex-start}
.ebl.ebl .ebl-u240{font-size:.85rem;font-weight:600;color:#96632D;margin-top:18px}
.ebl.ebl .ebl-u241{background:#fff;border-radius:10px;padding:32px;display:flex;flex-direction:column;align-items:flex-start}
.ebl.ebl .ebl-u242{display:inline-flex;align-items:center;gap:.5rem;color:#197199;font-weight:600;font-size:.88rem;margin-top:18px;text-decoration:none}
.ebl.ebl .ebl-u243{font-size:clamp(1.7rem,1.3rem + 1.4vw,2.3rem);margin-top:12px;max-width:22ch}
.ebl.ebl .ebl-u244{margin-top:18px;max-width:52ch;color:#5F7889}
.ebl.ebl .ebl-u245{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-top:44px}
.ebl.ebl .ebl-u246{background:#fff;border-radius:10px;padding:24px;display:grid;gap:14px;justify-items:center}
.ebl.ebl .ebl-u247{width:100%;height:78px}
.ebl.ebl .ebl-u248{font-size:.8rem;font-weight:600;color:#5F7889;text-align:center}
.ebl.ebl .ebl-u249{background:#F1F8FB;border-radius:10px;padding:24px;display:flex;flex-direction:column;justify-content:center;gap:10px}
.ebl.ebl .ebl-u250{font-size:1.05rem}
.ebl.ebl .ebl-u251{font-size:.82rem;color:#5F7889}
.ebl.ebl .ebl-u252{font-size:.85rem;font-weight:600;color:#197199;text-decoration:none}
.ebl.ebl .ebl-u253{background:#104C65;padding:80px 46px}
.ebl.ebl .ebl-u254{max-width:1200px;margin:0 auto;display:flex;gap:40px;align-items:center;flex-wrap:wrap}
.ebl.ebl .ebl-u255{flex:1;min-width:280px}
.ebl.ebl .ebl-u256{font-size:clamp(1.7rem,1.3rem + 1.4vw,2.3rem);color:#fff;max-width:22ch}
.ebl.ebl .ebl-u257{margin-top:16px;max-width:46ch;color:#C2DAE5}
.ebl.ebl .ebl-u258{display:inline-flex;align-items:center;justify-content:center;background:#C98A44;color:#14212B;font-size:1rem;font-weight:600;line-height:1;padding:1.05rem 1.8rem;border-radius:6px;text-decoration:none;transition:background .15s cubic-bezier(.2,.6,.3,1)}
.ebl.ebl .ebl-u259{background:#082733;line-height:0}
.ebl.ebl .ebl-u260{position:relative;background:#FBF9F6;min-height:600px;display:flex;align-items:center}
.ebl.ebl .ebl-u261{width:100%;height:100%;background-color:#FBF9F6;background-image:url('data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2224%22 height=%2224%22%3E%3Crect width=%2224%22 height=%2224%22 fill=%22%23FBF9F6%22/%3E%3Cpath d=%22M0 12h24%22 stroke=%22%23F1EBE0%22 stroke-width=%222%22/%3E%3Cpath d=%22M12 0v24%22 stroke=%22%23F5F1EA%22 stroke-width=%222%22/%3E%3C/svg%3E');background-repeat:repeat;background-size:24px 24px}
.ebl.ebl .ebl-u262{position:relative;z-index:1;width:100%;box-sizing:border-box;max-width:1200px;margin:0 auto;padding:72px 46px 64px;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:56px;align-items:center}
.ebl.ebl .ebl-u263{font-size:clamp(2rem,1.1rem + 2.5vw,3.1rem);line-height:1.06;letter-spacing:-.018em;max-width:16ch;margin-top:16px}
.ebl.ebl .ebl-u264{font-size:1.05rem;line-height:1.55;max-width:44ch;margin-top:22px}
.ebl.ebl .ebl-u265{display:inline-flex;align-items:center;justify-content:center;background:#104C65;color:#fff;font-size:1rem;font-weight:600;line-height:1;padding:1.05rem 1.8rem;border-radius:6px;text-decoration:none;margin-top:28px;transition:background .15s cubic-bezier(.2,.6,.3,1)}
.ebl.ebl .ebl-u266{margin:0;position:relative;justify-self:end;width:100%;max-width:440px}
.ebl.ebl .ebl-u267{width:91%;aspect-ratio:1/1;max-height:520px;border-radius:6px;overflow:hidden;background:#fff;box-shadow:0 3px 6px rgba(8,39,51,.07),0 14px 30px rgba(8,39,51,.11)}
.ebl.ebl .ebl-u268{width:100%;height:100%;object-fit:cover;object-position:50% 50%;display:block}
.ebl.ebl .ebl-u269{position:absolute;left:-24px;bottom:-22px;background:#fff;color:#14212B;border-radius:6px;padding:14px 18px;font-size:.78rem;line-height:1.35;max-width:15rem;box-shadow:0 4px 8px rgba(8,39,51,.08),0 22px 48px rgba(8,39,51,.15)}
.ebl.ebl .ebl-u270{color:#96632D;font-weight:600}
.ebl.ebl .ebl-u271{font-size:clamp(1.8rem,1.3rem + 1.6vw,2.5rem);margin-top:12px;max-width:20ch}
.ebl.ebl .ebl-u272{font-size:.8rem;color:#104C65;font-weight:600;margin-top:16px}
.ebl.ebl .ebl-u273{font-size:.8rem;color:#4F6740;font-weight:600;margin-top:16px}
.ebl.ebl .ebl-u274{font-size:.8rem;color:#96632D;font-weight:600;margin-top:16px}
.ebl.ebl .ebl-u275{max-width:1200px;margin:0 auto;padding:96px 0 0}
.ebl.ebl .ebl-u276{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:48px;align-items:start;padding-top:64px}
.ebl.ebl .ebl-u277{font-size:clamp(1.7rem,1.3rem + 1.4vw,2.3rem);max-width:16ch;margin-top:20px}
.ebl.ebl .ebl-u278{margin-top:18px;max-width:44ch;color:#5F7889}
.ebl.ebl .ebl-u279{margin:36px 0 0;position:relative;width:100%;max-width:380px}
.ebl.ebl .ebl-u280{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:200px 200px 10px 10px}
.ebl.ebl .ebl-u281{position:absolute;top:34px;right:-26px;width:104px;height:104px;background:#fff;border-radius:50%;box-shadow:0 4px 8px rgba(8,39,51,.08),0 22px 48px rgba(8,39,51,.15)}
.ebl.ebl .ebl-u282{background:#fff;border-radius:10px;padding:32px;display:grid;gap:24px;align-items:start}
.ebl.ebl .ebl-u283{display:block}
.ebl.ebl .ebl-u284{width:100%;box-sizing:border-box;background:#fff;border:0;border-bottom:3px solid #5F7889;border-radius:2px 2px 0 0;padding:.85rem .9rem;font-size:.95rem;color:#14212B}
.ebl.ebl .ebl-u285{border:0;padding:0;margin:0;grid-column:1 / -1}
.ebl.ebl .ebl-u286{font-size:.78rem;font-weight:600;color:#104C65;margin-bottom:12px;padding:0}
.ebl.ebl .ebl-u287{display:grid;gap:10px}
.ebl.ebl .ebl-u288{display:flex;gap:12px;align-items:center;background:#F1F8FB;border-radius:6px;padding:.8rem 1rem;font-size:.92rem;cursor:pointer}
.ebl.ebl .ebl-u289{width:20px;height:20px;accent-color:#104C65}
.ebl.ebl .ebl-u290{display:block;grid-column:1 / -1}
.ebl.ebl .ebl-u291{width:100%;box-sizing:border-box;background:#fff;border:0;border-bottom:3px solid #5F7889;border-radius:2px 2px 0 0;padding:.85rem .9rem;font-size:.95rem;color:#14212B;resize:vertical}
.ebl.ebl .ebl-u292{justify-self:start;grid-column:1 / -1;background:#104C65;color:#fff;border:0;font-size:.95rem;font-weight:600;line-height:1;padding:1rem 1.7rem;border-radius:6px;cursor:pointer;transition:background .15s cubic-bezier(.2,.6,.3,1)}
.ebl.ebl .ebl-u293{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:48px;align-items:start}
.ebl.ebl .ebl-u294{display:grid;gap:16px}
.ebl.ebl .ebl-u295{background:rgba(255,255,255,.08);border-radius:10px;padding:28px;text-decoration:none;color:#fff;display:flex;flex-direction:column;align-items:flex-start;transition:transform .18s cubic-bezier(.2,.6,.3,1),background .15s cubic-bezier(.2,.6,.3,1)}
.ebl.ebl .ebl-u296{font-size:1.2rem;color:#fff}
.ebl.ebl .ebl-u297{font-size:.9rem;color:#C2DAE5;margin-top:10px}
.ebl.ebl .ebl-u298{display:inline-flex;align-items:center;gap:.5rem;color:#E7C58F;font-weight:600;font-size:.88rem;margin-top:18px}
.ebl.ebl .ebl-u299{font-size:clamp(1.7rem,1.3rem + 1.4vw,2.3rem);margin-top:12px;max-width:20ch;color:#fff}
.ebl.ebl .ebl-u300{display:block;width:100%;max-width:460px;aspect-ratio:5/4;object-fit:cover;border-radius:10px;margin-top:32px}
.ebl.ebl .ebl-u301{position:relative;z-index:1;max-width:1200px;margin:0 auto;padding:72px 46px 64px;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:56px;align-items:start}
.ebl.ebl .ebl-u302{position:sticky;top:104px}
.ebl.ebl .ebl-u303{font-size:1.05rem;line-height:1.55;max-width:42ch;margin-top:22px}
.ebl.ebl .ebl-u304{font-size:.9rem;color:#5F7889;margin-top:20px;max-width:42ch}
.ebl.ebl .ebl-u305{position:relative}
.ebl.ebl .ebl-u306{position:absolute;left:0;right:0;top:-11px;display:flex;justify-content:center;z-index:2}
.ebl.ebl .ebl-u307{background:#104C65;color:#fff;font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:.4rem .8rem;border-radius:4px}
.ebl.ebl .ebl-u308{background:#fff;border-radius:10px;padding:32px;box-shadow:0 4px 8px rgba(8,39,51,.08),0 22px 48px rgba(8,39,51,.15)}
.ebl.ebl .ebl-u309{font-size:1.6rem;margin-top:10px}
.ebl.ebl .ebl-u310{display:flex;gap:4px;background:#F1F8FB;border-radius:6px;padding:4px;margin-top:20px}
.ebl.ebl .ebl-u311{flex:1;background:#FFFFFF;color:#104C65;border:0;border-radius:4px;padding:.7rem;font-size:.88rem;font-weight:700;cursor:pointer}
.ebl.ebl .ebl-u312{flex:1;background:transparent;color:#104C65;border:0;border-radius:4px;padding:.7rem;font-size:.88rem;font-weight:500;cursor:pointer}
.ebl.ebl .ebl-u313{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:14px}
.ebl.ebl .ebl-u314{background:#F1F8FB;color:#104C65;border:0;border-radius:6px;padding:1rem .5rem;font-size:1.05rem;font-weight:600;cursor:pointer;transition:background .15s cubic-bezier(.2,.6,.3,1)}
.ebl.ebl .ebl-u315{display:block;margin-top:14px}
.ebl.ebl .ebl-u316{display:block;font-size:.75rem;font-weight:600;color:#104C65;margin-bottom:6px}
.ebl.ebl .ebl-u317{width:100%;box-sizing:border-box;background:#fff;border:0;border-bottom:3px solid #5F7889;border-radius:2px 2px 0 0;padding:.8rem .9rem;font-size:.92rem;color:#14212B}
.ebl.ebl .ebl-u318{height:5px;margin:22px 0 20px}
.ebl.ebl .ebl-u319{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ebl.ebl .ebl-u320{display:flex;gap:12px;align-items:center;background:#F1F8FB;border-radius:6px;padding:.8rem 1rem;font-size:.85rem;margin-top:16px;cursor:pointer}
.ebl.ebl .ebl-u321{width:100%;background:#C98A44;color:#14212B;border:0;font-size:1.05rem;font-weight:600;line-height:1;padding:1.1rem 2rem;border-radius:6px;cursor:pointer;margin-top:20px;transition:background .15s cubic-bezier(.2,.6,.3,1)}
.ebl.ebl .ebl-u322{display:flex;gap:10px;margin-top:12px}
.ebl.ebl .ebl-u323{flex:1;display:inline-flex;align-items:center;justify-content:center;background:#E2EEF4;color:#104C65;font-size:.9rem;font-weight:600;line-height:1;padding:.95rem 1rem;border-radius:6px;text-decoration:none;transition:background .15s cubic-bezier(.2,.6,.3,1)}
.ebl.ebl .ebl-u324{font-size:.78rem;color:#5F7889;margin-top:14px}
.ebl.ebl .ebl-u325{font-size:.75rem;color:#5F7889;margin-top:14px;text-align:center}
.ebl.ebl .ebl-u326{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:44px}
.ebl.ebl .ebl-u327{display:block;font-family:'Fraunces',Georgia,serif;font-size:2rem;line-height:1;color:#104C65;font-variation-settings:'SOFT' 40,'WONK' 1}
.ebl.ebl .ebl-u328{font-size:.92rem;color:#5F7889;margin-top:14px}
.ebl.ebl .ebl-u329{display:block;font-family:'Fraunces',Georgia,serif;font-size:2rem;line-height:1;color:#4F6740;font-variation-settings:'SOFT' 40,'WONK' 1}
.ebl.ebl .ebl-u330{display:block;font-family:'Fraunces',Georgia,serif;font-size:2rem;line-height:1;color:#96632D;font-variation-settings:'SOFT' 40,'WONK' 1}
.ebl.ebl .ebl-u331{font-size:.8rem;color:#5F7889;margin-top:20px;max-width:60ch}
.ebl.ebl .ebl-u332{display:inline-flex;align-items:center;gap:.5rem;color:#197199;font-weight:600;font-size:.9rem;text-decoration:none;margin-top:18px;transition:color .15s cubic-bezier(.2,.6,.3,1)}
.ebl.ebl .ebl-u333{display:inline-flex;align-items:center;gap:8px;font-size:.78rem;font-weight:600;color:#96632D;margin-top:18px}
.ebl.ebl .ebl-u334{font-size:.8rem;color:#96632D;font-weight:600;margin-top:18px}
.ebl.ebl .ebl-u335{background:#104C65;color:#fff;padding:80px 46px 72px}
.ebl.ebl .ebl-u336{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:32px;margin-top:36px;max-width:1000px}
.ebl.ebl .ebl-u337{color:#C2DAE5;font-size:.95rem}
.ebl.ebl .ebl-u338{color:#B4D3E0;font-size:.8rem;margin-top:28px}
.ebl.ebl .ebl-u339{position:relative;z-index:1}
.ebl.ebl .ebl-u340{position:absolute;right:0;top:0;height:700px;width:34%;background-color:#FBF9F6;background-image:url('data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2230%22 height=%2214%22%3E%3Crect width=%2230%22 height=%2214%22 fill=%22%23FBF9F6%22/%3E%3Cpath d=%22M4 0v14%22 stroke=%22%23EFE7DA%22 stroke-width=%222.5%22/%3E%3C/svg%3E');background-repeat:repeat;background-size:30px 14px;z-index:0}
.ebl.ebl .ebl-u341{position:relative;z-index:1;max-width:1200px;margin:0 auto;padding:72px 46px 56px;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:56px;align-items:center}
.ebl.ebl .ebl-u342{font-size:1.05rem;line-height:1.55;max-width:46ch;margin-top:22px}
.ebl.ebl .ebl-u343{border-radius:10px;overflow:hidden;background:#fff;aspect-ratio:4/3;box-shadow:0 4px 8px rgba(8,39,51,.08),0 22px 48px rgba(8,39,51,.15)}
.ebl.ebl .ebl-u344{position:absolute;left:-20px;bottom:-26px;background:#fff;color:#14212B;border-radius:6px;padding:14px 18px;font-size:.78rem;line-height:1.35;max-width:15rem;box-shadow:0 4px 8px rgba(8,39,51,.08),0 22px 48px rgba(8,39,51,.15)}
.ebl.ebl .ebl-u345{position:relative;z-index:1;padding:0 46px 96px}
.ebl.ebl .ebl-u346{min-width:0;border-radius:10px;overflow:hidden;background:#D8ECF6;min-height:420px;position:relative;display:flex;flex-direction:column}
.ebl.ebl .ebl-u347{border:0;width:100%;flex:1;min-height:420px;display:block}
.ebl.ebl .ebl-u348{min-width:0;display:grid;gap:16px;grid-template-rows:auto 1fr}
.ebl.ebl .ebl-u349{background:#104C65;color:#fff;border-radius:10px;padding:32px}
.ebl.ebl .ebl-u350{font-size:1.7rem;color:#fff}
.ebl.ebl .ebl-u351{margin-top:16px;font-size:1rem;color:#fff}
.ebl.ebl .ebl-u352{margin-top:14px;font-size:.95rem;color:#C2DAE5}
.ebl.ebl .ebl-u353{display:grid;gap:6px;margin-top:18px}
.ebl.ebl .ebl-u354{color:#E7C58F;font-weight:600;text-decoration:none;font-size:1rem;padding:.25rem 0}
.ebl.ebl .ebl-u355{display:inline-flex;align-items:center;justify-content:center;background:#C98A44;color:#14212B;font-size:.95rem;font-weight:600;line-height:1;padding:1rem 1.6rem;border-radius:6px;text-decoration:none;margin-top:24px;transition:background .15s cubic-bezier(.2,.6,.3,1)}
.ebl.ebl .ebl-u356{font-size:clamp(1.8rem,1.3rem + 1.6vw,2.5rem);margin-top:12px;max-width:22ch}
.ebl.ebl .ebl-u357{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:48px;align-items:start}
.ebl.ebl .ebl-u358{font-size:clamp(1.7rem,1.3rem + 1.4vw,2.3rem);max-width:18ch}
.ebl.ebl .ebl-u359{margin-top:18px;max-width:44ch;color:#5F7889;font-size:.9rem}
.ebl.ebl .ebl-u360{margin-top:32px}
.ebl.ebl .ebl-u361{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:14px}
.ebl.ebl .ebl-u362{margin-top:18px;font-size:.85rem;color:#5F7889;max-width:44ch}
.ebl.ebl .ebl-u363{background:#fff;border-radius:10px;padding:32px;display:grid;gap:24px;scroll-margin-top:110px}
.ebl.ebl .ebl-u364{justify-self:start;background:#104C65;color:#fff;border:0;font-size:.95rem;font-weight:600;line-height:1;padding:1rem 1.7rem;border-radius:6px;cursor:pointer;transition:background .15s cubic-bezier(.2,.6,.3,1)}
.ebl.ebl .ebl-u365{background:#104C65;color:#fff;padding:56px 46px}
.ebl.ebl .ebl-u366{max-width:1200px;margin:0 auto;display:flex;gap:32px;flex-wrap:wrap;align-items:center}
.ebl.ebl .ebl-u367{font-family:'Fraunces',Georgia,serif;font-size:clamp(1.3rem,1rem + 1.4vw,2rem);font-weight:600;line-height:1.25;font-variation-settings:'SOFT' 40,'WONK' 1;max-width:26ch}
.ebl.ebl .ebl-u368{display:inline-flex;align-items:center;justify-content:center;background:#C98A44;color:#14212B;font-size:1.05rem;font-weight:600;line-height:1;padding:1.1rem 2rem;border-radius:6px;text-decoration:none;margin-left:auto;transition:background .15s cubic-bezier(.2,.6,.3,1)}

/* ---------------------------------------------------------- 6. hover states */
.ebl.ebl .ebl-h1:hover{color:#96632D;--st:1}
.ebl.ebl .ebl-h2:hover{background:#D89C57;color:#14212B}
.ebl.ebl .ebl-h3:hover{color:#104C65}
.ebl.ebl .ebl-h4:hover{background:#C6E7F6;color:#104C65}
.ebl.ebl .ebl-h5:hover{color:#F7EBD9}
.ebl.ebl .ebl-h6:hover{background:#C2DAE5}
.ebl.ebl .ebl-h7:hover{color:#6E8B5B}
.ebl.ebl .ebl-h8:hover{background:#0C3A4D;color:#fff}
.ebl.ebl .ebl-h9:hover{background:#0C3A4D}
.ebl.ebl .ebl-h10:hover{background:rgba(255,255,255,.18)}
.ebl.ebl .ebl-h11:hover{background:#C6E7F6}
.ebl.ebl .ebl-h12:hover{background:#DCE6D1}
.ebl.ebl .ebl-h13:hover{background:#D8ECF6;transform:translateY(-4px)}
.ebl.ebl .ebl-h14:hover{background:rgba(255,255,255,.14);transform:translateY(-4px)}
.ebl.ebl .ebl-h15:hover{background:#D89C57}/* ------------------------------------------------------------- 7. responsive
   Container 1200px. 3-up and 4-up grids collapse via auto-fit. The hero stacks
   to one column below ~900px with the photo second. Section padding drops
   96 -> 48px on mobile. */
@media (max-width:1100px){
.ebl.ebl .ebl{--gutter:32px}
}
@media (max-width:900px){
.ebl.ebl .ebl-hero-grid{grid-template-columns:1fr!important}
.ebl.ebl .ebl-hero-grid > *{max-width:none!important}
.ebl.ebl .ebl-hero-cloth{width:100%!important;top:auto!important;height:38%!important;bottom:0!important;opacity:.85}
.ebl.ebl .ebl-split{grid-template-columns:1fr!important}
}
/* The header must stay on one line until the nav collapses, so tighten the
   lockup gap and the nav gap before the bar has a chance to wrap. */
@media (max-width:1120px){
.ebl.ebl .ebl-header{gap:18px}
.ebl.ebl .ebl-nav{gap:18px}
}
@media (max-width:980px){
.ebl.ebl .ebl-header{gap:14px;padding:14px 32px}
.ebl.ebl .ebl-nav{gap:14px}
.ebl.ebl .ebl-nav-link{font-size:.74rem}
.ebl.ebl .ebl-lockup{height:32px}
}
@media (max-width:900px){
.ebl.ebl .ebl{--gutter:24px}
.ebl.ebl .ebl-section, .ebl.ebl .ebl-sect{padding-top:48px;padding-bottom:48px}
}
@media (max-width:880px){
.ebl.ebl .ebl-header{gap:12px}
.ebl.ebl .ebl-header .ebl-nav{display:none}
.ebl.ebl .ebl-header .ebl-nav.is-open{display:flex;order:4;width:100%;flex-direction:column;
    align-items:stretch;gap:2px;margin-left:0;padding-top:4px}
.ebl.ebl .ebl-header .ebl-nav.is-open .ebl-nav-link{width:100%;padding:11px 0;font-size:.9rem}
.ebl.ebl .ebl-header .ebl-header-cta{margin-left:auto}
.ebl.ebl .ebl-navtoggle{display:flex;margin-left:0}
}
@media (max-width:560px){
.ebl.ebl .ebl-lockup{height:30px}
}
/* Fixed-column grids and two-column splits collapse in steps. Addressed by
   pattern hooks (.ebl-cols-N / .ebl-split / .ebl-autogrid) rather than by
   generated utility numbers, so these rules survive a design change. */
@media (max-width:1000px){
.ebl.ebl .ebl-cols-4{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
.ebl.ebl .ebl-split{grid-template-columns:1fr}
}
/* 760px is the client's own breakpoint, the one its script uses for the
   illustrated row. The fixed-column grids share it. */
@media (max-width:760px){
.ebl.ebl .ebl-cols-2, .ebl.ebl .ebl-cols-3, .ebl.ebl .ebl-cols-5{grid-template-columns:1fr}
}
@media (max-width:620px){
.ebl.ebl .ebl-cols-4{grid-template-columns:1fr}
}
/* The one place the client's file is left behind. Its grids keep a 320px track
   minimum, and on a 360px or 320px phone that minimum is wider than the
   viewport allows, so the page scrolls sideways: the prototype does it too,
   measured at both widths. Below 380px every auto-fit grid drops its minimum
   and runs as one column, which is where it was heading anyway. Nothing above
   380px is touched, so the client's own collapse points all stand. */
@media (max-width:380px){
.ebl.ebl .ebl-grid--cards, .ebl.ebl .ebl-grid--stats, .ebl.ebl .ebl-grid--split, .ebl.ebl .ebl-grid--split-300, .ebl.ebl .ebl-grid--split-top, .ebl.ebl .ebl-grid--panels, .ebl.ebl .ebl-grid--hero, .ebl.ebl .ebl-signup, .ebl.ebl /* the four inner pages' grids belong here too: a track minimum left out of
     this list is a page that scrolls sideways on a 360px phone */
  .ebl-grid--tiles-240, .ebl.ebl .ebl-grid--tiles-260, .ebl.ebl .ebl-grid--tiles-280, .ebl.ebl .ebl-grid--tiles-300, .ebl.ebl .ebl-grid--split-280, .ebl.ebl .ebl-grid--split-300-top, .ebl.ebl .ebl-grid--split-300-48, .ebl.ebl .ebl-grid--split-320, .ebl.ebl .ebl-grid--split-360, .ebl.ebl .ebl-grid--map, .ebl.ebl .ebl-grid--claims, .ebl.ebl .ebl-grid--hero-320, .ebl.ebl .ebl-form, .ebl.ebl .ebl-donate__amounts, .ebl.ebl .ebl-donate__split{grid-template-columns:1fr}
.ebl.ebl .ebl-autogrid{grid-template-columns:1fr}
}
@media (max-width:520px){
.ebl.ebl .ebl-pad-32{padding:22px}
.ebl.ebl .ebl-pad-48{padding:28px 20px}
}
@media (max-width:560px){
.ebl.ebl .ebl-arch{aspect-ratio:4/5}
.ebl.ebl .ebl-illo{width:60px;height:60px}
.ebl.ebl .ebl-illo.is-anchor{width:88px;height:88px}
}
@media (max-width:480px){
.ebl.ebl .ebl-row > .elementor-widget{width:100%}
.ebl.ebl .ebl-row{gap:14px;align-items:stretch}
.ebl.ebl .ebl-btn{width:100%}
.ebl.ebl .ebl-header .ebl-btn--donate, .ebl.ebl .ebl-btn.is-inline{width:auto}
.ebl.ebl .ebl-tag{font-size:1.15rem}
.ebl.ebl .ebl-header{padding:12px var(--gutter);gap:8px}
.ebl.ebl .ebl-lockup{height:26px}
.ebl.ebl .ebl-header .ebl-header-cta{font-size:.75rem;padding:.6rem .8rem}
}
@media (max-width:370px){
.ebl.ebl .ebl-lockup{height:23px}
.ebl.ebl .ebl-header .ebl-header-cta{font-size:.72rem;padding:.6rem .7rem}
}
/* -------------------------------------------------- 8. Elementor integration
   Only the theme-agnostic bits live here. Everything that neutralises
   Elementor's own container and widget defaults is generated into
   ebl-elementor.css, which must be enqueued after this file. */
.ebl .elementor-widget-image img{display:block}
.ebl .ebl-bleed{width:100%;max-width:none;margin-left:0;margin-right:0}
/* Common theme resets, so a theme update cannot shift the design. */
.ebl main, .ebl .site-main, .ebl .entry-content, .ebl .content-area{margin:0;padding:0;max-width:none}
.ebl .entry-content > *{margin-block:0}
