/* Elite Bookkeeping of WI — site-wide base for the Elementor build.
   Ported from the static site's assets/css/style.css. Section-specific styles live in each section's hidden
   "fx" HTML widget; this file holds tokens, page base, shared components and shared keyframes. */

:root{
  --ebw-navy:#0F1E36;--ebw-navy-2:#16294A;--ebw-navy-3:#1E3560;
  --ebw-ivory:#FAF7F0;--ebw-ivory-2:#F3EEE3;--ebw-paper:#FFFDF8;
  --ebw-gold:#C6A15B;--ebw-gold-2:#E2C892;--ebw-gold-dk:#9E7C3C;
  --ebw-charcoal:#2B2F36;--ebw-muted:#646A75;--ebw-line:#E6DFD0;
  --ebw-green:#4F7A62;--ebw-green-lt:#E7EFE9;
  --ebw-serif:"Playfair Display",Georgia,serif;
  --ebw-sans:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --ebw-script:"Great Vibes",cursive;
  --ebw-radius:18px;
  --ebw-shadow:0 1px 2px rgba(15,30,54,.04),0 12px 32px -12px rgba(15,30,54,.14);
  --ebw-shadow-lg:0 2px 4px rgba(15,30,54,.05),0 30px 60px -20px rgba(15,30,54,.25);
  --ebw-gold-grad:linear-gradient(135deg,#F0DDAA,#C6A15B 55%,#9E7C3C);
}
@property --fang{syntax:'<angle>';inherits:false;initial-value:0deg}

/* ---------- page base ---------- */
html{scroll-behavior:smooth}
/* in-page anchors land below the fixed header (and the admin bar when logged in) */
.ebw-site [id]{scroll-margin-top:96px}
.ebw-site.admin-bar [id]{scroll-margin-top:128px}
body.ebw-site{margin:0;font-family:var(--ebw-sans);color:var(--ebw-charcoal);background:var(--ebw-ivory);line-height:1.65;font-size:16.5px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
.ebw-site a{color:inherit;text-decoration:none}
.ebw-site img{max-width:100%}
/* line icons stay outlined even when an Elementor colour setting adds a fill */
.ebw-site svg[stroke="currentColor"]{fill:none!important}
.ebw-site .elementor-icon-list-icon svg,.ebw-site .elementor-icon svg,.ebw-site .elementor-button-icon svg{stroke:currentColor}
.ebw-site :where(.ebw-sec,.ebw-hd,.ebw-ft) *{box-sizing:border-box}
.ebw-site .elementor :is(h1,h2,h3,h4,h5,h6,p,ul,ol,figure,blockquote){margin:0}

/* ---------- sections & containers ---------- */
.ebw-sec.e-con,.ebw-sec .e-con,.ebw-hd .e-con,.ebw-hd.e-con,.ebw-ft .e-con,.ebw-ft.e-con{
  --padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px;
  --gap:0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:0px}
.ebw-sec.e-con.e-parent{display:block;position:relative;padding:120px 0}
.ebw-sec .e-con>.elementor-widget,.ebw-hd .e-con>.elementor-widget,.ebw-ft .e-con>.elementor-widget{margin:0;max-width:none}
.ebw-sec .ebw-wrap.e-con,.ebw-hd .ebw-wrap.e-con,.ebw-ft .ebw-wrap.e-con{width:100%;max-width:1200px;margin:0 auto;padding:0 28px}
.ebw-site .ebw-fx.elementor-widget{display:none}
.elementor-editor-active .ebw-fx.elementor-widget,.elementor-editor-preview .ebw-fx.elementor-widget{display:none}

/* ---------- typography ---------- */
.ebw-site .ebw-sec .elementor-heading-title{font-family:var(--ebw-serif);font-weight:600;line-height:1.14;letter-spacing:-.015em}
.ebw-site .ebw-h1 .elementor-heading-title{font-size:clamp(2.5rem,4.9vw,4.25rem);line-height:1.08}
.ebw-site .ebw-h2 .elementor-heading-title{font-size:clamp(1.9rem,3.2vw,2.75rem)}
.ebw-site .ebw-h3 .elementor-heading-title{font-size:1.3rem}
.ebw-site .elementor-heading-title em{font-style:italic}
.ebw-site .ebw-sec .ebw-eyebrow .elementor-heading-title{display:inline-flex;align-items:center;gap:10px;font-family:var(--ebw-sans);font-size:.76rem;font-weight:700;letter-spacing:.2em;line-height:1.65;text-transform:uppercase}
.ebw-site .ebw-eyebrow .elementor-heading-title::before{content:"";width:28px;height:1px;background:currentColor;opacity:.7}
.ebw-site .ebw-lead,.ebw-site .ebw-lead p{font-size:1.12rem;line-height:1.65;max-width:560px}
.ebw-site .ebw-script .elementor-heading-title,.ebw-site .ebw-script.elementor-widget p{font-family:var(--ebw-script);font-weight:400;letter-spacing:0;line-height:1.1}
.ebw-site .elementor-widget-text-editor p+p{margin-top:1em}

/* accent word with hand-drawn underline (inside any heading title) */
.ebw-hl{position:relative;white-space:nowrap;font-style:italic;color:var(--ebw-gold-dk)}
.ebw-hl::after{content:"";position:absolute;left:-2%;right:-2%;bottom:-.16em;height:.34em;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 20' preserveAspectRatio='none'%3E%3Cpath d='M3 14 C 50 4, 120 3, 197 9' fill='none' stroke='%23C6A15B' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center/100% 100%;
  transform:scaleX(0);transform-origin:left;transition:transform .9s .45s cubic-bezier(.6,0,.2,1)}
.is-in .ebw-hl::after,html:not(.ebw-js) .ebw-hl::after{transform:scaleX(1)}
.ebw-on-dark .ebw-hl{color:var(--ebw-gold-2)}

/* section heading row: title block left, intro text right */
.ebw-sec .ebw-sechead.e-con{display:flex;flex-direction:row;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:60px}
.ebw-sec .ebw-sechead__l.e-con{display:block;width:auto;flex:0 1 auto}
.elementor.elementor .ebw-sec .ebw-sechead__l .ebw-h2.elementor-widget{margin-top:16px;max-width:620px}
.elementor.elementor .ebw-sec .ebw-sechead__r.elementor-widget,.ebw-sec .ebw-sechead__r.e-con{max-width:380px;width:auto;flex:0 1 380px}
@media (max-width:1024px){.ebw-sec .ebw-sechead.e-con{flex-direction:column;align-items:flex-start}.elementor.elementor .ebw-sec .ebw-sechead__r.elementor-widget,.elementor.elementor .ebw-sec .ebw-sechead__r.e-con{flex:none}}

/* ---------- buttons (Elementor Button widget restyled as the original .btn) ---------- */
.ebw-site .ebw-btn.elementor-widget .elementor-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:16px 28px;border-radius:999px;border:1px solid transparent;
  font-family:var(--ebw-sans);font-size:.95rem;font-weight:600;line-height:1.65;letter-spacing:normal;text-transform:none;cursor:pointer;transition:all .3s ease}
.ebw-site .ebw-btn .elementor-button-content-wrapper{gap:10px;align-items:center}
.ebw-site .ebw-btn .elementor-button-icon{display:inline-flex;margin:0}
.ebw-site .ebw-btn .elementor-button-icon svg{width:16px;height:16px;transition:transform .3s}
.ebw-site .ebw-btn .elementor-button:hover .elementor-button-icon svg{transform:translateX(3px)}
.ebw-site .ebw-btn.ebw-btn--gold.elementor-widget .elementor-button{background:var(--ebw-gold);color:var(--ebw-navy);box-shadow:0 10px 24px -10px rgba(198,161,91,.8)}
.ebw-site .ebw-btn.ebw-btn--gold.elementor-widget .elementor-button:hover{background:var(--ebw-gold-2);color:var(--ebw-navy);transform:translateY(-2px)}
.ebw-site .ebw-btn.ebw-btn--ghost.elementor-widget .elementor-button{background:transparent;color:var(--ebw-navy);border-color:rgba(15,30,54,.2)}
.ebw-site .ebw-btn.ebw-btn--ghost.elementor-widget .elementor-button:hover{background:var(--ebw-navy);color:var(--ebw-ivory);border-color:var(--ebw-navy)}
.ebw-site .ebw-btn.ebw-btn--light.elementor-widget .elementor-button{background:transparent;color:var(--ebw-ivory);border-color:rgba(250,247,240,.35)}
.ebw-site .ebw-btn.ebw-btn--light.elementor-widget .elementor-button:hover{background:var(--ebw-ivory);color:var(--ebw-navy)}
.ebw-site .ebw-btn.ebw-btn--glass.elementor-widget .elementor-button{background:rgba(250,247,240,.06);color:var(--ebw-ivory);border-color:rgba(250,247,240,.28);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.ebw-site .ebw-btn.ebw-btn--glass.elementor-widget .elementor-button:hover{background:var(--ebw-ivory);color:var(--ebw-navy);border-color:var(--ebw-ivory)}
.ebw-site .ebw-btn.ebw-btn--dark-ghost.elementor-widget .elementor-button{background:transparent;color:var(--ebw-ivory);border-color:rgba(250,247,240,.3)}
.ebw-site .ebw-btn.ebw-btn--dark-ghost.elementor-widget .elementor-button:hover{background:var(--ebw-ivory);color:var(--ebw-navy);border-color:var(--ebw-ivory)}
.ebw-site .ebw-btn--block.elementor-widget .elementor-button{width:100%}
/* periodic sheen across a button */
.ebw-site .ebw-shine .elementor-button{position:relative;overflow:hidden;isolation:isolate}
.ebw-site .ebw-shine .elementor-button::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.6) 50%,transparent 65%);transform:translateX(-130%);animation:ebw-shine 5s ease-in-out 2s infinite}
.ebw-site .ebw-magnetic .elementor-button{transition:transform .35s cubic-bezier(.2,.8,.2,1),background .3s,box-shadow .3s,color .3s}

/* ---------- reveal on scroll (hidden states only once the site script has run) ---------- */
html.ebw-js .ebw-reveal{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
html.ebw-js .ebw-reveal.is-in{opacity:1;transform:none}
html.ebw-js .ebw-d1{transition-delay:.1s}html.ebw-js .ebw-d2{transition-delay:.2s}html.ebw-js .ebw-d3{transition-delay:.3s}

/* ---------- shared keyframes ---------- */
@keyframes ebw-spin{to{--fang:360deg}}
@keyframes ebw-rot{to{transform:rotate(360deg)}}
@keyframes ebw-ping{0%{transform:scale(1);opacity:.55}100%{transform:scale(1.75);opacity:0}}
@keyframes ebw-shine{0%,72%{transform:translateX(-130%)}100%{transform:translateX(130%)}}
@keyframes ebw-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes ebw-pulse{0%{box-shadow:0 0 0 0 rgba(79,122,98,.5)}70%{box-shadow:0 0 0 9px rgba(79,122,98,0)}100%{box-shadow:0 0 0 0 rgba(79,122,98,0)}}
@keyframes ebw-rise{from{opacity:0;transform:translateY(18px)}}
@keyframes ebw-orb-a{50%{transform:translate(60px,-40px) scale(1.08)}}
@keyframes ebw-orb-b{50%{transform:translate(-50px,40px) scale(.92)}}
/* masked conic ring used for rotating gold edges */
.ebw-ring{position:absolute;inset:0;border-radius:inherit;padding:1.5px;pointer-events:none;z-index:3;
  background:conic-gradient(from var(--fang),transparent 0deg 220deg,rgba(226,200,146,.25) 270deg,#E2C892 330deg,#FFF3D1 350deg,transparent 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:ebw-spin 8s linear infinite}

@media (max-width:760px){
  .ebw-sec.e-con.e-parent{padding:84px 0}
  .ebw-sec .ebw-wrap.e-con,.ebw-hd .ebw-wrap.e-con,.ebw-ft .ebw-wrap.e-con{padding:0 18px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  html.ebw-js .ebw-reveal{opacity:1;transform:none;transition:none}
  .ebw-hl::after{transform:scaleX(1);transition:none}
  .ebw-ring,.ebw-site .ebw-shine .elementor-button::after{animation:none}
}
