/* ==========================================================================
   FWEF: rules that hold the design system in place inside Elementor.
   Loaded after elementor-frontend and after site.css. Everything here
   exists because Elementor puts the CSS Classes control on the widget
   wrapper and applies its own layout properties to .e-con at the same
   specificity as site.css. Values are the site.css values; this file
   changes nothing about the design.
   ========================================================================== */

/* -- containers carry the layout classes ---------------------------------- */
.e-con.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad);width:100%}
.e-con.wrap--narrow{max-width:1080px}
.e-con.section{padding-block:var(--section)}
.e-con.section--tight{padding-block:clamp(56px,7vw,104px)}
.e-con.section--top0{padding-top:0}
.e-con.section--to-footer{padding-bottom:clamp(2.5rem,4.5vw,4.5rem)}
.e-con.pagehead{padding-top:clamp(140px,17vh,210px);padding-bottom:clamp(3rem,6vw,5rem)}

.e-con.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--fwef-gap)}
@media (max-width:900px){.e-con.grid{grid-template-columns:1fr;gap:clamp(1.75rem,6vw,2.75rem)}}
.e-con.grid>.e-con{width:auto;min-width:0}

.e-con.hero{position:relative;display:flex;align-items:flex-end;min-height:min(90svh,900px);background:var(--navy);isolation:isolate}
.e-con.hero__media{position:absolute;inset:0;z-index:-2;display:block;padding:0}
.hero__media .elementor-widget,.hero__media .elementor-widget-container,.hero__media .elementor-widget>.photo{height:100%}
.e-con.hero__content{padding-top:clamp(140px,20vh,220px);padding-bottom:clamp(3rem,7vw,5.5rem);width:100%}

.e-con.story{display:grid;gap:clamp(1.5rem,4vw,3.5rem);padding-block:clamp(2.5rem,5vw,4rem);border-bottom:1px solid var(--rule)}
@media (min-width:900px){.e-con.story{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:center}}
.e-con.story>.e-con{width:auto;min-width:0}
.e-con.story.no-rule{border-bottom:0}

.e-con.path{display:grid;grid-template-columns:1fr;gap:.5rem 2rem;padding-block:clamp(1.5rem,2.6vw,2.1rem);border-bottom:1px solid var(--rule)}
@media (min-width:820px){.e-con.path{grid-template-columns:minmax(0,20rem) minmax(0,1fr) minmax(0,13rem);align-items:baseline}}
.e-con.paths{display:block;border-top:1px solid var(--rule)}

.e-con.products{display:grid;gap:1px;padding:0;background:var(--rule-strong);border:1px solid var(--rule-strong)}
@media (min-width:880px){.e-con.products{grid-template-columns:repeat(3,1fr)}}
.e-con.products--onband{background:var(--rule-light);border-color:var(--rule-light)}
.e-con.product{display:flex;flex-direction:column;gap:1rem;padding:clamp(1.75rem,3vw,2.5rem);background:var(--paper);width:auto;min-width:0}
.e-con.products--onband>.e-con.product{background:var(--navy)}
.elementor-widget.product__foot{margin-top:auto;padding-top:.75rem}
.elementor-widget.product__cost{font-family:var(--display);font-weight:700;font-size:1.6rem;letter-spacing:-.02em;color:var(--navy)}
.products--onband .elementor-widget.product__cost{color:#fff}
.elementor-widget-text-editor.product__list ul{display:flex;flex-direction:column;gap:.55rem;margin-top:.25rem}
.elementor-widget-text-editor.product__list li{position:relative;padding-left:1.1rem;font-size:.9375rem;line-height:1.5;color:var(--muted)}
.elementor-widget-text-editor.product__list li::before{content:"";position:absolute;left:0;top:.62em;width:5px;height:1px;background:var(--emerald)}
.products--onband .elementor-widget-text-editor.product__list li{color:rgba(255,255,255,.72)}
.products--onband .elementor-widget-text-editor.product__list li::before{background:var(--gold)}

.e-con.plates{display:grid;gap:clamp(.75rem,1.4vw,1.25rem)}
@media (min-width:640px){.e-con.plates{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.e-con.plates{grid-template-columns:repeat(3,1fr)}}

.e-con.pathway{display:block;border-top:1px solid var(--rule);padding-block:clamp(2.25rem,4.5vw,3.5rem)}
.e-con.pathway:last-child{border-bottom:1px solid var(--rule)}

.e-con.band{background:var(--navy);color:#fff}
.e-con.band-paper{background:var(--paper-warm)}
.e-con.body{display:block;max-width:65ch}

/* -- masthead, drawer, footer ---------------------------------------------- */
.e-con.masthead{position:fixed;top:0;left:0;right:0;z-index:100;display:block;padding:0;border-bottom:1px solid transparent}
.admin-bar .e-con.masthead{top:32px}
.e-con.masthead__inner{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:1.5rem;min-height:84px}
.e-con.masthead__actions{display:flex;flex-direction:row;align-items:center;gap:.75rem;width:auto;padding:0}
.e-con.drawer{position:fixed;inset:0;z-index:110;display:flex;flex-direction:column;padding:var(--pad);background:var(--navy);color:#fff;transform:translateY(-100%);visibility:hidden;overflow-y:auto;transition:transform .32s cubic-bezier(.4,0,.2,1);width:auto;max-width:none;min-height:0}
.e-con.drawer[data-open="true"]{transform:translateY(0);visibility:visible}
.e-con.drawer__top{display:flex;flex-direction:row;align-items:center;justify-content:space-between;min-height:84px;margin-inline:calc(var(--pad)*-1);padding-inline:var(--pad);width:auto}
.e-con.drawer__foot{margin-top:auto;padding:2.5rem 0 0}
.e-con.footer{display:block;background:var(--navy);color:#fff;padding-block:clamp(3.5rem,7vw,6rem) clamp(2rem,3vw,3rem)}
[data-review="on"] .e-con.footer{padding-bottom:clamp(4.5rem,8vw,6rem)}
.e-con.footer__grid{display:grid;gap:clamp(2.5rem,5vw,4rem);padding:0}
@media (min-width:900px){.e-con.footer__grid{grid-template-columns:minmax(0,4fr) minmax(0,2fr) minmax(0,2fr) minmax(0,3fr)}}
.e-con.footer__grid>.e-con{width:auto;min-width:0;padding:0;display:block}
.e-con.footer__legal{display:flex;flex-direction:row;flex-wrap:wrap;gap:.75rem 2rem;justify-content:space-between;margin-top:clamp(3rem,5vw,4.5rem);padding:1.75rem 0 0;border-top:1px solid var(--rule-light);font-size:.8125rem;color:rgba(255,255,255,.55)}
.elementor-widget.footer__line{padding-bottom:clamp(2.5rem,5vw,4rem);margin-bottom:clamp(2.5rem,5vw,4rem);border-bottom:1px solid var(--rule-light)}
.elementor-widget-text-editor.footer__list ul{display:flex;flex-direction:column;gap:.7rem}

/* -- native widgets: the class sits on the wrapper, the element inherits --- */
.elementor-widget-heading .elementor-heading-title{font-size:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}
.elementor-widget-heading.h-4 .elementor-heading-title,
.elementor-widget-heading.eyebrow .elementor-heading-title,
.elementor-widget-heading.footer__h .elementor-heading-title,
.elementor-widget-heading.footer__line .elementor-heading-title,
.elementor-widget-heading.caption .elementor-heading-title{font-family:inherit;font-weight:inherit;text-transform:inherit}
.elementor-widget-heading.footer__h .elementor-heading-title{margin:0}
.elementor-widget.footer__h{margin-bottom:1.15rem}
.elementor-widget-heading.eyebrow .elementor-heading-title{display:block}
.elementor-widget-heading.h-display .elementor-heading-title,
.elementor-widget-heading.h-1 .elementor-heading-title,
.elementor-widget-heading.h-2 .elementor-heading-title,
.elementor-widget-heading.h-3 .elementor-heading-title{text-wrap:balance}
.elementor-widget-heading .elementor-heading-title span.tbc{font-family:inherit}
.elementor-widget-text-editor p{margin:0}
.elementor-widget-text-editor.body p+p{margin-top:1.15em}
.elementor-widget-text-editor ul,.elementor-widget-text-editor ol{margin:0;padding:0}
.elementor-widget-text-editor li{list-style:none}
.elementor .photo img{height:100%;width:100%;max-width:100%}
.elementor .footer img,.elementor-widget-image.footer__logo img{width:210px;height:auto}
.elementor-widget-image.drawer__logo img{width:180px;height:auto}
.elementor .brand img{width:clamp(164px,17vw,222px);height:auto}
.elementor-widget-image img{display:block}
.elementor-widget:not(:last-child){margin-bottom:0}
.elementor-widget-container>figure.photo{margin:0}
.elementor a.tlink{text-decoration:none}

/* -- Elementor Pro Form widget mapped to .form / .field -------------------- */
.elementor-widget-form.form .elementor-form-fields-wrapper{display:grid;gap:1.5rem;margin:0}
.elementor-widget-form.form .elementor-field-group{display:flex;flex-direction:column;gap:.5rem;padding:0;margin:0;width:100%;max-width:100%;flex:none}
.elementor-widget-form.form .elementor-field-label{font-size:.8125rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);padding:0;margin:0}
.elementor-widget-form.form .elementor-field-textual{font:inherit;font-size:1rem;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--rule-strong);border-radius:0;padding:.7rem 0;width:100%;min-height:0;box-shadow:none;transition:border-color .16s ease}
.elementor-widget-form.form textarea.elementor-field-textual{resize:vertical;min-height:120px}
.elementor-widget-form.form .elementor-field-textual:focus{outline:0;border-bottom-color:var(--emerald);box-shadow:none}
.elementor-widget-form.form select.elementor-field-textual{appearance:none;background-image:none}
.elementor-widget-form.form .elementor-field-type-submit{padding:0}
.elementor-widget-form.form .elementor-button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 1.75rem;border:1px solid var(--navy);border-radius:2px;font-family:var(--sans);font-size:.9375rem;font-weight:600;letter-spacing:.005em;background:var(--navy);color:var(--paper);white-space:nowrap;transition:background-color .16s ease,color .16s ease,border-color .16s ease}
.elementor-widget-form.form .elementor-button:hover,.elementor-widget-form.form .elementor-button:focus-visible{background:var(--navy-deep);border-color:var(--navy-deep)}
.elementor-widget-form.form--gold .elementor-button{background:var(--gold);border-color:var(--gold);color:var(--navy)}
.elementor-widget-form.form--gold .elementor-button:hover,.elementor-widget-form.form--gold .elementor-button:focus-visible{background:var(--gold-dark);border-color:var(--gold-dark)}
.elementor-widget-form.form .elementor-message{font-size:.9375rem;line-height:1.55;margin-top:1rem;color:var(--emerald);padding:0;border:0;background:none}
.elementor-widget-form.form--gold .elementor-message{color:var(--gold)}
.elementor-widget-form.form .elementor-message::before{display:none}
.elementor-widget-form.form .elementor-field-type-html{font-size:.875rem;color:var(--muted);max-width:60ch;padding:0}
.on-dark .elementor-widget-form.form .elementor-field-label{color:#fff}
.on-dark .elementor-widget-form.form .elementor-field-textual{color:#fff;border-bottom-color:rgba(255,255,255,.45)}
.on-dark .elementor-widget-form.form .elementor-field-textual:focus{border-bottom-color:var(--gold)}
.elementor-widget-form.form .elementor-field-type-honeypot{position:absolute;left:-9999px}

/* -- editor preview only ---------------------------------------------------- */
.elementor-editor-active .js .reveal{opacity:1;transform:none}
.elementor-editor-active .drawer{position:relative;inset:auto;transform:none;visibility:visible;min-height:0}
.elementor-editor-active .masthead{position:sticky}
