.elementor-2324 .elementor-element.elementor-element-5118c5f4{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-2324 .elementor-element.elementor-element-5118c5f4:not(.elementor-motion-effects-element-type-background), .elementor-2324 .elementor-element.elementor-element-5118c5f4 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:transparent;background-image:linear-gradient(180deg, var( --e-global-color-text ) 0%, var( --e-global-color-secondary ) 61%);}.elementor-2324 .elementor-element.elementor-element-5737c3d3{--display:flex;--justify-content:center;--gap:13px 0px;--row-gap:13px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:80px;--padding-right:0px;}.elementor-2324 .elementor-element.elementor-element-5c2cabc4 > .elementor-widget-container{padding:68px 0px 0px 0px;}.elementor-2324 .elementor-element.elementor-element-5c2cabc4 .elementor-heading-title{font-family:"Sorts Mill Goudy";font-size:45px;font-weight:500;color:var( --e-global-color-accent );}.elementor-2324 .elementor-element.elementor-element-eef18ce{font-family:"josefin-slab";font-size:18px;color:var( --e-global-color-accent );}.elementor-2324 .elementor-element.elementor-element-5ee6974a .elementor-button{background-color:#3D5B9100;font-family:var( --e-global-typography-text-font-family );font-weight:var( --e-global-typography-text-font-weight );fill:var( --e-global-color-accent );color:var( --e-global-color-accent );border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-accent );border-radius:23px 23px 23px 23px;padding:10px 45px 10px 45px;}.elementor-2324 .elementor-element.elementor-element-5ee6974a .elementor-button:hover, .elementor-2324 .elementor-element.elementor-element-5ee6974a .elementor-button:focus{background-color:var( --e-global-color-accent );color:var( --e-global-color-secondary );}.elementor-2324 .elementor-element.elementor-element-5ee6974a{width:var( --container-widget-width, 63% );max-width:63%;--container-widget-width:63%;--container-widget-flex-grow:0;}.elementor-2324 .elementor-element.elementor-element-5ee6974a > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 10px 10px 0px;}.elementor-2324 .elementor-element.elementor-element-5ee6974a .elementor-button:hover svg, .elementor-2324 .elementor-element.elementor-element-5ee6974a .elementor-button:focus svg{fill:var( --e-global-color-secondary );}.elementor-2324 .elementor-element.elementor-element-7bc37979{--display:flex;--padding-top:60px;--padding-bottom:60px;--padding-left:60px;--padding-right:80px;}.elementor-2324 .elementor-element.elementor-element-26432171 > .elementor-widget-container{padding:0px 0px 0px 0px;border-style:solid;border-width:6px 6px 6px 6px;border-color:var( --e-global-color-accent );border-radius:10px 10px 10px 10px;box-shadow:0px 0px 10px 0px rgba(0,0,0,0.5);}.elementor-2324 .elementor-element.elementor-element-26432171 img{width:100%;box-shadow:0px 0px 5px 2px rgba(0, 0, 0, 0.29);}.elementor-2324 .elementor-element.elementor-element-7d212234{--display:flex;}.elementor-2324 .elementor-element.elementor-element-7d212234:not(.elementor-motion-effects-element-type-background), .elementor-2324 .elementor-element.elementor-element-7d212234 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-accent );}.elementor-2324 .elementor-element.elementor-element-21620593 > .elementor-widget-container{margin:15px 0px 0px 0px;padding:8px 0px 8px 0px;border-style:solid;border-width:2px 0px 2px 0px;border-color:var( --e-global-color-text );border-radius:0px 0px 0px 0px;}.elementor-2324 .elementor-element.elementor-element-21620593{text-align:center;}.elementor-2324 .elementor-element.elementor-element-21620593 .elementor-heading-title{font-family:"josefin-slab";font-size:30px;font-weight:500;color:var( --e-global-color-text );}.elementor-2324 .elementor-element.elementor-element-78e89588{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-2324 .elementor-element.elementor-element-78e89588:not(.elementor-motion-effects-element-type-background), .elementor-2324 .elementor-element.elementor-element-78e89588 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-accent );}.elementor-2324 .elementor-element.elementor-element-465e4a0{width:var( --container-widget-width, 42% );max-width:42%;--container-widget-width:42%;--container-widget-flex-grow:0;text-align:center;}.elementor-2324 .elementor-element.elementor-element-465e4a0 > .elementor-widget-container{margin:0px 0px 0px 0px;padding:40px 0px 0px 0px;}.elementor-2324 .elementor-element.elementor-element-465e4a0.elementor-element{--align-self:center;}.elementor-2324 .elementor-element.elementor-element-465e4a0 img{width:100%;}.elementor-2324 .elementor-element.elementor-element-7c3feeb3{--display:flex;}.elementor-2324 .elementor-element.elementor-element-6fff7c36 > .elementor-widget-container{background-color:transparent;padding:40px 40px 40px 40px;background-image:radial-gradient(at center center, var( --e-global-color-text ) 75%, var( --e-global-color-secondary ) 100%);border-style:solid;border-width:2px 2px 2px 2px;border-color:#000000;border-radius:45px 45px 45px 45px;}.elementor-2324 .elementor-element.elementor-element-6fff7c36{text-align:center;font-family:"josefin-slab";color:var( --e-global-color-accent );}.elementor-2324 .elementor-element.elementor-element-504d4290{--n-accordion-title-font-size:15px;width:var( --container-widget-width, 53% );max-width:53%;--container-widget-width:53%;--container-widget-flex-grow:0;--n-accordion-title-justify-content:center;--n-accordion-title-flex-grow:initial;--n-accordion-item-title-space-between:0px;--n-accordion-item-title-distance-from-content:0px;--n-accordion-border-radius:10px 10px 10px 10px;--n-accordion-title-normal-color:var( --e-global-color-secondary );--n-accordion-title-hover-color:var( --e-global-color-secondary );--n-accordion-title-active-color:var( --e-global-color-secondary );--n-accordion-icon-size:15px;}.elementor-2324 .elementor-element.elementor-element-504d4290 > .elementor-widget-container > .e-n-accordion > .e-n-accordion-item > .e-n-accordion-item-title{background-color:#FFFDF400;border-style:none;}.elementor-2324 .elementor-element.elementor-element-504d4290 > .elementor-widget-container{padding:20px 0px 20px 0px;}.elementor-2324 .elementor-element.elementor-element-504d4290.elementor-element{--align-self:center;}:where( .elementor-2324 .elementor-element.elementor-element-504d4290 > .elementor-widget-container > .e-n-accordion > .e-n-accordion-item > .e-n-accordion-item-title > .e-n-accordion-item-title-header ) > .e-n-accordion-item-title-text{font-family:"josefin-slab";font-weight:500;}.elementor-2324 .elementor-element.elementor-element-54f2d2e5{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-2324 .elementor-element.elementor-element-54f2d2e5:not(.elementor-motion-effects-element-type-background), .elementor-2324 .elementor-element.elementor-element-54f2d2e5 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:transparent;background-image:linear-gradient(180deg, var( --e-global-color-text ) 0%, var( --e-global-color-secondary ) 61%);}.elementor-2324 .elementor-element.elementor-element-b7daf6e{--display:flex;--padding-top:60px;--padding-bottom:60px;--padding-left:60px;--padding-right:80px;}.elementor-2324 .elementor-element.elementor-element-322aa82b > .elementor-widget-container{padding:0px 0px 0px 0px;border-style:solid;border-width:6px 6px 6px 6px;border-color:var( --e-global-color-accent );border-radius:10px 10px 10px 10px;box-shadow:0px 0px 10px 0px rgba(0,0,0,0.5);}.elementor-2324 .elementor-element.elementor-element-322aa82b img{width:100%;box-shadow:0px 0px 5px 2px rgba(0, 0, 0, 0.29);}.elementor-2324 .elementor-element.elementor-element-1e954da4{--display:flex;--justify-content:center;--gap:13px 0px;--row-gap:13px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:80px;}.elementor-2324 .elementor-element.elementor-element-280a7440{font-family:"adobe-handwriting-ernie";font-size:25px;color:var( --e-global-color-accent );}.elementor-2324 .elementor-element.elementor-element-4c4351e0 > .elementor-widget-container{padding:0px 0px 0px 0px;}.elementor-2324 .elementor-element.elementor-element-4c4351e0 .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family );font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-accent );}.elementor-2324 .elementor-element.elementor-element-2bf6f3da{font-family:var( --e-global-typography-text-font-family );font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-accent );}.elementor-2324 .elementor-element.elementor-element-97aae6a{--display:flex;--padding-top:32px;--padding-bottom:32px;--padding-left:32px;--padding-right:32px;}.elementor-2324 .elementor-element.elementor-element-97aae6a:not(.elementor-motion-effects-element-type-background), .elementor-2324 .elementor-element.elementor-element-97aae6a > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-accent );}.elementor-2324 .elementor-element.elementor-element-557eebdd > .elementor-widget-container{padding:0px 0px 15px 0px;}.elementor-2324 .elementor-element.elementor-element-557eebdd{text-align:center;}.elementor-2324 .elementor-element.elementor-element-557eebdd .elementor-heading-title{font-family:var( --e-global-typography-secondary-font-family );font-weight:var( --e-global-typography-secondary-font-weight );color:var( --e-global-color-secondary );}.elementor-2324 .elementor-element.elementor-element-5e26507b .elementor-button{background-color:#3D5B9100;font-family:var( --e-global-typography-text-font-family );font-weight:var( --e-global-typography-text-font-weight );fill:var( --e-global-color-secondary );color:var( --e-global-color-secondary );border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-secondary );border-radius:23px 23px 23px 23px;padding:10px 45px 10px 45px;}.elementor-2324 .elementor-element.elementor-element-5e26507b .elementor-button:hover, .elementor-2324 .elementor-element.elementor-element-5e26507b .elementor-button:focus{background-color:var( --e-global-color-accent );color:var( --e-global-color-secondary );}.elementor-2324 .elementor-element.elementor-element-5e26507b{width:var( --container-widget-width, 100% );max-width:100%;--container-widget-width:100%;--container-widget-flex-grow:0;}.elementor-2324 .elementor-element.elementor-element-5e26507b > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 10px 0px;}.elementor-2324 .elementor-element.elementor-element-5e26507b .elementor-button:hover svg, .elementor-2324 .elementor-element.elementor-element-5e26507b .elementor-button:focus svg{fill:var( --e-global-color-secondary );}:root{--page-title-display:none;}@media(min-width:768px){.elementor-2324 .elementor-element.elementor-element-7bc37979{--width:74%;}.elementor-2324 .elementor-element.elementor-element-b7daf6e{--width:74%;}}@media(max-width:767px){.elementor-2324 .elementor-element.elementor-element-5737c3d3{--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-2324 .elementor-element.elementor-element-5c2cabc4 > .elementor-widget-container{padding:30px 025px 0px 025px;}.elementor-2324 .elementor-element.elementor-element-5c2cabc4{text-align:center;}.elementor-2324 .elementor-element.elementor-element-eef18ce > .elementor-widget-container{padding:0px 25px 0px 25px;}.elementor-2324 .elementor-element.elementor-element-eef18ce{text-align:center;}.elementor-2324 .elementor-element.elementor-element-5ee6974a > .elementor-widget-container{padding:0px 0px 0px 0px;}.elementor-2324 .elementor-element.elementor-element-5ee6974a{--container-widget-width:224px;--container-widget-flex-grow:0;width:var( --container-widget-width, 224px );max-width:224px;}.elementor-2324 .elementor-element.elementor-element-5ee6974a.elementor-element{--align-self:center;}.elementor-2324 .elementor-element.elementor-element-7bc37979{--padding-top:25px;--padding-bottom:25px;--padding-left:25px;--padding-right:25px;}.elementor-2324 .elementor-element.elementor-element-26432171 > .elementor-widget-container{padding:0px 0px 111px 0px;}.elementor-2324 .elementor-element.elementor-element-78e89588{--min-height:234px;--padding-top:21px;--padding-bottom:21px;--padding-left:21px;--padding-right:21px;}.elementor-2324 .elementor-element.elementor-element-465e4a0 > .elementor-widget-container{padding:0px 0px 0px 0px;}.elementor-2324 .elementor-element.elementor-element-465e4a0{--container-widget-width:261px;--container-widget-flex-grow:0;width:var( --container-widget-width, 261px );max-width:261px;}.elementor-2324 .elementor-element.elementor-element-465e4a0 img{max-width:100%;}.elementor-2324 .elementor-element.elementor-element-6fff7c36 > .elementor-widget-container{padding:10px 10px 10px 10px;}.elementor-2324 .elementor-element.elementor-element-504d4290{--container-widget-width:1000px;--container-widget-flex-grow:0;width:var( --container-widget-width, 1000px );max-width:1000px;}.elementor-2324 .elementor-element.elementor-element-b7daf6e{--padding-top:25px;--padding-bottom:25px;--padding-left:25px;--padding-right:25px;}.elementor-2324 .elementor-element.elementor-element-322aa82b > .elementor-widget-container{padding:0px 0px 115px 0px;}.elementor-2324 .elementor-element.elementor-element-1e954da4{--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-2324 .elementor-element.elementor-element-280a7440 > .elementor-widget-container{padding:20px 0px 0px 0px;}.elementor-2324 .elementor-element.elementor-element-280a7440{text-align:center;}.elementor-2324 .elementor-element.elementor-element-4c4351e0 > .elementor-widget-container{padding:0px 025px 0px 025px;}.elementor-2324 .elementor-element.elementor-element-4c4351e0{text-align:center;}.elementor-2324 .elementor-element.elementor-element-2bf6f3da > .elementor-widget-container{padding:15px 25px 15px 25px;}.elementor-2324 .elementor-element.elementor-element-2bf6f3da{text-align:center;}.elementor-2324 .elementor-element.elementor-element-557eebdd > .elementor-widget-container{padding:0px 0px 0px 0px;}.elementor-2324 .elementor-element.elementor-element-557eebdd{text-align:center;}.elementor-2324 .elementor-element.elementor-element-5e26507b > .elementor-widget-container{padding:10px 0px 0px 0px;}.elementor-2324 .elementor-element.elementor-element-5e26507b{--container-widget-width:224px;--container-widget-flex-grow:0;width:var( --container-widget-width, 224px );max-width:224px;}.elementor-2324 .elementor-element.elementor-element-5e26507b.elementor-element{--align-self:center;}}/* Start custom CSS for container, class: .elementor-element-7d212234 *//*
Elementor Pro Custom CSS (paste into the container's Custom CSS)
Goal: Paper/grain background WITHOUT altering any inner elements.
Key fix: DO NOT style .elementor-2324 .elementor-element.elementor-element-7d212234 > * (that can change Elementor widget positioning).

How this works:
- The container becomes a stacking context (isolation + z-index:0)
- Two pseudo-layers sit BEHIND content (negative z-index), but ABOVE the container's background
- No changes to children, so nested containers/widgets won't reflow/warp
*/

.elementor-2324 .elementor-element.elementor-element-7d212234{
  /* ===== Tunables ===== */
  --paper-base: #fffdf4;                 /* your exact base */

  /* lighting (cool-but-still-warm) */
  --paper-warm: rgba(255, 244, 225, 0.55);
  --paper-cool: rgba(235, 244, 255, 0.18);
  --paper-shade: rgba(0, 0, 0, 0.045);

  /* grain */
  --grain-opacity: 0.30;                /* more grain */
  --grain-size: 560px;                  /* bigger = coarser */

  /* subtle fibers */
  --fiber-opacity: 0.16;
  /* ==================== */

  background-color: var(--paper-base);

  /* CRITICAL: create a local stacking context so negative z-index layers
     stay behind content but don't escape and interfere with surrounding containers */
  position: relative;
  z-index: 0;
  isolation: isolate;
}

/* Lighting wash (behind content) */
.elementor-2324 .elementor-element.elementor-element-7d212234::before{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;

  /* Behind content, above background */
  z-index: -2;

  background-image:
    radial-gradient(1200px circle at 22% 18%, var(--paper-warm), rgba(255,255,255,0) 62%),
    radial-gradient(900px circle at 78% 88%, var(--paper-shade), rgba(0,0,0,0) 58%),
    radial-gradient(800px circle at 80% 22%, var(--paper-cool), rgba(255,255,255,0) 60%),
    linear-gradient(135deg, rgba(0,0,0,0.02), rgba(255,255,255,0) 45%, rgba(255,255,255,0.18));

  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}

/* Grain + paper tooth (behind content) */
.elementor-2324 .elementor-element.elementor-element-7d212234::after{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;

  /* Above the lighting wash, still behind content */
  z-index: -1;

  /* Primary: SVG fractal noise grain (works in modern browsers) */
  background-image:
    url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27600%27%20height%3D%27600%27%3E%3Cfilter%20id%3D%27n%27%3E%3CfeTurbulence%20type%3D%27fractalNoise%27%20baseFrequency%3D%27.58%27%20numOctaves%3D%273%27%20stitchTiles%3D%27stitch%27%2F%3E%3CfeColorMatrix%20type%3D%27matrix%27%20values%3D%270%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%20.50%200%27%2F%3E%3C%2Ffilter%3E%3Crect%20width%3D%27600%27%20height%3D%27600%27%20filter%3D%27url%28%23n%29%27%2F%3E%3C%2Fsvg%3E"),

    /* Fibers (very subtle) */
    repeating-linear-gradient(
      0deg,
      rgba(0,0,0,0.012) 0px,
      rgba(0,0,0,0.012) 1px,
      rgba(255,255,255,0) 7px,
      rgba(255,255,255,0) 14px
    ),

    /* Soft vignette to match paper falloff */
    radial-gradient(1400px circle at 50% 50%, rgba(0,0,0,0) 58%, rgba(0,0,0,0.06) 100%);

  background-repeat: repeat, repeat, no-repeat;
  background-size:
    var(--grain-size) var(--grain-size),
    100% 100%,
    cover;
  background-position: 0 0, 0 0, center;

  /* Blend only within this pseudo-layer; does NOT affect content */
  mix-blend-mode: multiply;

  /* Control overall strength */
  opacity: var(--grain-opacity);
}

/*
Optional (only if you need the texture clipped to rounded corners):
WARNING: overflow:hidden can clip dropdowns/shadows.

.elementor-2324 .elementor-element.elementor-element-7d212234{ overflow: hidden; }
*/

/*
If you ever see the pseudo-layers not appearing:
- Ensure the container has no background image overriding this
- Ensure Elementor isn't applying a higher z-index background overlay
- Try adding: .elementor-2324 .elementor-element.elementor-element-7d212234{ background-image:none; }
*//* End custom CSS */
/* Start custom CSS for text-editor, class: .elementor-element-6fff7c36 */.elementor-2324 .elementor-element.elementor-element-6fff7c36 img {
  border-radius: 25px;
  transform: rotate(3deg);

}/* End custom CSS */
/* Start custom CSS for text-editor, class: .elementor-element-6fff7c36 */.elementor-2324 .elementor-element.elementor-element-6fff7c36 img {
  border-radius: 25px;
  transform: rotate(3deg);

}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-78e89588 *//*
Elementor Pro Custom CSS (paste into the container's Custom CSS)
Goal: Paper/grain background WITHOUT altering any inner elements.
Key fix: DO NOT style .elementor-2324 .elementor-element.elementor-element-78e89588 > * (that can change Elementor widget positioning).

How this works:
- The container becomes a stacking context (isolation + z-index:0)
- Two pseudo-layers sit BEHIND content (negative z-index), but ABOVE the container's background
- No changes to children, so nested containers/widgets won't reflow/warp
*/

.elementor-2324 .elementor-element.elementor-element-78e89588{
  /* ===== Tunables ===== */
  --paper-base: #fffdf4;                 /* your exact base */

  /* lighting (cool-but-still-warm) */
  --paper-warm: rgba(255, 244, 225, 0.55);
  --paper-cool: rgba(235, 244, 255, 0.18);
  --paper-shade: rgba(0, 0, 0, 0.045);

  /* grain */
  --grain-opacity: 0.30;                /* more grain */
  --grain-size: 560px;                  /* bigger = coarser */

  /* subtle fibers */
  --fiber-opacity: 0.16;
  /* ==================== */

  background-color: var(--paper-base);

  /* CRITICAL: create a local stacking context so negative z-index layers
     stay behind content but don't escape and interfere with surrounding containers */
  position: relative;
  z-index: 0;
  isolation: isolate;
}

/* Lighting wash (behind content) */
.elementor-2324 .elementor-element.elementor-element-78e89588::before{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;

  /* Behind content, above background */
  z-index: -2;

  background-image:
    radial-gradient(1200px circle at 22% 18%, var(--paper-warm), rgba(255,255,255,0) 62%),
    radial-gradient(900px circle at 78% 88%, var(--paper-shade), rgba(0,0,0,0) 58%),
    radial-gradient(800px circle at 80% 22%, var(--paper-cool), rgba(255,255,255,0) 60%),
    linear-gradient(135deg, rgba(0,0,0,0.02), rgba(255,255,255,0) 45%, rgba(255,255,255,0.18));

  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}

/* Grain + paper tooth (behind content) */
.elementor-2324 .elementor-element.elementor-element-78e89588::after{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;

  /* Above the lighting wash, still behind content */
  z-index: -1;

  /* Primary: SVG fractal noise grain (works in modern browsers) */
  background-image:
    url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27600%27%20height%3D%27600%27%3E%3Cfilter%20id%3D%27n%27%3E%3CfeTurbulence%20type%3D%27fractalNoise%27%20baseFrequency%3D%27.58%27%20numOctaves%3D%273%27%20stitchTiles%3D%27stitch%27%2F%3E%3CfeColorMatrix%20type%3D%27matrix%27%20values%3D%270%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%20.50%200%27%2F%3E%3C%2Ffilter%3E%3Crect%20width%3D%27600%27%20height%3D%27600%27%20filter%3D%27url%28%23n%29%27%2F%3E%3C%2Fsvg%3E"),

    /* Fibers (very subtle) */
    repeating-linear-gradient(
      0deg,
      rgba(0,0,0,0.012) 0px,
      rgba(0,0,0,0.012) 1px,
      rgba(255,255,255,0) 7px,
      rgba(255,255,255,0) 14px
    ),

    /* Soft vignette to match paper falloff */
    radial-gradient(1400px circle at 50% 50%, rgba(0,0,0,0) 58%, rgba(0,0,0,0.06) 100%);

  background-repeat: repeat, repeat, no-repeat;
  background-size:
    var(--grain-size) var(--grain-size),
    100% 100%,
    cover;
  background-position: 0 0, 0 0, center;

  /* Blend only within this pseudo-layer; does NOT affect content */
  mix-blend-mode: multiply;

  /* Control overall strength */
  opacity: var(--grain-opacity);
}

/*
Optional (only if you need the texture clipped to rounded corners):
WARNING: overflow:hidden can clip dropdowns/shadows.

.elementor-2324 .elementor-element.elementor-element-78e89588{ overflow: hidden; }
*/

/*
If you ever see the pseudo-layers not appearing:
- Ensure the container has no background image overriding this
- Ensure Elementor isn't applying a higher z-index background overlay
- Try adding: .elementor-2324 .elementor-element.elementor-element-78e89588{ background-image:none; }
*//* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-97aae6a *//*
Elementor Pro Custom CSS (paste into the container's Custom CSS)
Goal: Paper/grain background WITHOUT altering any inner elements.
Key fix: DO NOT style .elementor-2324 .elementor-element.elementor-element-97aae6a > * (that can change Elementor widget positioning).

How this works:
- The container becomes a stacking context (isolation + z-index:0)
- Two pseudo-layers sit BEHIND content (negative z-index), but ABOVE the container's background
- No changes to children, so nested containers/widgets won't reflow/warp
*/

.elementor-2324 .elementor-element.elementor-element-97aae6a{
  /* ===== Tunables ===== */
  --paper-base: #fffdf4;                 /* your exact base */

  /* lighting (cool-but-still-warm) */
  --paper-warm: rgba(255, 244, 225, 0.55);
  --paper-cool: rgba(235, 244, 255, 0.18);
  --paper-shade: rgba(0, 0, 0, 0.045);

  /* grain */
  --grain-opacity: 0.30;                /* more grain */
  --grain-size: 560px;                  /* bigger = coarser */

  /* subtle fibers */
  --fiber-opacity: 0.16;
  /* ==================== */

  background-color: var(--paper-base);

  /* CRITICAL: create a local stacking context so negative z-index layers
     stay behind content but don't escape and interfere with surrounding containers */
  position: relative;
  z-index: 0;
  isolation: isolate;
}

/* Lighting wash (behind content) */
.elementor-2324 .elementor-element.elementor-element-97aae6a::before{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;

  /* Behind content, above background */
  z-index: -2;

  background-image:
    radial-gradient(1200px circle at 22% 18%, var(--paper-warm), rgba(255,255,255,0) 62%),
    radial-gradient(900px circle at 78% 88%, var(--paper-shade), rgba(0,0,0,0) 58%),
    radial-gradient(800px circle at 80% 22%, var(--paper-cool), rgba(255,255,255,0) 60%),
    linear-gradient(135deg, rgba(0,0,0,0.02), rgba(255,255,255,0) 45%, rgba(255,255,255,0.18));

  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}

/* Grain + paper tooth (behind content) */
.elementor-2324 .elementor-element.elementor-element-97aae6a::after{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;

  /* Above the lighting wash, still behind content */
  z-index: -1;

  /* Primary: SVG fractal noise grain (works in modern browsers) */
  background-image:
    url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27600%27%20height%3D%27600%27%3E%3Cfilter%20id%3D%27n%27%3E%3CfeTurbulence%20type%3D%27fractalNoise%27%20baseFrequency%3D%27.58%27%20numOctaves%3D%273%27%20stitchTiles%3D%27stitch%27%2F%3E%3CfeColorMatrix%20type%3D%27matrix%27%20values%3D%270%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%20.50%200%27%2F%3E%3C%2Ffilter%3E%3Crect%20width%3D%27600%27%20height%3D%27600%27%20filter%3D%27url%28%23n%29%27%2F%3E%3C%2Fsvg%3E"),

    /* Fibers (very subtle) */
    repeating-linear-gradient(
      0deg,
      rgba(0,0,0,0.012) 0px,
      rgba(0,0,0,0.012) 1px,
      rgba(255,255,255,0) 7px,
      rgba(255,255,255,0) 14px
    ),

    /* Soft vignette to match paper falloff */
    radial-gradient(1400px circle at 50% 50%, rgba(0,0,0,0) 58%, rgba(0,0,0,0.06) 100%);

  background-repeat: repeat, repeat, no-repeat;
  background-size:
    var(--grain-size) var(--grain-size),
    100% 100%,
    cover;
  background-position: 0 0, 0 0, center;

  /* Blend only within this pseudo-layer; does NOT affect content */
  mix-blend-mode: multiply;

  /* Control overall strength */
  opacity: var(--grain-opacity);
}

/*
Optional (only if you need the texture clipped to rounded corners):
WARNING: overflow:hidden can clip dropdowns/shadows.

.elementor-2324 .elementor-element.elementor-element-97aae6a{ overflow: hidden; }
*/

/*
If you ever see the pseudo-layers not appearing:
- Ensure the container has no background image overriding this
- Ensure Elementor isn't applying a higher z-index background overlay
- Try adding: .elementor-2324 .elementor-element.elementor-element-97aae6a{ background-image:none; }
*//* End custom CSS */