.elementor-kit-6{--e-global-color-primary:#8A6A3E;--e-global-color-secondary:#232120;--e-global-color-text:#56514A;--e-global-color-accent:#C6A173;--e-global-color-blpaper:#F7F4ED;--e-global-color-bltint:#EFEBE1;--e-global-color-blink:#1C1A17;--e-global-color-blline:#E0DACE;--e-global-color-bldeep2:#2E2B29;--e-global-color-blgoldhi:#6F5430;--e-global-color-blgoldtx:#6D5330;--e-global-color-blgoldwash:#F0E7D8;--e-global-color-blondeep:#F2EEE4;--e-global-color-blondeep2:#A8A094;--e-global-color-bldanger:#B93F34;--e-global-typography-primary-font-family:"Geologica";--e-global-typography-primary-font-weight:800;--e-global-typography-secondary-font-family:"Geologica";--e-global-typography-secondary-font-weight:700;--e-global-typography-text-font-family:"Geologica";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Geologica";--e-global-typography-accent-font-weight:600;background-color:#F7F4ED;color:#1C1A17;font-family:"Geologica", Sans-serif;font-weight:400;}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.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;}}:root { --bl-gold:#8A6A3E; --bl-deep:#232120; --bl-body:#56514A; --bl-gold-dk:#C6A173; --bl-paper:#F7F4ED; --bl-tint:#EFEBE1; --bl-ink:#1C1A17; --bl-line:#E0DACE; --bl-deep-2:#2E2B29; --bl-gold-hi:#6F5430; --bl-gold-tx:#6D5330; --bl-gold-wash:#F0E7D8; --bl-on-deep:#F2EEE4; --bl-on-deep-2:#A8A094; --bl-danger:#B93F34; --bl-font:Geologica; }
/* Start custom CSS *//* ---- defence against the host theme ----
   Scoped and specific enough that ordinary theme rules lose, while
   every rule below still wins over this because it names an element
   or a class after the id. */
.elementor:not(#bl_), .elementor:not(#bl_) *, .elementor:not(#bl_) *::before, .elementor:not(#bl_) *::after { box-sizing: border-box; }
.elementor:not(#bl_) * {
  font-family: inherit; color: inherit; text-transform: none; letter-spacing: normal;
  text-shadow: none; float: none; max-width: none; text-indent: 0; word-spacing: normal;
}
.elementor:not(#bl_) h1, .elementor:not(#bl_) h2, .elementor:not(#bl_) h3, .elementor:not(#bl_) h4, .elementor:not(#bl_) p,
.elementor:not(#bl_) figure, .elementor:not(#bl_) blockquote, .elementor:not(#bl_) ul, .elementor:not(#bl_) ol,
.elementor:not(#bl_) dl, .elementor:not(#bl_) dd, .elementor:not(#bl_) form, .elementor:not(#bl_) fieldset { margin: 0; padding: 0; }
.elementor:not(#bl_) ul, .elementor:not(#bl_) ol { list-style: none; }
.elementor:not(#bl_) a { text-decoration: none; background: none; box-shadow: none; }
.elementor:not(#bl_) img, .elementor:not(#bl_) svg, .elementor:not(#bl_) canvas { border: 0; box-shadow: none; outline: 0; }
.elementor:not(#bl_) button, .elementor:not(#bl_) input, .elementor:not(#bl_) select, .elementor:not(#bl_) textarea {
  font: inherit; color: inherit; margin: 0; border: 0; border-radius: 0;
  background: none; box-shadow: none; text-transform: none; letter-spacing: normal;
}
.elementor:not(#bl_) summary { list-style: none; }
.elementor:not(#bl_) details { margin: 0; }

.elementor:not(#bl_) {
  --deep:     var(--e-global-color-secondary, #232120);
  --deep-2:   var(--e-global-color-bldeep2, #2e2b29);
  --paper:    var(--e-global-color-blpaper, #f7f4ed);
  --tint:     var(--e-global-color-bltint, #efebe1);
  --ink:      var(--e-global-color-blink, #1c1a17);
  --body:     var(--e-global-color-text, #56514a);
  --line:     var(--e-global-color-blline, #e0dace);

  --gold:     var(--e-global-color-primary, #8a6a3e);
  --gold-hi:  var(--e-global-color-blgoldhi, #6f5430);
  --gold-tx:  var(--e-global-color-blgoldtx, #6d5330);
  --gold-dk:  var(--e-global-color-accent, #c6a173);
  --gold-wash:var(--e-global-color-blgoldwash, #f0e7d8);

  --on-deep:  var(--e-global-color-blondeep, #f2eee4);
  --on-deep-2:var(--e-global-color-blondeep2, #a8a094);
  --danger:   var(--e-global-color-bldanger, #b93f34);

  --r-chip: 999px;
  --r-card: 20px;
  --r-lg: 28px;
  --r-field: 12px;

  --wrap: 1220px;
  --pad: clamp(1.15rem, 4vw, 3rem);

  --f: "Geologica", "Segoe UI", system-ui, -apple-system, sans-serif;
  --out: cubic-bezier(.16, 1, .3, 1);

  --sh-1: 0 1px 2px rgba(28,26,23,.05), 0 3px 8px -3px rgba(28,26,23,.10);
  --sh-2: 0 2px 4px rgba(28,26,23,.06), 0 16px 34px -16px rgba(28,26,23,.24);
  --sh-3: 0 4px 10px rgba(28,26,23,.07), 0 34px 64px -28px rgba(28,26,23,.36);
}
.elementor:not(#bl_) *, .elementor:not(#bl_) *::before, .elementor:not(#bl_) *::after { box-sizing: border-box; }
.elementor:not(#bl_) { scroll-behavior: smooth; scrollbar-color: #d5ccbb var(--paper); }
@media (prefers-reduced-motion: reduce) {
.elementor:not(#bl_) { scroll-behavior: auto; } }
.elementor:not(#bl_) {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--f);
  font-size: 1.0625rem;
  font-weight: 400;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
.elementor:not(#bl_) ::selection { background: var(--gold); color: #ffffff; }
.elementor:not(#bl_) img { max-width: 100%; height: auto; display: block; }
.elementor:not(#bl_) a { color: inherit; }
.elementor:not(#bl_) :focus-visible { outline: 2.5px solid var(--gold); outline-offset: 3px; border-radius: 6px; }
.elementor:not(#bl_) .bl-wrap { width: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: var(--pad); }
.elementor:not(#bl_) .bl-skip { position: absolute; left: -9999px; top: 0; z-index: 100; background: var(--gold); color: #ffffff; padding: .8rem 1.2rem; border-radius: var(--r-chip); font-weight: 600; }
.elementor:not(#bl_) .bl-skip:focus { left: .75rem; top: .75rem; }
.elementor:not(#bl_) h1, .elementor:not(#bl_) h2, .elementor:not(#bl_) h3, .elementor:not(#bl_) h4 { font-family: var(--f); font-weight: 800; letter-spacing: -.03em; text-wrap: balance; margin: 0; }
.elementor:not(#bl_) h1 { font-size: clamp(2.4rem, 1.1rem + 4vw, 4.2rem); line-height: 1.04; }
.elementor:not(#bl_) h2 { font-size: clamp(1.85rem, 1.15rem + 2.3vw, 2.85rem); line-height: 1.08; }
.elementor:not(#bl_) h3 { font-size: 1.2rem; line-height: 1.28; letter-spacing: -.022em; }
.elementor:not(#bl_) p { margin: 0; max-width: 66ch; }
.elementor:not(#bl_) .bl-lede { font-size: clamp(1.06rem, .98rem + .4vw, 1.24rem); font-weight: 300; line-height: 1.62; color: var(--body); }
.elementor:not(#bl_) .bl-band { padding-block: clamp(3.5rem, 2rem + 6vw, 7rem); }
.elementor:not(#bl_) .bl-band-tint { background: var(--tint); }
.elementor:not(#bl_) .bl-band-deep { background: var(--deep); color: var(--on-deep); }
.elementor:not(#bl_) .bl-band-deep h2, .elementor:not(#bl_) .bl-band-deep h3 { color: var(--on-deep); }
.elementor:not(#bl_) .bl-band-deep .bl-lede { color: var(--on-deep-2); }
.elementor:not(#bl_) .bl-head { display: grid; gap: 1rem; max-width: 46rem; margin-bottom: clamp(2rem, 4vw, 3.25rem); }
.elementor:not(#bl_) .bl-band-wash { position: relative; isolation: isolate; overflow: clip; }
.elementor:not(#bl_) .bl-band-wash::before {
  content: ""; position: absolute; z-index: -1; pointer-events: none;
  width: min(50rem, 92vw); aspect-ratio: 1;
  background: radial-gradient(circle at 50% 50%, rgba(138,106,62,.14), rgba(138,106,62,.04) 40%, transparent 64%);
}
.elementor:not(#bl_) .bl-band-wash.bl-w-tr::before { inset: -17rem -15rem auto auto; }
.elementor:not(#bl_) .bl-band-wash.bl-w-bl::before { inset: auto auto -19rem -15rem; }
.elementor:not(#bl_) .bl-band-wash.bl-w-tl::before { inset: -15rem auto auto -16rem; }
.elementor:not(#bl_) .bl-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .55em;
  white-space: nowrap;
  font-family: var(--f); font-size: 1rem; font-weight: 600; line-height: 1;
  padding: 1.05rem 1.85rem;
  border-radius: var(--r-chip);
  border: 1.5px solid transparent;
  text-decoration: none; cursor: pointer;
  transition: background-color .2s var(--out), color .2s var(--out),
              border-color .2s var(--out), transform .2s var(--out), box-shadow .2s var(--out);
}
.elementor:not(#bl_) .bl-btn svg { width: 1.05em; height: 1.05em; flex: none; }
.elementor:not(#bl_) .bl-btn:active { transform: translateY(1px); }
.elementor:not(#bl_) .bl-btn-sm { padding: .78rem 1.35rem; font-size: .92rem; }
.elementor:not(#bl_) .bl-btn-gold { background: var(--gold); color: #ffffff; box-shadow: 0 10px 26px -14px rgba(138,106,62,.9); }
.elementor:not(#bl_) .bl-btn-gold:hover { background: var(--gold-hi); color: #ffffff; transform: translateY(-2px); }
.elementor:not(#bl_) .bl-btn-ink { background: var(--ink); color: var(--paper); }
.elementor:not(#bl_) .bl-btn-ink:hover { background: #3a3633; transform: translateY(-2px); }
.elementor:not(#bl_) .bl-btn-soft { background: var(--paper); color: var(--ink); border-color: var(--line); box-shadow: var(--sh-1); }
.elementor:not(#bl_) .bl-btn-soft:hover { border-color: #cfc6b4; transform: translateY(-2px); box-shadow: var(--sh-2); }
.elementor:not(#bl_) .bl-btn-ghost { background: rgba(242,238,228,.08); color: var(--on-deep); border-color: rgba(242,238,228,.3); }
.elementor:not(#bl_) .bl-btn-ghost:hover { background: rgba(242,238,228,.16); border-color: rgba(242,238,228,.6); transform: translateY(-2px); }
.elementor:not(#bl_) .bl-util { background: var(--deep); color: var(--on-deep-2); font-size: .85rem; }
.elementor:not(#bl_) .bl-util-row { display: flex; align-items: center; gap: 1.35rem; min-height: 42px; flex-wrap: wrap; }
.elementor:not(#bl_) .bl-util a, .elementor:not(#bl_) .bl-util .bl-row { text-decoration: none; display: inline-flex; align-items: center; gap: .45rem; }
.elementor:not(#bl_) .bl-util a:hover { color: var(--gold-dk); }
.elementor:not(#bl_) .bl-util svg { width: .95rem; height: .95rem; flex: none; }
.elementor:not(#bl_) .bl-util .bl-right { margin-left: auto; display: flex; gap: .5rem; align-items: center; }
.elementor:not(#bl_) .bl-util .bl-sep { opacity: .35; }
.elementor:not(#bl_) .bl-util [aria-current="true"] { color: var(--gold-dk); }

@media (max-width: 767px) {
.elementor:not(#bl_) .bl-util .bl-addr, .elementor:not(#bl_) .bl-util .bl-mail { display: none; }
.elementor:not(#bl_) .bl-util-row { justify-content: center; }
.elementor:not(#bl_) .bl-util .bl-right { margin-left: 0; }
}
.elementor:not(#bl_) .bl-nav { position: sticky; top: 0; z-index: 60; background: var(--paper); border-bottom: 1px solid var(--line); transition: box-shadow .3s var(--out); }
.elementor:not(#bl_) .bl-nav[data-stuck="true"] { box-shadow: var(--sh-2); }
.elementor:not(#bl_) .bl-nav-row { display: flex; align-items: center; gap: clamp(1rem, 3vw, 2.5rem); height: 78px; }
.elementor:not(#bl_) .bl-nav img { height: 42px; width: auto; }
.elementor:not(#bl_) .bl-nav ul { display: flex; align-items: center; gap: clamp(1rem, 2vw, 2rem); margin: 0 0 0 auto; padding: 0; list-style: none; }
.elementor:not(#bl_) .bl-nav ul a { font-size: .96rem; text-decoration: none; color: var(--body); transition: color .18s var(--out); }
.elementor:not(#bl_) .bl-nav ul a:hover, .elementor:not(#bl_) .bl-nav ul a[aria-current="page"] { color: var(--ink); }
.elementor:not(#bl_) .bl-burger { display: none; margin-left: auto; width: 46px; height: 46px; align-items: center; justify-content: center; background: var(--paper); border: 1.5px solid var(--line); border-radius: var(--r-chip); cursor: pointer; color: var(--ink); }
.elementor:not(#bl_) .bl-burger svg { width: 20px; height: 20px; }
.elementor:not(#bl_) .bl-drawer { display: none; }

@media (max-width: 979px) {
.elementor:not(#bl_) .bl-nav ul, .elementor:not(#bl_) .bl-nav-row > .bl-btn , .elementor:not(#bl_) .bl-nav-row > .elementor-widget-html > .bl-btn { display: none; }
.elementor:not(#bl_) .bl-burger { display: inline-flex; }
.elementor:not(#bl_) .bl-drawer { display: none; border-top: 1px solid var(--line); padding-block: .5rem 1.35rem; }
.elementor:not(#bl_) .bl-drawer[data-open="true"] { display: block; }
.elementor:not(#bl_) .bl-drawer ul { list-style: none; margin: 0 0 1rem; padding: 0; }
.elementor:not(#bl_) .bl-drawer a.bl-item { display: block; padding: .9rem 0; text-decoration: none; font-weight: 500; border-bottom: 1px solid var(--line); }
.elementor:not(#bl_) .bl-drawer .bl-btn { width: 100%; }
}
.elementor:not(#bl_) .bl-hero { position: relative; isolation: isolate; overflow: clip; }
.elementor:not(#bl_) .bl-hero-bg { position: absolute; inset: 0; z-index: -2; }
.elementor:not(#bl_) .bl-hero-bg img { width: 100%; height: 100%; object-fit: cover; object-position: 32% 62%; }
.elementor:not(#bl_) .bl-hero-bg::after {
  content: "";
  position: absolute; inset: 0;
  background:
    linear-gradient(98deg, #f7f4ed 0%, rgba(247,244,237,.97) 27%, rgba(247,244,237,.82) 42%, rgba(247,244,237,.34) 63%, rgba(247,244,237,.04) 82%, rgba(247,244,237,0) 100%),
    linear-gradient(to bottom, rgba(247,244,237,.5) 0%, rgba(247,244,237,0) 20%, rgba(247,244,237,0) 74%, rgba(247,244,237,.92) 100%);
}
.elementor:not(#bl_) .bl-hero-in { max-width: 40rem; padding-block: clamp(4rem, 2.5rem + 8vw, 9rem); }
.elementor:not(#bl_) .bl-hero h1 { max-width: 14ch; }
.elementor:not(#bl_) .bl-hero h1 em { font-style: normal; color: var(--gold-tx); }
.elementor:not(#bl_) .bl-hero .bl-lede { margin-top: 1.5rem; max-width: 33rem; color: #3f3a33; }
.elementor:not(#bl_) .bl-hero-cta { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 2.25rem; }
.elementor:not(#bl_) .bl-hero-proof {
  display: inline-flex; align-items: center; gap: .7rem;
  margin-top: 2.25rem; padding: .68rem 1.3rem .68rem .85rem;
  border: 1px solid var(--gold-wash);
  background: rgba(247,244,237,.86);
  border-radius: var(--r-chip);
  box-shadow: var(--sh-1);
  font-size: .93rem; font-weight: 600; color: var(--gold-tx);
}
.elementor:not(#bl_) .bl-hero-proof svg { width: 1.2rem; height: 1.2rem; flex: none; }

@media (max-width: 899px) {
.elementor:not(#bl_) .bl-hero-bg img { object-position: 40% 58%; }
.elementor:not(#bl_) .bl-hero-bg::after {
    background:
      linear-gradient(to bottom, rgba(247,244,237,.96) 0%, rgba(247,244,237,.9) 44%, rgba(247,244,237,.82) 66%, rgba(247,244,237,.97) 100%);
  }
.elementor:not(#bl_) .bl-hero-in { padding-block: 3rem 3.5rem; }
}
.elementor:not(#bl_) .bl-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 3rem); }
.elementor:not(#bl_) .bl-facts div { display: grid; gap: .3rem; align-content: start; }
.elementor:not(#bl_) .bl-facts .bl-n { font-size: clamp(1.5rem, 1.1rem + 1.5vw, 2.1rem); font-weight: 800; letter-spacing: -.035em; line-height: 1.1; color: var(--gold-tx); }
.elementor:not(#bl_) .bl-facts .bl-l { font-size: .95rem; color: var(--body); }
.elementor:not(#bl_) .bl-facts div { border-top: 3px solid var(--gold); padding-top: 1rem; }
@media (max-width: 719px) {
.elementor:not(#bl_) .bl-facts { grid-template-columns: 1fr; gap: 1.5rem; } }
.elementor:not(#bl_) .bl-sits { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.elementor:not(#bl_) .bl-sit {
  background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-card);
  padding: clamp(1.4rem, 2.2vw, 1.9rem);
  display: flex; flex-direction: column; gap: .55rem; text-decoration: none;
  transition: border-color .2s var(--out), transform .2s var(--out), box-shadow .2s var(--out);
}
.elementor:not(#bl_) .bl-sit:hover { border-color: var(--gold); transform: translateY(-3px); box-shadow: var(--sh-2); }
.elementor:not(#bl_) .bl-sit-gold { background: linear-gradient(178deg, #f4ece0 0%, #f7f4ed 78%); border-color: #ddcdb4; }
.elementor:not(#bl_) .bl-sit .bl-q { font-weight: 600; font-size: 1.14rem; letter-spacing: -.022em; }
.elementor:not(#bl_) .bl-sit p { font-size: .95rem; color: var(--body); }
.elementor:not(#bl_) .bl-sit .bl-more { margin-top: auto; padding-top: .9rem; font-size: .9rem; font-weight: 600; color: var(--gold-tx); display: inline-flex; align-items: center; gap: .4rem; }
.elementor:not(#bl_) .bl-sit .bl-more svg { width: .95rem; height: .95rem; transition: transform .2s var(--out); }
.elementor:not(#bl_) .bl-sit:hover .bl-more svg { transform: translateX(3px); }
@media (max-width: 899px) {
.elementor:not(#bl_) .bl-sits { grid-template-columns: 1fr 1fr; } }
@media (max-width: 599px) {
.elementor:not(#bl_) .bl-sits { grid-template-columns: 1fr; } }
.elementor:not(#bl_) .bl-office { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.elementor:not(#bl_) .bl-office-body { display: grid; gap: 1.25rem; color: var(--body); margin-top: 1.5rem; }
.elementor:not(#bl_) .bl-office-body p { max-width: 52ch; }
.elementor:not(#bl_) .bl-office-photo { width: 100%; aspect-ratio: 4 / 3.2; object-fit: cover; border-radius: var(--r-lg); box-shadow: var(--sh-3); }
@media (max-width: 899px) {
.elementor:not(#bl_) .bl-office { grid-template-columns: 1fr; } }
.elementor:not(#bl_) .bl-vows { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 2.75rem); }
.elementor:not(#bl_) .bl-vows .bl-bar { width: 2.25rem; height: 3px; border-radius: 99px; background: var(--gold-dk); margin-bottom: .9rem; }
.elementor:not(#bl_) .bl-vows .bl-t { font-weight: 800; font-size: clamp(1.1rem, 1rem + .5vw, 1.35rem); letter-spacing: -.028em; display: block; margin-bottom: .35rem; }
.elementor:not(#bl_) .bl-vows p { font-size: .95rem; color: var(--on-deep-2); }
@media (max-width: 899px) {
.elementor:not(#bl_) .bl-vows { grid-template-columns: 1fr 1fr; } }
@media (max-width: 519px) {
.elementor:not(#bl_) .bl-vows { grid-template-columns: 1fr; } }
.elementor:not(#bl_) .bl-obj { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.25rem, 2.5vw, 2.25rem); }
.elementor:not(#bl_) .bl-obj article { display: grid; gap: .6rem; align-content: start; padding-top: 1.5rem; border-top: 2px solid var(--gold); }
.elementor:not(#bl_) .bl-obj h3 { font-size: 1.16rem; }
.elementor:not(#bl_) .bl-obj p { font-size: .97rem; color: var(--body); }
@media (max-width: 899px) {
.elementor:not(#bl_) .bl-obj { grid-template-columns: 1fr; } }
.elementor:not(#bl_) .bl-says { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.elementor:not(#bl_) .bl-say { background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-card); padding: clamp(1.4rem, 2.2vw, 1.9rem); display: grid; gap: 1.1rem; align-content: start; }
.elementor:not(#bl_) .bl-say blockquote { margin: 0; font-size: 1.02rem; line-height: 1.55; }
.elementor:not(#bl_) .bl-say .bl-who { display: flex; align-items: center; gap: .8rem; }
.elementor:not(#bl_) .bl-say .bl-av { width: 2.6rem; height: 2.6rem; flex: none; border-radius: 999px; background: var(--gold-wash); color: var(--gold-tx); display: grid; place-items: center; font-weight: 800; font-size: .92rem; letter-spacing: -.02em; }
.elementor:not(#bl_) .bl-say .bl-nm { font-weight: 600; font-size: .96rem; display: block; }
.elementor:not(#bl_) .bl-say .bl-rl { font-size: .86rem; color: var(--body); }
@media (max-width: 899px) {
.elementor:not(#bl_) .bl-says { grid-template-columns: 1fr; } }
.elementor:not(#bl_) .bl-pledge { position: relative; isolation: isolate; overflow: clip; color: #f2eee4; background: #191715; }
.elementor:not(#bl_) .bl-pledge-bg { position: absolute; inset: 0; z-index: -2; }
.elementor:not(#bl_) .bl-pledge-bg img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 55%; }
.elementor:not(#bl_) .bl-pledge-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(96deg, rgba(25,23,21,.95) 0%, rgba(25,23,21,.87) 44%, rgba(25,23,21,.52) 74%, rgba(25,23,21,.34) 100%); }
.elementor:not(#bl_) .bl-pledge q { font-size: clamp(1.85rem, 1.05rem + 3.2vw, 3.6rem); font-weight: 800; line-height: 1.05; letter-spacing: -.04em; quotes: "\00ab" "\00bb"; display: block; max-width: 19ch; }
.elementor:not(#bl_) .bl-pledge figcaption { margin-top: 1.5rem; font-size: 1.06rem; color: #a8a094; max-width: 44ch; font-weight: 300; }
.elementor:not(#bl_) .bl-pledge .bl-after { margin-top: clamp(1.9rem, 3.5vw, 2.75rem); }
.elementor:not(#bl_) .bl-faq { max-width: 52rem; }
.elementor:not(#bl_) .bl-faq details { border-bottom: 1px solid var(--line); }
.elementor:not(#bl_) .bl-faq summary {
  list-style: none; cursor: pointer; padding: 1.35rem 2.75rem 1.35rem 0; position: relative;
  font-weight: 600; font-size: clamp(1.02rem, .98rem + .3vw, 1.15rem); letter-spacing: -.018em;
}
.elementor:not(#bl_) .bl-faq summary::-webkit-details-marker { display: none; }
.elementor:not(#bl_) .bl-faq summary::after {
  content: ""; position: absolute; right: .5rem; top: 50%;
  width: .7rem; height: .7rem; margin-top: -.45rem;
  border-right: 2px solid var(--gold-tx); border-bottom: 2px solid var(--gold-tx);
  transform: rotate(45deg); transition: transform .25s var(--out);
}
.elementor:not(#bl_) .bl-faq details[open] summary::after { transform: rotate(-135deg); margin-top: -.2rem; }
.elementor:not(#bl_) .bl-faq summary:hover { color: var(--gold-tx); }
.elementor:not(#bl_) .bl-faq .bl-a { padding: 0 2.75rem 1.5rem 0; color: var(--body); font-size: 1rem; }
.elementor:not(#bl_) .bl-contact-grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 6fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
.elementor:not(#bl_) .bl-reach { margin: 2rem 0 0; display: grid; gap: .6rem; }
.elementor:not(#bl_) .bl-reach a, .elementor:not(#bl_) .bl-reach .bl-row {
  display: flex; align-items: center; gap: .9rem; padding: 1rem 1.3rem;
  background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-card); text-decoration: none;
  transition: border-color .2s var(--out), transform .2s var(--out), box-shadow .2s var(--out);
}
.elementor:not(#bl_) .bl-reach a:hover { border-color: var(--gold); transform: translateY(-2px); box-shadow: var(--sh-1); }
.elementor:not(#bl_) .bl-reach svg { width: 1.2rem; height: 1.2rem; flex: none; color: var(--gold-tx); }
.elementor:not(#bl_) .bl-reach .bl-lab { font-size: .8rem; color: var(--body); display: block; }
.elementor:not(#bl_) .bl-reach .bl-val { font-weight: 600; }
.elementor:not(#bl_) .bl-contact-photo { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--r-card); margin-top: 1.5rem; box-shadow: var(--sh-1); }
.elementor:not(#bl_) .bl-formcard { background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--sh-2); padding: clamp(1.5rem, 3vw, 2.4rem); }
.elementor:not(#bl_) form { display: grid; gap: 1rem; }
.elementor:not(#bl_) .bl-f { display: grid; gap: .4rem; }
.elementor:not(#bl_) .bl-f label { font-size: .88rem; font-weight: 600; }
.elementor:not(#bl_) .bl-f .bl-hint { font-size: .8rem; color: var(--body); }
.elementor:not(#bl_) .bl-f input, .elementor:not(#bl_) .bl-f select, .elementor:not(#bl_) .bl-f textarea {
  font-family: var(--f); font-size: 1rem; color: var(--ink); caret-color: var(--gold-tx);
  background: var(--paper); border: 1.5px solid var(--line); border-radius: var(--r-field);
  padding: .85rem .95rem; width: 100%;
  transition: border-color .18s var(--out), box-shadow .18s var(--out);
}
.elementor:not(#bl_) .bl-f textarea { min-height: 7.5rem; resize: vertical; }
.elementor:not(#bl_) .bl-f input:hover, .elementor:not(#bl_) .bl-f select:hover, .elementor:not(#bl_) .bl-f textarea:hover { border-color: #cfc6b4; }
.elementor:not(#bl_) .bl-f input:focus-visible, .elementor:not(#bl_) .bl-f select:focus-visible, .elementor:not(#bl_) .bl-f textarea:focus-visible { outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(138,106,62,.22); }
.elementor:not(#bl_) .bl-frow { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.elementor:not(#bl_) .bl-err { font-size: .85rem; font-weight: 500; color: var(--danger); display: none; }
.elementor:not(#bl_) .bl-f[data-bad="true"] .bl-err { display: block; }
.elementor:not(#bl_) .bl-f[data-bad="true"] input, .elementor:not(#bl_) .bl-f[data-bad="true"] textarea { border-color: var(--danger); }
.elementor:not(#bl_) .bl-agree { display: grid; grid-template-columns: auto 1fr; gap: .7rem; align-items: start; }
.elementor:not(#bl_) .bl-agree input { width: 1.1rem; height: 1.1rem; margin-top: .3rem; accent-color: var(--gold); }
.elementor:not(#bl_) .bl-agree label { font-size: .875rem; font-weight: 400; color: var(--body); line-height: 1.5; }
.elementor:not(#bl_) .bl-fbot { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.elementor:not(#bl_) .bl-fstat { font-size: .9rem; font-weight: 500; color: var(--gold-tx); }
.elementor:not(#bl_) .bl-sent { display: none; background: var(--tint); border: 1px solid var(--line); border-radius: var(--r-card); padding: 1.4rem 1.6rem; }
.elementor:not(#bl_) .bl-sent h3 { margin-bottom: .4rem; }
.elementor:not(#bl_) .bl-sent p { color: var(--body); font-size: .95rem; }
.elementor:not(#bl_) form[data-state="sent"] { display: none; }
.elementor:not(#bl_) form[data-state="sent"] + .bl-sent { display: block; }
.elementor:not(#bl_) button[disabled] { opacity: .55; cursor: progress; }

@media (max-width: 899px) {
.elementor:not(#bl_) .bl-contact-grid { grid-template-columns: 1fr; } }
@media (max-width: 559px) {
.elementor:not(#bl_) .bl-frow { grid-template-columns: 1fr; } }
.elementor:not(#bl_) .bl-foot { background: var(--deep); color: var(--on-deep); padding-block: clamp(2.75rem, 4vw, 4rem) 1.75rem; }
.elementor:not(#bl_) .bl-foot-grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 3fr) minmax(0, 3fr); gap: clamp(2rem, 4vw, 3.5rem); }
.elementor:not(#bl_) .bl-foot h4 { font-size: .98rem; font-weight: 600; margin: 0 0 1rem; color: var(--gold-dk); letter-spacing: -.015em; }
.elementor:not(#bl_) .bl-foot ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.elementor:not(#bl_) .bl-foot a { text-decoration: none; font-size: .95rem; color: var(--on-deep-2); transition: color .18s var(--out); }
.elementor:not(#bl_) .bl-foot a:hover { color: var(--gold-dk); }
.elementor:not(#bl_) .bl-foot li { font-size: .95rem; color: var(--on-deep-2); }
.elementor:not(#bl_) .bl-foot p { font-size: .95rem; color: var(--on-deep-2); max-width: 40ch; font-weight: 300; }
.elementor:not(#bl_) .bl-foot img { height: 46px; width: auto; margin-bottom: 1.1rem; }
.elementor:not(#bl_) .bl-foot-base { margin-top: clamp(2.5rem, 4vw, 3.5rem); padding-top: 1.5rem; border-top: 1px solid rgba(242,238,228,.16); display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; font-size: .875rem; color: var(--on-deep-2); }

@media (max-width: 899px) {
.elementor:not(#bl_) .bl-foot-grid { grid-template-columns: 1fr 1fr; }
.elementor:not(#bl_) .bl-foot-brand { grid-column: 1 / -1; } }
@media (max-width: 559px) {
.elementor:not(#bl_) .bl-foot-grid { grid-template-columns: 1fr; } }
.elementor:not(#bl_) .bl-callbar { display: none; }
@media (max-width: 979px) {
.elementor:not(#bl_) .bl-callbar {
    display: grid; grid-template-columns: 1fr auto; gap: .55rem;
    position: fixed; left: .7rem; right: .7rem; bottom: .7rem; z-index: 70;
    background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-chip);
    box-shadow: var(--sh-3); padding: .5rem;
    padding-bottom: calc(.5rem + env(safe-area-inset-bottom));
  }
.elementor:not(#bl_) .bl-callbar .bl-btn { padding-block: .9rem; }
.elementor:not(#bl_) .bl-foot { padding-bottom: 6rem; }
}

@media (prefers-reduced-motion: no-preference) {
html.bl-js .elementor:not(#bl_) .bl-up { opacity: 0; transform: translateY(20px); }
html.bl-js .elementor:not(#bl_) .bl-up.bl-in { opacity: 1; transform: none; transition: opacity .8s var(--out), transform .8s var(--out); }
html.bl-js .elementor:not(#bl_) .bl-up.bl-d1.bl-in { transition-delay: .08s; }
html.bl-js .elementor:not(#bl_) .bl-up.bl-d2.bl-in { transition-delay: .16s; }
html.bl-js .elementor:not(#bl_) .bl-up.bl-d3.bl-in { transition-delay: .24s; }
}

/* 7th service card spans the row (23/09) */
.elementor:not(#bl_) .bl-sit-wide { grid-column: 1 / -1; }
@media (min-width: 900px) {
.elementor:not(#bl_) .bl-sit-wide { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.8fr) auto; align-items: center; column-gap: clamp(1.5rem, 3vw, 3rem); }
.elementor:not(#bl_) .bl-sit-wide p { max-width: none; }
.elementor:not(#bl_) .bl-sit-wide .bl-more { margin-top: 0; padding-top: 0; } }
/* tap targets at least 44px on the shared header and footer links (23/09) */
.elementor:not(#bl_) .bl-util a { min-height: 44px; }
.elementor:not(#bl_) .bl-util .bl-right a { min-width: 44px; justify-content: center; }
.elementor:not(#bl_) .bl-nav-row > a:first-child,
.elementor:not(#bl_) .bl-nav-row > .elementor-widget-html > a:first-child, .elementor:not(#bl_) .bl-nav ul a { display: inline-flex; align-items: center; min-height: 44px; }
.elementor:not(#bl_) .bl-nav-row > .bl-btn ,
.elementor:not(#bl_) .bl-nav-row > .elementor-widget-html > .bl-btn { min-height: 44px; }
.elementor:not(#bl_) .bl-foot ul { gap: 0; }
.elementor:not(#bl_) .bl-foot li { display: flex; align-items: center; min-height: 44px; }
.elementor:not(#bl_) .bl-foot li a { display: inline-flex; align-items: center; min-height: 44px; }
/* her real Google rating (23/09) */
.elementor:not(#bl_) .bl-gr { margin: clamp(1.5rem, 3vw, 2.5rem) 0 0; }
.elementor:not(#bl_) .bl-gr a { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .4rem 1rem; min-height: 44px; color: inherit; text-decoration: none; }
.elementor:not(#bl_) .bl-gr-stars { color: #8A6A3E; letter-spacing: .15em; font-size: 1.15em; }
.elementor:not(#bl_) .bl-gr-go { color: #8A6A3E; font-weight: 600; text-decoration: underline; text-underline-offset: .2em; }
.elementor:not(#bl_) .bl-chip-gr { position: relative; }
.elementor:not(#bl_) .bl-chip-gr a { display: inline-flex; align-items: center; gap: .35rem; color: inherit; text-decoration: none; }
.elementor:not(#bl_) .bl-chip-gr a::after { content: ""; position: absolute; inset: -6px -2px; }
.elementor:not(#bl_) .bl-chip-gr span { color: #8A6A3E; }

/* ================= inner pages, G set (23/09). Same tokens, same scope. ================= */
.elementor:not(#bl_) mark.todo { background: #ffe14d; color: #1c1a17; padding: .06em .32em; border-radius: 4px; font-weight: 600; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.elementor:not(#bl_) .bl-ph { padding-block: clamp(1.25rem, .75rem + 2vw, 2.5rem) clamp(3rem, 2rem + 4vw, 5.5rem); }
.elementor:not(#bl_) .bl-ph-grid { display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(0, .82fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.elementor:not(#bl_) .bl-crumb ol { display: flex; flex-wrap: wrap; align-items: center; gap: 0 .55rem; font-size: .88rem; color: var(--body); }
.elementor:not(#bl_) .bl-crumb li { display: inline-flex; align-items: center; min-height: 44px; }
.elementor:not(#bl_) .bl-crumb a { display: inline-flex; align-items: center; min-height: 44px; color: var(--body); text-decoration: underline; text-decoration-color: #cfc6b4; text-underline-offset: 3px; }
.elementor:not(#bl_) .bl-crumb a:hover { color: var(--gold-tx); }
.elementor:not(#bl_) .bl-crumb .bl-sep { opacity: .45; }
.elementor:not(#bl_) .bl-crumb [aria-current] { color: var(--ink); font-weight: 500; }
.elementor:not(#bl_) .bl-eyebrow { display: flex; align-items: center; gap: .75rem; margin-top: .75rem; font-size: .78rem; font-weight: 600; letter-spacing: .16em; line-height: 1.4; color: var(--gold-tx); }
.elementor:not(#bl_) .bl-eyebrow::before { content: ""; width: 2rem; height: 1.5px; background: var(--gold); flex: none; }
.elementor:not(#bl_) .bl-ph h1 { margin-top: 1rem; font-size: clamp(2.05rem, 1.1rem + 3.1vw, 3.7rem); line-height: 1.05; letter-spacing: -.035em; overflow-wrap: break-word; hyphens: auto; }
.elementor:not(#bl_) .bl-ph h1.bl-long { font-size: clamp(1.7rem, .9rem + 2.7vw, 3.1rem); }
.elementor:not(#bl_) .bl-ph .bl-lede { margin-top: 1.35rem; max-width: 36rem; color: #3f3a33; }
.elementor:not(#bl_) .bl-ph .bl-hero-cta { margin-top: 2rem; }
.elementor:not(#bl_) .bl-ph-photo { margin: 0; position: relative; }
.elementor:not(#bl_) .bl-ph-photo img { width: 100%; aspect-ratio: 4 / 4.8; object-fit: cover; border-radius: var(--r-lg); box-shadow: var(--sh-3); }
.elementor:not(#bl_) .bl-ph-photo::before { content: ""; position: absolute; inset: 1.25rem -1.25rem -1.25rem 1.25rem; border: 1.5px solid var(--gold-dk); border-radius: var(--r-lg); z-index: -1; }
.elementor:not(#bl_) .bl-ph-portrait img { object-position: 42% 30%; }
.elementor:not(#bl_) .bl-bigtel { display: inline-flex; align-items: center; min-height: 44px; font-size: clamp(2.2rem, 1.2rem + 3.6vw, 4.4rem); font-weight: 800; letter-spacing: -.04em; line-height: 1; color: var(--gold-tx); font-variant-numeric: tabular-nums; white-space: nowrap; }
.elementor:not(#bl_) .bl-bigtel:hover { color: var(--gold-hi); }
.elementor:not(#bl_) .bl-biglab { display: block; margin-top: 1.75rem; margin-bottom: .35rem; font-size: .85rem; color: var(--body); }
@media (max-width: 899px) {
.elementor:not(#bl_) .bl-ph-grid { grid-template-columns: 1fr; }
.elementor:not(#bl_) .bl-ph-photo { max-width: 34rem; margin-right: .8rem; }
.elementor:not(#bl_) .bl-ph-photo img { aspect-ratio: 16 / 11; }
.elementor:not(#bl_) .bl-ph-photo::before { inset: .8rem -.8rem -.8rem .8rem; }
.elementor:not(#bl_) .bl-ph-portrait { max-width: 25rem; }
.elementor:not(#bl_) .bl-ph-portrait img { aspect-ratio: 4 / 4.6; } }

.elementor:not(#bl_) .bl-rows { border-top: 1px solid var(--line); }
.elementor:not(#bl_) .bl-rowi { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr) minmax(0, 1.4fr); gap: .45rem clamp(1.5rem, 3vw, 3rem); align-items: baseline; padding-block: clamp(1.35rem, 2.3vw, 1.9rem); border-bottom: 1px solid var(--line); }
.elementor:not(#bl_) .bl-rowi .bl-num { font-size: clamp(1.5rem, 1.1rem + 1.2vw, 2.2rem); font-weight: 300; letter-spacing: -.04em; line-height: 1; color: var(--gold-tx); font-variant-numeric: tabular-nums; }
.elementor:not(#bl_) .bl-rowi h3 { font-size: clamp(1.12rem, 1rem + .5vw, 1.4rem); }
.elementor:not(#bl_) .bl-rowi p { color: var(--body); }
.elementor:not(#bl_) .bl-rows-years .bl-rowi { grid-template-columns: 9rem minmax(0, 1fr); }
.elementor:not(#bl_) .bl-rows-years .bl-num { font-size: clamp(1.25rem, 1rem + .8vw, 1.7rem); font-weight: 600; }
.elementor:not(#bl_) .bl-rows-years p { color: var(--ink); max-width: 60ch; }
@media (max-width: 767px) {
.elementor:not(#bl_) .bl-rowi { grid-template-columns: 2.9rem minmax(0, 1fr); }
.elementor:not(#bl_) .bl-rowi p { grid-column: 2; }
.elementor:not(#bl_) .bl-rows-years .bl-rowi { grid-template-columns: 1fr; }
.elementor:not(#bl_) .bl-rows-years .bl-rowi p { grid-column: 1; } }

.elementor:not(#bl_) .bl-ticks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(2rem, 4vw, 4rem); }
.elementor:not(#bl_) .bl-ticks li { display: grid; grid-template-columns: 1.35rem minmax(0, 1fr); gap: .85rem; align-items: start; padding-block: 1.05rem; border-top: 1px solid var(--line); }
.elementor:not(#bl_) .bl-ticks svg { width: 1.35rem; height: 1.35rem; color: var(--gold-tx); margin-top: .15rem; }
@media (max-width: 719px) {
.elementor:not(#bl_) .bl-ticks { grid-template-columns: 1fr; } }

.elementor:not(#bl_) .bl-proofs { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: clamp(1.5rem, 3vw, 2.75rem); }
.elementor:not(#bl_) .bl-proofs li { font-size: clamp(1.05rem, .98rem + .35vw, 1.22rem); font-weight: 500; line-height: 1.42; letter-spacing: -.012em; color: #f2eee4; }
.elementor:not(#bl_) .bl-proofs .bl-bar { display: block; width: 2.25rem; height: 3px; border-radius: 99px; background: var(--gold-dk); margin-bottom: .9rem; }

.elementor:not(#bl_) .bl-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: clamp(1.25rem, 2.5vw, 2.25rem); }
.elementor:not(#bl_) .bl-steps li { display: grid; gap: .6rem; align-content: start; padding-top: 1.4rem; border-top: 2px solid var(--gold); }
.elementor:not(#bl_) .bl-steps .bl-sn { font-size: clamp(2.4rem, 1.8rem + 2vw, 3.4rem); font-weight: 800; letter-spacing: -.05em; line-height: 1; color: var(--gold-tx); margin-bottom: .3rem; }
.elementor:not(#bl_) .bl-steps h3 { font-size: 1.16rem; }
.elementor:not(#bl_) .bl-steps p { font-size: .97rem; color: var(--body); }

.elementor:not(#bl_) .bl-more-row { margin-top: 2rem; }
.elementor:not(#bl_) .bl-bio { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, .9fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
.elementor:not(#bl_) .bl-bio .bl-office-body p { max-width: 68ch; }
.elementor:not(#bl_) .bl-cv { border-radius: var(--r-lg); padding: clamp(1.5rem, 3vw, 2.4rem); display: grid; gap: 1.6rem; }
.elementor:not(#bl_) .bl-cv h3 { font-size: .98rem; color: var(--gold-tx); letter-spacing: -.01em; margin-bottom: .35rem; }
.elementor:not(#bl_) .bl-cv li { padding-block: .6rem; border-top: 1px solid var(--line); font-size: .96rem; }
.elementor:not(#bl_) .bl-vows.bl-vows-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 899px) {
.elementor:not(#bl_) .bl-bio { grid-template-columns: 1fr; }
.elementor:not(#bl_) .bl-vows.bl-vows-3 { grid-template-columns: 1fr; } }

.elementor:not(#bl_) .bl-reach .bl-land { display: inline; color: var(--gold-tx); font-weight: 500; }
.elementor:not(#bl_) .bl-map { position: relative; isolation: isolate; border-radius: var(--r-lg); overflow: hidden; background: var(--gold-wash); }
.elementor:not(#bl_) .bl-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
.elementor:not(#bl_) .bl-map-fb { position: absolute; inset: 0; z-index: -1; display: grid; place-content: center; justify-items: center; gap: .5rem; text-align: center; padding: 1.5rem; color: var(--gold-tx); font-weight: 600; }
.elementor:not(#bl_) .bl-map-fb svg { width: 2.2rem; height: 2.2rem; }
.elementor:not(#bl_) .bl-callcard { margin-top: 2rem; border-radius: var(--r-lg); box-shadow: var(--sh-2); padding: clamp(1.5rem, 3vw, 2.2rem); display: grid; gap: .7rem; justify-items: start; }
.elementor:not(#bl_) .bl-callcard .bl-bigtel { color: var(--gold-dk); font-size: clamp(1.9rem, 1.2rem + 2.2vw, 2.9rem); }
.elementor:not(#bl_) .bl-callcard .bl-bigtel:hover { color: #e0c79f; }

.elementor:not(#bl_) .bl-missing { background: #fff4a8; border-top: 3px solid #e3c400; padding-block: 1.4rem; color: #1c1a17; font-size: .92rem; }
.elementor:not(#bl_) .bl-missing ul { list-style: disc; padding-left: 1.2rem; display: grid; gap: .3rem; margin-top: .5rem; }

/* ================= round 2 (23/09): 1440 layout, glass, gradients, mega menu, standard ending ================= */
.elementor:not(#bl_) { --wrap: 1440px; --on-dk-2: #c4bcaf; }
.elementor:not(#bl_) [hidden] { display: none !important; }
.elementor:not(#bl_) .bl-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* section grounds: ivory gradients alternate direction (a / b), dark = charcoal + bronze corner glows */
.elementor:not(#bl_) .bl-bg-a { background-color: #f7f4ed; background-image: radial-gradient(55% 70% at 3% 0%, rgba(198,161,115,.17) 0%, rgba(198,161,115,0) 70%), linear-gradient(180deg, #f7f4ed 0%, #efebe1 100%); }
.elementor:not(#bl_) .bl-bg-b { background-color: #efebe1; background-image: radial-gradient(55% 70% at 97% 100%, rgba(198,161,115,.17) 0%, rgba(198,161,115,0) 70%), linear-gradient(180deg, #efebe1 0%, #f7f4ed 100%); }
.elementor:not(#bl_) .bl-bg-hero { background-color: #f7f4ed; background-image: radial-gradient(46% 80% at 100% 0%, rgba(198,161,115,.26) 0%, rgba(198,161,115,0) 70%), radial-gradient(40% 60% at 0% 100%, rgba(138,106,62,.08) 0%, rgba(138,106,62,0) 70%), linear-gradient(180deg, #f7f4ed 0%, #f7f4ed 40%, #efebe1 100%); }
.elementor:not(#bl_) .bl-bg-dk { background-color: #232120; color: var(--on-deep); background-image: radial-gradient(640px 640px at 100% 108%, rgba(198,161,115,.18) 0%, rgba(198,161,115,0) 68%), radial-gradient(520px 520px at 96% 40%, rgba(242,238,228,.045) 0%, rgba(242,238,228,0) 62%), radial-gradient(800px 800px at 4% -12%, rgba(138,106,62,.36) 0%, rgba(138,106,62,0) 60%), linear-gradient(165deg, #2b2825 0%, #191715 100%); }
.elementor:not(#bl_) .bl-bg-dk h2, .elementor:not(#bl_) .bl-bg-dk h3 { color: var(--on-deep); }
.elementor:not(#bl_) .bl-bg-dk .bl-lede, .elementor:not(#bl_) .bl-bg-dk p { color: var(--on-dk-2); }
.elementor:not(#bl_) .bl-bg-dk .bl-eyebrow { color: var(--gold-dk); }
.elementor:not(#bl_) .bl-bg-dk .bl-eyebrow::before { background: var(--gold-dk); }

/* 1440 layout: section heads span the container; line length held by type size */
.elementor:not(#bl_) .bl-head { max-width: none; }
.elementor:not(#bl_) .bl-head h2 { font-size: clamp(1.85rem, 1.05rem + 2.45vw, 3.35rem); max-width: none; }
.elementor:not(#bl_) .bl-head .bl-lede { max-width: none; font-size: clamp(1.06rem, .9rem + .55vw, 1.42rem); }
.elementor:not(#bl_) .bl-head .bl-eyebrow { margin-top: 0; }
.elementor:not(#bl_) .bl-after { margin-top: clamp(1.75rem, 3vw, 2.5rem); display: flex; flex-wrap: wrap; gap: .7rem; }

/* glass: light and dark */
.elementor:not(#bl_) .bl-glass, .elementor:not(#bl_) .bl-pf { background: linear-gradient(155deg, rgba(255,255,255,.72) 0%, rgba(255,255,255,.46) 100%); border: 1px solid rgba(138,106,62,.16); box-shadow: inset 0 1px 0 rgba(255,255,255,.8), 0 18px 44px -26px rgba(60,44,22,.32); -webkit-backdrop-filter: blur(22px) saturate(1.35); backdrop-filter: blur(22px) saturate(1.35); }
.elementor:not(#bl_) .bl-glass-dk, .elementor:not(#bl_) .bl-bg-dk .bl-pf { background: linear-gradient(155deg, rgba(255,255,255,.11) 0%, rgba(255,255,255,.05) 100%); border: 1px solid rgba(242,238,228,.16); box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 24px 50px -30px rgba(0,0,0,.7); -webkit-backdrop-filter: blur(20px) saturate(1.4); backdrop-filter: blur(20px) saturate(1.4); }
/* the 1 0 1 0 1 0 0 pattern: bl-pg = gradient item (set by gen.py, index % 7 in 0, 2, 4) */
.elementor:not(#bl_) .bl-pg { background: radial-gradient(95% 85% at 0% 0%, rgba(198,161,115,.34) 0%, rgba(198,161,115,0) 62%), linear-gradient(155deg, #eee0c8 0%, #f5eee1 52%, #faf7f1 100%); border: 1px solid #dac8aa; box-shadow: inset 0 1px 0 rgba(255,255,255,.7), 0 18px 44px -26px rgba(60,44,22,.34); -webkit-backdrop-filter: blur(22px) saturate(1.35); backdrop-filter: blur(22px) saturate(1.35); }
.elementor:not(#bl_) .bl-bg-dk .bl-pg { background: radial-gradient(95% 85% at 0% 0%, rgba(198,161,115,.30) 0%, rgba(198,161,115,0) 62%), linear-gradient(155deg, rgba(198,161,115,.20) 0%, rgba(255,255,255,.04) 100%); border: 1px solid rgba(198,161,115,.36); box-shadow: inset 0 1px 0 rgba(255,255,255,.07), 0 24px 50px -30px rgba(0,0,0,.7); -webkit-backdrop-filter: blur(20px) saturate(1.4); backdrop-filter: blur(20px) saturate(1.4); }
.elementor:not(#bl_) .bl-card { border-radius: var(--r-card); padding: clamp(1.4rem, 2.2vw, 2rem); height: 100%; }
.elementor:not(#bl_) .bl-sit.bl-pg:hover, .elementor:not(#bl_) .bl-sit.bl-pf:hover { border-color: var(--gold); }
.elementor:not(#bl_) .bl-obj .bl-card { padding: clamp(1.4rem, 2.2vw, 2rem); border-top: 2px solid var(--gold); }
.elementor:not(#bl_) .bl-vows .bl-card p { color: var(--on-dk-2); }

/* 1. header: bigger logo, glass when stuck (the glass lives on ::before so the mega panel can blur the page) */
.elementor:not(#bl_) .bl-nav { background: transparent; }
.elementor:not(#bl_) .bl-nav::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--paper); transition: background-color .3s var(--out); }
.elementor:not(#bl_) .bl-nav[data-stuck="true"] { border-bottom-color: rgba(138,106,62,.16); }
.elementor:not(#bl_) .bl-nav[data-stuck="true"]::before { background: rgba(247,244,237,.74); -webkit-backdrop-filter: blur(20px) saturate(1.4); backdrop-filter: blur(20px) saturate(1.4); }
.elementor:not(#bl_) .bl-nav-row { height: 96px; }
.elementor:not(#bl_) .bl-nav .bl-logo img { height: 72px; width: auto; }
.elementor:not(#bl_) .bl-menu { margin-left: auto; display: flex; align-items: center; gap: clamp(1rem, 2vw, 2.25rem); }
.elementor:not(#bl_) .bl-menu > a,
.elementor:not(#bl_) .bl-menu > .elementor-widget-html > a, .elementor:not(#bl_) .bl-mega-btn { display: inline-flex; align-items: center; gap: .35rem; min-height: 44px; font-size: .98rem; color: var(--body); cursor: pointer; transition: color .18s var(--out); }
.elementor:not(#bl_) .bl-menu > a:hover,
.elementor:not(#bl_) .bl-menu > .elementor-widget-html > a:hover, .elementor:not(#bl_) .bl-menu > a[aria-current="page"], .elementor:not(#bl_) .bl-menu > .elementor-widget-html > a[aria-current="page"], .elementor:not(#bl_) .bl-mega-btn:hover, .elementor:not(#bl_) .bl-mega-btn[aria-expanded="true"], .elementor:not(#bl_) .bl-mega-btn.bl-is-cur { color: var(--ink); }
.elementor:not(#bl_) .bl-menu > a[aria-current="page"],
.elementor:not(#bl_) .bl-menu > .elementor-widget-html > a[aria-current="page"], .elementor:not(#bl_) .bl-mega-btn.bl-is-cur { box-shadow: inset 0 -2px 0 var(--gold); }
.elementor:not(#bl_) .bl-mega-btn svg { width: .95rem; height: .95rem; transition: transform .2s var(--out); }
.elementor:not(#bl_) .bl-mega-btn[aria-expanded="true"] svg { transform: rotate(180deg); }

/* 13. mega menu */
.elementor:not(#bl_) .bl-mega { position: absolute; left: 0; right: 0; top: 100%; padding-top: .6rem; visibility: hidden; opacity: 0; transform: translateY(-8px); transition: opacity .22s var(--out), transform .22s var(--out), visibility 0s linear .22s; }
.elementor:not(#bl_) .bl-mega[data-open="true"] { visibility: visible; opacity: 1; transform: none; transition: opacity .22s var(--out), transform .22s var(--out), visibility 0s; }
.elementor:not(#bl_) .bl-mega-panel { display: grid; grid-template-columns: minmax(0, 3fr) minmax(15rem, 1fr); gap: 1rem; padding: 1rem; border-radius: var(--r-lg); background: linear-gradient(155deg, rgba(251,249,244,.88) 0%, rgba(247,244,237,.74) 100%); border: 1px solid rgba(138,106,62,.18); box-shadow: inset 0 1px 0 rgba(255,255,255,.8), var(--sh-3); -webkit-backdrop-filter: blur(26px) saturate(1.4); backdrop-filter: blur(26px) saturate(1.4); }
.elementor:not(#bl_) .bl-mega-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .35rem; align-content: start; }
.elementor:not(#bl_) .bl-nav .bl-mega-link { display: grid; grid-template-columns: 2.2rem minmax(0, 1fr); gap: .75rem; align-items: start; min-height: 44px; padding: 1rem 1.05rem; border-radius: 16px; border: 1px solid transparent; color: var(--ink); transition: background-color .18s var(--out), border-color .18s var(--out); }
.elementor:not(#bl_) .bl-nav .bl-mega-link:hover, .elementor:not(#bl_) .bl-nav .bl-mega-link:focus-visible, .elementor:not(#bl_) .bl-nav .bl-mega-link[aria-current="page"] { background: rgba(255,255,255,.78); border-color: rgba(138,106,62,.2); }
.elementor:not(#bl_) .bl-mega-n { font-size: .8rem; font-weight: 600; letter-spacing: .08em; color: var(--gold-tx); padding-top: .18rem; font-variant-numeric: tabular-nums; }
.elementor:not(#bl_) .bl-mega-t { display: block; font-weight: 600; font-size: 1rem; letter-spacing: -.015em; line-height: 1.3; }
.elementor:not(#bl_) .bl-mega-d { display: block; margin-top: .2rem; font-size: .88rem; line-height: 1.4; color: var(--body); }
.elementor:not(#bl_) .bl-mega-cta { border-radius: 20px; padding: 1.5rem; display: grid; gap: .45rem; align-content: start; }
.elementor:not(#bl_) .bl-mega-k { font-size: .72rem; font-weight: 600; letter-spacing: .16em; color: var(--gold-dk); }
.elementor:not(#bl_) .bl-nav .bl-mega-tel { font-size: 1.75rem; font-weight: 800; letter-spacing: -.035em; line-height: 1.1; color: #f2eee4; white-space: nowrap; font-variant-numeric: tabular-nums; }
.elementor:not(#bl_) .bl-nav .bl-mega-tel:hover { color: var(--gold-dk); }
.elementor:not(#bl_) .bl-mega-cta p { font-size: .9rem; }
.elementor:not(#bl_) .bl-mega-cta .bl-btn { margin-top: .6rem; justify-self: start; }

/* mobile drawer with the services accordion */
@media (max-width: 979px) {
.elementor:not(#bl_) .bl-menu, .elementor:not(#bl_) .bl-mega { display: none; }
.elementor:not(#bl_) .bl-nav-row { height: 76px; }
.elementor:not(#bl_) .bl-nav .bl-logo img { height: 56px; }
.elementor:not(#bl_) .bl-nav .bl-drawer ul { display: block; margin: 0 0 1rem; padding: 0; }
.elementor:not(#bl_) .bl-nav .bl-drawer .bl-acc-list { margin: 0; padding: .25rem 0 .6rem .9rem; border-bottom: 1px solid var(--line); }
.elementor:not(#bl_) .bl-nav .bl-drawer .bl-item { display: flex; width: 100%; align-items: center; justify-content: space-between; min-height: 48px; padding: .75rem 0; font-size: 1rem; font-weight: 500; text-align: left; color: var(--ink); border-bottom: 1px solid var(--line); cursor: pointer; }
.elementor:not(#bl_) .bl-nav .bl-drawer .bl-item[aria-current="page"] { color: var(--gold-tx); }
.elementor:not(#bl_) .bl-acc-btn svg { width: 1.1rem; height: 1.1rem; color: var(--gold-tx); transition: transform .2s var(--out); }
.elementor:not(#bl_) .bl-acc-btn[aria-expanded="true"] svg { transform: rotate(180deg); }
.elementor:not(#bl_) .bl-nav .bl-acc-list a { display: flex; align-items: center; min-height: 44px; color: var(--body); font-size: .97rem; }
.elementor:not(#bl_) .bl-nav .bl-acc-list a[aria-current="page"] { color: var(--gold-tx); font-weight: 600; } }

/* 10. hero credentials: a glass strip of seals, not buttons */
.elementor:not(#bl_) .bl-cred { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 40rem; margin-top: 2rem; border-radius: 18px; overflow: hidden; }
.elementor:not(#bl_) .bl-cred > li ,
.elementor:not(#bl_) .bl-cred > .elementor-widget-html > li { display: flex; align-items: center; gap: .8rem; padding: .95rem 1.1rem; min-height: 4.6rem; box-shadow: -1px -1px 0 0 rgba(138,106,62,.18); cursor: default; }
.elementor:not(#bl_) .bl-cred-ic { flex: none; width: 2.5rem; height: 2.5rem; border-radius: 50%; display: grid; place-items: center; color: var(--gold-tx); background: radial-gradient(circle at 32% 26%, #fdf9f1 0%, #eadcc3 100%); box-shadow: inset 0 0 0 1px rgba(138,106,62,.3), inset 0 0 0 4px rgba(255,255,255,.55); }
.elementor:not(#bl_) .bl-cred-ic svg { width: 1.2rem; height: 1.2rem; }
.elementor:not(#bl_) .bl-cred-k { display: block; font-size: .68rem; font-weight: 600; letter-spacing: .14em; line-height: 1.35; color: var(--gold-tx); }
.elementor:not(#bl_) .bl-cred-v { display: block; margin-top: .18rem; font-size: .94rem; font-weight: 600; line-height: 1.3; letter-spacing: -.01em; color: var(--ink); }
.elementor:not(#bl_) .bl-cred-stars { color: var(--gold); letter-spacing: .06em; }
.elementor:not(#bl_) .bl-cred a { display: flex; align-items: center; gap: .8rem; width: 100%; min-height: 44px; color: inherit; cursor: pointer; }
.elementor:not(#bl_) .bl-cred a .bl-cred-go { flex: none; margin-left: auto; width: 1.05rem; height: 1.05rem; color: var(--gold-tx); transition: transform .2s var(--out); }
.elementor:not(#bl_) .bl-cred a:hover .bl-cred-v { text-decoration: underline; text-underline-offset: .2em; }
.elementor:not(#bl_) .bl-cred a:hover .bl-cred-go { transform: translate(2px, -2px); }
.elementor:not(#bl_) .bl-cred > li.bl-cred-wide ,
.elementor:not(#bl_) .bl-cred > .elementor-widget-html > li.bl-cred-wide { grid-column: 1 / -1; }
.elementor:not(#bl_) .bl-hero .bl-hero-in { max-width: 44rem; }
@media (max-width: 559px) {
.elementor:not(#bl_) .bl-cred { grid-template-columns: 1fr; }
.elementor:not(#bl_) .bl-cred > li ,
.elementor:not(#bl_) .bl-cred > .elementor-widget-html > li { padding: .7rem .9rem; min-height: 3.6rem; }
.elementor:not(#bl_) .bl-cred-ic { width: 2.2rem; height: 2.2rem; } }

/* 11. about-us blocks with her photo */
.elementor:not(#bl_) .bl-who { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.elementor:not(#bl_) .bl-who-photo { margin: 0 1.25rem 1.25rem 0; position: relative; isolation: isolate; }
.elementor:not(#bl_) .bl-who-photo img { width: 100%; aspect-ratio: 4 / 4.5; object-fit: cover; object-position: 42% 30%; border-radius: var(--r-lg); box-shadow: var(--sh-3); }
.elementor:not(#bl_) .bl-who-photo::before { content: ""; position: absolute; inset: 1.25rem -1.25rem -1.25rem 1.25rem; border: 1.5px solid var(--gold-dk); border-radius: var(--r-lg); z-index: -1; }
.elementor:not(#bl_) .bl-who .bl-facts { grid-template-columns: 1fr; gap: 1.25rem; }
.elementor:not(#bl_) .bl-who .bl-head { margin-bottom: clamp(1.5rem, 3vw, 2.25rem); }
.elementor:not(#bl_) .bl-bio-side { display: grid; gap: 1.25rem; }
.elementor:not(#bl_) .bl-bio-photo { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--r-lg); box-shadow: var(--sh-2); }
@media (max-width: 899px) {
.elementor:not(#bl_) .bl-who { grid-template-columns: 1fr; }
.elementor:not(#bl_) .bl-who-photo { max-width: 30rem; margin: 0 .8rem .8rem 0; }
.elementor:not(#bl_) .bl-who-photo::before { inset: .8rem -.8rem -.8rem .8rem; }
.elementor:not(#bl_) .bl-who-photo img { aspect-ratio: 4 / 3.6; } }

/* 14. how we work together */
.elementor:not(#bl_) .bl-hww { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(1.25rem, 3vw, 3rem); align-items: stretch; }
.elementor:not(#bl_) .bl-hww-photo { margin: 0; position: relative; min-height: 24rem; }
.elementor:not(#bl_) .bl-hww-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: var(--r-lg); box-shadow: var(--sh-3); }
.elementor:not(#bl_) .bl-hww-steps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.elementor:not(#bl_) .bl-hww-step { display: grid; gap: .55rem; align-content: start; }
.elementor:not(#bl_) .bl-hww-n { font-size: clamp(2.2rem, 1.7rem + 1.6vw, 3rem); font-weight: 800; letter-spacing: -.05em; line-height: 1; color: var(--gold-tx); font-variant-numeric: tabular-nums; margin-bottom: .35rem; }
.elementor:not(#bl_) .bl-hww-step h3 { font-size: 1.16rem; }
.elementor:not(#bl_) .bl-hww-step p { font-size: .98rem; color: var(--body); }
@media (max-width: 899px) {
.elementor:not(#bl_) .bl-hww { grid-template-columns: 1fr; }
.elementor:not(#bl_) .bl-hww-photo { min-height: 0; aspect-ratio: 16 / 10; } }
@media (max-width: 559px) {
.elementor:not(#bl_) .bl-hww-steps { grid-template-columns: 1fr; } }

/* 6. the one form, in a glass card */
.elementor:not(#bl_) .bl-formcard { background: none; }
.elementor:not(#bl_) .bl-formcard.bl-glass { border-radius: var(--r-lg); }
.elementor:not(#bl_) .bl-agree a { color: var(--gold-tx); font-weight: 500; text-decoration: underline; text-underline-offset: .18em; }
.elementor:not(#bl_) .bl-reach a, .elementor:not(#bl_) .bl-reach .bl-row { background: rgba(255,255,255,.5); border-color: rgba(138,106,62,.16); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }

/* reviews */
.elementor:not(#bl_) .bl-rev { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 1rem; align-items: start; }
@media (min-width: 900px) {
.elementor:not(#bl_) .bl-rev-score { position: sticky; top: 8rem; }
.elementor:not(#bl_) .bl-contact-grid .bl-formcard { position: sticky; top: 7.5rem; } }
.elementor:not(#bl_) .bl-rev-score { display: grid; gap: .4rem; justify-items: start; align-content: start; padding: clamp(1.5rem, 3vw, 2.2rem); border-radius: var(--r-lg); color: var(--on-deep); transition: border-color .2s var(--out), transform .2s var(--out); }
.elementor:not(#bl_) a.bl-rev-score:hover { border-color: rgba(198,161,115,.5); transform: translateY(-2px); }
.elementor:not(#bl_) .bl-rev-num { font-size: clamp(3rem, 2rem + 3vw, 4.6rem); font-weight: 800; letter-spacing: -.05em; line-height: 1; }
.elementor:not(#bl_) .bl-rev-stars { color: var(--gold-dk); font-size: 1.35rem; letter-spacing: .12em; }
.elementor:not(#bl_) .bl-rev-count { color: var(--on-dk-2); }
.elementor:not(#bl_) .bl-rev-link { margin-top: .75rem; display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; font-weight: 600; color: var(--gold-dk); text-decoration: underline; text-underline-offset: .2em; }
.elementor:not(#bl_) .bl-rev-link svg { width: 1rem; height: 1rem; }
.elementor:not(#bl_) .bl-rev-todo { display: grid; place-content: center; padding: clamp(1.5rem, 3vw, 2.2rem); border-radius: var(--r-lg); border: 1.5px dashed rgba(242,238,228,.28); }
.elementor:not(#bl_) .bl-revs { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); gap: 1rem; }
.elementor:not(#bl_) .bl-rv { display: grid; gap: .85rem; align-content: start; }
.elementor:not(#bl_) .bl-rv-stars { color: var(--gold-dk); letter-spacing: .12em; }
.elementor:not(#bl_) .bl-rv-q p { color: var(--on-deep); font-size: 1rem; line-height: 1.55; }
.elementor:not(#bl_) .bl-rv-who { display: grid; gap: .1rem; }
.elementor:not(#bl_) .bl-rv-n { font-weight: 600; font-size: .95rem; color: var(--on-deep); }
.elementor:not(#bl_) .bl-rv-d { font-size: .85rem; color: var(--on-dk-2); }
@media (max-width: 899px) {
.elementor:not(#bl_) .bl-rev { grid-template-columns: 1fr; } }
/* 23/09 verifier: review cards masonry (no stretched empty cards); drawer clears the mobile call bar */
.elementor:not(#bl_) .bl-revs { display: block; columns: 17rem 3; column-gap: 1rem; }
.elementor:not(#bl_) .bl-revs > * ,
.elementor:not(#bl_) .bl-revs > .elementor-widget-html > * { break-inside: avoid; margin: 0 0 1rem; width: 100%; }
@media (max-width: 1023px) { .elementor:not(#bl_) .bl-nav .bl-drawer { padding-bottom: 6.5rem; } }

/* 5. FAQ: centred column, glass items on dark */
.elementor:not(#bl_) .bl-faq-col { max-width: 880px; margin-inline: auto; }
.elementor:not(#bl_) .bl-head-c { justify-items: center; text-align: center; }
.elementor:not(#bl_) .bl-head-c .bl-eyebrow { justify-content: center; }
.elementor:not(#bl_) .bl-faq-col .bl-faq { max-width: none; display: grid; gap: .65rem; }
.elementor:not(#bl_) .bl-faq-col .bl-faq details { border: 1px solid rgba(242,238,228,.16); border-radius: 18px; padding: 0 1.4rem; transition: border-color .2s var(--out), background-color .2s var(--out); }
.elementor:not(#bl_) .bl-faq-col .bl-faq details[open] { border-color: rgba(198,161,115,.4); background: linear-gradient(155deg, rgba(198,161,115,.16) 0%, rgba(255,255,255,.05) 100%); }
.elementor:not(#bl_) .bl-faq-col .bl-faq summary { padding: 1.2rem 2.4rem 1.2rem 0; color: var(--on-deep); }
.elementor:not(#bl_) .bl-faq-col .bl-faq summary::after { right: .2rem; border-color: var(--gold-dk); }
.elementor:not(#bl_) .bl-faq-col .bl-faq summary:hover { color: var(--gold-dk); }
.elementor:not(#bl_) .bl-faq-col .bl-faq summary:focus-visible { outline-offset: 6px; }
.elementor:not(#bl_) .bl-faq-col .bl-faq .bl-a { padding: 0 2.4rem 1.35rem 0; color: var(--on-dk-2); max-width: none; }
.elementor:not(#bl_) .bl-faq-col .bl-after { justify-content: center; }

/* 7. newsletter above the footer */
.elementor:not(#bl_) .bl-nl-band { padding-block: clamp(2.5rem, 1.5rem + 4vw, 5rem); }
.elementor:not(#bl_) .bl-nl { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: center; padding: clamp(1.6rem, 1rem + 3vw, 3.5rem); border-radius: var(--r-lg); box-shadow: var(--sh-3); overflow: hidden; }
.elementor:not(#bl_) .bl-nl h2 { margin-top: .7rem; font-size: clamp(1.6rem, 1.1rem + 1.6vw, 2.5rem); }
.elementor:not(#bl_) .bl-nl-copy > p:not(.bl-eyebrow) ,
.elementor:not(#bl_) .bl-nl-copy > .elementor-widget-html > p:not(.bl-eyebrow) { margin-top: .8rem; max-width: none; }
.elementor:not(#bl_) .bl-nl-form { display: grid; gap: .9rem; }
.elementor:not(#bl_) .bl-nl-row { display: flex; gap: .5rem; padding: .45rem; border-radius: 999px; }
.elementor:not(#bl_) .bl-nl-row input { flex: 1; min-width: 0; min-height: 48px; padding: 0 1.1rem; color: var(--on-deep); font-size: 1rem; background: transparent; border: 0; border-radius: 999px; }
.elementor:not(#bl_) .bl-nl-row input::placeholder { color: #a8a094; opacity: 1; }
.elementor:not(#bl_) .bl-nl-row input:focus-visible { outline: 2px solid var(--gold-dk); outline-offset: 2px; border-radius: 999px; }
.elementor:not(#bl_) .bl-nl .bl-f[data-bad="true"] .bl-nl-row { border-color: #f0a197; }
.elementor:not(#bl_) .bl-nl .bl-err { color: #f3b2a9; }
.elementor:not(#bl_) .bl-nl .bl-agree label { color: var(--on-dk-2); }
.elementor:not(#bl_) .bl-nl .bl-agree a { color: var(--gold-dk); }
.elementor:not(#bl_) .bl-nl .bl-fstat { color: var(--gold-dk); }
@media (max-width: 899px) {
.elementor:not(#bl_) .bl-nl { grid-template-columns: 1fr; } }
@media (max-width: 479px) {
.elementor:not(#bl_) .bl-nl-row { flex-direction: column; border-radius: 22px; }
.elementor:not(#bl_) .bl-nl-row .bl-btn { width: 100%; } }

/* 8 + 18. footer: logo on top, legal row, credit */
.elementor:not(#bl_) .bl-foot { background-color: #191715; background-image: radial-gradient(760px 520px at 0% 0%, rgba(138,106,62,.22) 0%, rgba(138,106,62,0) 65%), linear-gradient(180deg, #211f1d 0%, #151311 100%); }
.elementor:not(#bl_) .bl-foot-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem 2rem; padding-bottom: clamp(1.75rem, 3vw, 2.5rem); margin-bottom: clamp(1.75rem, 3vw, 2.5rem); border-bottom: 1px solid rgba(242,238,228,.14); }
.elementor:not(#bl_) .bl-foot .bl-foot-logo { display: inline-flex; }
.elementor:not(#bl_) .bl-foot .bl-foot-logo img { height: 96px; width: auto; margin: 0; }
.elementor:not(#bl_) .bl-foot .bl-foot-top .bl-btn { color: #ffffff; font-size: 1rem; }
.elementor:not(#bl_) .bl-foot-base { align-items: center; }
.elementor:not(#bl_) .bl-foot-legal { display: flex; flex-wrap: wrap; gap: 0 1.5rem; }
.elementor:not(#bl_) .bl-foot .bl-foot-base a { display: inline-flex; align-items: center; min-height: 44px; font-size: .875rem; }
@media (max-width: 559px) {
.elementor:not(#bl_) .bl-foot .bl-foot-logo img { height: 84px; }
.elementor:not(#bl_) .bl-foot-base { flex-direction: column; align-items: flex-start; gap: .25rem; } }

/* mobile call bar: glass */
@media (max-width: 979px) {
.elementor:not(#bl_) .bl-callbar { background: rgba(247,244,237,.72); border-color: rgba(255,255,255,.75); -webkit-backdrop-filter: blur(18px) saturate(1.5); backdrop-filter: blur(18px) saturate(1.5); } }

/* 24/09 Kostas: «on the mobile the button that are floating would be better to start after hero».
   The call bar waits below the screen until the hero has scrolled away (the script sets data-show). */
@media (max-width: 979px) {
html.bl-js .elementor:not(#bl_) .bl-callbar { transform: translateY(calc(100% + 1.5rem)); opacity: 0; pointer-events: none; transition: transform .45s var(--out), opacity .3s var(--out); }
html.bl-js .elementor:not(#bl_) .bl-callbar[data-show="true"] { transform: none; opacity: 1; pointer-events: auto; } }
/* 24/09 Kostas, iPhone Chrome screenshot: «the floating breaks like that when it has extra space under».
   The safe-area inset was added INSIDE the pill (padding-bottom), so the pill grew at the bottom and the
   buttons sat high. The inset now lifts the whole pill instead; the pill keeps even padding. */
@media (max-width: 979px) {
.elementor:not(#bl_) .bl-callbar { bottom: calc(.7rem + env(safe-area-inset-bottom, 0px)); padding-bottom: .5rem; } }

/* 17. contact: directions + her Google Business map */
.elementor:not(#bl_) .bl-find { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(1.25rem, 3vw, 3rem); align-items: stretch; }
.elementor:not(#bl_) .bl-mapframe { padding: .55rem; border-radius: calc(var(--r-lg) + .55rem); display: grid; }
.elementor:not(#bl_) .bl-mapframe .bl-map { min-height: 28rem; height: 100%; }
.elementor:not(#bl_) .bl-dirs { display: grid; gap: .75rem; align-content: start; }
.elementor:not(#bl_) .bl-dir-i { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: 1rem; align-items: start; }
.elementor:not(#bl_) .bl-dir-i.bl-card { padding: 1.1rem 1.25rem; }
.elementor:not(#bl_) .bl-dir-ic { width: 3rem; height: 3rem; border-radius: 14px; display: grid; place-items: center; color: var(--gold-tx); background: linear-gradient(160deg, rgba(138,106,62,.14) 0%, rgba(198,161,115,.08) 100%); border: 1px solid rgba(138,106,62,.2); }
.elementor:not(#bl_) .bl-dir-ic svg { width: 1.45rem; height: 1.45rem; }
.elementor:not(#bl_) .bl-dir-t { display: block; font-weight: 600; letter-spacing: -.01em; }
.elementor:not(#bl_) .bl-dir-i p { margin-top: .15rem; font-size: .96rem; color: var(--body); }
.elementor:not(#bl_) .bl-dirs .bl-btn { justify-self: start; margin-top: .4rem; }
.elementor:not(#bl_) .bl-contact-photo { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--r-lg); margin-top: 1.5rem; box-shadow: var(--sh-2); }
@media (max-width: 899px) {
.elementor:not(#bl_) .bl-find { grid-template-columns: 1fr; }
.elementor:not(#bl_) .bl-mapframe .bl-map { min-height: 20rem; } }

/* policies: reading layout */
.elementor:not(#bl_) .bl-legal { display: grid; gap: clamp(1.75rem, 3vw, 2.5rem); max-width: 62rem; }
.elementor:not(#bl_) .bl-legal article { display: grid; grid-template-columns: 4rem minmax(0, 1fr); gap: .5rem 1.5rem; padding-top: 1.75rem; border-top: 1px solid var(--line); }
.elementor:not(#bl_) .bl-legal .bl-num { font-size: 1.6rem; font-weight: 300; letter-spacing: -.03em; line-height: 1.2; color: var(--gold-tx); font-variant-numeric: tabular-nums; }
.elementor:not(#bl_) .bl-legal h2 { font-size: clamp(1.25rem, 1.05rem + .8vw, 1.7rem); line-height: 1.25; }
.elementor:not(#bl_) .bl-legal-body { display: grid; gap: .9rem; margin-top: .7rem; color: var(--body); }
.elementor:not(#bl_) .bl-legal-body p { max-width: 70ch; }
.elementor:not(#bl_) .bl-upd { margin-top: 1.4rem; font-size: .92rem; color: var(--body); }
@media (max-width: 599px) {
.elementor:not(#bl_) .bl-legal article { grid-template-columns: 1fr; } }

/* no backdrop-filter: solid fills, same colours */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
.elementor:not(#bl_) .bl-glass, .elementor:not(#bl_) .bl-pf { background: #fbf9f4; }
.elementor:not(#bl_) .bl-pg { background: linear-gradient(155deg, #eee0c8 0%, #f7f1e6 100%); }
.elementor:not(#bl_) .bl-glass-dk, .elementor:not(#bl_) .bl-bg-dk .bl-pf { background: #2e2b29; }
.elementor:not(#bl_) .bl-bg-dk .bl-pg { background: linear-gradient(155deg, #3f362b 0%, #2e2b29 100%); }
.elementor:not(#bl_) .bl-nav[data-stuck="true"]::before { background: var(--paper); }
.elementor:not(#bl_) .bl-mega-panel { background: #fbf9f4; }
.elementor:not(#bl_) .bl-reach a, .elementor:not(#bl_) .bl-reach .bl-row { background: var(--paper); }
.elementor:not(#bl_) .bl-callbar { background: var(--paper); } }

/* ================= round 3 (23/09): seamless grounds, newsletter band, flat buttons and icons, body sections ================= */
/* 4 + section grounds (Kostas 23/09: «i gave you the real examples to use»). Source: the viewpoint staging home export
   (viewpoint/data/elementor-templates/19-stag1ng.viewpointins.gr.json): dark containers carry one 4-layer recipe in
   custom_css, light containers are flat global colours. Here: dark = that recipe, same px sizes, positions and alphas,
   recoloured to bronze / ivory / charcoal (top-left bronze glow .55 toned to .40: at .55 the bronze eyebrows fell under AA). Light = the flat ivory tones, chained by gen.py so neighbours never show a seam
   (a: #f7f4ed to #efebe1, b: the reverse), with the same three glows as white highlights at very low alpha. */
.elementor:not(#bl_) .bl-bg-a { background-color: #f7f4ed; background-image: radial-gradient(620px 620px at 100% 108%, rgba(255,255,255,.05), transparent 68%), radial-gradient(520px 520px at 96% 40%, rgba(255,255,255,.05), transparent 62%), radial-gradient(780px 780px at 4% -12%, rgba(255,255,255,.05), transparent 60%), linear-gradient(180deg, #f7f4ed 0%, #efebe1 100%); }
.elementor:not(#bl_) .bl-bg-b { background-color: #efebe1; background-image: radial-gradient(620px 620px at 100% 108%, rgba(255,255,255,.05), transparent 68%), radial-gradient(520px 520px at 96% 40%, rgba(255,255,255,.05), transparent 62%), radial-gradient(780px 780px at 4% -12%, rgba(255,255,255,.05), transparent 60%), linear-gradient(180deg, #efebe1 0%, #f7f4ed 100%); }
/* round 3, clause 3: the "flat" items of the 1 0 1 0 1 0 0 pattern are a plain fill, only bl-pg carries a gradient */
.elementor:not(#bl_) .bl-pf { background: rgba(255,255,255,.62); }
.elementor:not(#bl_) .bl-bg-dk .bl-pf { background: rgba(255,255,255,.07); }
.elementor:not(#bl_) .bl-bg-hero { background-color: #f7f4ed; background-image: radial-gradient(620px 620px at 100% 108%, rgba(255,255,255,.05), transparent 68%), radial-gradient(520px 520px at 96% 40%, rgba(255,255,255,.05), transparent 62%), radial-gradient(780px 780px at 4% -12%, rgba(255,255,255,.05), transparent 60%), linear-gradient(180deg, #f7f4ed 0%, #f7f4ed 40%, #efebe1 100%); }
/* the home hero photo: the bottom fade now lands on solid ivory, the colour the facts strip starts on */
.elementor:not(#bl_) .bl-hero-bg::after { background: linear-gradient(98deg, #f7f4ed 0%, rgba(247,244,237,.97) 27%, rgba(247,244,237,.82) 42%, rgba(247,244,237,.34) 63%, rgba(247,244,237,.04) 82%, rgba(247,244,237,0) 100%), linear-gradient(to bottom, rgba(247,244,237,.5) 0%, rgba(247,244,237,0) 20%, rgba(247,244,237,0) 68%, rgba(247,244,237,.92) 92%, #f7f4ed 100%); }
@media (max-width: 899px) {
.elementor:not(#bl_) .bl-hero-bg::after { background: linear-gradient(to bottom, rgba(247,244,237,.96) 0%, rgba(247,244,237,.9) 44%, rgba(247,244,237,.82) 66%, rgba(247,244,237,.97) 90%, #f7f4ed 100%); } }

/* 1. home hero: centred over the office photo, which now fills the hero behind an even ivory veil
   (text stays AA) and still lands on solid ivory at the bottom, where the facts strip starts */
.elementor:not(#bl_) .bl-hero-c .bl-hero-bg img { object-position: 50% 50%; }
/* Kostas 25/09 V1 light, «can the gradient go smoother and more up so the text can be readable?»: the enhanced office
   photo (office-hero.jpg) under ONE ivory gradient: .35 above the title, an eased rise behind the text block, solid ivory
   at the bottom edge (blends into the strip). Stops = a smoothstep curve sampled every 5%, fitted 25/09 to the lightest
   curve that passes at 1440/1280/1024/900 (desktop) and 899/768/375 (mobile), per glyph pixel: line under the title
   >= 4.9, title >= 3.5, gold words >= 3.17, button >= 7.6. */
.elementor:not(#bl_) .bl-hero-c .bl-hero-bg::after { background: linear-gradient(to bottom, rgba(247,244,237,0.350) 0%, rgba(247,244,237,0.350) 5%, rgba(247,244,237,0.350) 10%, rgba(247,244,237,0.350) 15%, rgba(247,244,237,0.375) 20%, rgba(247,244,237,0.481) 25%, rgba(247,244,237,0.608) 30%, rgba(247,244,237,0.693) 35%, rgba(247,244,237,0.700) 40%, rgba(247,244,237,0.700) 45%, rgba(247,244,237,0.700) 50%, rgba(247,244,237,0.700) 55%, rgba(247,244,237,0.700) 60%, rgba(247,244,237,0.700) 65%, rgba(247,244,237,0.700) 70%, rgba(247,244,237,0.700) 75%, rgba(247,244,237,0.700) 80%, rgba(247,244,237,0.702) 85%, rgba(247,244,237,0.792) 90%, rgba(247,244,237,0.929) 95%, rgba(247,244,237,1) 100%); }
@media (max-width: 899px) {
.elementor:not(#bl_) .bl-hero-c .bl-hero-bg::after { background: linear-gradient(to bottom, rgba(247,244,237,0.350) 0%, rgba(247,244,237,0.351) 5%, rgba(247,244,237,0.395) 10%, rgba(247,244,237,0.485) 15%, rgba(247,244,237,0.589) 20%, rgba(247,244,237,0.671) 25%, rgba(247,244,237,0.700) 30%, rgba(247,244,237,0.700) 35%, rgba(247,244,237,0.700) 40%, rgba(247,244,237,0.700) 45%, rgba(247,244,237,0.700) 50%, rgba(247,244,237,0.700) 55%, rgba(247,244,237,0.700) 60%, rgba(247,244,237,0.700) 65%, rgba(247,244,237,0.700) 70%, rgba(247,244,237,0.700) 75%, rgba(247,244,237,0.700) 80%, rgba(247,244,237,0.700) 85%, rgba(247,244,237,0.700) 90%, rgba(247,244,237,0.700) 95%, rgba(247,244,237,1) 100%); } }
/* V2 dark, ready to switch (measured 25/09: every hero text >= 3.13, line under the title 6.49, at 1440 and 375).
   To use it, replace the ::after rule above with these four rules:
.elementor:not(#bl_) .bl-hero-c .bl-hero-bg::after { background: linear-gradient(to bottom, rgba(35,33,32,0) 0%, rgba(35,33,32,0) 86%, rgba(247,244,237,.55) 94%, #f7f4ed 100%), rgba(35,33,32,.77); }
.elementor:not(#bl_) .bl-hero-c h1, .elementor:not(#bl_) .bl-hero-c .bl-lede { color: #F2EEE4; }
.elementor:not(#bl_) .bl-hero-c h1 em { color: #C6A173; }
.elementor:not(#bl_) .bl-hero-c .bl-btn-soft { color: #F2EEE4; border-color: rgba(242,238,228,.75); }
*/
/* Kostas 25/09: in the 2-column «Ποιος αναλαμβάνει» list, an odd last item runs the full width (one column: no effect) */
.elementor:not(#bl_) .bl-proofs li:last-child:nth-child(odd) { grid-column: 1 / -1; }
.elementor:not(#bl_) .bl-hero-c .bl-hero-in { max-width: none; margin-inline: auto; display: grid; justify-items: center; text-align: center; }
/* Kostas 23/09: hero content spans the full 1440 container, no width caps; the h1 is sized by font-size */
.elementor:not(#bl_) .bl-hero-c h1 { max-width: none; font-size: clamp(2.4rem, 1rem + 4.4vw, 5.2rem); }
.elementor:not(#bl_) .bl-hero-c .bl-lede { max-width: none; margin-inline: auto; }
.elementor:not(#bl_) .bl-ph .bl-lede, .elementor:not(#bl_) .bl-ph h1 { max-width: none; }
.elementor:not(#bl_) .bl-hero-c .bl-hero-cta { justify-content: center; }
.elementor:not(#bl_) .bl-hero-c .bl-cred { margin-inline: auto; text-align: left; }
.elementor:not(#bl_) .bl-hero-c .bl-hero-badge { margin: 0 0 1.5rem; display: inline-flex; align-items: center; padding: .55rem 1.2rem; border: 1px solid var(--gold); background: rgba(247,244,237,.9); border-radius: 999px; box-shadow: var(--sh-1); font-size: .85rem; font-weight: 700; letter-spacing: .12em; line-height: 1.3; color: #4f3b1f; }
@media (max-width: 480px) { .elementor:not(#bl_) .bl-hero-c .bl-hero-badge { font-size: .74rem; letter-spacing: .06em; padding: .5rem .9rem; white-space: nowrap; } }

/* Kostas 23/09 «Content width 1440 also»: no width caps on text; line length comes from the layout
   (columns), not from max-width. The FAQ stays a centred column (round 2), at 1100px. */
.elementor:not(#bl_) p, .elementor:not(#bl_) .bl-office-body p, .elementor:not(#bl_) .bl-bio .bl-office-body p, .elementor:not(#bl_) .bl-rows-years p,
.elementor:not(#bl_) .bl-bs-body p, .elementor:not(#bl_) .bl-legal-body p, .elementor:not(#bl_) .bl-pledge figcaption { max-width: none; }
.elementor:not(#bl_) .bl-bsl-cols .bl-bs-head, .elementor:not(#bl_) .bl-legal { max-width: none; }
.elementor:not(#bl_) .bl-faq-col { max-width: 1100px; }
/* the quote band: the quote spans the container, bigger and on fewer lines; a firmer veil keeps it AA */
.elementor:not(#bl_) .bl-pledge q { max-width: none; font-size: clamp(2rem, .9rem + 4vw, 4.6rem); }
.elementor:not(#bl_) .bl-pledge figcaption { font-size: clamp(1.06rem, .95rem + .45vw, 1.35rem); }
.elementor:not(#bl_) .bl-pledge-bg::after { background: linear-gradient(96deg, rgba(25,23,21,.95) 0%, rgba(25,23,21,.9) 48%, rgba(25,23,21,.8) 100%); }
/* policies: heading left, text right, so the full width keeps a readable line */
@media (min-width: 900px) {
.elementor:not(#bl_) .bl-legal article { grid-template-columns: 4rem minmax(0, 4fr) minmax(0, 7fr); column-gap: clamp(1.5rem, 3vw, 3.5rem); }
.elementor:not(#bl_) .bl-legal article > div ,
.elementor:not(#bl_) .bl-legal article > .elementor-widget-html > div { display: contents; }
.elementor:not(#bl_) .bl-legal-body { margin-top: 0; } }

/* the FAQ on a light ground: light glass items, hairline borders */
.elementor:not(#bl_) .bl-faq-lt .bl-faq-col .bl-faq details { border: 1px solid rgba(138,106,62,.18); }
.elementor:not(#bl_) .bl-faq-lt .bl-faq-col .bl-faq details[open] { border-color: rgba(138,106,62,.42); background: rgba(255,255,255,.82); }
.elementor:not(#bl_) .bl-faq-lt .bl-faq-col .bl-faq summary { color: var(--ink); }
.elementor:not(#bl_) .bl-faq-lt .bl-faq-col .bl-faq summary:hover { color: var(--gold-tx); }
.elementor:not(#bl_) .bl-faq-lt .bl-faq-col .bl-faq summary::after { border-color: var(--gold-tx); }
.elementor:not(#bl_) .bl-faq-lt .bl-faq-col .bl-faq .bl-a { color: var(--body); }

/* dark grounds: the viewpoint staging recipe, recoloured */
.elementor:not(#bl_) { --bl-dk-glow: radial-gradient(620px 620px at 100% 108%, rgba(138,106,62,.22), transparent 68%), radial-gradient(520px 520px at 96% 40%, rgba(247,244,237,.16), transparent 62%), radial-gradient(780px 780px at 4% -12%, rgba(198,161,115,.40), transparent 60%); }
.elementor:not(#bl_) .bl-bg-dk { background-color: #191715; background-image: var(--bl-dk-glow), linear-gradient(165deg, #2a2724 0%, #191715 100%); }
/* the dark band right above the newsletter ends flat on the newsletter's first colour */
.elementor:not(#bl_) .bl-bg-dk.bl-dk-end { background-image: var(--bl-dk-glow), linear-gradient(180deg, #2b2825 0%, #1e1c1a 100%); }
.elementor:not(#bl_) .bl-bg-dk.bl-dk-start { background-image: var(--bl-dk-glow), linear-gradient(180deg, #1e1c1a 0%, #2b2825 45%, #191715 100%); }
.elementor:not(#bl_) .bl-bg-dk.bl-dk-start.bl-dk-end { background-image: var(--bl-dk-glow), linear-gradient(180deg, #1e1c1a 0%, #2b2825 50%, #1e1c1a 100%); }

/* 5. newsletter + footer = one dark block: the newsletter ends on #191715, the footer starts on it */
.elementor:not(#bl_) .bl-nl-band { position: relative; color: var(--on-deep); background-color: #191715; background-image: radial-gradient(520px 90% at 96% 40%, rgba(247,244,237,.16), transparent 62%), radial-gradient(780px 150% at 4% -12%, rgba(198,161,115,.40), transparent 60%), linear-gradient(180deg, #2a2724 0%, #191715 100%); padding-block: clamp(3rem, 2rem + 4vw, 5.5rem) clamp(2.5rem, 1.5rem + 3vw, 4.25rem); }
/* phones: the newsletter is narrow and tall, so the top-left bronze glow sits right on the eyebrow; softer there to keep AA */
@media (max-width: 599px) {
.elementor:not(#bl_) .bl-nl-band { background-image: radial-gradient(520px 90% at 96% 40%, rgba(247,244,237,.08), transparent 62%), radial-gradient(780px 150% at 4% -12%, rgba(198,161,115,.22), transparent 60%), linear-gradient(180deg, #2a2724 0%, #191715 100%); } }
.elementor:not(#bl_) .bl-nl { padding: 0; border-radius: 0; box-shadow: none; background: none; overflow: visible; }
.elementor:not(#bl_) .bl-nl-join .bl-nl { border-top: 1px solid rgba(242,238,228,.14); padding-top: clamp(2.5rem, 1.5rem + 3vw, 4rem); }
.elementor:not(#bl_) .bl-nl-join { padding-top: 0; }
.elementor:not(#bl_) .bl-nl-band h2 { color: var(--on-deep); }
.elementor:not(#bl_) .bl-nl-band .bl-nl-copy > p:not(.bl-eyebrow) ,
.elementor:not(#bl_) .bl-nl-band .bl-nl-copy > .elementor-widget-html > p:not(.bl-eyebrow) { color: var(--on-dk-2); }
.elementor:not(#bl_) .bl-nl-band .bl-eyebrow { color: var(--gold-dk); }
.elementor:not(#bl_) .bl-nl-band .bl-eyebrow::before { background: var(--gold-dk); }
.elementor:not(#bl_) .bl-foot { background-color: #191715; background-image: radial-gradient(620px 620px at 100% 108%, rgba(138,106,62,.22), transparent 68%); }
.elementor:not(#bl_) .bl-missing { padding-bottom: 1.4rem; }
@media (max-width: 979px) {
.elementor:not(#bl_) .bl-missing { padding-bottom: 6.5rem; } }

/* 7. buttons flat: solid fill or outline, no gradient, no shadow, no lift; hover = colour only */
.elementor:not(#bl_) .bl-btn { box-shadow: none; background-image: none; transform: none; transition: background-color .2s var(--out), color .2s var(--out), border-color .2s var(--out); }
.elementor:not(#bl_) .bl-btn:hover, .elementor:not(#bl_) .bl-btn:active, .elementor:not(#bl_) .bl-btn:focus-visible { box-shadow: none; transform: none; }
.elementor:not(#bl_) .bl-btn-gold, .elementor:not(#bl_) .bl-btn-gold:hover { box-shadow: none; }
.elementor:not(#bl_) .bl-btn-soft { background: transparent; color: var(--ink); border-color: rgba(138,106,62,.5); box-shadow: none; }
.elementor:not(#bl_) .bl-btn-soft:hover { background: var(--gold-wash); border-color: var(--gold); color: var(--ink); box-shadow: none; }
.elementor:not(#bl_) .bl-btn-ghost:hover { transform: none; }
.elementor:not(#bl_) .bl-burger { box-shadow: none; background-image: none; }
/* the current-page underline was an inset shadow on the menu button: now a plain 2px bar */
.elementor:not(#bl_) .bl-menu > a,
/* the current-page underline was an inset shadow on the menu button: now a plain 2px bar */
.elementor:not(#bl_) .bl-menu > .elementor-widget-html > a, .elementor:not(#bl_) .bl-mega-btn { position: relative; }
.elementor:not(#bl_) .bl-menu > a[aria-current="page"],
.elementor:not(#bl_) .bl-menu > .elementor-widget-html > a[aria-current="page"], .elementor:not(#bl_) .bl-mega-btn.bl-is-cur { box-shadow: none; }
.elementor:not(#bl_) .bl-menu > a[aria-current="page"]::after,
.elementor:not(#bl_) .bl-menu > .elementor-widget-html > a[aria-current="page"]::after, .elementor:not(#bl_) .bl-mega-btn.bl-is-cur::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--gold); }

/* 6. icons flat: one colour, no shadow, bevel or gradient on the icon or its holder */
.elementor:not(#bl_) .bl-cred-ic { background: var(--gold-wash); background-image: none; box-shadow: none; border: 1px solid rgba(138,106,62,.28); }
.elementor:not(#bl_) .bl-dir-ic { background: var(--gold-wash); background-image: none; box-shadow: none; border: 1px solid rgba(138,106,62,.22); }
.elementor:not(#bl_) svg { filter: none; }

/* 1. heroes without a side photo: centred across the full content width */
.elementor:not(#bl_) .bl-ph-c .bl-ph-cin { display: grid; justify-items: center; text-align: center; }
.elementor:not(#bl_) .bl-ph-c .bl-crumb ol { justify-content: center; }
.elementor:not(#bl_) .bl-ph-c .bl-eyebrow { justify-content: center; }
.elementor:not(#bl_) .bl-ph-c .bl-eyebrow::after { content: ""; width: 2rem; height: 1.5px; background: var(--gold); flex: none; }
.elementor:not(#bl_) .bl-ph-c h1 { max-width: none; }
.elementor:not(#bl_) .bl-ph-c .bl-lede { max-width: none; margin-inline: auto; }
.elementor:not(#bl_) .bl-ph-c .bl-hero-cta { justify-content: center; }
.elementor:not(#bl_) .bl-ph-c .bl-cred { margin-inline: auto; text-align: left; }
.elementor:not(#bl_) .bl-ph-c .bl-upd { margin-inline: auto; }

/* 8. body sections: editorial text, three layouts */
.elementor:not(#bl_) .bl-bs { padding-block: clamp(3rem, 2rem + 4vw, 5.75rem); }
.elementor:not(#bl_) .bl-bs h2 { margin-top: .9rem; font-size: clamp(1.7rem, 1.05rem + 2vw, 2.85rem); }
.elementor:not(#bl_) .bl-bs .bl-eyebrow { margin-top: 0; }
.elementor:not(#bl_) .bl-bs-body { display: grid; gap: 1.1rem; margin-top: 1.5rem; color: var(--body); font-size: clamp(1rem, .96rem + .2vw, 1.08rem); line-height: 1.72; }
.elementor:not(#bl_) .bl-bs-body:empty { display: none; }
.elementor:not(#bl_) .bl-bs-body p { max-width: 66ch; }
.elementor:not(#bl_) .bl-bs-media { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(2rem, 5vw, 5.5rem); align-items: center; }
.elementor:not(#bl_) .bl-bs-media.bl-bs-rev { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); }
.elementor:not(#bl_) .bl-bs-media.bl-bs-rev .bl-bs-photo { order: -1; }
.elementor:not(#bl_) .bl-bs-photo { margin: 0 1.25rem 1.25rem 0; position: relative; isolation: isolate; }
.elementor:not(#bl_) .bl-bs-photo img { width: 100%; aspect-ratio: 4 / 3.3; object-fit: cover; border-radius: var(--r-lg); box-shadow: var(--sh-3); }
.elementor:not(#bl_) .bl-bs-photo::before { content: ""; position: absolute; inset: 1.25rem -1.25rem -1.25rem 1.25rem; border: 1.5px solid var(--gold-dk); border-radius: var(--r-lg); z-index: -1; }
.elementor:not(#bl_) .bl-bs-split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(1.5rem, 5vw, 5.5rem); align-items: start; }
.elementor:not(#bl_) .bl-bs-split .bl-bs-side { border-top: 2px solid var(--gold); padding-top: 1.4rem; }
.elementor:not(#bl_) .bl-bs-split .bl-bs-body { margin-top: 0; padding-top: 1.4rem; }
.elementor:not(#bl_) .bl-bs-split .bl-bs-body p:first-child { font-size: clamp(1.1rem, 1rem + .45vw, 1.3rem); line-height: 1.6; color: var(--ink); font-weight: 400; }
.elementor:not(#bl_) .bl-bsl-cols .bl-bs-head { max-width: 60rem; }
.elementor:not(#bl_) .bl-bsl-cols .bl-bs-body { display: block; columns: 2 22rem; column-gap: clamp(2rem, 5vw, 5.5rem); margin-top: clamp(1.5rem, 3vw, 2.4rem); padding-top: clamp(1.5rem, 3vw, 2.4rem); border-top: 1px solid rgba(138,106,62,.25); }
.elementor:not(#bl_) .bl-bsl-cols .bl-bs-body p { break-inside: avoid; margin: 0 0 1.1rem; max-width: none; }
.elementor:not(#bl_) .bl-bsl-cols .bl-bs-ticks { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(1.5rem, 3vw, 3rem); }
.elementor:not(#bl_) .bl-bs-listwrap { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(2rem, 5vw, 5.5rem); align-items: start; }
.elementor:not(#bl_) .bl-bs-list { display: grid; padding: clamp(.6rem, 1.5vw, 1rem) clamp(1.4rem, 2.5vw, 2.2rem); border-radius: var(--r-lg); }
.elementor:not(#bl_) .bl-bs-list li, .elementor:not(#bl_) .bl-bs-ticks li { display: grid; grid-template-columns: 1.35rem minmax(0, 1fr); gap: .85rem; align-items: start; padding-block: 1rem; border-top: 1px solid var(--line); line-height: 1.55; }
.elementor:not(#bl_) .bl-bs-list li:first-child { border-top: 0; }
.elementor:not(#bl_) .bl-bs-list svg, .elementor:not(#bl_) .bl-bs-ticks svg { width: 1.35rem; height: 1.35rem; color: var(--gold-tx); margin-top: .1rem; }
.elementor:not(#bl_) .bl-bs-ticks { margin-top: 1.5rem; display: grid; }
.elementor:not(#bl_) .bl-bs-split .bl-bs-ticks { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(1.5rem, 3vw, 3rem); }
@media (max-width: 899px) {
.elementor:not(#bl_) .bl-bs-media, .elementor:not(#bl_) .bl-bs-media.bl-bs-rev, .elementor:not(#bl_) .bl-bs-split, .elementor:not(#bl_) .bl-bs-listwrap { grid-template-columns: 1fr; }
.elementor:not(#bl_) .bl-bs-media.bl-bs-rev .bl-bs-photo { order: 0; }
.elementor:not(#bl_) .bl-bs-photo { max-width: 34rem; margin: 0 .8rem .8rem 0; }
.elementor:not(#bl_) .bl-bs-photo::before { inset: .8rem -.8rem -.8rem .8rem; }
.elementor:not(#bl_) .bl-bs-photo img { aspect-ratio: 16 / 11; } }
@media (max-width: 599px) {
.elementor:not(#bl_) .bl-bs-split .bl-bs-ticks, .elementor:not(#bl_) .bl-bsl-cols .bl-bs-ticks { grid-template-columns: 1fr; } }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
.elementor:not(#bl_) .bl-bs-list { background: #fbf9f4; } }
/* Kostas 23/09: «the page background gradient not the items». The staging-site recipe is for section grounds
   only; the two dark items (mega-menu call box, contact call card) keep their earlier ground. */
.elementor:not(#bl_) .bl-mega-cta.bl-bg-dk, .elementor:not(#bl_) .bl-callcard.bl-bg-dk { background-color: #232120; background-image: radial-gradient(48% 34% at 92% 66%, rgba(198,161,115,.17) 0%, rgba(198,161,115,0) 68%), radial-gradient(40% 30% at 88% 34%, rgba(242,238,228,.045) 0%, rgba(242,238,228,0) 62%), radial-gradient(58% 36% at 7% 30%, rgba(138,106,62,.34) 0%, rgba(138,106,62,0) 62%), linear-gradient(165deg, #2b2825 0%, #191715 100%); }

/* ==== belaw on Elementor: bridge, written 24/09 from measurements on stag1ng ==== */
/* V3 HTML widget wrapper: layout-transparent, so the design markup sits where it sat */
.elementor .elementor-widget-html, .elementor .elementor-widget-html > .elementor-widget-container { display: contents; }
/* V4 atomic base styles, neutralised. (0,2,1): above .elementor .e-*-base (0,2,0), below every design rule (1,1,0) */
html .elementor .e-div-block-base { padding: 0; min-width: 0; width: auto; }
/* measured 24/09: an atomic container is position:relative and width:100% by default; the design's
   divs are static and auto, and absolute layers (hero photo, glows) must find the design's own box */
body:not(.elementor-editor-active) .elementor .e-div-block-base { position: static; }
html .elementor .e-button-base { padding: 0; border-radius: 0; background-color: transparent; text-align: inherit; }
html .elementor .e-form-base { padding: 0; gap: 0; display: block; }
html .elementor .e-form-input-base, html .elementor .e-form-textarea-base, html .elementor .e-form-select-base { height: auto; font-size: inherit; color: inherit; padding: 0; border-width: 0; background-color: transparent; border-radius: 0; }
html .elementor .e-form-label-base { font-size: inherit; color: inherit; display: inline; }
html .elementor .e-form-submit-button-base { padding: 0; background-color: transparent; color: inherit; border-radius: 0; display: inline-block; }
html .elementor .e-form-success-message-base, html .elementor .e-form-error-message-base { padding: 0; background-color: transparent; font-size: inherit; color: inherit; text-align: inherit; }
/* Hello theme reset gives every <button> padding .5rem 1rem, nowrap and a pink hover; the design
   assumed the browser default. (0,1,1): above Hello's button / [type=button], below every design rule */
.elementor button { padding: 1px 6px; white-space: normal; }
/* atomic checkbox is appearance:none and drawn by Elementor; the design uses the native box */
html .elementor .e-form-checkbox-base { -webkit-appearance: checkbox; appearance: auto; }
/* Hello reset.css: figcaption is #333, 16px, italic, 1.4; focus rings add a white box-shadow */
.elementor figcaption { color: inherit; font-size: inherit; font-style: inherit; font-weight: inherit; line-height: inherit; }
.elementor a:focus-visible, .elementor button:focus-visible, .elementor input:focus-visible, .elementor select:focus-visible, .elementor textarea:focus-visible, .elementor [tabindex]:focus-visible { box-shadow: none; }
/* Hello sets h1-h6 line-height 1.2; the design lets h4 inherit 1.6 (footer column titles) */
.elementor h4, .elementor h5, .elementor h6 { line-height: inherit; }
/* Hello also sets label{line-height:1; display:inline-block; vertical-align:middle} */
.elementor label { line-height: inherit; vertical-align: baseline; }
/* Theme Builder header: the design nav is sticky inside one page wrapper; here the header is its own
   document, so the whole header sticks and the top bar slides away under it (--bl-util-h set by the site JS) */
.elementor-location-header { position: sticky; top: calc(-1 * var(--bl-util-h, 0px)); z-index: 60; }
/* Kostas 24/09 «you forgot to do the nav glasseffect»: the header document took the design root's solid
   ivory background, so the stuck nav's glass (::before, .74 + blur 20px) blurred ivory, not the page */
.elementor-location-header.elementor:not(#bl_) { background: transparent; }
body.admin-bar .elementor-location-header { top: calc(32px - var(--bl-util-h, 0px)); }
body.elementor-editor-active .elementor:not(#bl_) .bl-up { opacity: 1 !important; transform: none !important; }/* End custom CSS */