/* ELORA brand restoration - component styles ported from the original design */
:root{
 --ivory:var(--e-global-color-ivory,#F6F3EE);
 --ivory-deep:var(--e-global-color-ivorydeep,#EDE8E0);
 --paper:var(--e-global-color-paper,#FCFAF7);
 --ink:var(--e-global-color-primary,#16151A);
 --ink-soft:var(--e-global-color-text,#3F3D45);
 --ink-mute:var(--e-global-color-inkmute,#75727C);
 --greige:var(--e-global-color-greige,#C9C0B4);
 --hair:var(--e-global-color-hairline,#DFD8CD);
 --bronze:var(--e-global-color-bronze,#A08B72);
 --mineral:var(--e-global-color-secondary,#6E9A8D);
 --mineral-deep:var(--e-global-color-accent,#41685E);
 --mineral-wash:var(--e-global-color-minwash,#E4EDE9);
 --ease:cubic-bezier(.22,.61,.36,1);
}
/* ---------- buttons: wipe-fill from right, exactly as original ---------- */
.elementor .elementor-button{
 display:inline-flex;align-items:center;justify-content:center;gap:.8em;
 font-family:var(--e-global-typography-text-font-family,'IBM Plex Mono'),ui-monospace,monospace;
 font-size:.7rem;letter-spacing:.17em;text-transform:uppercase;font-weight:500;
 padding:1.15em 2em;border:1px solid var(--ink);background:var(--ink);color:var(--ivory);
 position:relative;overflow:hidden;border-radius:0;
 transition:color .45s var(--ease),border-color .45s var(--ease);
}
.elementor .elementor-button::after{
 content:"";position:absolute;inset:0;background:var(--mineral-deep);
 transform:scaleX(0);transform-origin:right;
 transition:transform .5s var(--ease);z-index:0;
}
.elementor .elementor-button:hover::after,
.elementor .elementor-button:focus-visible::after{transform:scaleX(1);transform-origin:left}
.elementor .elementor-button .elementor-button-content-wrapper,
.elementor .elementor-button .elementor-button-text{position:relative;z-index:1}
.elementor .elementor-button:hover,
.elementor .elementor-button:focus-visible{color:var(--ivory);border-color:var(--mineral-deep)}
/* light variant over dark grounds */
.elora-dark .elementor-button{background:transparent;color:var(--ivory);border-color:rgba(246,243,238,.42)}
.elora-dark .elementor-button::after{background:var(--ivory)}
.elora-dark .elementor-button:hover,
.elora-dark .elementor-button:focus-visible{color:var(--ink);border-color:var(--ivory)}
/* ---------- cards: lift + image zoom, matching original ---------- */
.elementor .xpro-post-grid-item,
.elementor .xpro-grid-item{
 background:var(--paper);border:1px solid var(--hair);border-radius:0;overflow:hidden;
 transition:transform .55s var(--ease),border-color .45s,box-shadow .55s;
}
.elementor .xpro-post-grid-item:hover,
.elementor .xpro-grid-item:hover{
 transform:translateY(-5px);border-color:var(--greige);
 box-shadow:0 18px 44px -30px rgba(22,21,26,.42);
}
.elementor .xpro-post-grid-item img,
.elementor .xpro-grid-item img{
 transition:transform 1.1s var(--ease);filter:grayscale(.16);
 object-fit:cover;width:100%;height:100%;
}
.elementor .xpro-post-grid-item:hover img,
.elementor .xpro-grid-item:hover img{transform:scale(1.05)}
/* image widget zoom parity */
.elementor .elementor-widget-image img{transition:transform 1.1s var(--ease);filter:grayscale(.16)}
.elementor .elementor-widget-image:hover img{transform:scale(1.05)}
/* ---------- reveal on scroll ---------- */
.rv{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
 .rv{opacity:1;transform:none;transition:none}
 .elementor .elementor-button::after{transition:none}
}
/* ---------- links: never default blue ---------- */
.elementor a{color:var(--mineral-deep);text-decoration:none;transition:color .35s var(--ease)}
.elementor a:hover{color:var(--ink)}
/* ---------- header: sticky + scroll state, matching original hdrState() ---------- */
#elora-header{position:sticky;top:0;z-index:999;transition:background-color .45s var(--ease),box-shadow .45s var(--ease),padding .45s var(--ease)}
body.elora-scrolled #elora-header{background:rgba(246,243,238,.88);backdrop-filter:saturate(140%) blur(14px);box-shadow:0 1px 0 var(--hair)}
#elora-header .elementor-widget-image img,#elora-header .xpro-site-logo img{transition:transform .45s var(--ease)}
/* header nav type + hover, no default blue */
#elora-nav .xpro-menu-item>a,#elora-nav a{color:var(--ink);font-family:var(--e-global-typography-text-font-family,'IBM Plex Mono'),monospace;font-size:.66rem;letter-spacing:.17em;text-transform:uppercase;font-weight:500;transition:color .35s var(--ease)}
#elora-nav a:hover,#elora-nav .current-menu-item>a{color:var(--mineral-deep)}
#elora-nav .sub-menu{background:var(--paper);border:1px solid var(--hair);border-radius:0;box-shadow:0 18px 44px -30px rgba(22,21,26,.42)}
#elora-nav .sub-menu a{text-transform:none;letter-spacing:.02em;font-size:.9rem;font-family:var(--e-global-typography-secondary-font-family,Inter),sans-serif}
/* header CTA sizing */
#elora-header-cta .elementor-button{padding:.95em 1.5em;font-size:.63rem}
@media(max-width:880px){#elora-header-cta{display:none}}
@media(max-width:767px){#elora-header .e-con-inner{flex-wrap:nowrap}}
/* footer: links inherit ivory, hover mineral */
#elora-footer a,#elora-footer .elementor-heading-title a{color:var(--ivory)}
#elora-footer a:hover{color:var(--mineral)}
/* ---------- WPForms brand styling ---------- */
.wpforms-container .wpforms-form{margin:0}
.wpforms-container .wpforms-field{padding:0 0 22px}
.wpforms-container .wpforms-field-label{font-family:var(--e-global-typography-text-font-family,'IBM Plex Mono'),monospace;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;font-weight:500;color:var(--mineral-deep);margin:0 0 10px;display:block}
.wpforms-container .wpforms-required-label{color:var(--bronze)}
.wpforms-container input[type=text],.wpforms-container input[type=email],.wpforms-container input[type=tel],.wpforms-container select,.wpforms-container textarea{width:100%;background:transparent;border:0;border-bottom:1px solid var(--hair);border-radius:0;padding:.75em 0;box-shadow:none;font-family:var(--e-global-typography-secondary-font-family,Inter),sans-serif;font-size:1rem;color:var(--ink);line-height:1.6;transition:border-color .4s var(--ease),background-color .4s var(--ease)}
.wpforms-container textarea{min-height:130px;resize:vertical}
.wpforms-container input:focus,.wpforms-container select:focus,.wpforms-container textarea:focus{outline:none;border-bottom-color:var(--mineral);background:rgba(228,237,233,.28)}
.wpforms-container ::placeholder{color:var(--ink-mute);opacity:1}
.wpforms-container .wpforms-field-description{color:var(--ink-mute);font-size:.82rem;margin-top:8px}
.wpforms-container .wpforms-error{border-bottom-color:var(--bronze)!important}
.wpforms-container label.wpforms-error{color:var(--bronze);font-family:var(--e-global-typography-text-font-family,'IBM Plex Mono'),monospace;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;margin-top:8px}
.wpforms-container .wpforms-submit{display:inline-flex;align-items:center;justify-content:center;gap:.8em;font-family:var(--e-global-typography-text-font-family,'IBM Plex Mono'),monospace;font-size:.7rem;letter-spacing:.17em;text-transform:uppercase;font-weight:500;padding:1.15em 2em;border:1px solid var(--ink);background:var(--ink);color:var(--ivory);position:relative;overflow:hidden;border-radius:0;cursor:pointer;transition:color .45s var(--ease),border-color .45s var(--ease)}
.wpforms-container .wpforms-submit::after{content:"";position:absolute;inset:0;background:var(--mineral-deep);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease);z-index:0}
.wpforms-container .wpforms-submit:hover::after{transform:scaleX(1);transform-origin:left}
.wpforms-container .wpforms-submit span{position:relative;z-index:1}
.wpforms-container .wpforms-confirmation-container-full{background:var(--mineral-wash);border:1px solid var(--mineral);border-radius:0;padding:22px 24px;color:var(--ink)}

.ej{max-width:100%}
.ej-bar{height:2px;background:var(--hair);position:relative;margin-bottom:28px}
.ej-bar span{position:absolute;inset:0 auto 0 0;background:var(--mineral);width:20%;transition:width .6s var(--ease)}
.ej-step{font-family:var(--e-global-typography-text-font-family,'IBM Plex Mono'),monospace;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mineral-deep);margin:0 0 18px}
.ej h3{font-family:var(--e-global-typography-primary-font-family,Fraunces),serif;font-size:clamp(1.6rem,3vw,2.5rem);line-height:1.1;margin:0 0 10px;color:var(--ink);font-weight:400}
.ej p.ej-lede{color:var(--ink-mute);margin:0 0 26px;font-size:1rem}
.ej-opts{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:10px}
.ej-o{flex:1 1 200px;text-align:left;background:var(--paper);border:1px solid var(--hair);padding:16px 18px;cursor:pointer;transition:border-color .35s var(--ease),background-color .35s var(--ease),transform .35s var(--ease);font-family:var(--e-global-typography-secondary-font-family,Inter),sans-serif;font-size:.95rem;color:var(--ink)}
.ej-o:hover{border-color:var(--greige);transform:translateY(-2px)}
.ej-o[aria-pressed=true]{border-color:var(--mineral);background:var(--mineral-wash);color:var(--mineral-deep)}
.ej-nav{display:flex;gap:12px;margin-top:30px;padding-top:24px;border-top:1px solid var(--hair)}
.ej-b{font-family:var(--e-global-typography-text-font-family,'IBM Plex Mono'),monospace;font-size:.7rem;letter-spacing:.17em;text-transform:uppercase;font-weight:500;padding:1.05em 2em;border:1px solid var(--ink);background:var(--ink);color:var(--ivory);cursor:pointer;position:relative;overflow:hidden;transition:color .45s var(--ease),border-color .45s var(--ease)}
.ej-b::after{content:'';position:absolute;inset:0;background:var(--mineral-deep);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.ej-b:hover::after{transform:scaleX(1);transform-origin:left}
.ej-b span{position:relative;z-index:1}
.ej-ghost{background:transparent;color:var(--ink)}
.ej-ghost::after{background:var(--ink)}
.ej-ghost:hover{color:var(--ivory)}
.ej-b[disabled]{opacity:.32;pointer-events:none}
.ej-res{border:1px solid var(--hair);background:var(--paper);padding:22px 24px;margin-bottom:14px}
.ej-res h4{font-family:var(--e-global-typography-primary-font-family,Fraunces),serif;font-size:1.3rem;margin:0 0 6px;color:var(--ink);font-weight:400}
.ej-res p{margin:0;color:var(--ink-mute);font-size:.94rem}
.ej-tag{display:inline-block;font-family:var(--e-global-typography-text-font-family,'IBM Plex Mono'),monospace;font-size:.58rem;letter-spacing:.13em;text-transform:uppercase;color:var(--mineral-deep);background:var(--mineral-wash);padding:.42em .7em;margin-bottom:8px}

/* ==== HEADER LAYOUT ==== */
#elora-header{padding-top:0!important;padding-bottom:0!important}
#elora-header>.e-con,#elora-header .e-con-inner{padding-top:0!important;padding-bottom:0!important}
#elora-header .e-con-inner{display:flex;flex-wrap:nowrap!important;align-items:center;min-height:84px;gap:0}
#elora-header .e-con-inner>.e-con{align-self:center}
#elora-header .e-con-inner>.e-con:nth-child(1){width:auto!important;flex:0 0 auto!important;padding:0!important}
#elora-header .e-con-inner>.e-con:nth-child(2){width:auto!important;flex:1 1 auto!important;padding:0 24px!important;justify-content:flex-end}
#elora-header .e-con-inner>.e-con:nth-child(3){width:auto!important;flex:0 0 auto!important;padding:0!important;justify-content:flex-end}
#elora-header .xpro-site-logo{display:flex;align-items:center}
#elora-header .xpro-site-logo img{width:auto!important;height:44px!important;max-width:none;display:block}
#elora-nav .xpro-elementor-horizontal-navbar-wrapper{width:100%}
#elora-nav ul.xpro-elementor-horizontal-navbar-nav{display:flex!important;flex-wrap:nowrap!important;align-items:center;justify-content:flex-end;margin:0;padding:0;list-style:none;gap:0}
#elora-nav ul.xpro-elementor-horizontal-navbar-nav>li{white-space:nowrap;margin:0;position:relative}
#elora-nav ul.xpro-elementor-horizontal-navbar-nav>li>a{display:inline-flex;align-items:center;padding:10px 14px;white-space:nowrap}
#elora-nav .sub-menu{white-space:nowrap;min-width:200px}
#elora-nav .sub-menu li>a{padding:11px 18px;white-space:nowrap}
#elora-header-cta .elementor-button{padding:.95em 1.6em;font-size:.63rem;white-space:nowrap}
#elora-header-cta{margin:0}
@media(max-width:1280px){#elora-nav ul.xpro-elementor-horizontal-navbar-nav>li>a{padding:10px 10px;font-size:.6rem}#elora-header .e-con-inner{min-height:76px}}
@media(max-width:1024px){#elora-header .e-con-inner{min-height:70px}#elora-header .xpro-site-logo img{height:38px!important}}
@media(max-width:767px){#elora-header .e-con-inner{min-height:64px}#elora-header .xpro-site-logo img{height:34px!important}#elora-header .e-con-inner>.e-con:nth-child(2){padding:0 12px!important}}
/* ==== END HEADER LAYOUT ==== */

/* ==== FOOTER LAYOUT ==== */
#elora-footer{background:#16151A;overflow-x:hidden}
#elora-footer .e-con-inner{max-width:1280px;margin:0 auto}
#elora-footer>.e-con{width:100%}
#elora-footer .xpro-site-logo img{width:auto!important;height:40px!important;max-width:none;display:block}
#elora-footer .e-con.e-flex[class*=elementor-element]{min-height:0}
#elora-footer .elementor-heading-title{margin:0}
#elora-footer a{display:inline-block;text-decoration:none;transition:color .35s var(--ease),transform .35s var(--ease)}
#elora-footer a:hover{color:var(--mineral)!important;transform:translateX(3px)}
#elora-footer .e-con:empty{display:none}
#elora-footer .elementor-widget{margin-bottom:0}
#elora-footer .elementor-widget-divider{width:100%}
@media(max-width:1024px){#elora-footer .xpro-site-logo img{height:36px!important}}
@media(max-width:767px){#elora-footer .xpro-site-logo img{height:34px!important}#elora-footer a:hover{transform:none}}
/* ==== END FOOTER LAYOUT ==== */

/* ==== VIEWPORT FIT ==== */
.ast-page-builder-template .ast-no-sidebar .entry-content>.alignfull,.ast-plain-container.ast-no-sidebar .entry-content .alignfull,.site-content .ast-article-image-container--full{margin-left:0!important;margin-right:0!important;max-width:100%!important;width:100%!important}
.ast-page-builder-template .ast-row{margin-left:0;margin-right:0}
#elora-header .e-con-inner>.e-con{min-width:0}
#elora-nav,#elora-nav .xpro-elementor-horizontal-navbar-wrapper,#elora-nav .xpro-elementor-horizontal-navbar{min-width:0}
#elora-footer .e-con-inner>.e-con{min-width:0}
.e-con,.e-con-inner{max-width:100%}
/* ==== END VIEWPORT FIT ==== */
