.elementor-kit-7{--e-global-color-primary:#B78D5B;--e-global-color-secondary:#1B1B1B;--e-global-color-text:#1B1B1B;--e-global-color-accent:#70161E;--e-global-color-7dfa095:#D4B88D;--e-global-color-a9246ce:#EDE3D8;--e-global-color-2ca747f:#EDE3D8;--e-global-color-50458fa:#C9A474;--e-global-color-66bde63:#D69A9F;--e-global-color-403a86e:#B78D5B;--e-global-color-d24965e:#70161E;--e-global-color-d98e669:#F8F1E6;--e-global-color-394efa6:#FFFFFF;--e-global-color-bce6841:#CB413F;--e-global-color-9941f80:#CAB99A;--e-global-typography-primary-font-family:"Montserrat";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Montserrat";--e-global-typography-text-font-size:16px;--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;--e-global-typography-8fc0b2c-font-size:clamp(2.2rem, 5vw + 1rem, 3.815rem);--e-global-typography-33d8dd1-font-size:clamp(1.75rem, 3.5vw + 0.5rem, 2.441rem);--e-global-typography-33d8dd1-font-weight:500;--e-global-typography-33d8dd1-line-height:1.2em;--e-global-typography-33d8dd1-letter-spacing:-0.0025em;--e-global-typography-2f8aa61-font-size:clamp(1.4rem, 2.5vw + 0.5rem, 1.953rem);--e-global-typography-5726685-font-size:clamp(0.75rem, 0.5vw + 0.6rem, 0.875rem);--e-global-typography-32b6feb-font-family:"Montserrat";--e-global-typography-32b6feb-font-size:clamp(1.4rem, 2.5vw + 0.5rem, 1.953rem);--e-global-typography-32b6feb-font-weight:600;--e-global-typography-32b6feb-text-transform:uppercase;--e-global-typography-32b6feb-line-height:120%;--e-global-typography-32b6feb-letter-spacing:0.316em;--e-global-typography-508c08b-font-size:clamp(1.75rem, 3.5vw + 0.75rem, 3.2rem);--e-global-typography-508c08b-font-weight:800;--e-global-typography-508c08b-text-transform:uppercase;--e-global-typography-508c08b-letter-spacing:0.1em;}.elementor-kit-7 e-page-transition{background-color:#FFBC7D;}.elementor-kit-7 a{color:var( --e-global-color-403a86e );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1440px;}.e-con{--container-max-width:1440px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* ===== resets you had ===== */
.page-content, .entry-content, .entry-summary { margin: 0; }
.post, .page { margin: 0; }
.resource-container:hover .elementor-widget-text-editor { color: #fff !important; }

html, body {
  overflow-x: hidden;
}


/* ===== brand tokens ===== */
:root{
  --cl-primary: #B78D5B;
  --cl-gold-ink: #C19A6B;
  --cl-text: #1B1B1B;
  --cl-white: #FFFFFF;
  --cl-accent: #70161E;
  --cl-solid-bg: #F5F1E9;
  --cl-focus: rgba(112,22,30,.45);
}

/* ==========================================================================
   Container System for Elementor — USWDS-inspired
   ========================================================================== */

/* ---- Base spacing scale (4px/8px modular, public-domain style) ---- */
:root {
  /* USWDS-like spacing tokens */
  --space-0: 0;         /* 0px  */
  --space-1: 0.25rem;   /* 4px  */
  --space-2: 0.5rem;    /* 8px  */
  --space-3: 0.75rem;   /* 12px */
  --space-4: 1rem;      /* 16px */
  --space-5: 1.5rem;    /* 24px */
  --space-6: 2rem;      /* 32px */
  --space-7: 2.5rem;    /* 40px */
  --space-8: 3rem;      /* 48px */
  --space-9: 3.75rem;   /* 60px */
  --space-10: 5rem;     /* 80px */
  --space-11: 6rem;     /* 96px */
  --space-12: 7.5rem;   /* 120px */
  --space-13: 10rem;    /* 160px */

  /* Horizontal padding caps (use tokens) */
  --space-side-min: var(--space-5);   /* 24px min inline padding */
  --space-side-max: var(--space-12);  /* 120px max inline padding */
  --fluid-side-inline: clamp(var(--space-side-min), 4vw, var(--space-side-max));

  /* Vertical section paddings (mapped to scale; keep your class API) */
  --space-xxl-top-min: var(--space-11); /* 96px  */
  --space-xxl-top-max: var(--space-12); /* 120px */

  --space-xl-top-min:  var(--space-9);  /* 60px  */
  --space-xl-top-max:  var(--space-12); /* 120px */

  --space-l-top-min:   var(--space-8);  /* 48px  */
  --space-l-top-max:   var(--space-10); /* 80px  */

  --space-m-top-min:   var(--space-8);  /* 48px  */
  --space-m-top-max:   var(--space-10); /* 80px  */

  --space-s-top-min:   var(--space-6);  /* 32px  */
  --space-s-top-max:   var(--space-9);  /* 60px  */

  --space-xs-top-min:  var(--space-5);  /* 24px  */
  --space-xs-top-max:  var(--space-7);  /* 40px  */

  --space-xxs-top-min: var(--space-5);  /* 24px  */
  --space-xxs-top-max: var(--space-5);  /* 24px (fixed) */

  --space-header-top-min: var(--space-5);  /* 24px (tap-friendly) */
  --space-header-top-max: var(--space-5);  /* 24px */

  /* Hero section height */
  --space-hero-height: 100svh; /* modern viewport unit avoids mobile jump */

  /* Offset for overlay headers */
  --space-offset-header: var(--space-12); /* 120px */

  /* Widths for narrow sections */
  --section-width-narrow:    62.5rem; /* 1000px */
  --section-width-narrow-xs: 45rem;   /* 720px */

  /* Optional: content measure + inner rhythm */
  --content-measure: 65ch;
  --section-gap: clamp(2rem, 4vw, 6rem);

}

/* ==========================================================================
   Base Section Styles
   ========================================================================== */

/* Consistent horizontal padding with safe-area awareness */
:where(.section-xxl, .section-xl, .section-l, .section-m, .section-s, .section-xs, .section-xxs, .section-header) {
  padding-inline:
    max(env(safe-area-inset-left),  var(--fluid-side-inline))
    max(env(safe-area-inset-right), var(--fluid-side-inline));
}

/* Vertical padding that truly scales (additive middle term) */
.section-xxl {
  /* 96 → 120 */
  padding-block: clamp(var(--space-xxl-top-min), 1.0vw + 4.8rem, var(--space-xxl-top-max));
}
.section-xl {
  /* 60 → 120 */
  padding-block: clamp(var(--space-xl-top-min), 1.4vw + 2.8rem, var(--space-xl-top-max));
}
.section-l {
  /* 48 → 80 */
  padding-block: clamp(var(--space-l-top-min), 0.9vw + 3rem, var(--space-l-top-max));
}
.section-m {
  /* 48 → 80 (used to be fixed; now has a small fluid window) */
  padding-block: clamp(var(--space-m-top-min), 0.8vw + 2.2rem, var(--space-m-top-max));
}
.section-s {
  /* 32 → 60 */
  padding-block: clamp(var(--space-s-top-min), 0.6vw + 1.6rem, var(--space-s-top-max));
}
.section-xs {
  /* 24 → 40 */
  padding-block: clamp(var(--space-xs-top-min), 0.4vw + 1.2rem, var(--space-xs-top-max));
}
.section-xxs {
  /* fixed (24) but kept as clamp for consistency/future tuning) */
  padding-block: clamp(var(--space-xxs-top-min), 0.2vw + 1.3rem, var(--space-xxs-top-max));
}
.section-header {
  /* fixed 24 for tap targets */
  padding-block: clamp(var(--space-header-top-min), 0.25vw + 0.6rem, var(--space-header-top-max));
}

/* ==========================================================================
   Hero Section
   ========================================================================== */
.section-hero {
  min-height: var(--space-hero-height);
  min-height: 100dvh; /* additional fallback chain */
  min-height: 100vh;
}
.section-hero .e-con-inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* ==========================================================================
   Full Width and Narrow Sections
   ========================================================================== */

/* Scope tightly to Elementor inner; remove side padding for true edge-to-edge */
.section-full > .e-con-inner {
  max-width: none;
  padding-inline: 0;
}

.section-narrow    > .e-con-inner { max-width: var(--section-width-narrow); }
.section-narrow-xs > .e-con-inner { max-width: var(--section-width-narrow-xs); }

/* Optional helpers */
.prose { max-width: var(--content-measure) !important; }
.section-xxl .e-con-inner,
.section-xl  .e-con-inner,
.section-l   .e-con-inner,
.section-m   .e-con-inner { row-gap: var(--section-gap) !important; }

/* ==========================================================================
   Overlay Header Offset
   ========================================================================== */
.section-offset {
  /* generic additive offset rather than tying to a specific section size */
  padding-block-start: calc(var(--space-offset-header) + clamp(2rem, 3vw, 4rem));
}

/* ==========================================================================
   Notes
   ========================================================================== */
/* You generally don't need a mobile media query to clamp inline paddings;
   the clamp handles it. If you want a special-case hero height on tiny screens,
   add it explicitly:

@media (max-width: 480px) {
  .section-hero { min-height: 90svh; }
}
*/

/* Padding All Sides */
.p-0   { padding: var(--space-0) !important; }
.p-1   { padding: var(--space-1) !important; }
.p-2   { padding: var(--space-2) !important; }
.p-3   { padding: var(--space-3) !important; }
.p-4   { padding: var(--space-4) !important; }
.p-5   { padding: var(--space-5) !important; }
.p-6   { padding: var(--space-6) !important; }
.p-7   { padding: var(--space-7) !important; }
.p-8   { padding: var(--space-8) !important; }
.p-9   { padding: var(--space-9) !important; }
.p-10  { padding: var(--space-10) !important; }

/* Padding Inline (Left + Right) */
.px-1  { padding-inline: var(--space-1) !important; }
.px-2  { padding-inline: var(--space-2) !important; }
.px-3  { padding-inline: var(--space-3) !important; }
.px-4  { padding-inline: var(--space-4) !important; }
.px-5  { padding-inline: var(--space-5) !important; }
.px-6  { padding-inline: var(--space-6) !important; }

/* Padding Block (Top + Bottom) */
.py-1  { padding-block: var(--space-1) !important; }
.py-2  { padding-block: var(--space-2) !important; }
.py-3  { padding-block: var(--space-3) !important; }
.py-4  { padding-block: var(--space-4) !important; }
.py-5  { padding-block: var(--space-5) !important; }
.py-6  { padding-block: var(--space-6) !important; }

/* Padding Top Only */
.pt-1  { padding-top: var(--space-1) !important; }
.pt-2  { padding-top: var(--space-2) !important; }
.pt-3  { padding-top: var(--space-3) !important; }
.pt-4  { padding-top: var(--space-4) !important; }
.pt-5  { padding-top: var(--space-5) !important; }

/* Padding Bottom Only */
.pb-1  { padding-bottom: var(--space-1) !important; }
.pb-2  { padding-bottom: var(--space-2) !important; }
.pb-3  { padding-bottom: var(--space-3) !important; }
.pb-4  { padding-bottom: var(--space-4) !important; }
.pb-5  { padding-bottom: var(--space-5) !important; }

/*------------------------------------------------*\
  Elementor Motion Tweaks (responsive + accessible)
\*------------------------------------------------*/

/* Defaults (desktop/tablet) */
:root{
  --kg-move-sm: 12px;      /* left/right/down */
  --kg-move-up: 30px;      /* up */
  --kg-dur: .9s;           /* duration */
  --kg-ease: cubic-bezier(0.25, 0.8, 0.25, 1);
}

/* Mobile: tighten movement + speed */
@media (max-width: 767px){
  :root{
    /* Use clamp to scale with viewport; minimums prevent "no show" */
    --kg-move-sm: clamp(4px, 2.5vw, 8px);
    --kg-move-up: clamp(8px, 3.5vw, 16px);
    --kg-dur: .7s;
  }
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  :root{
    --kg-move-sm: 0px;
    --kg-move-up: 0px;
    --kg-dur: 0.01ms; /* effectively instant */
  }
}

/*---------------- Fades: Directional ----------------*/

/* FadeInDown */
@keyframes kgFadeInDown {
  from { opacity: 0; transform: translate3d(0, calc(var(--kg-move-sm) * -1), 0); }
  to   { opacity: 1; transform: none; }
}
.elementor-element .animated.fadeInDown {
  animation-name: kgFadeInDown !important;
  animation-duration: var(--kg-dur);
  animation-timing-function: var(--kg-ease);
  animation-fill-mode: forwards;
}

/* FadeInLeft */
@keyframes kgFadeInLeft {
  from { opacity: 0; transform: translate3d(calc(var(--kg-move-sm) * -1), 0, 0); }
  to   { opacity: 1; transform: none; }
}
.elementor-element .animated.fadeInLeft {
  animation-name: kgFadeInLeft !important;
  animation-duration: var(--kg-dur);
  animation-timing-function: var(--kg-ease);
  animation-fill-mode: forwards;
}

/* FadeInRight */
@keyframes kgFadeInRight {
  from { opacity: 0; transform: translate3d(var(--kg-move-sm), 0, 0); }
  to   { opacity: 1; transform: none; }
}
.elementor-element .animated.fadeInRight {
  animation-name: kgFadeInRight !important;
  animation-duration: var(--kg-dur);
  animation-timing-function: var(--kg-ease);
  animation-fill-mode: forwards;
}

/* FadeInUp */
@keyframes kgFadeInUp {
  from { opacity: 0; transform: translate3d(0, var(--kg-move-up), 0); }
  to   { opacity: 1; transform: none; }
}
.elementor-element .animated.fadeInUp {
  animation-name: kgFadeInUp !important;
  animation-duration: var(--kg-dur);
  animation-timing-function: var(--kg-ease);
  animation-fill-mode: forwards;
}

/* Optional: avoid stacking transforms on nested animated elements */
.elementor-element .animated { will-change: transform, opacity; }/* End custom CSS */